[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / mkisofs / diskmbr.h
1 /* @(#)diskmbr.h 1.2 04/03/02 Copyright 1999-2004 J. Schilling */
2 /*
3 * Header file diskmbr.h - assorted structure definitions and macros
4 * describing standard PC partition table
5 *
6 * Copyright (c) 1999-2004 J. Schilling
7 */
8 /*
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2
11 * as published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License along with
19 * this program; see the file COPYING. If not, write to the Free Software
20 * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 */
22
23 #ifndef _DISKMBR_H
24 #define _DISKMBR_H
25
26 #define MBR_MAGIC 0xAA55
27
28 #define PARTITION_UNUSED 0x00
29 #define PARTITION_ACTIVE 0x80
30
31 #define PARTITION_COUNT 4
32
33 #define MBR_SECTOR(x) ((x)&0x3F)
34 #define MBR_CYLINDER(x) ((x)>>8|((x)<<2&0x300))
35
36 struct disk_partition {
37 unsigned char status;
38 unsigned char s_head;
39 unsigned char s_cyl_sec[2];
40 unsigned char type;
41 unsigned char e_head;
42 unsigned char e_cyl_sec[2];
43 unsigned char boot_sec[4];
44 unsigned char size[4];
45 };
46
47 struct disk_master_boot_record {
48 char pad[0x1BE];
49 struct disk_partition partition[PARTITION_COUNT];
50 unsigned char magic[2];
51 };
52
53 #endif /* _DISKMBR_H */