comparison boot/bootx64.c @ 21:e3accb15b1bb default tip

add alloc and loader.
author taiki
date Mon, 11 Feb 2013 04:30:42 +0900
parents 5e184d4c01b8
children
comparison
equal deleted inserted replaced
20:5e184d4c01b8 21:e3accb15b1bb
6 */ 6 */
7 7
8 #include "bootx64.h" 8 #include "bootx64.h"
9 #include "mach-o/mach_o.h" 9 #include "mach-o/mach_o.h"
10 10
11 extern EFI_STATUS open(fs_t *fs, EFI_FILE_HANDLE *fd, CHAR16 *name); 11 extern EFI_STATUS open(fs_interface_t *this, EFI_FILE_HANDLE *fd, CHAR16 *name);
12 extern EFI_STATUS close(fs_t *fs, EFI_FILE_HANDLE *fd); 12 extern EFI_STATUS close(fs_t *fs, EFI_FILE_HANDLE *fd);
13 extern EFI_STATUS read(fs_t *fs, EFI_FILE_HANDLE *fd, VOID *buf, UINTN *size); 13 extern EFI_STATUS read(fs_t *fs, EFI_FILE_HANDLE *fd, VOID *buf, UINTN *size);
14 extern EFI_STATUS seek(fs_t *fs, EFI_FILE_HANDLE *fd, UINTN newpos); 14 extern EFI_STATUS seek(fs_t *fs, EFI_FILE_HANDLE *fd, UINTN newpos);
15 extern EFI_STATUS load(fs_t *fs, EFI_FILE_HANDLE *fd, CHAR16 *kname); 15 extern EFI_STATUS load(fs_t *fs, EFI_FILE_HANDLE *fd, CHAR16 *kname);
16 extern EFI_STATUS config_fs(fs_t *fs,EFI_HANDLE boot_handle, dev_tab_t *boot_dev); 16 extern EFI_STATUS config_fs(fs_t *fs,EFI_HANDLE boot_handle, dev_tab_t *boot_dev);
41 return EFI_LOAD_ERROR; 41 return EFI_LOAD_ERROR;
42 } 42 }
43 43
44 fs_t fs; 44 fs_t fs;
45 dev_tab_t boot_dev; 45 dev_tab_t boot_dev;
46 fs_interface_t fsi;
47
46 status = config_fs(&fs, info->DeviceHandle ,&boot_dev); 48 status = config_fs(&fs, info->DeviceHandle ,&boot_dev);
47 49
48 EFI_FILE_HANDLE fd; 50 EFI_FILE_HANDLE fd;
49 open(&fs, &fd, kname); 51 open(&fsi, &fd, kname);
50 52
51 load(&fs, &fd, kname); 53 load(&fs, &fd, kname);
52 54
53 close(&fs, &fd); 55 close(&fs, &fd);
54 56