efi.h: Add struct definition for boot time services
authorMatt Fleming <matt.fleming@intel.com>
Tue, 15 Nov 2011 12:56:32 +0000 (12:56 +0000)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 10 Dec 2011 01:35:40 +0000 (17:35 -0800)
With the forthcoming efi stub code we're gonna need to access boot
time services so let's define a struct so we can access the functions.

Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Link: http://lkml.kernel.org/r/1318848017-12301-1-git-send-email-matt@console-pimps.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
include/linux/efi.h

index 2362a0bc7f0dbfe0c4cb7df2e31ef769ebcbdacc..9547597ad6befa628a3f4587f4289a355c8eef95 100644 (file)
@@ -138,6 +138,57 @@ typedef struct {
        u8 sets_to_zero;
 } efi_time_cap_t;
 
+/*
+ * EFI Boot Services table
+ */
+typedef struct {
+       efi_table_hdr_t hdr;
+       void *raise_tpl;
+       void *restore_tpl;
+       void *allocate_pages;
+       void *free_pages;
+       void *get_memory_map;
+       void *allocate_pool;
+       void *free_pool;
+       void *create_event;
+       void *set_timer;
+       void *wait_for_event;
+       void *signal_event;
+       void *close_event;
+       void *check_event;
+       void *install_protocol_interface;
+       void *reinstall_protocol_interface;
+       void *uninstall_protocol_interface;
+       void *handle_protocol;
+       void *__reserved;
+       void *register_protocol_notify;
+       void *locate_handle;
+       void *locate_device_path;
+       void *install_configuration_table;
+       void *load_image;
+       void *start_image;
+       void *exit;
+       void *unload_image;
+       void *exit_boot_services;
+       void *get_next_monotonic_count;
+       void *stall;
+       void *set_watchdog_timer;
+       void *connect_controller;
+       void *disconnect_controller;
+       void *open_protocol;
+       void *close_protocol;
+       void *open_protocol_information;
+       void *protocols_per_handle;
+       void *locate_handle_buffer;
+       void *locate_protocol;
+       void *install_multiple_protocol_interfaces;
+       void *uninstall_multiple_protocol_interfaces;
+       void *calculate_crc32;
+       void *copy_mem;
+       void *set_mem;
+       void *create_event_ex;
+} efi_boot_services_t;
+
 /*
  * Types and defines for EFI ResetSystem
  */
@@ -261,7 +312,7 @@ typedef struct {
        unsigned long stderr_handle;
        unsigned long stderr;
        efi_runtime_services_t *runtime;
-       unsigned long boottime;
+       efi_boot_services_t *boottime;
        unsigned long nr_tables;
        unsigned long tables;
 } efi_system_table_t;