uvesafb.h 1.1 KB

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