Skip to content
Snippets Groups Projects
Select Git revision
  • e8f2db7da3f0e60901b09ee6eada99a9e875497f
  • wip-bootstrap default
  • dualcore
  • ch3/leds
  • ch3/time
  • master
6 results

strtoll.c

Blame
  • user avatar
    Damien George authored
    Some rodata items can go in iram/irom segment, but not others.  With
    this patch ESP now has 24256 bytes of heap ram.  It passes 228 out of
    248 tests from tests/basics directory.
    fbea8100
    History
    strtoll.c 629 B
    #include <stdlib.h>
    
    // assumes endptr != NULL
    // doesn't check for sign
    // doesn't check for base-prefix
    long long int strtoll(const char *nptr, char **endptr, int base) {
        long long val = 0;
    
        for (; *nptr; nptr++) {
            int v = *nptr;
            if ('0' <= v && v <= '9') {
                v -= '0';
            } else if ('A' <= v && v <= 'Z') {
                v -= 'A' - 10;
            } else if ('a' <= v && v <= 'z') {
                v -= 'a' - 10;
            } else {
                break;
            }
            if (v >= base) {
                break;
            }
            val = val * base + v;
        }
    
        *endptr = (char*)nptr;
    
        return val;
    }