Subversion Repositories HelenOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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