@@ -164,8 +164,10 @@ struct efi_system_table* _system;
164164
165165struct 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};
170172struct efi_guid EFI_LOADED_IMAGE_PROTOCOL_GUID ;
171173struct 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
534563void __kill_io ();
0 commit comments