Root/
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) 2000-2007 Apple 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 | * Mach MIG Subsystem Interfaces␊ |
34 | */␊ |
35 | ␊ |
36 | #ifndef␉_MACH_MIG_H_␊ |
37 | #define _MACH_MIG_H_␊ |
38 | ␊ |
39 | #include <stdint.h>␊ |
40 | #include <mach/port.h>␊ |
41 | #include <mach/message.h>␊ |
42 | #include <mach/vm_types.h>␊ |
43 | ␊ |
44 | #include <sys/cdefs.h>␊ |
45 | ␊ |
46 | #if defined(MACH_KERNEL)␊ |
47 | ␊ |
48 | #if defined(BSMALL_LATER)␊ |
49 | /* Really small configurations don't need type checking */␊ |
50 | #define __MigTypeCheck 0␊ |
51 | #else␊ |
52 | /* Turn MIG type checking on by default for kernel */␊ |
53 | #define __MigTypeCheck 1␊ |
54 | #endif␊ |
55 | #define __MigKernelSpecificCode 1␊ |
56 | #define _MIG_KERNEL_SPECIFIC_CODE_ 1␊ |
57 | ␊ |
58 | /* Otherwise check legacy setting (temporary) */␊ |
59 | #elif defined(TypeCheck) ␊ |
60 | ␊ |
61 | #define __MigTypeCheck TypeCheck␊ |
62 | ␊ |
63 | #elif !defined(__MigTypeCheck)␊ |
64 | ␊ |
65 | /* otherwise, default MIG type checking on - except in small configurations */␊ |
66 | #if defined(BSMALL)␊ |
67 | #define __MigTypeCheck 0␊ |
68 | #else␊ |
69 | #define __MigTypeCheck 1␊ |
70 | #endif␊ |
71 | ␊ |
72 | #endif /* !defined(__MigTypeCheck) */␊ |
73 | ␊ |
74 | /*␊ |
75 | * Pack MIG message structs.␊ |
76 | * This is an indicator of the need to view shared structs in a␊ |
77 | * binary-compatible format - and MIG message structs are no different.␊ |
78 | */␊ |
79 | #define __MigPackStructs 1␊ |
80 | ␊ |
81 | /*␊ |
82 | * Definition for MIG-generated server stub routines. These routines␊ |
83 | * unpack the request message, call the server procedure, and pack the␊ |
84 | * reply message.␊ |
85 | */␊ |
86 | typedef void␉(*mig_stub_routine_t) (mach_msg_header_t *InHeadP,␊ |
87 | ␉␉␉␉ mach_msg_header_t *OutHeadP);␊ |
88 | ␊ |
89 | typedef mig_stub_routine_t mig_routine_t;␊ |
90 | ␊ |
91 | /*␊ |
92 | * Definition for MIG-generated server routine. This routine takes a␊ |
93 | * message, and returns the appropriate stub function for handling that␊ |
94 | * message.␊ |
95 | */␊ |
96 | typedef mig_routine_t (*mig_server_routine_t) (mach_msg_header_t *InHeadP);␊ |
97 | ␊ |
98 | /*␊ |
99 | * Generic definition for implementation routines. These routines do␊ |
100 | * the real work associated with this request. This generic type is␊ |
101 | * used for keeping the pointers in the subsystem array.␊ |
102 | */␊ |
103 | typedef kern_return_t (*mig_impl_routine_t)(void);␊ |
104 | ␊ |
105 | typedef mach_msg_type_descriptor_t routine_arg_descriptor;␊ |
106 | typedef mach_msg_type_descriptor_t *routine_arg_descriptor_t;␊ |
107 | typedef mach_msg_type_descriptor_t *mig_routine_arg_descriptor_t;␊ |
108 | ␊ |
109 | #define MIG_ROUTINE_ARG_DESCRIPTOR_NULL ((mig_routine_arg_descriptor_t)0)␊ |
110 | ␊ |
111 | struct routine_descriptor {␊ |
112 | ␉mig_impl_routine_t␉impl_routine;␉/* Server work func pointer */␊ |
113 | ␉mig_stub_routine_t␉stub_routine;␉/* Unmarshalling func pointer */␊ |
114 | ␉unsigned int␉␉argc;␉␉␉/* Number of argument words */␊ |
115 | ␉unsigned int␉␉descr_count;␉/* Number complex descriptors */␊ |
116 | ␉routine_arg_descriptor_t␊ |
117 | ␉␉␉␉␉␉arg_descr;␉␉/* pointer to descriptor array*/␊ |
118 | ␉unsigned int␉␉max_reply_msg;␉/* Max size for reply msg */␊ |
119 | };␊ |
120 | typedef struct routine_descriptor *routine_descriptor_t;␊ |
121 | ␊ |
122 | typedef struct routine_descriptor mig_routine_descriptor;␊ |
123 | typedef mig_routine_descriptor *mig_routine_descriptor_t;␊ |
124 | ␊ |
125 | #define MIG_ROUTINE_DESCRIPTOR_NULL ((mig_routine_descriptor_t)0)␊ |
126 | ␊ |
127 | typedef struct mig_subsystem {␊ |
128 | ␉mig_server_routine_t server;␉␉/* pointer to demux routine␉*/␊ |
129 | ␉mach_msg_id_t␉␉ start;␉␉␉/* Min routine number␉ */␊ |
130 | ␉mach_msg_id_t␉␉ end;␉␉␉/* Max routine number + 1 */␊ |
131 | ␉mach_msg_size_t␉␉ maxsize;␉␉/* Max reply message size */␊ |
132 | ␉vm_address_t␉␉ reserved;␉␉/* reserved for MIG use␉ */␊ |
133 | ␉mig_routine_descriptor␊ |
134 | ␉␉␉␉␉␉ routine[1];␉/* Routine descriptor array */␊ |
135 | } *mig_subsystem_t;␊ |
136 | ␊ |
137 | #define MIG_SUBSYSTEM_NULL␉␉((mig_subsystem_t)0)␊ |
138 | ␊ |
139 | typedef struct mig_symtab {␊ |
140 | ␉char␉␉␉␉*ms_routine_name;␊ |
141 | ␉int␉␉␉␉␉ms_routine_number;␊ |
142 | ␉void ␉␉␉(*ms_routine)(void);␉/* Since the functions in the␊ |
143 | ␉␉␉␉␉ ␉␉␉␉␉␉␉ * symbol table have unknown␊ |
144 | ␉␉␉␉␉␉␉␉␉␉␉␉ * signatures, this is the best␊ |
145 | ␉␉␉␉␉ ␉␉␉␉␉␉␉ * we can do...␊ |
146 | ␉␉␉␉␉ ␉␉␉␉␉␉␉ */␊ |
147 | } mig_symtab_t;␊ |
148 | ␊ |
149 | ␊ |
150 | __BEGIN_DECLS␊ |
151 | ␊ |
152 | /* Client side reply port allocate */␊ |
153 | extern mach_port_t mig_get_reply_port(void);␊ |
154 | ␊ |
155 | /* Client side reply port deallocate */␊ |
156 | extern void mig_dealloc_reply_port(mach_port_t reply_port);␊ |
157 | ␊ |
158 | /* Client side reply port "deallocation" */␊ |
159 | extern void mig_put_reply_port(mach_port_t reply_port);␊ |
160 | ␊ |
161 | /* Bounded string copy */␊ |
162 | extern int mig_strncpy(char␉*dest, const char *src,␉int␉len);␊ |
163 | ␊ |
164 | ␊ |
165 | /* Allocate memory for out-of-line mig structures */␊ |
166 | extern void mig_allocate(vm_address_t *, vm_size_t);␊ |
167 | ␊ |
168 | /* Deallocate memory used for out-of-line mig structures */␊ |
169 | extern void mig_deallocate(vm_address_t, vm_size_t);␊ |
170 | ␊ |
171 | ␊ |
172 | __END_DECLS␊ |
173 | ␊ |
174 | #endif␉/* _MACH_MIG_H_ */␊ |
175 |