Files
openbios/packages/mac-parts.h
Mark Cave-Ayland dbf16392cc Refactoring of the OpenBIOS source code, as discussed on the mailing list. The primary aim of this process is to try and arrange
the source files into a structure whereby it is easier to find the relationship between a forth package word and its C 
implementation, while also creating a libopenbios library into which more common code from the arch/ tree can eventually be 
moved.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> 


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@685 f158a5a8-5612-0410-a976-696ce0be7e32
2010-03-13 10:58:19 +00:00

89 lines
2.5 KiB
C

/*
* Creation Date: <1999/07/06 15:45:12 samuel>
* Time-stamp: <2002/10/20 16:31:48 samuel>
*
* <partition_table.h>
*
* Headers describing the partition table
*
* Copyright (C) 1999, 2002 Samuel Rydh (samuel@ibrium.se)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation
*
*/
#ifndef _H_PARTITION_TABLE
#define _H_PARTITION_TABLE
/* This information is based upon IM vol V. */
#define DESC_MAP_SIGNATURE 0x4552
#define DESC_PART_SIGNATURE 0x504d
enum {
kPartitionAUXIsValid = 0x00000001,
kPartitionAUXIsAllocated = 0x00000002,
kPartitionAUXIsInUse = 0x00000004,
kPartitionAUXIsBootValid = 0x00000008,
kPartitionAUXIsReadable = 0x00000010,
kPartitionAUXIsWriteable = 0x00000020,
kPartitionAUXIsBootCodePositionIndependent = 0x00000040,
kPartitionISMountedAtStartup = 0x40000000,
kPartitionIsStartup = 0x80000000,
kPartitionIsChainCompatible = 0x00000100,
kPartitionIsRealDeviceDriver = 0x00000200,
kPartitionCanChainToNext = 0x00000400,
};
typedef struct {
long ddBlock; /* first block of driver */
short ddSize; /* driver size in blocks */
short ddType; /* 1 & -1 for SCSI */
} driver_entry_t;
typedef struct { /* Block 0 of a device */
short sbSig; /* always 0x4552 */
short sbBlockSize; /* 512 */
long sbBlkCount; /* #blocks on device */
short sbDevType; /* 0 */
short sbDevID; /* 0 */
long sbData; /* 0 */
short sbDrvrCount; /* #driver descriptors */
/* driver entries goes here */
driver_entry_t drivers[61] __attribute__ ((packed));
short filler1;
long filler2;
} desc_map_t;
typedef struct { /* Partition descriptor */
short pmSig; /* always 0x504d 'PM' */
short pmSigPad; /* 0 */
ulong pmMapBlkCnt; /* #blocks in partition map */
ulong pmPyPartStart; /* first physical block of part. */
ulong pmPartBlkCnt; /* #blocks in partition */
char pmPartName[32]; /* partition name */
char pmPartType[32]; /* partition type */
/* these fields may or may not be used */
ulong pmLgDataStart;
ulong pmDataCnt;
ulong pmPartStatus;
ulong pmLgBootStart;
ulong pmBootSize;
ulong pmBootLoad;
ulong pmBootLoad2;
ulong pmBootEntry;
ulong pmBootEntry2;
ulong pmBootCksum;
char pmProcessor[16];
char filler[376]; /* might contain extra information */
} part_entry_t;
#endif /* _H_PARTITION_TABLE */