1 /* $OpenBSD: stdlib.h,v 1.17 2023/05/18 16:11:09 guenther Exp $ */ 2 /* $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc Exp $ */ 3 4 /*- 5 * Copyright (c) 1990 The Regents of the University of California. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. Neither the name of the University nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 * @(#)stdlib.h 5.13 (Berkeley) 6/4/91 33 */ 34 35 #ifndef _LIBC_STDLIB_H_ 36 #define _LIBC_STDLIB_H_ 37 38 #include_next <stdlib.h> 39 40 __BEGIN_HIDDEN_DECLS 41 char *__findenv(const char *, int, int *); 42 void __atexit_register_cleanup(void (*)(void)); 43 __END_HIDDEN_DECLS 44 45 extern char **environ; 46 extern char *__progname; 47 48 int __realpath(const char *pathname, char *resolved); 49 50 #if 0 51 /*extern PROTO_NORMAL(suboptarg);*/ 52 #endif 53 54 PROTO_NORMAL(__mb_cur_max); 55 PROTO_NORMAL(__realpath); 56 PROTO_STD_DEPRECATED(_Exit); 57 PROTO_DEPRECATED(a64l); 58 PROTO_NORMAL(abort); 59 PROTO_NORMAL(abs); 60 /* PROTO_NORMAL(aligned_alloc) not yet, breaks emacs */ 61 PROTO_NORMAL(arc4random); 62 PROTO_NORMAL(arc4random_buf); 63 PROTO_NORMAL(arc4random_uniform); 64 PROTO_NORMAL(atexit); 65 PROTO_STD_DEPRECATED(atof); 66 PROTO_NORMAL(atoi); 67 PROTO_STD_DEPRECATED(atol); 68 PROTO_STD_DEPRECATED(atoll); 69 PROTO_STD_DEPRECATED(bsearch); 70 /*PROTO_NORMAL(calloc); not yet, breaks emacs */ 71 PROTO_NORMAL(calloc_conceal); 72 PROTO_NORMAL(cgetcap); 73 PROTO_NORMAL(cgetclose); 74 PROTO_NORMAL(cgetent); 75 PROTO_NORMAL(cgetfirst); 76 PROTO_NORMAL(cgetmatch); 77 PROTO_NORMAL(cgetnext); 78 PROTO_NORMAL(cgetnum); 79 PROTO_NORMAL(cgetset); 80 PROTO_NORMAL(cgetstr); 81 PROTO_NORMAL(cgetusedb); 82 PROTO_NORMAL(cgetustr); 83 PROTO_DEPRECATED(daemon); 84 PROTO_NORMAL(devname); 85 PROTO_NORMAL(div); 86 PROTO_DEPRECATED(drand48); 87 PROTO_DEPRECATED(ecvt); 88 PROTO_NORMAL(erand48); 89 PROTO_NORMAL(exit); 90 PROTO_DEPRECATED(fcvt); 91 /*PROTO_NORMAL(free); not yet, breaks emacs */ 92 PROTO_NORMAL(freezero); 93 PROTO_DEPRECATED(gcvt); 94 PROTO_DEPRECATED(getbsize); 95 PROTO_NORMAL(getenv); 96 PROTO_DEPRECATED(getloadavg); 97 PROTO_DEPRECATED(getprogname); 98 PROTO_DEPRECATED(getsubopt); 99 PROTO_DEPRECATED(grantpt); 100 PROTO_NORMAL(heapsort); 101 PROTO_DEPRECATED(initstate); 102 PROTO_DEPRECATED(jrand48); 103 PROTO_DEPRECATED(l64a); 104 PROTO_STD_DEPRECATED(labs); 105 PROTO_DEPRECATED(lcong48); 106 PROTO_NORMAL(lcong48_deterministic); 107 PROTO_DEPRECATED(ldiv); 108 PROTO_STD_DEPRECATED(llabs); 109 PROTO_STD_DEPRECATED(lldiv); 110 PROTO_DEPRECATED(lrand48); 111 /*PROTO_NORMAL(malloc); not yet, breaks emacs */ 112 PROTO_NORMAL(malloc_conceal); 113 PROTO_STD_DEPRECATED(mblen); 114 PROTO_STD_DEPRECATED(mbstowcs); 115 PROTO_STD_DEPRECATED(mbtowc); 116 PROTO_DEPRECATED(mergesort); 117 PROTO_DEPRECATED(mkdtemp); 118 PROTO_NORMAL(mkostemp); 119 PROTO_DEPRECATED(mkostemps); 120 PROTO_NORMAL(mkstemp); 121 PROTO_DEPRECATED(mkstemps); 122 PROTO_DEPRECATED(mktemp); 123 PROTO_DEPRECATED(mrand48); 124 PROTO_DEPRECATED(nrand48); 125 /*PROTO_NORMAL(posix_memalign); not yet, breaks emacs */ 126 PROTO_DEPRECATED(posix_openpt); 127 PROTO_DEPRECATED(ptsname); 128 PROTO_NORMAL(putenv); 129 /*PROTO_DEPRECATED(qabs); alias of llabs */ 130 /*PROTO_DEPRECATED(qdiv); alias of lldiv */ 131 PROTO_NORMAL(qsort); 132 PROTO_DEPRECATED(radixsort); 133 PROTO_STD_DEPRECATED(rand); 134 PROTO_NORMAL(rand_r); 135 PROTO_DEPRECATED(random); 136 /*PROTO_NORMAL(realloc); not yet, breaks emacs */ 137 PROTO_NORMAL(reallocarray); 138 PROTO_NORMAL(recallocarray); 139 PROTO_DEPRECATED(realpath); 140 PROTO_DEPRECATED(seed48); 141 PROTO_NORMAL(seed48_deterministic); 142 PROTO_NORMAL(setenv); 143 PROTO_DEPRECATED(setproctitle); 144 PROTO_DEPRECATED(setprogname); 145 PROTO_DEPRECATED(setstate); 146 PROTO_DEPRECATED(sradixsort); 147 PROTO_DEPRECATED(srand); 148 PROTO_DEPRECATED(srand_deterministic); 149 PROTO_DEPRECATED(srand48); 150 PROTO_NORMAL(srand48_deterministic); 151 PROTO_DEPRECATED(srandom); 152 PROTO_DEPRECATED(srandom_deterministic); 153 PROTO_DEPRECATED(srandomdev); 154 PROTO_NORMAL(strtod); 155 PROTO_NORMAL(strtof); 156 PROTO_NORMAL(strtol); 157 PROTO_NORMAL(strtold); 158 PROTO_NORMAL(strtoll); 159 PROTO_NORMAL(strtonum); 160 /*PROTO_NORMAL(strtoq); alias of strtoll */ 161 PROTO_NORMAL(strtoul); 162 PROTO_NORMAL(strtoull); 163 /*PROTO_NORMAL(strtouq); alias of strtoull */ 164 PROTO_NORMAL(system); 165 PROTO_DEPRECATED(ttyslot); 166 PROTO_DEPRECATED(unlockpt); 167 PROTO_NORMAL(unsetenv); 168 PROTO_STD_DEPRECATED(valloc); 169 PROTO_STD_DEPRECATED(wcstombs); 170 PROTO_STD_DEPRECATED(wctomb); 171 172 #endif /* _LIBC_STDLIB_H_ */ 173