+\r
+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
+EXPORT long strtol(const char *str, char **end, int base)\r
+{\r
+ long long tmp = strtoll(str, end, base);\r
+ if( tmp > LONG_MAX || tmp < LONG_MIN ) {\r
+ errno = ERANGE;\r
+ return (tmp > LONG_MAX) ? LONG_MAX : LONG_MIN;\r
+ }\r
+ return tmp;\r
+}\r
+\r
+/**\r
+ * \fn EXPORT int atoi(const char *str)\r
+ * \brief Convert a string to an integer\r
+ */\r
+EXPORT int atoi(const char *str)\r
+{\r
+ long long tmp = strtoll(str, NULL, 0);\r
+ if( tmp > INT_MAX || tmp < INT_MIN ) {\r
+ errno = ERANGE;\r
+ return (tmp > INT_MAX) ? INT_MAX : INT_MIN;\r
+ }\r
+ return tmp;\r
+}\r
+\r
+int abs(int j) { return j < 0 ? -j : j; }\r
+long int labs(long int j) { return j < 0 ? -j : j; }\r
+\r