public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
* [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
@ 2002-08-13 22:38 Matt_Domsch
  2002-08-13 22:51 ` David Mosberger
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Matt_Domsch @ 2002-08-13 22:38 UTC (permalink / raw)
  To: linux-ia64

David, any further thoughts on moving include/asm-ia64/efi.h to linux/efi.h?
Now that EFI GUID Partition Tables are part of the stock 2.4 and 2.5 kernel
series, and can be (and will be!) used on x86 platforms too, several people
have commented on l-k this week that it doesn't make sense to keep it in
asm-ia64.  I agree.  There's also no ia64-specific code in there.

I'd be happy to work up a patch to move it if there was a chance it would be
accepted and submitted to Marcelo and Linus.

Thanks,
Matt

--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
#1 US Linux Server provider for 2001 and Q1/2002! (IDC May 2002)





^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
  2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
@ 2002-08-13 22:51 ` David Mosberger
  2002-08-14 19:42 ` Matt_Domsch
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: David Mosberger @ 2002-08-13 22:51 UTC (permalink / raw)
  To: linux-ia64

>>>>> On Tue, 13 Aug 2002 17:38:11 -0500, Matt_Domsch@Dell.com said:

  Matt> David, any further thoughts on moving include/asm-ia64/efi.h
  Matt> to linux/efi.h?  Now that EFI GUID Partition Tables are part
  Matt> of the stock 2.4 and 2.5 kernel series, and can be (and will
  Matt> be!) used on x86 platforms too, several people have commented
  Matt> on l-k this week that it doesn't make sense to keep it in
  Matt> asm-ia64.  I agree.  There's also no ia64-specific code in
  Matt> there.

  Matt> I'd be happy to work up a patch to move it if there was a
  Matt> chance it would be accepted and submitted to Marcelo and
  Matt> Linus.

Oh, I'm obviously totally in favor of that, too.  It's convincing
Marcelo/Linus which may (or may not) be the hard part.  The best
argument for getting this into the linux directory would be if you can
say that x86 machine XYZ will be shipping with EFI.  But even short of
that, the fact that we already have the partition support there may be
sufficient.  So, I'd say: go for it.

	--david


^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
  2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
  2002-08-13 22:51 ` David Mosberger
@ 2002-08-14 19:42 ` Matt_Domsch
  2002-08-14 20:33 ` Matt_Domsch
  2002-08-15 16:55 ` Matt_Domsch
  3 siblings, 0 replies; 5+ messages in thread
From: Matt_Domsch @ 2002-08-14 19:42 UTC (permalink / raw)
  To: linux-ia64

>   Matt> David, any further thoughts on moving include/asm-ia64/efi.h
>   Matt> to linux/efi.h?
> 
> Oh, I'm obviously totally in favor of that, too.

David, please download and apply
http://domsch.com/linux/patches/ia64/linux-2.5-efihmove.cset
a BK patch against Linus' current BK tree, which also applies cleanly
against your 2.5.30 test patch posted two days ago.  This moves all
instances of #include <asm{"",-ia64}/efi.h> to <linux/efi.h>.

ChangeSet@1.504, 2002-08-13 22:24:31-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/hp/common/sba_iommu.c |    2 
 b/arch/ia64/hp/zx1/hpzx1_misc.c   |    2 
 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/osl.c              |    2 
 b/drivers/char/efirtc.c           |    2 
 b/fs/partitions/efi.h             |    6 
 b/include/asm-ia64/sal.h          |    2 
 b/include/linux/efi.h             |  284
++++++++++++++++++++++++++++++++++++++
 include/asm-ia64/efi.h            |  284
--------------------------------------
 23 files changed, 305 insertions, 309 deletions


I was able to make a default ia64 config compile (after removing the video
stuff from .config), and the patch is very straightforward.  Please apply,
and forward to Linus as part of your 2.5.x merge.  I'll post a similar patch
against 2.4.x current BK tree soon as I have a moment to make it.

Thanks,
Matt


--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
#1 US Linux Server provider for 2001 and Q1/2002! (IDC May 2002)



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
  2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
  2002-08-13 22:51 ` David Mosberger
  2002-08-14 19:42 ` Matt_Domsch
@ 2002-08-14 20:33 ` Matt_Domsch
  2002-08-15 16:55 ` Matt_Domsch
  3 siblings, 0 replies; 5+ messages in thread
From: Matt_Domsch @ 2002-08-14 20:33 UTC (permalink / raw)
  To: linux-ia64

> David, please download and apply
> http://domsch.com/linux/patches/ia64/linux-2.5-efihmove.cset
> a BK patch against Linus' current BK tree, which also applies cleanly
> against your 2.5.30 test patch posted two days ago.  This moves all
> instances of #include <asm{"",-ia64}/efi.h> to <linux/efi.h>.

And, please apply
http://domsch.com/linux/patches/ia64/linux-2.5-efihmove2.cset
which changes the #ifdef _ASM_IA64_EFI_H to _LINUX_EFI_H test.

 efi.h |    6 +++---
 1 files changed, 3 insertions, 3 deletions


diff -Nru a/include/linux/efi.h b/include/linux/efi.h
--- a/include/linux/efi.h	Wed Aug 14 15:30:48 2002
+++ b/include/linux/efi.h	Wed Aug 14 15:30:48 2002
@@ -1,5 +1,5 @@
-#ifndef _ASM_IA64_EFI_H
-#define _ASM_IA64_EFI_H
+#ifndef _LINUX_EFI_H
+#define _LINUX_EFI_H
 
 /*
  * Extensible Firmware Interface
@@ -281,4 +281,4 @@
 extern struct proc_dir_entry *efi_dir;
 #endif
 
-#endif /* _ASM_IA64_EFI_H */
+#endif /* _LINUX_EFI_H */


Thanks,
Matt

--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
#1 US Linux Server provider for 2001 and Q1/2002! (IDC May 2002)



^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ?
  2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
                   ` (2 preceding siblings ...)
  2002-08-14 20:33 ` Matt_Domsch
@ 2002-08-15 16:55 ` Matt_Domsch
  3 siblings, 0 replies; 5+ messages in thread
From: Matt_Domsch @ 2002-08-15 16:55 UTC (permalink / raw)
  To: linux-ia64

[-- Attachment #1: Type: text/plain, Size: 1970 bytes --]

> I'll post a similar patch against 2.4.x 
> current BK tree soon as I have a moment to make it.

David and Bjorn, three patches against Marcelo's current 2.4.x BK tree:

1)
http://domsch.com/linux/patches/gpt/linux-2.4-gpt-efiguidt.cset
has been in the IA64 port for a while.  This fixes the endianness issues
with the efi_guid_t type and adds the NULL_GUID definition needed to compile
the GPT code.

2)
http://domsch.com/linux/patches/ia64/linux-2.4-efihmove.cset
moves include/asm-ia64/efi.h to include/linux/efi.h similar to the 2.5
patches.  This is needed to allow the GPT code to compile on non-IA64
platforms too, necessary for the use of really big disks.

3)
http://domsch.com/linux/patches/gpt/linux-2.4-gpt-efiguidt-unparse.cset
has been the IA64 port for a while.  This fixes efi_guid_unparse for
endianness.


These need to be applied in the above order, as #1 touches efi.h,  #2
touches and moves efi.h, and #3 touches it then too.  You've got #1 and #3
already in your tree, but Marcelo and Alan don't have any of these three.
I've compiled this on x86 against BK-current building in GPT with no
troubles.


Because ia64 isn't sync'd with Marcelo ATM, on ia64 against
2.4.18-ia64-020722 then applying #2, one fixup to arch/ia64/kernel/acpi.c
needed, and by moving asm-ia64/efi.h to linux/efi.h, it works great.
Because acpi.c and efi.h changed in your patch since you've sync'd with
Marcelo, patch 2 above has these problems - easily fixed.  Patch attached
applies against 2.4.18-ia64-020722 accomplishes same as #2 patch above.

Please apply the attached patch to your local tree, and forward the three BK
patches above to Alan and Marcelo for inclusion in 2.4.x mainline.  Any
other syncs I leave up to you. :-)

Thanks,
Matt

--
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
#1 US Linux Server provider for 2001 and Q1/2002! (IDC May 2002)


[-- Attachment #2: linux-2.4.18-ia64-efihmove.patch --]
[-- Type: application/octet-stream, Size: 28361 bytes --]

diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/efi.c linux-2.4.18-efihmove/arch/ia64/kernel/efi.c
--- linux-2.4.18-ia64/arch/ia64/kernel/efi.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/efi.c	Wed Aug 14 17:10:15 2002
@@ -24,8 +24,8 @@
 #include <linux/types.h>
 #include <linux/time.h>
 #include <linux/proc_fs.h>
+#include <linux/efi.h>
 
-#include <asm/efi.h>
 #include <asm/io.h>
 #include <asm/kregs.h>
 #include <asm/pgtable.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/efivars.c linux-2.4.18-efihmove/arch/ia64/kernel/efivars.c
--- linux-2.4.18-ia64/arch/ia64/kernel/efivars.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/efivars.c	Wed Aug 14 17:10:15 2002
@@ -65,8 +65,8 @@
 #include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/smp.h>
+#include <linux/efi.h>
 
-#include <asm/efi.h>
 #include <asm/uaccess.h>
 
 MODULE_AUTHOR("Matt Domsch <Matt_Domsch@Dell.com>");
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/fw-emu.c linux-2.4.18-efihmove/arch/ia64/kernel/fw-emu.c
--- linux-2.4.18-ia64/arch/ia64/kernel/fw-emu.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/fw-emu.c	Wed Aug 14 17:10:15 2002
@@ -13,7 +13,7 @@
 # include <linux/pci.h>
 #endif
 
-#include <asm/efi.h>
+#include <linux/efi.h>
 #include <asm/io.h>
 #include <asm/pal.h>
 #include <asm/sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/palinfo.c linux-2.4.18-efihmove/arch/ia64/kernel/palinfo.c
--- linux-2.4.18-ia64/arch/ia64/kernel/palinfo.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/palinfo.c	Wed Aug 14 17:10:15 2002
@@ -21,10 +21,10 @@
 #include <linux/proc_fs.h>
 #include <linux/mm.h>
 #include <linux/module.h>
+#include <linux/efi.h>
 
 #include <asm/pal.h>
 #include <asm/sal.h>
-#include <asm/efi.h>
 #include <asm/page.h>
 #include <asm/processor.h>
 #ifdef CONFIG_SMP
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/process.c linux-2.4.18-efihmove/arch/ia64/kernel/process.c
--- linux-2.4.18-ia64/arch/ia64/kernel/process.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/process.c	Wed Aug 14 17:10:15 2002
@@ -18,9 +18,9 @@
 #include <linux/smp_lock.h>
 #include <linux/stddef.h>
 #include <linux/unistd.h>
+#include <linux/efi.h>
 
 #include <asm/delay.h>
-#include <asm/efi.h>
 #include <asm/perfmon.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/setup.c linux-2.4.18-efihmove/arch/ia64/kernel/setup.c
--- linux-2.4.18-ia64/arch/ia64/kernel/setup.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/setup.c	Wed Aug 14 17:10:15 2002
@@ -29,6 +29,7 @@
 #include <linux/string.h>
 #include <linux/threads.h>
 #include <linux/console.h>
+#include <linux/efi.h>
 
 #include <asm/ia32.h>
 #include <asm/page.h>
@@ -36,7 +37,6 @@
 #include <asm/processor.h>
 #include <asm/sal.h>
 #include <asm/system.h>
-#include <asm/efi.h>
 #include <asm/mca.h>
 #include <asm/smp.h>
 
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/smp.c linux-2.4.18-efihmove/arch/ia64/kernel/smp.c
--- linux-2.4.18-ia64/arch/ia64/kernel/smp.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/smp.c	Wed Aug 14 17:10:15 2002
@@ -31,12 +31,12 @@
 #include <linux/mm.h>
 #include <linux/delay.h>
 #include <linux/cache.h>
+#include <linux/efi.h>
 
 #include <asm/atomic.h>
 #include <asm/bitops.h>
 #include <asm/current.h>
 #include <asm/delay.h>
-#include <asm/efi.h>
 #include <asm/machvec.h>
 
 #include <asm/io.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/smpboot.c linux-2.4.18-efihmove/arch/ia64/kernel/smpboot.c
--- linux-2.4.18-ia64/arch/ia64/kernel/smpboot.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/smpboot.c	Wed Aug 14 17:10:15 2002
@@ -23,13 +23,13 @@
 #include <linux/smp.h>
 #include <linux/smp_lock.h>
 #include <linux/spinlock.h>
+#include <linux/efi.h>
 
 #include <asm/atomic.h>
 #include <asm/bitops.h>
 #include <asm/cache.h>
 #include <asm/current.h>
 #include <asm/delay.h>
-#include <asm/efi.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/machvec.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/kernel/time.c linux-2.4.18-efihmove/arch/ia64/kernel/time.c
--- linux-2.4.18-ia64/arch/ia64/kernel/time.c	Wed Aug 14 17:51:28 2002
+++ linux-2.4.18-efihmove/arch/ia64/kernel/time.c	Wed Aug 14 17:10:15 2002
@@ -15,9 +15,9 @@
 #include <linux/sched.h>
 #include <linux/time.h>
 #include <linux/interrupt.h>
+#include <linux/efi.h>
 
 #include <asm/delay.h>
-#include <asm/efi.h>
 #include <asm/hw_irq.h>
 #include <asm/ptrace.h>
 #include <asm/sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/mm/init.c linux-2.4.18-efihmove/arch/ia64/mm/init.c
--- linux-2.4.18-ia64/arch/ia64/mm/init.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/mm/init.c	Wed Aug 14 17:10:15 2002
@@ -14,10 +14,10 @@
 #include <linux/reboot.h>
 #include <linux/slab.h>
 #include <linux/swap.h>
+#include <linux/efi.h>
 
 #include <asm/bitops.h>
 #include <asm/dma.h>
-#include <asm/efi.h>
 #include <asm/ia32.h>
 #include <asm/io.h>
 #include <asm/machvec.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fpmem.c linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fpmem.c
--- linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fpmem.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fpmem.c	Wed Aug 14 17:10:15 2002
@@ -18,7 +18,7 @@
  */
 
 #include <linux/config.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
 #include "fpmem.h"
 
 /*
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fw-emu.c linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fw-emu.c
--- linux-2.4.18-ia64/arch/ia64/sn/fakeprom/fw-emu.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/fakeprom/fw-emu.c	Wed Aug 14 17:10:15 2002
@@ -36,7 +36,7 @@
  * http://oss.sgi.com/projects/GenInfo/NoticeExplan
  */
 #include <linux/config.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
 #include <asm/pal.h>
 #include <asm/sal.h>
 #include <asm/sn/sn_sal.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/io/efi-rtc.c linux-2.4.18-efihmove/arch/ia64/sn/io/efi-rtc.c
--- linux-2.4.18-ia64/arch/ia64/sn/io/efi-rtc.c	Wed Aug 14 18:41:15 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/io/efi-rtc.c	Wed Aug 14 17:10:15 2002
@@ -12,7 +12,7 @@
 #include <linux/init.h>
 #include <linux/pci.h>
 #include <linux/errno.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
 #include <asm/sn/klclock.h>
 
 /*
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/arch/ia64/sn/kernel/llsc4.c linux-2.4.18-efihmove/arch/ia64/sn/kernel/llsc4.c
--- linux-2.4.18-ia64/arch/ia64/sn/kernel/llsc4.c	Wed Aug 14 18:41:16 2002
+++ linux-2.4.18-efihmove/arch/ia64/sn/kernel/llsc4.c	Wed Aug 14 17:10:15 2002
@@ -17,7 +17,7 @@
 #include <linux/mm.h>
 #include <linux/delay.h>
 #include <linux/string.h>
-#include <asm/efi.h>
+#include <linux/efi.h>
 #include <asm/page.h>
 #include <linux/threads.h>
 #include <asm/sn/simulator.h>
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/acpi/osl.c linux-2.4.18-efihmove/drivers/acpi/osl.c
--- linux-2.4.18-ia64/drivers/acpi/osl.c	Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/acpi/osl.c	Wed Aug 14 17:11:22 2002
@@ -37,7 +37,7 @@
 #include "acpi.h"
 
 #ifdef CONFIG_ACPI_EFI
-#include <asm/efi.h>
+#include <linux/efi.h>
 u64 efi_mem_attributes (u64 phys_addr);
 #endif
 
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/char/efirtc.c linux-2.4.18-efihmove/drivers/char/efirtc.c
--- linux-2.4.18-ia64/drivers/char/efirtc.c	Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/char/efirtc.c	Wed Aug 14 17:10:39 2002
@@ -35,8 +35,8 @@
 #include <linux/init.h>
 #include <linux/rtc.h>
 #include <linux/proc_fs.h>
+#include <linux/efi.h>
 
-#include <asm/efi.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/drivers/char/hcdp_serial.c linux-2.4.18-efihmove/drivers/char/hcdp_serial.c
--- linux-2.4.18-ia64/drivers/char/hcdp_serial.c	Wed Aug 14 18:41:17 2002
+++ linux-2.4.18-efihmove/drivers/char/hcdp_serial.c	Wed Aug 14 17:10:39 2002
@@ -15,9 +15,9 @@
 #include <linux/init.h>
 #include <linux/serial.h>
 #include <linux/serialP.h>
+#include <linux/efi.h>
 #include <asm/serial.h>
 #include <asm/io.h>
-#include <asm/efi.h>
 #include <linux/hcdp_serial.h>
 
 #undef SERIAL_DEBUG_HCDP
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/fs/partitions/efi.h linux-2.4.18-efihmove/fs/partitions/efi.h
--- linux-2.4.18-ia64/fs/partitions/efi.h	Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/fs/partitions/efi.h	Thu Aug 15 11:38:46 2002
@@ -33,11 +33,7 @@
 #include <linux/major.h>
 #include <linux/string.h>
 #include <linux/blk.h>
-/*
- * Yes, specifying asm-ia64 is ugly, but this lets it build on
- * other platforms too, until efi.h moves to include/linux.
- */
-#include <asm-ia64/efi.h>
+#include <linux/efi.h>
 
 #define MSDOS_MBR_SIGNATURE 0xaa55
 #define EFI_PMBR_OSTYPE_EFI 0xEF
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/asm-ia64/efi.h linux-2.4.18-efihmove/include/asm-ia64/efi.h
--- linux-2.4.18-ia64/include/asm-ia64/efi.h	Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/include/asm-ia64/efi.h	Wed Dec 31 18:00:00 1969
@@ -1,284 +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 <drummond@valinux.com>
- * Copyright (C) 1999, 2002 Hewlett-Packard Co.
- *	David Mosberger-Tang <davidm@hpl.hp.com>
- *	Stephane Eranian <eranian@hpl.hp.com>
- */
-#include <linux/init.h>
-#include <linux/string.h>
-#include <linux/time.h>
-#include <linux/types.h>
-#include <linux/proc_fs.h>
-
-#include <asm/page.h>
-#include <asm/system.h>
-
-#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
-
-#define EFI_PAGE_SHIFT		12
-
-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(  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[3], guid->b[2], guid->b[1], guid->b[0],
-		guid->b[5], guid->b[4], guid->b[7], guid->b[6],
-		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);
-extern u32 efi_mem_type (unsigned long phys_addr);
-extern u64 efi_mem_attributes (unsigned long phys_addr);
-
-/*
- * 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 -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/asm-ia64/sal.h linux-2.4.18-efihmove/include/asm-ia64/sal.h
--- linux-2.4.18-ia64/include/asm-ia64/sal.h	Wed Aug 14 18:41:19 2002
+++ linux-2.4.18-efihmove/include/asm-ia64/sal.h	Thu Aug 15 11:22:48 2002
@@ -24,9 +24,9 @@
  */
 
 #include <linux/spinlock.h>
+#include <linux/efi.h>
 
 #include <asm/pal.h>
-#include <asm/efi.h>
 #include <asm/system.h>
 #include <asm/fpu.h>
 
diff -urNp --exclude-from=/home/mdomsch/excludes --minimal linux-2.4.18-ia64/include/linux/efi.h linux-2.4.18-efihmove/include/linux/efi.h
--- linux-2.4.18-ia64/include/linux/efi.h	Wed Dec 31 18:00:00 1969
+++ linux-2.4.18-efihmove/include/linux/efi.h	Thu Aug 15 11:22:35 2002
@@ -0,0 +1,284 @@
+#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 <drummond@valinux.com>
+ * Copyright (C) 1999, 2002 Hewlett-Packard Co.
+ *	David Mosberger-Tang <davidm@hpl.hp.com>
+ *	Stephane Eranian <eranian@hpl.hp.com>
+ */
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/time.h>
+#include <linux/types.h>
+#include <linux/proc_fs.h>
+
+#include <asm/page.h>
+#include <asm/system.h>
+
+#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
+
+#define EFI_PAGE_SHIFT		12
+
+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(  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[3], guid->b[2], guid->b[1], guid->b[0],
+		guid->b[5], guid->b[4], guid->b[7], guid->b[6],
+		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);
+extern u32 efi_mem_type (unsigned long phys_addr);
+extern u64 efi_mem_attributes (unsigned long phys_addr);
+
+/*
+ * 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 */

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2002-08-15 16:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-13 22:38 [Linux-ia64] move asm-ia64/efi.h to linux/efi.h ? Matt_Domsch
2002-08-13 22:51 ` David Mosberger
2002-08-14 19:42 ` Matt_Domsch
2002-08-14 20:33 ` Matt_Domsch
2002-08-15 16:55 ` Matt_Domsch

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox