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