1*f80ad8b4SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2*f80ad8b4SAndroid Build Coastguard Worker #ifndef _UAPI_UVESAFB_H 3*f80ad8b4SAndroid Build Coastguard Worker #define _UAPI_UVESAFB_H 4*f80ad8b4SAndroid Build Coastguard Worker 5*f80ad8b4SAndroid Build Coastguard Worker #include <linux/types.h> 6*f80ad8b4SAndroid Build Coastguard Worker 7*f80ad8b4SAndroid Build Coastguard Worker struct v86_regs { 8*f80ad8b4SAndroid Build Coastguard Worker __u32 ebx; 9*f80ad8b4SAndroid Build Coastguard Worker __u32 ecx; 10*f80ad8b4SAndroid Build Coastguard Worker __u32 edx; 11*f80ad8b4SAndroid Build Coastguard Worker __u32 esi; 12*f80ad8b4SAndroid Build Coastguard Worker __u32 edi; 13*f80ad8b4SAndroid Build Coastguard Worker __u32 ebp; 14*f80ad8b4SAndroid Build Coastguard Worker __u32 eax; 15*f80ad8b4SAndroid Build Coastguard Worker __u32 eip; 16*f80ad8b4SAndroid Build Coastguard Worker __u32 eflags; 17*f80ad8b4SAndroid Build Coastguard Worker __u32 esp; 18*f80ad8b4SAndroid Build Coastguard Worker __u16 cs; 19*f80ad8b4SAndroid Build Coastguard Worker __u16 ss; 20*f80ad8b4SAndroid Build Coastguard Worker __u16 es; 21*f80ad8b4SAndroid Build Coastguard Worker __u16 ds; 22*f80ad8b4SAndroid Build Coastguard Worker __u16 fs; 23*f80ad8b4SAndroid Build Coastguard Worker __u16 gs; 24*f80ad8b4SAndroid Build Coastguard Worker }; 25*f80ad8b4SAndroid Build Coastguard Worker 26*f80ad8b4SAndroid Build Coastguard Worker /* Task flags */ 27*f80ad8b4SAndroid Build Coastguard Worker #define TF_VBEIB 0x01 28*f80ad8b4SAndroid Build Coastguard Worker #define TF_BUF_ESDI 0x02 29*f80ad8b4SAndroid Build Coastguard Worker #define TF_BUF_ESBX 0x04 30*f80ad8b4SAndroid Build Coastguard Worker #define TF_BUF_RET 0x08 31*f80ad8b4SAndroid Build Coastguard Worker #define TF_EXIT 0x10 32*f80ad8b4SAndroid Build Coastguard Worker 33*f80ad8b4SAndroid Build Coastguard Worker struct uvesafb_task { 34*f80ad8b4SAndroid Build Coastguard Worker __u8 flags; 35*f80ad8b4SAndroid Build Coastguard Worker int buf_len; 36*f80ad8b4SAndroid Build Coastguard Worker struct v86_regs regs; 37*f80ad8b4SAndroid Build Coastguard Worker }; 38*f80ad8b4SAndroid Build Coastguard Worker 39*f80ad8b4SAndroid Build Coastguard Worker /* Constants for the capabilities field 40*f80ad8b4SAndroid Build Coastguard Worker * in vbe_ib */ 41*f80ad8b4SAndroid Build Coastguard Worker #define VBE_CAP_CAN_SWITCH_DAC 0x01 42*f80ad8b4SAndroid Build Coastguard Worker #define VBE_CAP_VGACOMPAT 0x02 43*f80ad8b4SAndroid Build Coastguard Worker 44*f80ad8b4SAndroid Build Coastguard Worker /* The VBE Info Block */ 45*f80ad8b4SAndroid Build Coastguard Worker struct vbe_ib { 46*f80ad8b4SAndroid Build Coastguard Worker char vbe_signature[4]; 47*f80ad8b4SAndroid Build Coastguard Worker __u16 vbe_version; 48*f80ad8b4SAndroid Build Coastguard Worker __u32 oem_string_ptr; 49*f80ad8b4SAndroid Build Coastguard Worker __u32 capabilities; 50*f80ad8b4SAndroid Build Coastguard Worker __u32 mode_list_ptr; 51*f80ad8b4SAndroid Build Coastguard Worker __u16 total_memory; 52*f80ad8b4SAndroid Build Coastguard Worker __u16 oem_software_rev; 53*f80ad8b4SAndroid Build Coastguard Worker __u32 oem_vendor_name_ptr; 54*f80ad8b4SAndroid Build Coastguard Worker __u32 oem_product_name_ptr; 55*f80ad8b4SAndroid Build Coastguard Worker __u32 oem_product_rev_ptr; 56*f80ad8b4SAndroid Build Coastguard Worker __u8 reserved[222]; 57*f80ad8b4SAndroid Build Coastguard Worker char oem_data[256]; 58*f80ad8b4SAndroid Build Coastguard Worker char misc_data[512]; 59*f80ad8b4SAndroid Build Coastguard Worker } __attribute__ ((packed)); 60*f80ad8b4SAndroid Build Coastguard Worker 61*f80ad8b4SAndroid Build Coastguard Worker #endif /* _UAPI_UVESAFB_H */ 62