Skip to content

Commit 1ff149c

Browse files
committed
Use the same efi_guid structure as in the UEFI documentation.
1 parent 2d55f62 commit 1ff149c

File tree

1 file changed

+37
-8
lines changed

1 file changed

+37
-8
lines changed

amd64/uefi/uefi.c

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,10 @@ struct efi_system_table* _system;
164164

165165
struct efi_guid
166166
{
167-
unsigned data1;
168-
unsigned data2;
167+
uint32_t data1;
168+
uint16_t data2;
169+
uint16_t data3;
170+
uint8_t data4[8];
169171
};
170172
struct efi_guid EFI_LOADED_IMAGE_PROTOCOL_GUID;
171173
struct efi_guid EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID;
@@ -508,27 +510,54 @@ void _init()
508510
__user_stack = malloc(USER_STACK_SIZE) + USER_STACK_SIZE;
509511

510512
/* Process command line arguments */
511-
EFI_LOADED_IMAGE_PROTOCOL_GUID.data1 = (0x11D29562 << 32) + 0x5B1B31A1;
513+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data1 = 0x5b1b31a1;
514+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data2 = 0x9562;
515+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data3 = 0x11d2;
512516
/* We want to add 0xA0003F8E but M2 treats 32-bit values as negatives, in order to
513517
* have the same behaviour on 32-bit systems, so restrict to 31-bit constants */
514-
EFI_LOADED_IMAGE_PROTOCOL_GUID.data2 = (0x3B7269C9 << 32) + 0x50003F8E + 0x50000000;
518+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[0] = 0x8e;
519+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[1] = 0x3f;
520+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[2] = 0;
521+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[3] = 0xa0;
522+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[4] = 0xc9;
523+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[5] = 0x69;
524+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[6] = 0x72;
525+
EFI_LOADED_IMAGE_PROTOCOL_GUID.data4[7] = 0x3b;
515526

516527
__init_io();
517528
_open_protocol(_image_handle, &EFI_LOADED_IMAGE_PROTOCOL_GUID, &_image, _image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
518529
char* load_options = calloc(_image->load_options_size, 1);
519530
wcstombs(load_options, _image->load_options, _image->load_options_size);
520531
_process_load_options(load_options);
521532

522-
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data1 = (0x11D26459 << 32) + 0x564E5B22 + 0x40000000;
523-
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data2 = (0x3B7269C9 << 32) + 0x5000398E + 0x50000000;
533+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data1 = 0x564E5B22 + 0x40000000;
534+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data2 = 0x6459;
535+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data3 = 0x11d2;
536+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[0] = 0x8e;
537+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[1] = 0x39;
538+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[2] = 0;
539+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[3] = 0xa0;
540+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[4] = 0xc9;
541+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[5] = 0x69;
542+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[6] = 0x72;
543+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID.data4[7] = 0x3b;
524544

525545
_root_device = _image->device;
526546
struct efi_simple_file_system_protocol* rootfs;
527547
_open_protocol(_root_device, &EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID, &rootfs, _image_handle, 0, EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL);
528548
_open_volume(rootfs, &_rootdir);
529549

530-
EFI_FILE_INFO_GUID.data1 = (0x11D26D3F << 32) + 0x09576e92;
531-
EFI_FILE_INFO_GUID.data2 = (0x3B7269C9 << 32) + 0x5000398E + 0x50000000;
550+
EFI_FILE_INFO_GUID.data1 = 0x09576e92;
551+
EFI_FILE_INFO_GUID.data2 = 0x6d3f;
552+
EFI_FILE_INFO_GUID.data3 = 0x11d2;
553+
EFI_FILE_INFO_GUID.data4[0] = 0x8e;
554+
EFI_FILE_INFO_GUID.data4[1] = 0x39;
555+
EFI_FILE_INFO_GUID.data4[2] = 0;
556+
EFI_FILE_INFO_GUID.data4[3] = 0xa0;
557+
EFI_FILE_INFO_GUID.data4[4] = 0xc9;
558+
EFI_FILE_INFO_GUID.data4[5] = 0x69;
559+
EFI_FILE_INFO_GUID.data4[6] = 0x72;
560+
EFI_FILE_INFO_GUID.data4[7] = 0x3b;
532561
}
533562

534563
void __kill_io();

0 commit comments

Comments
 (0)