diff options
| author | Doug Rabson <dfr@FreeBSD.org> | 2001-09-14 08:26:00 +0000 |
|---|---|---|
| committer | Doug Rabson <dfr@FreeBSD.org> | 2001-09-14 08:26:00 +0000 |
| commit | f19fa0b62725d51e25a148eeb43f8c6e25eaf13d (patch) | |
| tree | 9221c426f2ee2acb78c69140a08350c3b4e8ad3a /sys/boot/efi | |
| parent | b7a81e06aa5fa87b7756a612eeae2dd52d64c24d (diff) | |
Notes
Diffstat (limited to 'sys/boot/efi')
| -rw-r--r-- | sys/boot/efi/libefi/copy.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/sys/boot/efi/libefi/copy.c b/sys/boot/efi/libefi/copy.c index 01c31d88e4dd..a2bb6fea4e7d 100644 --- a/sys/boot/efi/libefi/copy.c +++ b/sys/boot/efi/libefi/copy.c @@ -31,8 +31,6 @@ static const char rcsid[] = /* * MD primitives supporting placement of module data - * - * XXX should check load address/size against memory top. */ #include <stand.h> @@ -43,19 +41,29 @@ static const char rcsid[] = int efi_copyin(void *src, vm_offset_t dest, size_t len) { - bcopy(src, (void*) dest, len); + EFI_PHYSICAL_ADDRESS p = IA64_RR_MASK(dest); +#if 0 + BS->AllocatePages(AllocateAddress, EfiRuntimeServicesData, + len >> 12, &p); +#endif + bcopy(src, (void*) p, len); return (len); } int efi_copyout(vm_offset_t src, void *dest, size_t len) { - bcopy((void*) src, dest, len); + bcopy((void*) IA64_RR_MASK(src), dest, len); return (len); } int efi_readin(int fd, vm_offset_t dest, size_t len) { - return (read(fd, (void*) dest, len)); + EFI_PHYSICAL_ADDRESS p = IA64_RR_MASK(dest); +#if 0 + BS->AllocatePages(AllocateAddress, EfiRuntimeServicesData, + len >> 12, &p); +#endif + return (read(fd, (void*) p, len)); } |
