Chameleon

Chameleon Svn Source Tree

Root/branches/meklort/i386/modules/include/klibc/sysconfig.h

Source at commit 660 created 13 years 4 months ago.
By meklort, Added includes dir for modules (c++ includes only at the moment, may ad klibc includes later on). Includes path is now included for modules
1/*
2 * klibc/sysconfig.h
3 *
4 * Allows for definitions of some things which may be system-dependent
5 * NOTE: this file must not result in any output from the preprocessor.
6 */
7
8#ifndef _KLIBC_SYSCONFIG_H
9#define _KLIBC_SYSCONFIG_H
10
11#include <klibc/archconfig.h>
12#include <asm/unistd.h>
13
14/*
15 * These are the variables that can be defined in <klibc/archconfig.h>.
16 * For boolean options, #define to 0 to disable, #define to 1 to enable.
17 *
18 * If undefined, they will be given defaults here.
19 */
20
21
22/*
23 * _KLIBC_NO_MMU:
24 *
25 *Indicates this architecture doesn't have an MMU, and therefore
26 *does not have the sys_fork and sys_brk system calls.
27 */
28/* Default to having an MMU if we can find the fork system call */
29#ifndef _KLIBC_NO_MMU
30# if defined(__NR_fork)
31# define _KLIBC_NO_MMU 0
32# else
33# define _KLIBC_NO_MMU 1
34# endif
35#endif
36
37
38/*
39 * _KLIBC_REAL_VFORK:
40 *
41 *Indicates that this architecture has a real vfork() system call.
42 *This is the default if sys_vfork exists; if there is an
43 *architecture-dependent implementation of vfork(), define this
44 *symbol.
45 */
46#ifndef _KLIBC_REAL_VFORK
47# if defined(__NR_vfork)
48# define _KLIBC_REAL_VFORK 1
49# else
50# define _KLIBC_REAL_VFORK 0
51# endif
52#endif
53
54
55/*
56 * _KLIBC_USE_MMAP2:
57 *
58 *Indicates that this architecture should use sys_mmap2 instead
59 *of sys_mmap. This is the default on 32-bit architectures, assuming
60 *sys_mmap2 exists.
61 */
62#ifndef _KLIBC_USE_MMAP2
63# if (_BITSIZE == 32 && defined(__NR_mmap2)) || \
64 (_BITSIZE == 64 && !defined(__NR_mmap))
65# define _KLIBC_USE_MMAP2 1
66# else
67# define _KLIBC_USE_MMAP2 0
68# endif
69#endif
70
71
72/*
73 * _KLIBC_MMAP2_SHIFT:
74 *
75 *Indicate the shift of the offset parameter in sys_mmap2.
76 *On most architectures, this is always 12, but on some
77 *architectures it can be a different number, or the current
78 *page size. If this is dependent on the page size, define
79 *this to an expression which includes __getpageshift().
80 */
81#ifndef _KLIBC_MMAP2_SHIFT
82# define _KLIBC_MMAP2_SHIFT 12
83#endif
84
85
86/*
87 * _KLIBC_MALLOC_USES_SBRK:
88 *
89 *Indicates that malloc() should use sbrk() to obtain raw memory
90 *from the system, rather than mmap().
91 */
92/* Default to get memory using mmap() */
93#ifndef _KLIBC_MALLOC_USES_SBRK
94# define _KLIBC_MALLOC_USES_SBRK 0
95#endif
96
97
98/*
99 * _KLIBC_MALLOC_CHUNK_SIZE:
100 *This is the minimum chunk size we will ask the kernel for using
101 *malloc(); this should be a multiple of the page size and must
102 *be a power of 2.
103 */
104#ifndef _KLIBC_MALLOC_CHUNK_SIZE
105# define _KLIBC_MALLOC_CHUNK_SIZE65536
106#endif
107
108
109/*
110 * _KLIBC_SBRK_ALIGNMENT:
111 *
112 *This is the minimum alignment for the memory returned by
113 *sbrk(). It must be a power of 2. If _KLIBC_MALLOC_USES_SBRK
114 *is set it should be no smaller than the size of struct
115 *arena_header in malloc.h (== 4 pointers.)
116 */
117#ifndef _KLIBC_SBRK_ALIGNMENT
118# define _KLIBC_SBRK_ALIGNMENT32
119#endif
120
121
122/*
123 * _KLIBC_USE_RT_SIG:
124 *
125 * Indicates that this architecture should use the rt_sig*()
126 * family of system calls, even if the older system calls are
127 * provided. This requires that <asm/signal.h> is correct for
128 * using with the rt_sig*() system calls. This is the default if
129 * the older system calls are undefined in <asm/unistd.h>.
130 *
131 */
132#ifndef _KLIBC_USE_RT_SIG
133# ifdef __NR_sigaction
134# define _KLIBC_USE_RT_SIG 0
135# else
136# define _KLIBC_USE_RT_SIG 1
137# endif
138#endif
139
140
141/*
142 * _KLIBC_NEEDS_SA_RESTORER:
143 *
144 *Some architectures, like x86-64 and some i386 Fedora kernels,
145 *do not provide a default sigreturn, and therefore must have
146 *SA_RESTORER set.
147 */
148#ifndef _KLIBC_NEEDS_SA_RESTORER
149# define _KLIBC_NEEDS_SA_RESTORER 0
150#endif
151
152
153/*
154 * _KLIBC_STATFS_F_TYPE_64:
155 *
156 *This indicates that the f_type, f_bsize, f_namelen,
157 *f_frsize, and f_spare fields of struct statfs are
158 *64 bits long. This is normally the case for 64-bit
159 *platforms, and so is the default for those. See
160 *usr/include/sys/vfs.h for the exact details.
161 */
162#ifndef _KLIBC_STATFS_F_TYPE_64
163# define _KLIBC_STATFS_F_TYPE_64 (_BITSIZE == 64)
164#endif
165
166
167/*
168 * _KLIBC_STATFS_F_TYPE_32B:
169 *
170 * mips has it's own definition of statfs, which is
171 * different from any other 32 bit arch.
172 */
173#ifndef _KLIBC_STATFS_F_TYPE_32B
174# define _KLIBC_STATFS_F_TYPE_32B 0
175#endif
176
177
178/*
179 * _KLIBC_HAS_ARCHSOCKET_H
180 *
181 * This architecture has <klibc/archsocket.h>
182 */
183#ifndef _KLIBC_HAS_ARCHSOCKET_H
184# define _KLIBC_HAS_ARCHSOCKET_H 0
185#endif
186
187
188/*
189 * _KLIBC_SYS_SOCKETCALL
190 *
191 *This architecture (e.g. SPARC) advertises socket-related
192 *system calls, which are not actually implemented. Use
193 *socketcalls unconditionally instead.
194 */
195#ifndef _KLIBC_SYS_SOCKETCALL
196# define _KLIBC_SYS_SOCKETCALL 0
197#endif
198
199#endif /* _KLIBC_SYSCONFIG_H */
200

Archive Download this file

Revision: 660