Chameleon

Chameleon Svn Source Tree

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

Source at commit 1733 created 12 years 6 months ago.
By blackosx, Use the result from an intitial check to find if the target volume has an EFI system partition, later on in the installation process before checking for previous Chameleon installations. Add some feedback to the installer log.
1/*
2 * Copyright (c) 2003 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 * @OSF_COPYRIGHT@
30 */
31
32/*
33 * Define a service to map from a kernel-generated port name
34 * to server-defined "type" and "value" data to be associated
35 * with the port.
36 */
37
38#ifndef PORT_OBJ_H
39#define PORT_OBJ_H
40
41#include <mach/port.h>
42
43struct port_obj_tentry {
44void *pos_value;
45int pos_type;
46};
47
48#include <sys/cdefs.h>
49
50__BEGIN_DECLS
51extern void port_obj_init(int);
52__END_DECLS
53
54extern struct port_obj_tentry *port_obj_table;
55extern int port_obj_table_size;
56
57#ifndef PORT_OBJ_ASSERT
58
59#define port_set_obj_value_type(pname, value, type)\
60do {\
61int ndx;\
62\
63if (!port_obj_table)\
64port_obj_init(port_obj_table_size);\
65ndx = MACH_PORT_INDEX(pname);\
66port_obj_table[ndx].pos_value = (value);\
67port_obj_table[ndx].pos_type = (type);\
68} while (0)
69
70#define port_get_obj_value(pname)\
71(port_obj_table[MACH_PORT_INDEX(pname)].pos_value)
72
73#define port_get_obj_type(pname)\
74(port_obj_table[MACH_PORT_INDEX(pname)].pos_type)
75
76#else/* PORT_OBJ_ASSERT */
77
78#define port_set_obj_value_type(pname, value, type)\
79do {\
80int ndx;\
81\
82if (!port_obj_table)\
83port_obj_init(port_obj_table_size);\
84ndx = MACH_PORT_INDEX(pname);\
85assert(ndx > 0);\
86assert(ndx < port_obj_table_size);\
87port_obj_table[ndx].pos_value = (value);\
88port_obj_table[ndx].pos_type = (type);\
89} while (0)
90
91#define port_get_obj_value(pname)\
92((MACH_PORT_INDEX(pname) < (unsigned)port_obj_table_size) ?\
93port_obj_table[MACH_PORT_INDEX(pname)].pos_value :\
94(panic("port_get_obj_value: index too big"), (void *)-1))
95
96#define port_get_obj_type(pname)\
97((MACH_PORT_INDEX(pname) < (unsigned)port_obj_table_size) ?\
98port_obj_table[MACH_PORT_INDEX(pname)].pos_type :\
99(panic("port_get_obj_type: index too big"), -1))
100
101#endif/* PORT_OBJ_ASSERT */
102
103#endif/* PORT_OBJ_H */
104

Archive Download this file

Revision: 1733