Home | History | Annotate | Line # | Download | only in inc
      1  1.1  jakllsch /*	$NetBSD: efipart.h,v 1.1.1.1 2014/04/01 16:16:07 jakllsch Exp $	*/
      2  1.1  jakllsch 
      3  1.1  jakllsch #ifndef _EFI_PART_H
      4  1.1  jakllsch #define _EFI_PART_H
      5  1.1  jakllsch 
      6  1.1  jakllsch /*++
      7  1.1  jakllsch 
      8  1.1  jakllsch Copyright (c) 1998  Intel Corporation
      9  1.1  jakllsch 
     10  1.1  jakllsch Module Name:
     11  1.1  jakllsch 
     12  1.1  jakllsch     efipart.h
     13  1.1  jakllsch 
     14  1.1  jakllsch Abstract:
     15  1.1  jakllsch     Info about disk partitions and Master Boot Records
     16  1.1  jakllsch 
     17  1.1  jakllsch 
     18  1.1  jakllsch 
     19  1.1  jakllsch 
     20  1.1  jakllsch Revision History
     21  1.1  jakllsch 
     22  1.1  jakllsch --*/
     23  1.1  jakllsch 
     24  1.1  jakllsch //
     25  1.1  jakllsch //
     26  1.1  jakllsch //
     27  1.1  jakllsch 
     28  1.1  jakllsch #define EFI_PARTITION   0xef
     29  1.1  jakllsch #define MBR_SIZE        512
     30  1.1  jakllsch 
     31  1.1  jakllsch #pragma pack(1)
     32  1.1  jakllsch 
     33  1.1  jakllsch typedef struct {
     34  1.1  jakllsch     UINT8       BootIndicator;
     35  1.1  jakllsch     UINT8       StartHead;
     36  1.1  jakllsch     UINT8       StartSector;
     37  1.1  jakllsch     UINT8       StartTrack;
     38  1.1  jakllsch     UINT8       OSIndicator;
     39  1.1  jakllsch     UINT8       EndHead;
     40  1.1  jakllsch     UINT8       EndSector;
     41  1.1  jakllsch     UINT8       EndTrack;
     42  1.1  jakllsch     UINT8       StartingLBA[4];
     43  1.1  jakllsch     UINT8       SizeInLBA[4];
     44  1.1  jakllsch } MBR_PARTITION_RECORD;
     45  1.1  jakllsch 
     46  1.1  jakllsch #define EXTRACT_UINT32(D) (UINT32)(D[0] | (D[1] << 8) | (D[2] << 16) | (D[3] << 24))
     47  1.1  jakllsch 
     48  1.1  jakllsch #define MBR_SIGNATURE           0xaa55
     49  1.1  jakllsch #define MIN_MBR_DEVICE_SIZE     0x80000
     50  1.1  jakllsch #define MBR_ERRATA_PAD          0x40000 // 128 MB
     51  1.1  jakllsch 
     52  1.1  jakllsch #define MAX_MBR_PARTITIONS  4
     53  1.1  jakllsch typedef struct {
     54  1.1  jakllsch     UINT8                   BootStrapCode[440];
     55  1.1  jakllsch     UINT8                   UniqueMbrSignature[4];
     56  1.1  jakllsch     UINT8                   Unknown[2];
     57  1.1  jakllsch     MBR_PARTITION_RECORD    Partition[MAX_MBR_PARTITIONS];
     58  1.1  jakllsch     UINT16                  Signature;
     59  1.1  jakllsch } MASTER_BOOT_RECORD;
     60  1.1  jakllsch #pragma pack()
     61  1.1  jakllsch 
     62  1.1  jakllsch 
     63  1.1  jakllsch #endif
     64