Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/IOKit/storage/IOApplePartitionScheme.h

Source at commit 1129 created 12 years 11 months ago.
By meklort, Change options.o so that it reloads the system config as well. Also change it so that it uses that config for variables (NOTE: if the calue exists in chameleonConfig, it's used instead.
1/*
2 * Copyright (c) 1998-2009 Apple Inc. All rights reserved.
3 *
4 * @APPLE_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. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
24/*
25 * This header contains the IOApplePartitionScheme class definition.
26 */
27
28#ifndef _IOAPPLEPARTITIONSCHEME_H
29#define _IOAPPLEPARTITIONSCHEME_H
30
31#include <IOKit/IOTypes.h>
32
33/*
34 * kIOApplePartitionSchemeClass is the name of the IOApplePartitionScheme class.
35 */
36
37#define kIOApplePartitionSchemeClass "IOApplePartitionScheme"
38
39/*
40 * Apple Partition Map Definitions
41 */
42
43#pragma pack(push, 1) /* (enable 8-bit struct packing) */
44
45/* Structure constants. */
46
47#define DPISTRLEN 32
48
49/* Partition map entry, as found in blocks 1 to dpme_map_entries of the disk. */
50
51typedef struct dpme
52{
53 UInt16 dpme_signature; /* (unique value for partition entry, 'PM') */
54 UInt16 dpme_reserved_1; /* (reserved for future use) */
55 UInt32 dpme_map_entries; /* (number of partition entries) */
56 UInt32 dpme_pblock_start; /* (physical block start of partition) */
57 UInt32 dpme_pblocks; /* (physical block count of partition) */
58 char dpme_name[DPISTRLEN]; /* (name of partition) */
59 char dpme_type[DPISTRLEN]; /* (type of partition, eg. Apple_HFS) */
60 UInt32 dpme_lblock_start; /* (logical block start of partition) */
61 UInt32 dpme_lblocks; /* (logical block count of partition) */
62 UInt32 dpme_flags; /* (partition flags, see defines below) */
63 UInt32 dpme_boot_block; /* (logical block start of boot code) */
64 UInt32 dpme_boot_bytes; /* (byte count of boot code) */
65 UInt32 dpme_load_addr; /* (load address in memory of boot code) */
66 UInt32 dpme_load_addr_2; /* (reserved for future use) */
67 UInt32 dpme_goto_addr; /* (jump address in memory of boot code) */
68 UInt32 dpme_goto_addr_2; /* (reserved for future use) */
69 UInt32 dpme_checksum; /* (checksum of boot code) */
70 UInt8 dpme_process_id[16]; /* (processor type) */
71 UInt32 dpme_reserved_2[32]; /* (reserved for future use) */
72 UInt32 dpme_reserved_3[62]; /* (reserved for future use) */
73} DPME;
74
75/* Driver descriptor map entry. */
76
77typedef struct DDMap
78{
79 UInt32 ddBlock; /* (driver's block start, sbBlkSize-blocks) */
80 UInt16 ddSize; /* (driver's block count, 512-blocks) */
81 UInt16 ddType; /* (driver's system type) */
82} DDMap;
83
84/* Driver descriptor map, as found in block zero of the disk. */
85
86typedef struct Block0
87{
88 UInt16 sbSig; /* (unique value for block zero, 'ER') */
89 UInt16 sbBlkSize; /* (block size for this device) */
90 UInt32 sbBlkCount; /* (block count for this device) */
91 UInt16 sbDevType; /* (device type) */
92 UInt16 sbDevId; /* (device id) */
93 UInt32 sbDrvrData; /* (driver data) */
94 UInt16 sbDrvrCount; /* (driver descriptor count) */
95 DDMap sbDrvrMap[8]; /* (driver descriptor table) */
96 UInt8 sbReserved[430]; /* (reserved for future use) */
97} Block0;
98
99/* Partition map signature (sbSig). */
100
101#define BLOCK0_SIGNATURE 0x4552
102
103/* Partition map entry signature (dpme_signature). */
104
105#define DPME_SIGNATURE 0x504D
106
107/* Partition map entry flags (dpme_flags). */
108
109#define DPME_FLAGS_VALID 0x00000001 /* (bit 0) */
110#define DPME_FLAGS_ALLOCATED 0x00000002 /* (bit 1) */
111#define DPME_FLAGS_IN_USE 0x00000004 /* (bit 2) */
112#define DPME_FLAGS_BOOTABLE 0x00000008 /* (bit 3) */
113#define DPME_FLAGS_READABLE 0x00000010 /* (bit 4) */
114#define DPME_FLAGS_WRITABLE 0x00000020 /* (bit 5) */
115#define DPME_FLAGS_OS_PIC_CODE 0x00000040 /* (bit 6) */
116#define DPME_FLAGS_OS_SPECIFIC_2 0x00000080 /* (bit 7) */
117#define DPME_FLAGS_OS_SPECIFIC_1 0x00000100 /* (bit 8) */
118#define DPME_FLAGS_RESERVED_2 0xFFFFFE00 /* (bit 9..31) */
119
120#pragma pack(pop) /* (reset to default struct packing) */
121
122#endif /* !_IOAPPLEPARTITIONSCHEME_H */
123

Archive Download this file

Revision: 1129