Add missing prerequisite include
[people/xl0/gpxe.git] / src / include / stdlib.h
index d71ee1a..26b6835 100644 (file)
@@ -1,11 +1,16 @@
 #ifndef STDLIB_H
 #define STDLIB_H
 
+#include <stdint.h>
+
 extern unsigned long strtoul ( const char *p, char **endp, int base );
 extern void * realloc ( void *old_ptr, size_t new_size );
 extern void * malloc ( size_t size );
 extern void free ( void *ptr );
 extern int system ( const char *command );
+extern long int random ( void );
+
+extern void * _calloc ( size_t len );
 
 /**
  * Allocate cleared memory
@@ -16,12 +21,12 @@ extern int system ( const char *command );
  *
  * Allocate memory as per malloc(), and zero it.
  *
- * Note that malloc() and calloc() are identical, in the interests of
- * reducing code size.  Callers should not, however, rely on malloc()
- * clearing memory, since this behaviour may change in future.
+ * This is implemented as a static inline, with the body of the
+ * function in _calloc(), since in most cases @c nmemb will be 1 and
+ * doing the multiply is just wasteful.
  */
 static inline void * calloc ( size_t nmemb, size_t size ) {
-       return malloc ( nmemb * size );
+       return _calloc ( nmemb * size );
 }
 
 #endif /* STDLIB_H */