uvesafb.h 1.0 KB

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