1 #define NULL 0 2 typedef unsigned int size_t; 3 4 5 struct screen_info { 6 unsigned char orig_x; /* 0x00 */ 7 unsigned char orig_y; /* 0x01 */ 8 unsigned short dontuse1; /* 0x02 -- EXT_MEM_K sits here */ 9 unsigned short orig_video_page; /* 0x04 */ 10 unsigned char orig_video_mode; /* 0x06 */ 11 unsigned char orig_video_cols; /* 0x07 */ 12 unsigned short unused2; /* 0x08 */ 13 unsigned short orig_video_ega_bx; /* 0x0a */ 14 unsigned short unused3; /* 0x0c */ 15 unsigned char orig_video_lines; /* 0x0e */ 16 unsigned char orig_video_isVGA; /* 0x0f */ 17 unsigned short orig_video_points; /* 0x10 */ 18 19 /* VESA graphic mode -- linear frame buffer */ 20 unsigned short lfb_width; /* 0x12 */ 21 unsigned short lfb_height; /* 0x14 */ 22 unsigned short lfb_depth; /* 0x16 */ 23 unsigned long lfb_base; /* 0x18 */ 24 unsigned long lfb_size; /* 0x1c */ 25 unsigned short dontuse2, dontuse3; /* 0x20 -- CL_MAGIC and CL_OFFSET here */ 26 unsigned short lfb_linelength; /* 0x24 */ 27 unsigned char red_size; /* 0x26 */ 28 unsigned char red_pos; /* 0x27 */ 29 unsigned char green_size; /* 0x28 */ 30 unsigned char green_pos; /* 0x29 */ 31 unsigned char blue_size; /* 0x2a */ 32 unsigned char blue_pos; /* 0x2b */ 33 unsigned char rsvd_size; /* 0x2c */ 34 unsigned char rsvd_pos; /* 0x2d */ 35 unsigned short vesapm_seg; /* 0x2e */ 36 unsigned short vesapm_off; /* 0x30 */ 37 unsigned short pages; /* 0x32 */ 38 /* 0x34 -- 0x3f reserved for future expansion */ 39 }; 40