]> git.saurik.com Git - apple/libc.git/blobdiff - include/stdlib.h
Libc-1044.40.1.tar.gz
[apple/libc.git] / include / stdlib.h
index 602a692f98bef9bc550d68314db31455c93a0680..8530607d955342b80aef1692a225011a6495f8a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2005 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
@@ -58,7 +58,7 @@
 #ifndef _STDLIB_H_
 #define _STDLIB_H_
 
-#include <available.h>
+#include <Availability.h>
 
 #include <_types.h>
 #if !defined(_ANSI_SOURCE)
 #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 #endif /* !_ANSI_SOURCE */
 
-#ifndef        _SIZE_T
-#define        _SIZE_T
 /* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
  * _GCC_SIZE_T */
-typedef        __darwin_size_t         size_t;
-#endif
+#include <sys/_types/_size_t.h>
 
 #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
-#ifndef _CT_RUNE_T
-#define _CT_RUNE_T
-typedef        __darwin_ct_rune_t      ct_rune_t;
-#endif
-
-#ifndef _RUNE_T
-#define _RUNE_T
-typedef __darwin_rune_t        rune_t;
-#endif
+#include <sys/_types/_ct_rune_t.h>
+#include <sys/_types/_rune_t.h>
 #endif /* !_ANSI_SOURCE && (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 
-#ifndef        __cplusplus
-#ifndef        _WCHAR_T
-#define        _WCHAR_T
-typedef        __darwin_wchar_t        wchar_t;
-#endif /* _WCHAR_T */
-#endif /* __cplusplus */
+#include <sys/_types/_wchar_t.h>
 
 typedef struct {
        int quot;               /* quotient */
@@ -111,9 +96,7 @@ typedef struct {
 } lldiv_t;
 #endif /* !__DARWIN_NO_LONG_LONG */
 
-#ifndef NULL
-#define NULL __DARWIN_NULL
-#endif /* ! NULL */
+#include <sys/_types/_null.h>
 
 #define        EXIT_FAILURE    1
 #define        EXIT_SUCCESS    0
@@ -140,9 +123,17 @@ extern int __mb_cur_max;
     && defined(_USE_EXTENDED_LOCALES_) && !defined(MB_CUR_MAX_L)
 #define        MB_CUR_MAX_L(x) (___mb_cur_max_l(x))
 #endif
+//Begin-Libc
+/* f must be a literal string */
+#define LIBC_ABORT(f,...)      abort_report_np("%s:%s:%u: " f, __FILE__, __func__, __LINE__, ## __VA_ARGS__)
+//End-Libc
 
 __BEGIN_DECLS
 void    abort(void) __dead2;
+//Begin-Libc
+__attribute__((visibility("hidden")))
+void    abort_report_np(const char *, ...) __dead2 __printflike(1, 2);
+//End-Libc
 int     abs(int) __pure2;
 int     atexit(void (*)(void));
 double  atof(const char *);
@@ -170,6 +161,7 @@ void        *malloc(size_t);
 int     mblen(const char *, size_t);
 size_t  mbstowcs(wchar_t * __restrict , const char * __restrict, size_t);
 int     mbtowc(wchar_t * __restrict, const char * __restrict, size_t);
+int     posix_memalign(void **, size_t, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
 void    qsort(void *, size_t, size_t,
            int (*)(const void *, const void *));
 int     rand(void);
@@ -179,7 +171,7 @@ double       strtod(const char *, char **) __DARWIN_ALIAS(strtod);
 float   strtof(const char *, char **) __DARWIN_ALIAS(strtof);
 long    strtol(const char *, char **, int);
 long double
-        strtold(const char *, char **) __DARWIN_LDBL_COMPAT(strtold);
+        strtold(const char *, char **);
 #if !__DARWIN_NO_LONG_LONG
 long long 
         strtoll(const char *, char **, int);
@@ -193,7 +185,7 @@ unsigned long long
 //Begin-Libc
 #ifndef LIBC_ALIAS_SYSTEM
 //End-Libc
-int     system(const char *) __DARWIN_ALIAS_C(system);
+int     system(const char *) __DARWIN_ALIAS_C(system) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0,__MAC_NA,__IPHONE_2_0,__IPHONE_8_0, "Use posix_spawn APIs instead.");
 //Begin-Libc
 #else /* LIBC_ALIAS_SYSTEM */
 int     system(const char *) LIBC_ALIAS_C(system);
@@ -309,20 +301,20 @@ void       unsetenv(const char *);
 #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
 #include <machine/types.h>
 
-#ifndef _DEV_T
-typedef        __darwin_dev_t  dev_t;
-#define _DEV_T
-#endif
-
-#ifndef        _MODE_T
-typedef        __darwin_mode_t mode_t;
-#define _MODE_T
-#endif
+#include <sys/_types/_dev_t.h>
+#include <sys/_types/_mode_t.h>
 
-u_int32_t
-        arc4random(void);
-void    arc4random_addrandom(unsigned char *dat, int datlen);
+u_int32_t      arc4random(void);
+void    arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/);
+void    arc4random_buf(void * /*buf*/, size_t /*nbytes*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
 void    arc4random_stir(void);
+u_int32_t
+        arc4random_uniform(u_int32_t /*upper_bound*/) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);
+#ifdef __BLOCKS__
+int     atexit_b(void (^)(void)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+void   *bsearch_b(const void *, const void *, size_t,
+           size_t, int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
 
         /* getcap(3) functions */
 char   *cgetcap(char *, const char *, int);
@@ -336,7 +328,7 @@ int  cgetset(const char *);
 int     cgetstr(char *, const char *, char **);
 int     cgetustr(char *, const char *, char **);
 
-int     daemon(int, int) __DARWIN_1050(daemon) __AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5;
+int     daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0);
 char   *devname(dev_t, mode_t);
 char   *devname_r(dev_t, mode_t, char *buf, int len);
 char   *getbsize(int *, long *);
@@ -346,8 +338,28 @@ const char
 
 int     heapsort(void *, size_t, size_t,
            int (*)(const void *, const void *));
+#ifdef __BLOCKS__
+int     heapsort_b(void *, size_t, size_t,
+           int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
 int     mergesort(void *, size_t, size_t,
            int (*)(const void *, const void *));
+#ifdef __BLOCKS__
+int     mergesort_b(void *, size_t, size_t,
+           int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void    psort(void *, size_t, size_t,
+           int (*)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#ifdef __BLOCKS__
+void    psort_b(void *, size_t, size_t,
+           int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
+void    psort_r(void *, size_t, size_t, void *,
+           int (*)(void *, const void *, const void *))  __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#ifdef __BLOCKS__
+void    qsort_b(void *, size_t, size_t,
+           int (^)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2);
+#endif /* __BLOCKS__ */
 void    qsort_r(void *, size_t, size_t, void *,
            int (*)(void *, const void *, const void *));
 int     radixsort(const unsigned char **, int, const unsigned char *,