Chameleon

Chameleon Svn Source Tree

Root/branches/JrCs/i386/include/IOKit/storage/IOFDiskPartitionScheme.h

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 IOFDiskPartitionScheme class definition.
26 */
27
28#ifndef _IOFDISKPARTITIONSCHEME_H
29#define _IOFDISKPARTITIONSCHEME_H
30
31#include <IOKit/IOTypes.h>
32
33/*
34 * kIOFDiskPartitionSchemeClass is the name of the IOFDiskPartitionScheme class.
35 */
36
37#define kIOFDiskPartitionSchemeClass "IOFDiskPartitionScheme"
38
39/*
40 * FDisk Partition Map Definitions
41 */
42
43#pragma pack(push, 1) /* (enable 8-bit struct packing) */
44
45/* Structure constants. */
46
47#define DISK_BLK0SZ sizeof(struct disk_blk0) /* (size of partition map) */
48#define DISK_BOOTSZ 446 /* (size of boot code in map) */
49#define DISK_NPART 4 /* (number of entries in map) */
50
51/* Partition map entry. */
52
53struct fdisk_part
54{
55 UInt8 bootid; /* (is active boot partition?) */
56 UInt8 beghead; /* (beginning head) */
57 UInt8 begsect; /* (beginning sector; beginning cylinder, high 2 bits) */
58 UInt8 begcyl; /* (beginning cylinder, low 8 bits) */
59 UInt8 systid; /* (type) */
60 UInt8 endhead; /* (ending head) */
61 UInt8 endsect; /* (ending sector; ending cylinder, high 2 bits) */
62 UInt8 endcyl; /* (ending cylinder, low 8 bits) */
63 UInt32 relsect; /* (block start) */
64 UInt32 numsect; /* (block count) */
65};
66
67/* Partition map, as found in block zero of the disk (or extended partition). */
68
69struct disk_blk0
70{
71 UInt8 bootcode[DISK_BOOTSZ]; /* (boot code) */
72 struct fdisk_part parts[DISK_NPART]; /* (partition entries) */
73 UInt16 signature; /* (unique signature for map) */
74};
75
76/* Partition map signature (signature). */
77
78#define DISK_SIGNATURE 0xAA55
79
80/* Partition map entry types (systid). */
81
82#define FDISK_PARTITION_TYPE_01 "DOS_FAT_12"
83#define FDISK_PARTITION_TYPE_04 "DOS_FAT_16_S"
84#define FDISK_PARTITION_TYPE_06 "DOS_FAT_16"
85#define FDISK_PARTITION_TYPE_07 "Windows_NTFS"
86#define FDISK_PARTITION_TYPE_0B "DOS_FAT_32"
87#define FDISK_PARTITION_TYPE_0C "Windows_FAT_32"
88#define FDISK_PARTITION_TYPE_0E "Windows_FAT_16"
89#define FDISK_PARTITION_TYPE_42 "Windows_LDM"
90#define FDISK_PARTITION_TYPE_82 "Linux_Swap"
91#define FDISK_PARTITION_TYPE_83 "Linux"
92#define FDISK_PARTITION_TYPE_8E "Linux_LVM"
93#define FDISK_PARTITION_TYPE_A5 "FreeBSD"
94#define FDISK_PARTITION_TYPE_A6 "OpenBSD"
95#define FDISK_PARTITION_TYPE_A7 "Apple_Rhapsody_UFS"
96#define FDISK_PARTITION_TYPE_A8 "Apple_UFS"
97#define FDISK_PARTITION_TYPE_A9 "NetBSD"
98#define FDISK_PARTITION_TYPE_AB "Apple_Boot"
99#define FDISK_PARTITION_TYPE_AE "Apple_Encrypted"
100#define FDISK_PARTITION_TYPE_AF "Apple_HFS"
101#define FDISK_PARTITION_TYPE_FD "Linux_RAID"
102
103#pragma pack(pop) /* (reset to default struct packing) */
104
105#endif /* !_IOFDISKPARTITIONSCHEME_H */
106

Archive Download this file

Revision: 1466