+EXPORT unsigned long strtoul(const char *ptr, char **end, int base)\r
+{\r
+ unsigned long long tmp = strtoull(ptr, end, base);\r
+ \r
+ if( tmp > ULONG_MAX ) {\r
+ errno = ERANGE;\r
+ return ULONG_MAX;\r
+ }\r
+ \r
+ return tmp;\r
+}\r
+\r
+EXPORT long long strtoll(const char *str, char **end, int base)\r
+{\r
+ int neg = 0;\r
+ unsigned long long ret;\r
+\r
+ if( !str ) {\r
+ errno = EINVAL;\r
+ return 0;\r
+ }\r
+ \r
+ while( isspace(*str) )\r
+ str++;\r
+ \r
+ // Check for negative (or positive) sign\r
+ if(*str == '-' || *str == '+') {\r
+ neg = (*str == '-');\r
+ str++;\r
+ }\r
+\r
+ ret = strtoull(str, end, base); \r
+\r
+ if( neg )\r
+ return -ret;\r
+ else\r
+ return ret;\r
+}\r
+\r