File: mac-parts.h

package info (click to toggle)
openbios-sparc 1.0%2Bsvn640-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 4,412 kB
  • ctags: 12,091
  • sloc: ansic: 57,249; asm: 2,680; xml: 1,335; cpp: 414; makefile: 224; sh: 190
file content (88 lines) | stat: -rw-r--r-- 2,511 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
 *   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 */