|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * @OSF_COPYRIGHT@
24: */
25:
26: #ifndef _MISC_PROTOS_H_
27: #define _MISC_PROTOS_H_
28:
29: #include <dipc.h>
30:
31: #include <stdarg.h>
32: #include <string.h>
33: #include <machine/setjmp.h>
34: #include <mach/boolean.h>
35: #include <mach/message.h>
36: #include <mach/machine/vm_types.h>
37: #include <ipc/ipc_types.h>
38:
39: /* Set a bit in a bit array */
40: extern void setbit(
41: int which,
42: int *bitmap);
43:
44: /* Clear a bit in a bit array */
45: extern void clrbit(
46: int which,
47: int *bitmap);
48:
49: /* Find the first set bit in a bit array */
50: extern int ffsbit(
51: int *bitmap);
52: extern int ffs(
53: unsigned int mask);
54:
55: /*
56: * Test if indicated bit is set in bit string.
57: */
58: extern int testbit(
59: int which,
60: int *bitmap);
61:
62: /* Move arbitrarily-aligned data from one array to another */
63: extern void bcopy(
64: const char *from,
65: char *to,
66: vm_size_t nbytes);
67:
68: /* Move overlapping, arbitrarily aligned data from one array to another */
69: /* Not present on all ports */
70: extern void ovbcopy(
71: const char *from,
72: char *to,
73: vm_size_t nbytes);
74:
75: extern int bcmp(
76: const char *a,
77: const char *b,
78: vm_size_t len);
79:
80: /* Zero an arbitrarily aligned array */
81: extern void bzero(
82: char *from,
83: vm_size_t nbytes);
84:
85: /* Move arbitrarily-aligned data from a user space to kernel space */
86: extern boolean_t copyin(
87: const char *user_addr,
88: char *kernel_addr,
89: vm_size_t nbytes);
90:
91: /* Move a NUL-terminated string from a user space to kernel space */
92: extern boolean_t copyinstr(
93: const char *user_addr,
94: char *kernel_addr,
95: vm_size_t max,
96: vm_size_t *actual);
97:
98: /* Move arbitrarily-aligned data from a user space to kernel space */
99: extern boolean_t copyinmsg(
100: const char *user_addr,
101: char *kernel_addr,
102: mach_msg_size_t nbytes);
103:
104: /* Move arbitrarily-aligned data from a kernel space to user space */
105: extern boolean_t copyout(
106: const char *kernel_addr,
107: char *user_addr,
108: vm_size_t nbytes);
109:
110: /* Move arbitrarily-aligned data from a kernel space to user space */
111: extern boolean_t copyoutmsg(
112: const char *kernel_addr,
113: char *user_addr,
114: mach_msg_size_t nbytes);
115:
116: extern int sscanf(const char *input, const char *fmt, ...);
117:
118: extern integer_t sprintf(char *buf, const char *fmt, ...);
119:
120: extern void printf(const char *format, ...);
121:
122: extern void printf_init(void);
123:
124: extern void panic(const char *string, ...);
125:
126: extern void panic_init(void);
127:
128: extern void log(int level, char *fmt, ...);
129:
130: void
131: _doprnt(
132: register const char *fmt,
133: va_list *argp,
134: void (*putc)(char),
135: int radix);
136:
137: extern void safe_gets(
138: char *str,
139: int maxlen);
140:
141: extern void cnputcusr(char);
142:
143: extern void cnputc(char);
144:
145: extern int cngetc(void);
146:
147: extern int cnmaygetc(void);
148:
149: extern int _setjmp(
150: jmp_buf_t *jmp_buf);
151:
152: extern int _longjmp(
153: jmp_buf_t *jmp_buf,
154: int value);
155:
156: extern void bootstrap_create(void);
157:
158: extern void halt_cpu(void);
159:
160: extern void halt_all_cpus(
161: boolean_t reboot);
162:
163: extern void Debugger(
164: const char * message);
165:
166: extern void delay(
167: int n);
168:
169: extern char *machine_boot_info(
170: char *buf,
171: vm_size_t buf_len);
172:
173: /*
174: * Machine-dependent routine to fill in an array with up to callstack_max
175: * levels of return pc information.
176: */
177: extern void machine_callstack(
178: natural_t *buf,
179: vm_size_t callstack_max);
180:
181: extern void consider_machine_collect(void);
182:
183: extern void norma_bootstrap(void);
184:
185: #if DIPC
186: extern boolean_t no_bootstrap_task(void);
187: extern ipc_port_t get_root_master_device_port(void);
188: #endif /* DIPC */
189:
190: #endif /* _MISC_PROTOS_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.