15 uint16_t vmem_blk; /* video memory size in 64k blocks */
21 uint16_t *accel_modes;
26 struct vbe_mode_info {
28 uint8_t wina_attr, winb_attr;
29 uint16_t win_gran, win_size;
30 uint16_t wina_seg, winb_seg;
32 uint16_t scanline_bytes;
34 /* VBE 1.2 and above */
36 uint8_t xcharsz, ycharsz;
41 uint8_t bank_size; /* bank size in KB */
42 uint8_t num_img_pages;
45 /* direct color fields */
50 uint8_t cmode_info; /* direct color mode attributes */
52 /* VBE 2.0 and above */
53 uint32_t fb_addr; /* physical address of the linear framebuffer */
54 uint32_t os_addr; /* phys. address of off-screen memory */
55 uint16_t os_size; /* size in KB of off-screen memory */
57 /* VBE 3.0 and above */
58 uint16_t lfb_scanline_bytes;
59 uint8_t banked_num_img_pages;
60 uint8_t lfb_num_img_pages;
61 uint8_t lfb_rsize, lfb_rpos;
62 uint8_t lfb_gsize, lfb_gpos;
63 uint8_t lfb_bsize, lfb_bpos;
64 uint8_t lfb_xsize, lfb_xpos;
65 uint32_t max_pixel_clock;
67 uint8_t reserved2[190];
75 VBE_STEREO = 0x08, /* ? */
77 VBE_STEREO_VESA = 0x10, /* ? */
84 #define VBE_VER_MAJOR(v) (((v) >> 8) & 0xff)
85 #define VBE_VER_MINOR(v) ((v) & 0xff)
87 /* VBE mode attribute flags (vbe_mode_info.attr) */
89 VBE_ATTR_AVAIL = 0x0001,
90 VBE_ATTR_OPTINFO = 0x0002,
91 VBE_ATTR_TTY = 0x0004,
92 VBE_ATTR_COLOR = 0x0008,
93 VBE_ATTR_GFX = 0x0010,
95 VBE_ATTR_NOTVGA = 0x0020,
96 VBE_ATTR_BANKED = 0x0040,
97 VBE_ATTR_LFB = 0x0080,
98 VBE_ATTR_2XSCAN = 0x0100,
100 VBE_ATTR_ILACE = 0x0200, /* ! */
101 VBE_ATTR_TRIPLEBUF = 0x0400,
102 VBE_ATTR_STEREO = 0x0800,
103 VBE_ATTR_STEREO_2FB = 0x1000,
105 VBE_ATTR_MUSTLOCK = 0x0200, /* ! */
108 /* VBE memory model type (vbe_mode_info.mem_model) */
120 /* VBE window attribute (vbe_mode_info.win(a|b)_attr) */
122 VBE_WIN_AVAIL = 0x01,
127 /* mode number flags */
129 VBE_MODE_RATE = 0x0800, /* VBE 3.0+ user-specified refresh rate */
130 VBE_MODE_ACCEL = 0x2000, /* VBE/AF */
131 VBE_MODE_LFB = 0x4000, /* VBE 2.0+ */
132 VBE_MODE_PRESERVE = 0x8000
135 int vbe_info(struct vbe_info *info);
136 int vbe_num_modes(struct vbe_info *info);
137 int vbe_mode_info(int mode, struct vbe_mode_info *minf);
139 void vbe_print_info(FILE *fp, struct vbe_info *info);
140 void vbe_print_mode_info(FILE *fp, struct vbe_mode_info *minf);