You can import this changeset into BK by piping this whole message to '| bk receive [path to repository]' or apply the patch as usual. =================================================================== ChangeSet@1.821, 2002-08-14 16:25:09-05:00, Matt_Domsch@dell.com Move include/asm-ia64/efi.h to include/linux/efi.h This is required now that non-ia64 architectures are using EFI code, particularly the EFI GUID Partition Table (GPT) scheme for large disks. b/arch/ia64/kernel/acpi.c | 2 b/arch/ia64/kernel/efi.c | 2 b/arch/ia64/kernel/efivars.c | 2 b/arch/ia64/kernel/fw-emu.c | 2 b/arch/ia64/kernel/palinfo.c | 2 b/arch/ia64/kernel/process.c | 2 b/arch/ia64/kernel/setup.c | 2 b/arch/ia64/kernel/smp.c | 2 b/arch/ia64/kernel/smpboot.c | 2 b/arch/ia64/kernel/time.c | 2 b/arch/ia64/mm/init.c | 2 b/arch/ia64/sn/fakeprom/fpmem.c | 2 b/arch/ia64/sn/fakeprom/fw-emu.c | 2 b/arch/ia64/sn/io/efi-rtc.c | 2 b/arch/ia64/sn/kernel/llsc4.c | 2 b/drivers/acpi/os.c | 2 b/drivers/char/efirtc.c | 2 b/drivers/char/hcdp_serial.c | 2 b/fs/partitions/efi.h | 6 b/include/asm-ia64/sal.h | 2 b/include/linux/efi.h | 280 +++++++++++++++++++++++++++++++++++++++ include/asm-ia64/efi.h | 280 --------------------------------------- 22 files changed, 300 insertions, 304 deletions diff -Nru a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c --- a/arch/ia64/kernel/acpi.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/acpi.c Wed Aug 14 16:25:52 2002 @@ -23,13 +23,13 @@ #include #include #include +#include #ifdef CONFIG_SERIAL_ACPI #include #endif #include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c --- a/arch/ia64/kernel/efi.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/efi.c Wed Aug 14 16:25:52 2002 @@ -24,8 +24,8 @@ #include #include #include +#include -#include #include #include #include diff -Nru a/arch/ia64/kernel/efivars.c b/arch/ia64/kernel/efivars.c --- a/arch/ia64/kernel/efivars.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/efivars.c Wed Aug 14 16:25:52 2002 @@ -65,8 +65,8 @@ #include #include #include +#include -#include #include MODULE_AUTHOR("Matt Domsch "); diff -Nru a/arch/ia64/kernel/fw-emu.c b/arch/ia64/kernel/fw-emu.c --- a/arch/ia64/kernel/fw-emu.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/fw-emu.c Wed Aug 14 16:25:52 2002 @@ -13,7 +13,7 @@ # include #endif -#include +#include #include #include #include diff -Nru a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c --- a/arch/ia64/kernel/palinfo.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/palinfo.c Wed Aug 14 16:25:52 2002 @@ -21,10 +21,10 @@ #include #include #include +#include #include #include -#include #include #include #ifdef CONFIG_SMP diff -Nru a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c --- a/arch/ia64/kernel/process.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/process.c Wed Aug 14 16:25:52 2002 @@ -18,9 +18,9 @@ #include #include #include +#include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c --- a/arch/ia64/kernel/setup.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/setup.c Wed Aug 14 16:25:52 2002 @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -36,7 +37,6 @@ #include #include #include -#include #include #include diff -Nru a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c --- a/arch/ia64/kernel/smp.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/smp.c Wed Aug 14 16:25:52 2002 @@ -31,12 +31,12 @@ #include #include #include +#include #include #include #include #include -#include #include #include diff -Nru a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c --- a/arch/ia64/kernel/smpboot.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/smpboot.c Wed Aug 14 16:25:52 2002 @@ -23,13 +23,13 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include diff -Nru a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c --- a/arch/ia64/kernel/time.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/kernel/time.c Wed Aug 14 16:25:52 2002 @@ -15,9 +15,9 @@ #include #include #include +#include #include -#include #include #include #include diff -Nru a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c --- a/arch/ia64/mm/init.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/mm/init.c Wed Aug 14 16:25:52 2002 @@ -13,10 +13,10 @@ #include #include #include +#include #include #include -#include #include #include #include diff -Nru a/arch/ia64/sn/fakeprom/fpmem.c b/arch/ia64/sn/fakeprom/fpmem.c --- a/arch/ia64/sn/fakeprom/fpmem.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/sn/fakeprom/fpmem.c Wed Aug 14 16:25:52 2002 @@ -18,7 +18,7 @@ */ #include -#include +#include #include "fpmem.h" /* diff -Nru a/arch/ia64/sn/fakeprom/fw-emu.c b/arch/ia64/sn/fakeprom/fw-emu.c --- a/arch/ia64/sn/fakeprom/fw-emu.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/sn/fakeprom/fw-emu.c Wed Aug 14 16:25:52 2002 @@ -36,7 +36,7 @@ * http://oss.sgi.com/projects/GenInfo/NoticeExplan */ #include -#include +#include #include #include #include diff -Nru a/arch/ia64/sn/io/efi-rtc.c b/arch/ia64/sn/io/efi-rtc.c --- a/arch/ia64/sn/io/efi-rtc.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/sn/io/efi-rtc.c Wed Aug 14 16:25:52 2002 @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include /* diff -Nru a/arch/ia64/sn/kernel/llsc4.c b/arch/ia64/sn/kernel/llsc4.c --- a/arch/ia64/sn/kernel/llsc4.c Wed Aug 14 16:25:52 2002 +++ b/arch/ia64/sn/kernel/llsc4.c Wed Aug 14 16:25:52 2002 @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff -Nru a/drivers/acpi/os.c b/drivers/acpi/os.c --- a/drivers/acpi/os.c Wed Aug 14 16:25:52 2002 +++ b/drivers/acpi/os.c Wed Aug 14 16:25:52 2002 @@ -42,7 +42,7 @@ #include #ifdef CONFIG_ACPI_EFI -#include +#include #endif #ifdef _IA64 diff -Nru a/drivers/char/efirtc.c b/drivers/char/efirtc.c --- a/drivers/char/efirtc.c Wed Aug 14 16:25:52 2002 +++ b/drivers/char/efirtc.c Wed Aug 14 16:25:52 2002 @@ -35,8 +35,8 @@ #include #include #include +#include -#include #include #include diff -Nru a/drivers/char/hcdp_serial.c b/drivers/char/hcdp_serial.c --- a/drivers/char/hcdp_serial.c Wed Aug 14 16:25:52 2002 +++ b/drivers/char/hcdp_serial.c Wed Aug 14 16:25:52 2002 @@ -15,9 +15,9 @@ #include #include #include +#include #include #include -#include #include #undef SERIAL_DEBUG_HCDP diff -Nru a/fs/partitions/efi.h b/fs/partitions/efi.h --- a/fs/partitions/efi.h Wed Aug 14 16:25:52 2002 +++ b/fs/partitions/efi.h Wed Aug 14 16:25:52 2002 @@ -33,11 +33,7 @@ #include #include #include -/* - * Yes, specifying asm-ia64 is ugly, but this lets it build on - * other platforms too, until efi.h moves to include/linux. - */ -#include +#include #define MSDOS_MBR_SIGNATURE 0xaa55 #define EFI_PMBR_OSTYPE_EFI 0xEF diff -Nru a/include/asm-ia64/efi.h b/include/asm-ia64/efi.h --- a/include/asm-ia64/efi.h Wed Aug 14 16:25:52 2002 +++ /dev/null Wed Dec 31 16:00:00 1969 @@ -1,280 +0,0 @@ -#ifndef _ASM_IA64_EFI_H -#define _ASM_IA64_EFI_H - -/* - * Extensible Firmware Interface - * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999 - * - * Copyright (C) 1999 VA Linux Systems - * Copyright (C) 1999 Walt Drummond - * Copyright (C) 1999 Hewlett-Packard Co. - * Copyright (C) 1999 David Mosberger-Tang - * Copyright (C) 1999 Stephane Eranian - */ -#include -#include -#include -#include -#include - -#include -#include - -#define EFI_SUCCESS 0 -#define EFI_LOAD_ERROR (1L | (1L << 63)) -#define EFI_INVALID_PARAMETER (2L | (1L << 63)) -#define EFI_UNSUPPORTED (3L | (1L << 63)) -#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63)) -#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63)) -#define EFI_NOT_FOUND (14L | (1L << 63)) - -typedef unsigned long efi_status_t; -typedef u8 efi_bool_t; -typedef u16 efi_char16_t; /* UNICODE character */ - - -typedef struct { - u8 b[16]; -} efi_guid_t; - -#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \ -((efi_guid_t) \ -{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ - (b) & 0xff, ((b) >> 8) & 0xff, \ - (c) & 0xff, ((c) >> 8) & 0xff, \ - (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) - -/* - * Generic EFI table header - */ -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; - -/* - * Memory map descriptor: - */ - -/* Memory types: */ -#define EFI_RESERVED_TYPE 0 -#define EFI_LOADER_CODE 1 -#define EFI_LOADER_DATA 2 -#define EFI_BOOT_SERVICES_CODE 3 -#define EFI_BOOT_SERVICES_DATA 4 -#define EFI_RUNTIME_SERVICES_CODE 5 -#define EFI_RUNTIME_SERVICES_DATA 6 -#define EFI_CONVENTIONAL_MEMORY 7 -#define EFI_UNUSABLE_MEMORY 8 -#define EFI_ACPI_RECLAIM_MEMORY 9 -#define EFI_ACPI_MEMORY_NVS 10 -#define EFI_MEMORY_MAPPED_IO 11 -#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12 -#define EFI_PAL_CODE 13 -#define EFI_MAX_MEMORY_TYPE 14 - -/* Attribute values: */ -#define EFI_MEMORY_UC 0x0000000000000001 /* uncached */ -#define EFI_MEMORY_WC 0x0000000000000002 /* write-coalescing */ -#define EFI_MEMORY_WT 0x0000000000000004 /* write-through */ -#define EFI_MEMORY_WB 0x0000000000000008 /* write-back */ -#define EFI_MEMORY_WP 0x0000000000001000 /* write-protect */ -#define EFI_MEMORY_RP 0x0000000000002000 /* read-protect */ -#define EFI_MEMORY_XP 0x0000000000004000 /* execute-protect */ -#define EFI_MEMORY_RUNTIME 0x8000000000000000 /* range requires runtime mapping */ -#define EFI_MEMORY_DESCRIPTOR_VERSION 1 - -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; - -typedef int efi_freemem_callback_t (u64 start, u64 end, void *arg); - -/* - * Types and defines for Time Services - */ -#define EFI_TIME_ADJUST_DAYLIGHT 0x1 -#define EFI_TIME_IN_DAYLIGHT 0x2 -#define EFI_UNSPECIFIED_TIMEZONE 0x07ff - -typedef struct { - u16 year; - u8 month; - u8 day; - u8 hour; - u8 minute; - u8 second; - u8 pad1; - u32 nanosecond; - s16 timezone; - u8 daylight; - u8 pad2; -} efi_time_t; - -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; - -/* - * Types and defines for EFI ResetSystem - */ -#define EFI_RESET_COLD 0 -#define EFI_RESET_WARM 1 - -/* - * EFI Runtime Services table - */ -#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552 -#define EFI_RUNTIME_SERVICES_REVISION 0x00010000 - -typedef struct { - efi_table_hdr_t hdr; - u64 get_time; - u64 set_time; - u64 get_wakeup_time; - u64 set_wakeup_time; - u64 set_virtual_address_map; - u64 convert_pointer; - u64 get_variable; - u64 get_next_variable; - u64 set_variable; - u64 get_next_high_mono_count; - u64 reset_system; -} efi_runtime_services_t; - -typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc); -typedef efi_status_t efi_set_time_t (efi_time_t *tm); -typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending, - efi_time_t *tm); -typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm); -typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr, - unsigned long *data_size, void *data); -typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name, - efi_guid_t *vendor); -typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 attr, - unsigned long data_size, void *data); -typedef efi_status_t efi_get_next_high_mono_count_t (u64 *count); -typedef void efi_reset_system_t (int reset_type, efi_status_t status, - unsigned long data_size, efi_char16_t *data); - -/* - * EFI Configuration Table and GUID definitions - */ -#define NULL_GUID \ - EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) - -#define MPS_TABLE_GUID \ - EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define ACPI_TABLE_GUID \ - EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define ACPI_20_TABLE_GUID \ - EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 ) - -#define SMBIOS_TABLE_GUID \ - EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define SAL_SYSTEM_TABLE_GUID \ - EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) - -#define HCDP_TABLE_GUID \ - ((efi_guid_t) { 0xf951938d, 0x620b, 0x42ef, {0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98}}) - -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_t; - -#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 -#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00) - -typedef struct { - efi_table_hdr_t hdr; - u64 fw_vendor; /* physical addr of CHAR16 vendor string */ - u32 fw_revision; - u64 con_in_handle; - u64 con_in; - u64 con_out_handle; - u64 con_out; - u64 stderr_handle; - u64 stderr; - u64 runtime; - u64 boottime; - u64 nr_tables; - u64 tables; -} efi_system_table_t; - -/* - * All runtime access to EFI goes through this structure: - */ -extern struct efi { - efi_system_table_t *systab; /* EFI system table */ - void *mps; /* MPS table */ - void *acpi; /* ACPI table (IA64 ext 0.71) */ - void *acpi20; /* ACPI table (ACPI 2.0) */ - void *smbios; /* SM BIOS table */ - void *sal_systab; /* SAL system table */ - void *hcdp; /* HCDP table */ - void *boot_info; /* boot info table */ - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; -} efi; - -static inline int -efi_guidcmp (efi_guid_t left, efi_guid_t right) -{ - return memcmp(&left, &right, sizeof (efi_guid_t)); -} - -static inline char * -efi_guid_unparse(efi_guid_t *guid, char *out) -{ - sprintf(out, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - guid->b[0], guid->b[1], guid->b[2], guid->b[3], - guid->b[4], guid->b[5], guid->b[6], guid->b[7], - guid->b[8], guid->b[9], guid->b[10], guid->b[11], - guid->b[12], guid->b[13], guid->b[14], guid->b[15]); - return out; -} - -extern void efi_init (void); -extern void efi_map_pal_code (void); -extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); -extern void efi_gettimeofday (struct timeval *tv); -extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ -extern u64 efi_get_iobase (void); - -/* - * Variable Attributes - */ -#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 -#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 -#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 - - -/* - * efi_dir is allocated in arch/ia64/kernel/efi.c. - */ -#ifdef CONFIG_PROC_FS -extern struct proc_dir_entry *efi_dir; -#endif - -#endif /* _ASM_IA64_EFI_H */ diff -Nru a/include/asm-ia64/sal.h b/include/asm-ia64/sal.h --- a/include/asm-ia64/sal.h Wed Aug 14 16:25:52 2002 +++ b/include/asm-ia64/sal.h Wed Aug 14 16:25:52 2002 @@ -24,9 +24,9 @@ */ #include +#include #include -#include #include #include diff -Nru a/include/linux/efi.h b/include/linux/efi.h --- /dev/null Wed Dec 31 16:00:00 1969 +++ b/include/linux/efi.h Wed Aug 14 16:25:52 2002 @@ -0,0 +1,280 @@ +#ifndef _LINUX_EFI_H +#define _LINUX_EFI_H + +/* + * Extensible Firmware Interface + * Based on 'Extensible Firmware Interface Specification' version 0.9, April 30, 1999 + * + * Copyright (C) 1999 VA Linux Systems + * Copyright (C) 1999 Walt Drummond + * Copyright (C) 1999 Hewlett-Packard Co. + * Copyright (C) 1999 David Mosberger-Tang + * Copyright (C) 1999 Stephane Eranian + */ +#include +#include +#include +#include +#include + +#include +#include + +#define EFI_SUCCESS 0 +#define EFI_LOAD_ERROR (1L | (1L << 63)) +#define EFI_INVALID_PARAMETER (2L | (1L << 63)) +#define EFI_UNSUPPORTED (3L | (1L << 63)) +#define EFI_BAD_BUFFER_SIZE (4L | (1L << 63)) +#define EFI_BUFFER_TOO_SMALL (5L | (1L << 63)) +#define EFI_NOT_FOUND (14L | (1L << 63)) + +typedef unsigned long efi_status_t; +typedef u8 efi_bool_t; +typedef u16 efi_char16_t; /* UNICODE character */ + + +typedef struct { + u8 b[16]; +} efi_guid_t; + +#define EFI_GUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \ +((efi_guid_t) \ +{{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ + (b) & 0xff, ((b) >> 8) & 0xff, \ + (c) & 0xff, ((c) >> 8) & 0xff, \ + (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) + +/* + * Generic EFI table header + */ +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +/* + * Memory map descriptor: + */ + +/* Memory types: */ +#define EFI_RESERVED_TYPE 0 +#define EFI_LOADER_CODE 1 +#define EFI_LOADER_DATA 2 +#define EFI_BOOT_SERVICES_CODE 3 +#define EFI_BOOT_SERVICES_DATA 4 +#define EFI_RUNTIME_SERVICES_CODE 5 +#define EFI_RUNTIME_SERVICES_DATA 6 +#define EFI_CONVENTIONAL_MEMORY 7 +#define EFI_UNUSABLE_MEMORY 8 +#define EFI_ACPI_RECLAIM_MEMORY 9 +#define EFI_ACPI_MEMORY_NVS 10 +#define EFI_MEMORY_MAPPED_IO 11 +#define EFI_MEMORY_MAPPED_IO_PORT_SPACE 12 +#define EFI_PAL_CODE 13 +#define EFI_MAX_MEMORY_TYPE 14 + +/* Attribute values: */ +#define EFI_MEMORY_UC 0x0000000000000001 /* uncached */ +#define EFI_MEMORY_WC 0x0000000000000002 /* write-coalescing */ +#define EFI_MEMORY_WT 0x0000000000000004 /* write-through */ +#define EFI_MEMORY_WB 0x0000000000000008 /* write-back */ +#define EFI_MEMORY_WP 0x0000000000001000 /* write-protect */ +#define EFI_MEMORY_RP 0x0000000000002000 /* read-protect */ +#define EFI_MEMORY_XP 0x0000000000004000 /* execute-protect */ +#define EFI_MEMORY_RUNTIME 0x8000000000000000 /* range requires runtime mapping */ +#define EFI_MEMORY_DESCRIPTOR_VERSION 1 + +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +typedef int efi_freemem_callback_t (u64 start, u64 end, void *arg); + +/* + * Types and defines for Time Services + */ +#define EFI_TIME_ADJUST_DAYLIGHT 0x1 +#define EFI_TIME_IN_DAYLIGHT 0x2 +#define EFI_UNSPECIFIED_TIMEZONE 0x07ff + +typedef struct { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 minute; + u8 second; + u8 pad1; + u32 nanosecond; + s16 timezone; + u8 daylight; + u8 pad2; +} efi_time_t; + +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; + +/* + * Types and defines for EFI ResetSystem + */ +#define EFI_RESET_COLD 0 +#define EFI_RESET_WARM 1 + +/* + * EFI Runtime Services table + */ +#define EFI_RUNTIME_SERVICES_SIGNATURE 0x5652453544e5552 +#define EFI_RUNTIME_SERVICES_REVISION 0x00010000 + +typedef struct { + efi_table_hdr_t hdr; + u64 get_time; + u64 set_time; + u64 get_wakeup_time; + u64 set_wakeup_time; + u64 set_virtual_address_map; + u64 convert_pointer; + u64 get_variable; + u64 get_next_variable; + u64 set_variable; + u64 get_next_high_mono_count; + u64 reset_system; +} efi_runtime_services_t; + +typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc); +typedef efi_status_t efi_set_time_t (efi_time_t *tm); +typedef efi_status_t efi_get_wakeup_time_t (efi_bool_t *enabled, efi_bool_t *pending, + efi_time_t *tm); +typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm); +typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr, + unsigned long *data_size, void *data); +typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name, + efi_guid_t *vendor); +typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 attr, + unsigned long data_size, void *data); +typedef efi_status_t efi_get_next_high_mono_count_t (u64 *count); +typedef void efi_reset_system_t (int reset_type, efi_status_t status, + unsigned long data_size, efi_char16_t *data); + +/* + * EFI Configuration Table and GUID definitions + */ +#define NULL_GUID \ + EFI_GUID( 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) + +#define MPS_TABLE_GUID \ + EFI_GUID( 0xeb9d2d2f, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define ACPI_TABLE_GUID \ + EFI_GUID( 0xeb9d2d30, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define ACPI_20_TABLE_GUID \ + EFI_GUID( 0x8868e871, 0xe4f1, 0x11d3, 0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 ) + +#define SMBIOS_TABLE_GUID \ + EFI_GUID( 0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define SAL_SYSTEM_TABLE_GUID \ + EFI_GUID( 0xeb9d2d32, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d ) + +#define HCDP_TABLE_GUID \ + ((efi_guid_t) { 0xf951938d, 0x620b, 0x42ef, {0x82, 0x79, 0xa8, 0x4b, 0x79, 0x61, 0x78, 0x98}}) + +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_t; + +#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249 +#define EFI_SYSTEM_TABLE_REVISION ((1 << 16) | 00) + +typedef struct { + efi_table_hdr_t hdr; + u64 fw_vendor; /* physical addr of CHAR16 vendor string */ + u32 fw_revision; + u64 con_in_handle; + u64 con_in; + u64 con_out_handle; + u64 con_out; + u64 stderr_handle; + u64 stderr; + u64 runtime; + u64 boottime; + u64 nr_tables; + u64 tables; +} efi_system_table_t; + +/* + * All runtime access to EFI goes through this structure: + */ +extern struct efi { + efi_system_table_t *systab; /* EFI system table */ + void *mps; /* MPS table */ + void *acpi; /* ACPI table (IA64 ext 0.71) */ + void *acpi20; /* ACPI table (ACPI 2.0) */ + void *smbios; /* SM BIOS table */ + void *sal_systab; /* SAL system table */ + void *hcdp; /* HCDP table */ + void *boot_info; /* boot info table */ + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; +} efi; + +static inline int +efi_guidcmp (efi_guid_t left, efi_guid_t right) +{ + return memcmp(&left, &right, sizeof (efi_guid_t)); +} + +static inline char * +efi_guid_unparse(efi_guid_t *guid, char *out) +{ + sprintf(out, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + guid->b[0], guid->b[1], guid->b[2], guid->b[3], + guid->b[4], guid->b[5], guid->b[6], guid->b[7], + guid->b[8], guid->b[9], guid->b[10], guid->b[11], + guid->b[12], guid->b[13], guid->b[14], guid->b[15]); + return out; +} + +extern void efi_init (void); +extern void efi_map_pal_code (void); +extern void efi_memmap_walk (efi_freemem_callback_t callback, void *arg); +extern void efi_gettimeofday (struct timeval *tv); +extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if possible */ +extern u64 efi_get_iobase (void); + +/* + * Variable Attributes + */ +#define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 +#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 +#define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 + + +/* + * efi_dir is allocated in arch/ia64/kernel/efi.c. + */ +#ifdef CONFIG_PROC_FS +extern struct proc_dir_entry *efi_dir; +#endif + +#endif /* _LINUX_EFI_H */ =================================================================== This BitKeeper patch contains the following changesets: 1.821 ## Wrapped with gzip_uu ## begin 664 bkpatch645 M'XL(`.#*6CT``]U;:V_;1A;]'/T*`OZRVZVD>3^,3>"V3E,C;3?()L!^,T;D MT"(DD2I).4W!'[^7I"51$A\B$Q>Q$T%Q*/GHZIYS'S-W>.%\3&Q\^>(WDZ:W MU]$J<>>C"^>7*$DO7WAVN9RXT0HNO(\BN#"=1RL[77G%VZ:SQ709A)L_QV3" MQM8/YB-XXSN3NG/GWL;)Y0L\H;LKZ>>UO7SQ_O6;C[_^\'XT>OG2^6ENPCO[ M7YLZ+U^.TBB^-TLON3+I?!F%DS0V8;*RJ!NUF:>/D9?MT6+[[Y>',-?,(K:1"%S@??BG`VZQ*^OX4>S`[]Q9QPN213(9O76T9FKT;D_W:-SSSVB$#!J] MZO!Q_J6FA8\6-@[M#=FK^"OZ[FZU/?SUUO?0OY/0"0AZ_((.<0KI#.L-)$ M9=JW0AKA@]M0(I*XWAS5$(N3&X-Q6\)-Q"+I>)R[:`%%," M88!HQCB5*(-X]A0AL-)OH+<9K\*K MHDSN]'>>\R"1WIOXP'D*280RP@@2&?6,5:Z?!XIBGA%G.N\(M4(Q$4+V"Y$@ MRN'&E72_#Q`JF."94$H;5WN&"ZLA+9X1(*>@U2R-Q(!DXW\:V]7F5(61$Z$Y`/*G$TW-85.`)S*?&)]!E0;XBM?T7.I/L"L M$HT1Z6$A<.)#R*W@>657QS:2##&J949]I+6KM.<:@K)O%L[E1]2 M1&0^]5P&?9MKN4!<]HCCF@3(%!>#>JP9+/AJBC%4$09!#'WES)]A2S5TT;/S M^ZPJZMY*097,>35+$UX%<13>F=1.DD]@HS63HKV=1/'=9+/(_&2ZWJX_DH.> M%T$WB2"E9%QAS3,*86&DDJ[/#?0YIM[&9KA*"TUX=W=?%QVU20;"0RA8@2@* M>=#,H`8KAB%Q]PJ/AE0#F98-R(:YMNO$B+G*7"$\+&!-"AVL,O;73Q\NO/ORL>_*C30O*3(I?`(*YLAF`+# MJI"(^T_/@Z MZ"S#6A$]M"I\2Y(HUE.-DCCRPI#:@#F0?E,\M]2&EAV2GIH8LFOSM?!9!KT" M9L]`%^4V5)LN#OTP1!E%8;@A'5U#W>9*]P!I^!;/:&&"JW2-)_%F'H\W83"> M1>Y\LYIXM@650Z_(N:0:%,9XV2_R_@IXG,G2#YYGO99$#]UP<)=K(1_[/'AX M"4&0ZZ#8MCK209T;AA0+EM>##K/J.X=RN=$M@R]:^IR=%6JPMQE!P1J(453H M03SIC%`LY;IZA](%0[1`6@K$-24M+>0@'?38CJE;1;3A/:Q*,,H0$U@^@[ZQ MV%,ZHVTR(#R.^U&]QK87*"#)F`0%'@A%$QM"A\0THH][:[ MI+#UPJ!V413M8HLF:M6PF_L-D$//263?LG`$7ZD,%!+,,Z@,Q62U2Q,[+PQ* M$;0M1(^[:!8"5H>3SM24N@'#-VB>#!"4,D0-LD0$\WFZK' M?X8(X/R#2+V:AD-<0BC/=S*14/P9%(?R6%6G"%9#)=!6&5HE4$XFA\F@SZRT M;V4X@M]7!D$%I<^@,I3#WS,44;KA;UQ,EJ<]!TBBS\G37JGA"!AR@\0JP_"3 M>@:YH3Q'VZ6$T@=_QUAJ=_BMCP1Z'L`KI]++/Z/X;K.8;!:;S786W0C)L`)/ M$ZPSH)^19Y`"RL.$C<3OOO\@TMMB']=.H(Z/(?6A?]C9J#X#A_I#4MNZH"$; MT(=V\6G/JX60_/D9 MU(ORN--Y"OF"+:BB;;PIGL\XS;([*-BMBH$'%=LZAF;(AYU'*JDN=Q[UD^:^ M/';9<(IE]^V'T,V*`37K&%#7WN%R/N4#[K3I2`$MR`^1CVD&&E!EP\">-OOY MG4-M1YBV#ABTAFQK$W=KR!K#NNG_DGO`ZD\MM2&6)Y8HHQF%=I'69'QX<-[* M.WJ,(;3KO+>A6=G+)N+'KYJ()T*?S)[JWMJ?]W;_UM]CAP7G66G3D"Z<.F/Z M#055<:_@H_CV&CL$NBQXN@C\T+.^<_OKS>\?_W?[^N>;VU]&%W`E".WAQ6NB MR@,AQ3\7-O0"WYE^=_`FY[OI03`>WC0W(!Y[W+YW9CQ6$/?Q"$QA]!RV=(O; F$!LD<^B"KS\*+C+Q]O9R=V[=1;)9O13&%9ZOR>C_>*/@:=D^```` ` end