~darkmuggle-deactivatedaccount/ubuntu/quantal/grub2/fix-872244

« back to all changes in this revision

Viewing changes to include/grub/efi/api.h

  • Committer: Bazaar Package Importer
  • Author(s): Colin Watson, Colin Watson, Evan Broder, Mario Limonciello
  • Date: 2010-11-24 13:59:55 UTC
  • mfrom: (1.17.6 upstream) (17.6.15 experimental)
  • Revision ID: james.westby@ubuntu.com-20101124135955-r6ii5sepayr7jt53
Tags: 1.99~20101124-1ubuntu1
[ Colin Watson ]
* Resynchronise with Debian experimental.  Remaining changes:
  - Adjust for default Ubuntu boot options ("quiet splash").
  - Default to hiding the menu; holding down Shift at boot will show it.
  - Set a monochromatic theme for Ubuntu.
  - Apply Ubuntu GRUB Legacy changes to legacy update-grub script: title,
    recovery mode, quiet option, tweak how memtest86+ is displayed, and
    use UUIDs where appropriate.
  - Fix backslash-escaping in merge_debconf_into_conf.
  - Remove "GNU/Linux" from default distributor string.
  - Add crashkernel= options if kdump and makedumpfile are available.
  - If other operating systems are installed, then automatically unhide
    the menu.  Otherwise, if GRUB_HIDDEN_TIMEOUT is 0, then use keystatus
    if available to check whether Shift is pressed.  If it is, show the
    menu, otherwise boot immediately.  If keystatus is not available, then
    fall back to a short delay interruptible with Escape.
  - Allow Shift to interrupt 'sleep --interruptible'.
  - Don't display introductory message about line editing unless we're
    actually offering a shell prompt.  Don't clear the screen just before
    booting if we never drew the menu in the first place.
  - Remove some verbose messages printed before reading the configuration
    file.
  - Suppress progress messages as the kernel and initrd load for
    non-recovery kernel menu entries.
  - Change prepare_grub_to_access_device to handle filesystems
    loop-mounted on file images.
  - Ignore devices loop-mounted from files in 10_linux.
  - Show the boot menu if the previous boot failed, that is if it failed
    to get to the end of one of the normal runlevels.
  - Don't generate /boot/grub/device.map during grub-install or
    grub-mkconfig by default.
  - Adjust upgrade version checks for Ubuntu.
  - Don't display "GRUB loading" unless Shift is held down.
  - Adjust versions of grub-doc and grub-legacy-doc conflicts to tolerate
    our backport of the grub-doc split.
  - Fix LVM/RAID probing in the absence of /boot/grub/device.map.
  - Look for .mo files in /usr/share/locale-langpack as well, in
    preference.
  - Make sure GRUB_TIMEOUT isn't quoted unnecessarily.
  - Probe all devices in 'grub-probe --target=drive' if
    /boot/grub/device.map is missing.
  - Build-depend on qemu-kvm rather than qemu-system for grub-pc tests.
  - Use qemu rather than qemu-system-i386.
  - Program vesafb on BIOS systems rather than efifb.
  - Add a grub-rescue-efi-amd64 package containing a rescue CD-ROM image
    for EFI-AMD64.
  - On Wubi, don't ask for an install device, but just update wubildr
    using the diverted grub-install.
  - When embedding the core image in a post-MBR gap, check for and avoid
    sectors matching any of a list of known signatures.
  - Disable video_bochs and video_cirrus on PC BIOS systems, as probing
    PCI space seems to break on some systems.
* Downgrade "ACPI shutdown failed" error to a debug message, since it can
  cause spurious test failures.

[ Evan Broder ]
* Enable lua from grub-extras.
* Incorporate the bitop library into lua.
* Add enum_pci function to grub module in lua.
* Switch back to gfxpayload=keep by default, unless the video hardware
  is known to not support it.

[ Mario Limonciello ]
* Built part_msdos and vfat into bootx64.efi (LP: #677758)

Show diffs side-by-side

added added

removed removed

Lines of Context:
109
109
    { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
110
110
  }
111
111
 
 
112
#define GRUB_EFI_SAL_TABLE_GUID \
 
113
  { 0xeb9d2d32, 0x2d88, 0x11d3, \
 
114
      { 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \
 
115
  }
 
116
 
 
117
#define GRUB_EFI_HCDP_TABLE_GUID \
 
118
  { 0xf951938d, 0x620b, 0x42ef, \
 
119
      { 0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98 } \
 
120
  }
 
121
 
 
122
struct grub_efi_sal_system_table
 
123
{
 
124
  grub_uint32_t signature;
 
125
  grub_uint32_t total_table_len;
 
126
  grub_uint16_t sal_rev;
 
127
  grub_uint16_t entry_count;
 
128
  grub_uint8_t checksum;
 
129
  grub_uint8_t reserved1[7];
 
130
  grub_uint16_t sal_a_version;
 
131
  grub_uint16_t sal_b_version;
 
132
  grub_uint8_t oem_id[32];
 
133
  grub_uint8_t product_id[32];
 
134
  grub_uint8_t reserved2[8];
 
135
  grub_uint8_t entries[0];
 
136
};
 
137
 
 
138
enum
 
139
  {
 
140
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_ENTRYPOINT_DESCRIPTOR = 0,
 
141
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_MEMORY_DESCRIPTOR = 1,
 
142
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_PLATFORM_FEATURES = 2,
 
143
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_TRANSLATION_REGISTER_DESCRIPTOR = 3,
 
144
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_PURGE_TRANSLATION_COHERENCE = 4,
 
145
    GRUB_EFI_SAL_SYSTEM_TABLE_TYPE_AP_WAKEUP = 5
 
146
  };
 
147
 
 
148
struct grub_efi_sal_system_table_entrypoint_descriptor
 
149
{
 
150
  grub_uint8_t type;
 
151
  grub_uint8_t pad[7];
 
152
  grub_uint64_t pal_proc_addr;
 
153
  grub_uint64_t sal_proc_addr;
 
154
  grub_uint64_t global_data_ptr;
 
155
  grub_uint64_t reserved[2];
 
156
};
 
157
 
 
158
struct grub_efi_sal_system_table_memory_descriptor
 
159
{
 
160
  grub_uint8_t type;
 
161
  grub_uint8_t sal_used;
 
162
  grub_uint8_t attr;
 
163
  grub_uint8_t ar;
 
164
  grub_uint8_t attr_mask;
 
165
  grub_uint8_t mem_type;
 
166
  grub_uint8_t usage;
 
167
  grub_uint8_t unknown;
 
168
  grub_uint64_t addr;
 
169
  grub_uint64_t len;
 
170
  grub_uint64_t unknown2;
 
171
};
 
172
 
 
173
struct grub_efi_sal_system_table_platform_features
 
174
{
 
175
  grub_uint8_t type;
 
176
  grub_uint8_t flags;
 
177
  grub_uint8_t reserved[14];
 
178
};
 
179
 
 
180
struct grub_efi_sal_system_table_translation_register_descriptor
 
181
{
 
182
  grub_uint8_t type;
 
183
  grub_uint8_t register_type;
 
184
  grub_uint8_t register_number;
 
185
  grub_uint8_t reserved[5];
 
186
  grub_uint64_t addr;
 
187
  grub_uint64_t page_size;
 
188
  grub_uint64_t reserver;
 
189
};
 
190
 
 
191
struct grub_efi_sal_system_table_purge_translation_coherence
 
192
{
 
193
  grub_uint8_t type;
 
194
  grub_uint8_t reserved[3];  
 
195
  grub_uint32_t ndomains;
 
196
  grub_uint64_t coherence;
 
197
};
 
198
 
 
199
struct grub_efi_sal_system_table_ap_wakeup
 
200
{
 
201
  grub_uint8_t type;
 
202
  grub_uint8_t mechanism;
 
203
  grub_uint8_t reserved[6];
 
204
  grub_uint64_t vector;
 
205
};
 
206
 
 
207
enum
 
208
  {
 
209
    GRUB_EFI_SAL_SYSTEM_TABLE_PLATFORM_FEATURE_BUSLOCK = 1,
 
210
    GRUB_EFI_SAL_SYSTEM_TABLE_PLATFORM_FEATURE_IRQREDIRECT = 2,
 
211
    GRUB_EFI_SAL_SYSTEM_TABLE_PLATFORM_FEATURE_IPIREDIRECT = 4,
 
212
    GRUB_EFI_SAL_SYSTEM_TABLE_PLATFORM_FEATURE_ITCDRIFT = 8,
 
213
  };
 
214
 
112
215
/* Enumerations.  */
113
216
enum grub_efi_timer_delay
114
217
  {
184
287
typedef grub_uint8_t grub_efi_char8_t;
185
288
typedef grub_uint16_t grub_efi_char16_t;
186
289
 
 
290
#define PRIxGRUB_EFI_UINTN_T "lx"
 
291
 
187
292
typedef grub_efi_intn_t grub_efi_status_t;
188
293
 
189
294
#define GRUB_EFI_ERROR_CODE(value)      \