Removed Page directory dump, added a mention of the fault details before the table...
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / stdlib.c
index f5acadb..850d269 100644 (file)
@@ -13,9 +13,6 @@
 #define _stdout        1\r
 #define _stdin 0\r
 \r
-// === IMPORTS ===\r
-extern int     fprintfv(FILE *fp, const char *format, va_list args);\r
-\r
 // === PROTOTYPES ===\r
 EXPORT int     atoi(const char *str);\r
 EXPORT void    exit(int status);\r
@@ -31,6 +28,34 @@ EXPORT void exit(int status)
 }\r
 \r
 /**\r
+ * \fn EXPORT void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))\r
+ * \brief Sort an array\r
+ * \note Uses a selection sort\r
+ */\r
+EXPORT void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))\r
+{\r
+        int    i, j, min;\r
+       for( i = 0; i < (nmemb-1); i++ )\r
+       {\r
+               min = i;\r
+               for( j = i+1; j < nmemb; j++ )\r
+               {\r
+                       if(compar(base+size*j, base + size*min) < 0) {\r
+                               min = j;\r
+                       }\r
+               }\r
+               if (i != min) {\r
+                       char    swap[size];\r
+                       memcpy(swap, base+size*i, size);\r
+                       memcpy(base+size*i, base+size*min, size);\r
+                       memcpy(base+size*i, swap, size);\r
+               }\r
+       }\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

UCC git Repository :: git.ucc.asn.au