*
* @(#)stdlib.h 8.5 (Berkeley) 5/19/95
* $FreeBSD: src/include/stdlib.h,v 1.67 2008/07/22 11:40:42 ache Exp $
- * $DragonFly: src/include/stdlib.h,v 1.22 2008/06/05 17:53:10 swildner Exp $
*/
#ifndef _STDLIB_H_
#include <sys/_null.h>
#include <sys/types.h>
+#if __BSD_VISIBLE
+#ifndef _RUNE_T_DECLARED
+typedef __rune_t rune_t;
+#define _RUNE_T_DECLARED
+#endif
+#endif
+
#ifndef _SIZE_T_DECLARED
typedef __size_t size_t;
#define _SIZE_T_DECLARED
#define RAND_MAX 0x7fffffff
+__BEGIN_DECLS
+#ifdef _XLOCALE_H_
+#include <xlocale/_stdlib.h>
+#endif
extern int __mb_cur_max;
-#define MB_CUR_MAX __mb_cur_max
+extern int ___mb_cur_max(void);
+#define MB_CUR_MAX (___mb_cur_max())
-__BEGIN_DECLS
void abort(void) __dead2;
/* void abort2(const char *, int, void **) __dead2; */
#if !defined(_KERNEL_VIRTUAL)
char *ptsname(int);
int putenv(char *);
long random(void);
-char *realpath(const char *, char resolved_path[]);
+char *realpath(const char * __restrict, char * __restrict);
unsigned short
*seed48(unsigned short[3]);
int setkey(const char *);
char *fdevname(int);
int fdevname_r(int, char *, size_t);
int getloadavg(double [], int);
-__const char *
+const char *
getprogname(void);
int heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
extern char *suboptarg; /* getsubopt(3) external variable */
#endif /* __BSD_VISIBLE */
+
+/*
+ * C11 functions.
+ */
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L || __BSD_VISIBLE
+int at_quick_exit(void (*func)(void));
+_Noreturn void
+ quick_exit(int);
+void *aligned_alloc(size_t, size_t);
+#endif /* __ISO_C_VISIBLE >= 2011 */
+
__END_DECLS
#endif /* !_STDLIB_H_ */