39ad831fc5a8d2934143e0534acd2176f8cfcb17
[people/mcb30/gpxe.git] / src / include / stdlib.h
1 #ifndef STDLIB_H
2 #define STDLIB_H
3
4 extern unsigned long strtoul ( const char *p, char **endp, int base );
5 extern void * realloc ( void *old_ptr, size_t new_size );
6 extern void * malloc ( size_t size );
7 extern void free ( void *ptr );
8 extern int system ( const char *command );
9 extern long int random ( void );
10
11 extern void * _calloc ( size_t len );
12
13 /**
14  * Allocate cleared memory
15  *
16  * @v nmemb             Number of members
17  * @v size              Size of each member
18  * @ret ptr             Allocated memory
19  *
20  * Allocate memory as per malloc(), and zero it.
21  *
22  * This is implemented as a static inline, with the body of the
23  * function in _calloc(), since in most cases @c nmemb will be 1 and
24  * doing the multiply is just wasteful.
25  */
26 static inline void * calloc ( size_t nmemb, size_t size ) {
27         return _calloc ( nmemb * size );
28 }
29
30 #endif /* STDLIB_H */