[project] Rename winvblock__uint16 back to UINT16
[people/sha0/winvblock.git] / src / include / mdi.h
1 /*
2  *   Copyright 2001-2009 H. Peter Anvin - All Rights Reserved
3  *   Copyright 2009 Intel Corporation; author: H. Peter Anvin
4  *
5  *   This file is part of MEMDISK, part of the Syslinux bootloader suite.
6  *   Minor adaptation for WinVBlock by Shao Miller
7  *
8  *   This program is free software; you can redistribute it and/or modify
9  *   it under the terms of the GNU General Public License as published by
10  *   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
11  *   Boston MA 02111-1307, USA; either version 2 of the License, or
12  *   (at your option) any later version; incorporated herein by reference.
13  */
14 #ifndef WV_M_MDI_H_
15 #  define WV_M_MDI_H_
16
17 /**
18  * @file
19  *
20  * MEMDISK Information/Installation structure.
21  */
22
23 #ifdef _MSC_VER
24 #  pragma pack(1)
25 #endif
26 struct WV_MDI_PATCH_AREA {
27     UINT16 mdi_bytes;
28     UCHAR mdi_version_minor;
29     UCHAR mdi_version_major;
30     UINT32 diskbuf;
31     UINT32 disksize;
32     UINT16 cmdline_off, cmdline_seg;
33
34     UINT32 oldint13;
35     UINT32 oldint15;
36
37     UINT16 olddosmem;
38     UCHAR bootloaderid;
39     UCHAR _pad1;
40
41     UINT16 dpt_ptr;
42     /* End of the official MemDisk_Info */
43     UCHAR driveshiftlimit;
44     UCHAR _pad2;
45     UINT16 _pad3;
46     UINT16 memint1588;
47
48     UINT16 cylinders;
49     UINT16 heads;
50     UINT32 sectors;
51
52     UINT32 mem1mb;
53     UINT32 mem16mb;
54
55     UCHAR driveno;
56     /* WinVBlock does not need anything more. */
57   } __attribute__((__packed__));
58 typedef struct WV_MDI_PATCH_AREA WV_S_MDI_PATCH_AREA, * WV_SP_MDI_PATCH_AREA;
59 #ifdef _MSC_VER
60 #  pragma pack()
61 #endif
62
63 #ifdef _MSC_VER
64 #  pragma pack(1)
65 #endif
66 struct WV_MDI_MBFT {
67     UCHAR Signature[4]; /* ("mBFT") */
68     UINT32 Length;
69     UCHAR Revision;
70     UCHAR Checksum;
71     UCHAR OEMID[6];
72     UCHAR OEMTableID[8];
73     UCHAR Reserved1[12];
74     UINT32 SafeHook;
75     WV_S_MDI_PATCH_AREA mdi;
76   } __attribute__((__packed__));
77 typedef struct WV_MDI_MBFT WV_S_MDI_MBFT, * WV_SP_MDI_MBFT;
78 #ifdef _MSC_VER
79 #  pragma pack()
80 #endif
81
82 #endif  /* WV_M_MDI_H_ */