Chameleon

Chameleon Svn Source Tree

Root/branches/cparm/i386/modules/include/stdlib.h

1/*
2 * Copyright (c) 2000, 2002 - 2008 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23/*-
24 * Copyright (c) 1990, 1993
25 *The Regents of the University of California. All rights reserved.
26 *
27 * Redistribution and use in source and binary forms, with or without
28 * modification, are permitted provided that the following conditions
29 * are met:
30 * 1. Redistributions of source code must retain the above copyright
31 * notice, this list of conditions and the following disclaimer.
32 * 2. Redistributions in binary form must reproduce the above copyright
33 * notice, this list of conditions and the following disclaimer in the
34 * documentation and/or other materials provided with the distribution.
35 * 3. All advertising materials mentioning features or use of this software
36 * must display the following acknowledgement:
37 *This product includes software developed by the University of
38 *California, Berkeley and its contributors.
39 * 4. Neither the name of the University nor the names of its contributors
40 * may be used to endorse or promote products derived from this software
41 * without specific prior written permission.
42 *
43 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
44 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
45 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
46 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
47 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
48 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
49 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
50 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
51 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
52 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
53 * SUCH DAMAGE.
54 *
55 *@(#)stdlib.h8.5 (Berkeley) 5/19/95
56 */
57
58#ifndef _STDLIB_H_
59#define _STDLIB_H_
60
61#include <Availability.h>
62
63#include <_types.h>
64
65#ifndef_SIZE_T
66#define_SIZE_T
67/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
68 * _GCC_SIZE_T */
69typedef__darwin_size_tsize_t;
70#endif
71
72typedef struct {
73int quot;/* quotient */
74int rem;/* remainder */
75} div_t;
76
77typedef struct {
78long quot;/* quotient */
79long rem;/* remainder */
80} ldiv_t;
81
82#if !__DARWIN_NO_LONG_LONG
83typedef struct {
84long long quot;
85long long rem;
86} lldiv_t;
87#endif /* !__DARWIN_NO_LONG_LONG */
88
89#ifndef NULL
90#define NULL __DARWIN_NULL
91#endif /* ! NULL */
92
93#defineEXIT_FAILURE1
94#defineEXIT_SUCCESS0
95
96#defineRAND_MAX0x7fffffff
97
98__BEGIN_DECLS
99void abort(void) ;
100int abs(int);
101int atoi(const char *);
102long atol(const char *);
103void*bsearch(const void *, const void *, size_t,
104 size_t, int (*)(const void *, const void *));
105void*calloc(size_t, size_t);
106#if 1
107void exit(int) ;
108#else
109void Throw(int);
110#ifdef DEBUG_ALL_EXIT
111#define exit(e) \
112((void) (__exit (#e,e, __FILE__, __LINE__)))
113#define __exit(estr, e, file, line) \
114((void)printf ("%s:%u: exit status `%s'\n", file, line, estr), Throw(e))
115#else
116#define exit(e) \
117((void) ((e == 0) ? Throw(EXIT_SUCCESS) : __exit (#e, e, __FILE__, __LINE__)))
118#define __exit(estr, e, file, line) \
119((void)printf ("%s:%u: exit status `%s'\n", file, line, estr), Throw(e))
120#endif
121#endif
122void free(void *);
123void*malloc(size_t);
124int posix_memalign(void **, size_t, size_t);
125void qsort(void *, size_t, size_t,
126 int (*)(const void *, const void *));
127int rand(void);
128void*realloc(void *, size_t);
129void srand(unsigned);
130long strtol(const char *, char **, int);
131
132extern void * get_env_ptr(const char *name);
133extern int safe_set_env_ptr(const char *name , void * ptr, size_t size );
134
135#definegetenv(x) (char *)get_env_ptr(x)
136#definesetenv(x,y,z) (char *)safe_set_env_ptr(x,(void*)y,(size_t)z)
137
138unsigned long
139 strtoul(const char *, char **, int);
140
141#include <machine/types.h>
142
143u_int32_t
144 arc4random(void);
145void arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/);
146void arc4random_buf(void * /*buf*/, size_t /*nbytes*/);
147void arc4random_stir(void);
148u_int32_t
149 arc4random_uniform(u_int32_t /*upper_bound*/);
150
151const char
152*getprogname(void);
153void setprogname(const char *);
154
155void*reallocf(void *, size_t);
156
157unsigned long long
158 strtouq(const char *, char **, int);
159void*valloc(size_t);
160
161__END_DECLS
162
163
164#endif /* _STDLIB_H_ */
165

Archive Download this file

Revision: 2182