#define NULL 0 //typedef unsigned int size_t; struct screen_info { unsigned char orig_x; /* 0x00 */ unsigned char orig_y; /* 0x01 */ unsigned short dontuse1; /* 0x02 -- EXT_MEM_K sits here */ unsigned short orig_video_page; /* 0x04 */ unsigned char orig_video_mode; /* 0x06 */ unsigned char orig_video_cols; /* 0x07 */ unsigned short unused2; /* 0x08 */ unsigned short orig_video_ega_bx; /* 0x0a */ unsigned short unused3; /* 0x0c */ unsigned char orig_video_lines; /* 0x0e */ unsigned char orig_video_isVGA; /* 0x0f */ unsigned short orig_video_points; /* 0x10 */ /* VESA graphic mode -- linear frame buffer */ unsigned short lfb_width; /* 0x12 */ unsigned short lfb_height; /* 0x14 */ unsigned short lfb_depth; /* 0x16 */ unsigned long lfb_base; /* 0x18 */ unsigned long lfb_size; /* 0x1c */ unsigned short dontuse2, dontuse3; /* 0x20 -- CL_MAGIC and CL_OFFSET here */ unsigned short lfb_linelength; /* 0x24 */ unsigned char red_size; /* 0x26 */ unsigned char red_pos; /* 0x27 */ unsigned char green_size; /* 0x28 */ unsigned char green_pos; /* 0x29 */ unsigned char blue_size; /* 0x2a */ unsigned char blue_pos; /* 0x2b */ unsigned char rsvd_size; /* 0x2c */ unsigned char rsvd_pos; /* 0x2d */ unsigned short vesapm_seg; /* 0x2e */ unsigned short vesapm_off; /* 0x30 */ unsigned short pages; /* 0x32 */ /* 0x34 -- 0x3f reserved for future expansion */ };