Chameleon

Chameleon Svn Source Tree

Root/tags/2.0/i386/include/mach/mach_init.h

Source at commit 1808 created 12 years 4 months ago.
By blackosx, Revise layout of package installer 'Welcome' file so it looks cleaner. Change the copyright notice to begin from 2009 as seen in the Chameleon 2.0 r431 installer. Should this date be set earlier?
1/*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_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. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * Mach Operating System
30 * Copyright (c) 1991,1990,1989,1988,1987,1986 Carnegie Mellon University
31 * All Rights Reserved.
32 *
33 * Permission to use, copy, modify and distribute this software and its
34 * documentation is hereby granted, provided that both the copyright
35 * notice and this permission notice appear in all copies of the
36 * software, derivative works or modified versions, and any portions
37 * thereof, and that both notices appear in supporting documentation.
38 *
39 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
40 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
41 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
42 *
43 * Carnegie Mellon requests users of this software to return to
44 *
45 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
46 * School of Computer Science
47 * Carnegie Mellon University
48 * Pittsburgh PA 15213-3890
49 *
50 * any improvements or extensions that they make and grant Carnegie Mellon
51 * the rights to redistribute these changes.
52 */
53
54/*
55 *Items provided by the Mach environment initialization.
56 */
57
58#ifndef_MACH_INIT_
59#define_MACH_INIT_1
60
61#include <mach/mach_types.h>
62#include <stdarg.h>
63
64#include <sys/cdefs.h>
65
66/*
67 *Kernel-related ports; how a task/thread controls itself
68 */
69
70__BEGIN_DECLS
71extern mach_port_t mach_task_self(void);
72extern mach_port_t mach_host_self(void);
73extern mach_port_t mach_thread_self(void);
74extern kern_return_t host_page_size(host_t, vm_size_t *);
75
76externmach_port_tmach_task_self_;
77#definemach_task_self() mach_task_self_
78#definecurrent_task()mach_task_self()
79
80__END_DECLS
81#include <mach/mach_traps.h>
82__BEGIN_DECLS
83
84/*
85 *Other important ports in the Mach user environment
86 */
87
88externmach_port_tbootstrap_port;
89externmach_port_tname_server_port;
90externmach_port_tenvironment_port;
91externmach_port_tservice_port;
92
93/*
94 *Where these ports occur in the "mach_ports_register"
95 *collection... only servers or the runtime library need know.
96 */
97
98#defineNAME_SERVER_SLOT0
99#defineENVIRONMENT_SLOT1
100#define SERVICE_SLOT2
101
102#defineMACH_PORTS_SLOTS_USED3
103
104/*
105 *Globally interesting numbers.
106 *These macros assume vm_page_size is a power-of-2.
107 */
108
109externvm_size_tvm_page_size;
110externvm_size_tvm_page_mask;
111externintvm_page_shift;
112
113#define trunc_page(x)((x) & (~(vm_page_size - 1)))
114#define round_page(x)trunc_page((x) + (vm_page_size - 1))
115
116/*
117 *Page-size rounding macros for the fixed-width VM types.
118 */
119#define mach_vm_trunc_page(x) ((mach_vm_offset_t)(x) & ~((signed)PAGE_MASK))
120#define mach_vm_round_page(x) (((mach_vm_offset_t)(x) + PAGE_MASK) & ~((signed)PAGE_MASK))
121
122/*
123 *fprintf_stderr uses vprintf_stderr_func to produce
124 *error messages, this can be overridden by a user
125 *application to point to a user-specified output function
126 */
127extern int (*vprintf_stderr_func)(const char *format, va_list ap);
128__END_DECLS
129
130#endif/* _MACH_INIT_ */
131

Archive Download this file

Revision: 1808