Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/stand/efi/include/efipart.h
34883 views
1
#ifndef _EFI_PART_H
2
#define _EFI_PART_H
3
4
/*++
5
6
Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
7
This software and associated documentation (if any) is furnished
8
under a license and may only be used or copied in accordance
9
with the terms of the license. Except as permitted by such
10
license, no part of this software or documentation may be
11
reproduced, stored in a retrieval system, or transmitted in any
12
form or by any means without the express written consent of
13
Intel Corporation.
14
15
Module Name:
16
17
efipart.h
18
19
Abstract:
20
Info about disk partitions and Master Boot Records
21
22
23
24
25
Revision History
26
27
--*/
28
29
//
30
//
31
//
32
33
#define EFI_PARTITION 0xef
34
#define MBR_SIZE 512
35
36
#pragma pack(1)
37
38
typedef struct {
39
UINT8 BootIndicator;
40
UINT8 StartHead;
41
UINT8 StartSector;
42
UINT8 StartTrack;
43
UINT8 OSIndicator;
44
UINT8 EndHead;
45
UINT8 EndSector;
46
UINT8 EndTrack;
47
UINT8 StartingLBA[4];
48
UINT8 SizeInLBA[4];
49
} MBR_PARTITION_RECORD;
50
51
#define EXTRACT_UINT32(D) (UINT32)(D[0] | (D[1] << 8) | (D[2] << 16) | (D[3] << 24))
52
53
#define MBR_SIGNATURE 0xaa55
54
#define MIN_MBR_DEVICE_SIZE 0x80000
55
#define MBR_ERRATA_PAD 0x40000 // 128 MB
56
57
#define MAX_MBR_PARTITIONS 4
58
typedef struct {
59
UINT8 BootStrapCode[440];
60
UINT8 UniqueMbrSignature[4];
61
UINT8 Unknown[2];
62
MBR_PARTITION_RECORD Partition[MAX_MBR_PARTITIONS];
63
UINT16 Signature;
64
} MASTER_BOOT_RECORD;
65
#pragma pack()
66
67
68
#endif
69
70