| Brian Gerst | 7e7f358 | 2006-01-08 01:04:54 -0800 | [diff] [blame] | 1 | #ifndef _SCREEN_INFO_H | 
 | 2 | #define _SCREEN_INFO_H | 
 | 3 |  | 
 | 4 | #include <linux/types.h> | 
 | 5 |  | 
 | 6 | /* | 
 | 7 |  * These are set up by the setup-routine at boot-time: | 
 | 8 |  */ | 
 | 9 |  | 
 | 10 | struct screen_info { | 
| Rusty Russell | ee8e7cf | 2007-10-22 10:56:19 +1000 | [diff] [blame] | 11 | 	__u8  orig_x;		/* 0x00 */ | 
 | 12 | 	__u8  orig_y;		/* 0x01 */ | 
 | 13 | 	__u16 ext_mem_k;	/* 0x02 */ | 
 | 14 | 	__u16 orig_video_page;	/* 0x04 */ | 
 | 15 | 	__u8  orig_video_mode;	/* 0x06 */ | 
 | 16 | 	__u8  orig_video_cols;	/* 0x07 */ | 
| Matthew Garrett | d9b2635 | 2009-11-13 14:57:00 -0500 | [diff] [blame] | 17 | 	__u8  flags;		/* 0x08 */ | 
 | 18 | 	__u8  unused2;		/* 0x09 */ | 
| Rusty Russell | ee8e7cf | 2007-10-22 10:56:19 +1000 | [diff] [blame] | 19 | 	__u16 orig_video_ega_bx;/* 0x0a */ | 
 | 20 | 	__u16 unused3;		/* 0x0c */ | 
 | 21 | 	__u8  orig_video_lines;	/* 0x0e */ | 
 | 22 | 	__u8  orig_video_isVGA;	/* 0x0f */ | 
 | 23 | 	__u16 orig_video_points;/* 0x10 */ | 
| Brian Gerst | 7e7f358 | 2006-01-08 01:04:54 -0800 | [diff] [blame] | 24 |  | 
 | 25 | 	/* VESA graphic mode -- linear frame buffer */ | 
| Rusty Russell | ee8e7cf | 2007-10-22 10:56:19 +1000 | [diff] [blame] | 26 | 	__u16 lfb_width;	/* 0x12 */ | 
 | 27 | 	__u16 lfb_height;	/* 0x14 */ | 
 | 28 | 	__u16 lfb_depth;	/* 0x16 */ | 
 | 29 | 	__u32 lfb_base;		/* 0x18 */ | 
 | 30 | 	__u32 lfb_size;		/* 0x1c */ | 
 | 31 | 	__u16 cl_magic, cl_offset; /* 0x20 */ | 
 | 32 | 	__u16 lfb_linelength;	/* 0x24 */ | 
 | 33 | 	__u8  red_size;		/* 0x26 */ | 
 | 34 | 	__u8  red_pos;		/* 0x27 */ | 
 | 35 | 	__u8  green_size;	/* 0x28 */ | 
 | 36 | 	__u8  green_pos;	/* 0x29 */ | 
 | 37 | 	__u8  blue_size;	/* 0x2a */ | 
 | 38 | 	__u8  blue_pos;		/* 0x2b */ | 
 | 39 | 	__u8  rsvd_size;	/* 0x2c */ | 
 | 40 | 	__u8  rsvd_pos;		/* 0x2d */ | 
 | 41 | 	__u16 vesapm_seg;	/* 0x2e */ | 
 | 42 | 	__u16 vesapm_off;	/* 0x30 */ | 
 | 43 | 	__u16 pages;		/* 0x32 */ | 
 | 44 | 	__u16 vesa_attributes;	/* 0x34 */ | 
 | 45 | 	__u32 capabilities;     /* 0x36 */ | 
 | 46 | 	__u8  _reserved[6];	/* 0x3a */ | 
| H. Peter Anvin | e087db5 | 2007-07-11 12:18:31 -0700 | [diff] [blame] | 47 | } __attribute__((packed)); | 
| Brian Gerst | 7e7f358 | 2006-01-08 01:04:54 -0800 | [diff] [blame] | 48 |  | 
| Brian Gerst | 7e7f358 | 2006-01-08 01:04:54 -0800 | [diff] [blame] | 49 | #define VIDEO_TYPE_MDA		0x10	/* Monochrome Text Display	*/ | 
 | 50 | #define VIDEO_TYPE_CGA		0x11	/* CGA Display 			*/ | 
 | 51 | #define VIDEO_TYPE_EGAM		0x20	/* EGA/VGA in Monochrome Mode	*/ | 
 | 52 | #define VIDEO_TYPE_EGAC		0x21	/* EGA in Color Mode		*/ | 
 | 53 | #define VIDEO_TYPE_VGAC		0x22	/* VGA+ in Color Mode		*/ | 
 | 54 | #define VIDEO_TYPE_VLFB		0x23	/* VESA VGA in graphic mode	*/ | 
 | 55 |  | 
 | 56 | #define VIDEO_TYPE_PICA_S3	0x30	/* ACER PICA-61 local S3 video	*/ | 
 | 57 | #define VIDEO_TYPE_MIPS_G364	0x31    /* MIPS Magnum 4000 G364 video  */ | 
 | 58 | #define VIDEO_TYPE_SGI          0x33    /* Various SGI graphics hardware */ | 
 | 59 |  | 
 | 60 | #define VIDEO_TYPE_TGAC		0x40	/* DEC TGA */ | 
 | 61 |  | 
 | 62 | #define VIDEO_TYPE_SUN          0x50    /* Sun frame buffer. */ | 
 | 63 | #define VIDEO_TYPE_SUNPCI       0x51    /* Sun PCI based frame buffer. */ | 
 | 64 |  | 
 | 65 | #define VIDEO_TYPE_PMAC		0x60	/* PowerMacintosh frame buffer. */ | 
 | 66 |  | 
| Huang, Ying | 7c83172 | 2007-11-28 16:21:55 -0800 | [diff] [blame] | 67 | #define VIDEO_TYPE_EFI		0x70	/* EFI graphic mode		*/ | 
 | 68 |  | 
| Matthew Garrett | d9b2635 | 2009-11-13 14:57:00 -0500 | [diff] [blame] | 69 | #define VIDEO_FLAGS_NOCURSOR	(1 << 0) /* The video mode has no cursor set */ | 
 | 70 |  | 
| Rusty Russell | ee8e7cf | 2007-10-22 10:56:19 +1000 | [diff] [blame] | 71 | #ifdef __KERNEL__ | 
 | 72 | extern struct screen_info screen_info; | 
 | 73 |  | 
 | 74 | #define ORIG_X			(screen_info.orig_x) | 
 | 75 | #define ORIG_Y			(screen_info.orig_y) | 
 | 76 | #define ORIG_VIDEO_MODE		(screen_info.orig_video_mode) | 
 | 77 | #define ORIG_VIDEO_COLS 	(screen_info.orig_video_cols) | 
 | 78 | #define ORIG_VIDEO_EGA_BX	(screen_info.orig_video_ega_bx) | 
 | 79 | #define ORIG_VIDEO_LINES	(screen_info.orig_video_lines) | 
 | 80 | #define ORIG_VIDEO_ISVGA	(screen_info.orig_video_isVGA) | 
 | 81 | #define ORIG_VIDEO_POINTS       (screen_info.orig_video_points) | 
 | 82 | #endif /* __KERNEL__ */ | 
 | 83 |  | 
| Brian Gerst | 7e7f358 | 2006-01-08 01:04:54 -0800 | [diff] [blame] | 84 | #endif /* _SCREEN_INFO_H */ |