Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
block
partitions
efi.h
Go to the documentation of this file.
1
/************************************************************
2
* EFI GUID Partition Table
3
* Per Intel EFI Specification v1.02
4
* http://developer.intel.com/technology/efi/efi.htm
5
*
6
* By Matt Domsch <
[email protected]
> Fri Sep 22 22:15:56 CDT 2000
7
* Copyright 2000,2001 Dell Inc.
8
*
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
*
23
************************************************************/
24
25
#ifndef FS_PART_EFI_H_INCLUDED
26
#define FS_PART_EFI_H_INCLUDED
27
28
#include <linux/types.h>
29
#include <linux/fs.h>
30
#include <
linux/genhd.h
>
31
#include <linux/kernel.h>
32
#include <
linux/major.h
>
33
#include <linux/string.h>
34
#include <
linux/efi.h
>
35
36
#define MSDOS_MBR_SIGNATURE 0xaa55
37
#define EFI_PMBR_OSTYPE_EFI 0xEF
38
#define EFI_PMBR_OSTYPE_EFI_GPT 0xEE
39
40
#define GPT_HEADER_SIGNATURE 0x5452415020494645ULL
41
#define GPT_HEADER_REVISION_V1 0x00010000
42
#define GPT_PRIMARY_PARTITION_TABLE_LBA 1
43
44
#define PARTITION_SYSTEM_GUID \
45
EFI_GUID( 0xC12A7328, 0xF81F, 0x11d2, \
46
0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B)
47
#define LEGACY_MBR_PARTITION_GUID \
48
EFI_GUID( 0x024DEE41, 0x33E7, 0x11d3, \
49
0x9D, 0x69, 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F)
50
#define PARTITION_MSFT_RESERVED_GUID \
51
EFI_GUID( 0xE3C9E316, 0x0B5C, 0x4DB8, \
52
0x81, 0x7D, 0xF9, 0x2D, 0xF0, 0x02, 0x15, 0xAE)
53
#define PARTITION_BASIC_DATA_GUID \
54
EFI_GUID( 0xEBD0A0A2, 0xB9E5, 0x4433, \
55
0x87, 0xC0, 0x68, 0xB6, 0xB7, 0x26, 0x99, 0xC7)
56
#define PARTITION_LINUX_RAID_GUID \
57
EFI_GUID( 0xa19d880f, 0x05fc, 0x4d3b, \
58
0xa0, 0x06, 0x74, 0x3f, 0x0f, 0x84, 0x91, 0x1e)
59
#define PARTITION_LINUX_SWAP_GUID \
60
EFI_GUID( 0x0657fd6d, 0xa4ab, 0x43c4, \
61
0x84, 0xe5, 0x09, 0x33, 0xc8, 0x4b, 0x4f, 0x4f)
62
#define PARTITION_LINUX_LVM_GUID \
63
EFI_GUID( 0xe6d6d379, 0xf507, 0x44c2, \
64
0xa2, 0x3c, 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28)
65
66
typedef
struct
_gpt_header
{
67
__le64
signature
;
68
__le32
revision
;
69
__le32
header_size
;
70
__le32
header_crc32
;
71
__le32
reserved1
;
72
__le64
my_lba
;
73
__le64
alternate_lba
;
74
__le64
first_usable_lba
;
75
__le64
last_usable_lba
;
76
efi_guid_t
disk_guid
;
77
__le64
partition_entry_lba
;
78
__le32
num_partition_entries
;
79
__le32
sizeof_partition_entry
;
80
__le32
partition_entry_array_crc32
;
81
82
/* The rest of the logical block is reserved by UEFI and must be zero.
83
* EFI standard handles this by:
84
*
85
* uint8_t reserved2[ BlockSize - 92 ];
86
*/
87
}
__attribute__
((packed)) gpt_header;
88
89
typedef
struct
_gpt_entry_attributes
{
90
u64
required_to_function
:1;
91
u64
reserved
:47;
92
u64
type_guid_specific
:16;
93
}
__attribute__
((packed)) gpt_entry_attributes;
94
95
typedef
struct
_gpt_entry
{
96
efi_guid_t
partition_type_guid
;
97
efi_guid_t
unique_partition_guid
;
98
__le64
starting_lba
;
99
__le64
ending_lba
;
100
gpt_entry_attributes
attributes
;
101
efi_char16_t
partition_name
[72 /
sizeof
(
efi_char16_t
)];
102
}
__attribute__
((packed)) gpt_entry;
103
104
typedef
struct
_legacy_mbr
{
105
u8
boot_code
[440];
106
__le32
unique_mbr_signature
;
107
__le16
unknown
;
108
struct
partition
partition_record
[4];
109
__le16
signature
;
110
}
__attribute__
((packed)) legacy_mbr;
111
112
/* Functions */
113
extern
int
efi_partition
(
struct
parsed_partitions
*
state
);
114
115
#endif
116
117
/*
118
* Overrides for Emacs so that we follow Linus's tabbing style.
119
* Emacs will notice this stuff at the end of the file and automatically
120
* adjust the settings for this buffer only. This must remain at the end
121
* of the file.
122
* --------------------------------------------------------------------------
123
* Local variables:
124
* c-indent-level: 4
125
* c-brace-imaginary-offset: 0
126
* c-brace-offset: -4
127
* c-argdecl-indent: 4
128
* c-label-offset: -4
129
* c-continued-statement-offset: 4
130
* c-continued-brace-offset: 0
131
* indent-tabs-mode: nil
132
* tab-width: 8
133
* End:
134
*/
Generated on Thu Jan 10 2013 13:20:02 for Linux Kernel by
1.8.2