--- qemu/roms/seabios/src/biosvar.h 2018/04/24 17:51:51 1.1.1.2 +++ qemu/roms/seabios/src/biosvar.h 2018/04/24 18:27:17 1.1.1.3 @@ -160,7 +160,7 @@ struct dpte_s { // ElTorito Device Emulation data struct cdemu_s { - struct drive_s *emulated_drive; + struct drive_s *emulated_drive_gf; u32 ilba; u16 buffer_segment; u16 load_segment; @@ -188,6 +188,17 @@ struct fdpt_s { u8 checksum; } PACKED; +struct usbkeyinfo { + union { + struct { + u8 modifiers; + u8 repeatcount; + u8 keys[6]; + }; + u64 data; + }; +}; + struct extended_bios_data_area_s { u8 size; u8 reserved1[0x21]; @@ -206,6 +217,8 @@ struct extended_bios_data_area_s { // 0x121 - Begin custom storage. u8 ps2ctr; + struct usbkeyinfo usbkey_last; + int RTCusers; // El Torito Emulation data @@ -221,8 +234,6 @@ struct extended_bios_data_area_s { // Stack space available for code that needs it. u8 extra_stack[512] __aligned(8); - - u8 cdemu_buf[2048 * !!CONFIG_CDROM_EMU]; } PACKED; // The initial size and location of EBDA @@ -290,10 +301,12 @@ static inline u16 get_global_seg(void) { (var) = (val); \ } while (0) #if MODESEGMENT -#define ADJUST_GLOBAL_PTR(var) (var) +#define GLOBALFLAT2GLOBAL(var) ((typeof(var))((void*)(var) - BUILD_BIOS_ADDR)) #else -#define ADJUST_GLOBAL_PTR(var) ((typeof(var))((void*)var - BUILD_BIOS_ADDR)) +#define GLOBALFLAT2GLOBAL(var) (var) #endif +// Access a "flat" pointer known to point to the f-segment. +#define GET_GLOBALFLAT(var) GET_GLOBAL(*GLOBALFLAT2GLOBAL(&(var))) /****************************************************************