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