Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / packages / mac-parts.h
1 /*
2  *   Creation Date: <1999/07/06 15:45:12 samuel>
3  *   Time-stamp: <2002/10/20 16:31:48 samuel>
4  *
5  *      <partition_table.h>
6  *
7  *      Headers describing the partition table
8  *
9  *   Copyright (C) 1999, 2002 Samuel Rydh (samuel@ibrium.se)
10  *
11  *   This program is free software; you can redistribute it and/or
12  *   modify it under the terms of the GNU General Public License
13  *   as published by the Free Software Foundation
14  *
15  */
16
17 #ifndef _H_PARTITION_TABLE
18 #define _H_PARTITION_TABLE
19
20 /* This information is based upon IM vol V. */
21
22 #define DESC_MAP_SIGNATURE      0x4552
23 #define DESC_PART_SIGNATURE     0x504d
24
25 enum {
26         kPartitionAUXIsValid         = 0x00000001,
27         kPartitionAUXIsAllocated     = 0x00000002,
28         kPartitionAUXIsInUse         = 0x00000004,
29         kPartitionAUXIsBootValid     = 0x00000008,
30         kPartitionAUXIsReadable      = 0x00000010,
31         kPartitionAUXIsWriteable     = 0x00000020,
32         kPartitionAUXIsBootCodePositionIndependent = 0x00000040,
33         kPartitionISMountedAtStartup = 0x40000000,
34         kPartitionIsStartup          = 0x80000000,
35         kPartitionIsChainCompatible  = 0x00000100,
36         kPartitionIsRealDeviceDriver = 0x00000200,
37         kPartitionCanChainToNext     = 0x00000400,
38 };
39
40 typedef struct {
41         u32             ddBlock;                /* first block of driver */
42         u16             ddSize;                 /* driver size in blocks */
43         s16             ddType;                 /* 1 & -1 for SCSI */
44 } driver_entry_t;
45
46 typedef struct { /* Block 0 of a device */
47         u16             sbSig;                  /* always 0x4552 */
48         u16             sbBlockSize;            /* 512 */
49         s32             sbBlkCount;             /* #blocks on device */
50         u16             sbDevType;              /* 0 */
51         u16             sbDevID;                /* 0 */
52         u32             sbData;                 /* 0 */
53         s16             sbDrvrCount;            /* #driver descriptors */
54
55         /* driver entries goes here */
56         driver_entry_t  drivers[61] __attribute__ ((packed));
57
58         u16             filler1;
59         u32             filler2;
60 } desc_map_t;
61
62 typedef struct { /* Partition descriptor */
63         u16             pmSig;                  /* always 0x504d 'PM' */
64         u16             pmSigPad;               /* 0 */
65         u32             pmMapBlkCnt;            /* #blocks in partition map */
66         u32             pmPyPartStart;          /* first physical block of part. */
67         u32             pmPartBlkCnt;           /* #blocks in partition */
68         char            pmPartName[32];         /* partition name */
69         char            pmPartType[32];         /* partition type */
70
71         /* these fields may or may not be used */
72         u32             pmLgDataStart;
73         u32             pmDataCnt;
74         u32             pmPartStatus;
75         u32             pmLgBootStart;
76         u32             pmBootSize;
77         u32             pmBootLoad;
78         u32             pmBootLoad2;
79         u32             pmBootEntry;
80         u32             pmBootEntry2;
81         u32             pmBootCksum;
82         char            pmProcessor[16];
83
84         char            filler[376];            /* might contain extra information */
85 } part_entry_t;
86
87
88 #endif   /* _H_PARTITION_TABLE */