diff options
Diffstat (limited to 'include/linux/screen_info.h')
| -rw-r--r-- | include/linux/screen_info.h | 84 | 
1 files changed, 84 insertions, 0 deletions
| diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h new file mode 100644 index 000000000..899fbb487 --- /dev/null +++ b/include/linux/screen_info.h @@ -0,0 +1,84 @@ +#ifndef _SCREEN_INFO_H +#define _SCREEN_INFO_H + +#include <linux/types.h> + +/* + * These are set up by the setup-routine at boot-time: + */ + +struct screen_info { +	__u8  orig_x;		/* 0x00 */ +	__u8  orig_y;		/* 0x01 */ +	__u16 ext_mem_k;	/* 0x02 */ +	__u16 orig_video_page;	/* 0x04 */ +	__u8  orig_video_mode;	/* 0x06 */ +	__u8  orig_video_cols;	/* 0x07 */ +	__u8  flags;		/* 0x08 */ +	__u8  unused2;		/* 0x09 */ +	__u16 orig_video_ega_bx;/* 0x0a */ +	__u16 unused3;		/* 0x0c */ +	__u8  orig_video_lines;	/* 0x0e */ +	__u8  orig_video_isVGA;	/* 0x0f */ +	__u16 orig_video_points;/* 0x10 */ + +	/* VESA graphic mode -- linear frame buffer */ +	__u16 lfb_width;	/* 0x12 */ +	__u16 lfb_height;	/* 0x14 */ +	__u16 lfb_depth;	/* 0x16 */ +	__u32 lfb_base;		/* 0x18 */ +	__u32 lfb_size;		/* 0x1c */ +	__u16 cl_magic, cl_offset; /* 0x20 */ +	__u16 lfb_linelength;	/* 0x24 */ +	__u8  red_size;		/* 0x26 */ +	__u8  red_pos;		/* 0x27 */ +	__u8  green_size;	/* 0x28 */ +	__u8  green_pos;	/* 0x29 */ +	__u8  blue_size;	/* 0x2a */ +	__u8  blue_pos;		/* 0x2b */ +	__u8  rsvd_size;	/* 0x2c */ +	__u8  rsvd_pos;		/* 0x2d */ +	__u16 vesapm_seg;	/* 0x2e */ +	__u16 vesapm_off;	/* 0x30 */ +	__u16 pages;		/* 0x32 */ +	__u16 vesa_attributes;	/* 0x34 */ +	__u32 capabilities;     /* 0x36 */ +	__u8  _reserved[6];	/* 0x3a */ +} __attribute__((packed)); + +#define VIDEO_TYPE_MDA		0x10	/* Monochrome Text Display	*/ +#define VIDEO_TYPE_CGA		0x11	/* CGA Display 			*/ +#define VIDEO_TYPE_EGAM		0x20	/* EGA/VGA in Monochrome Mode	*/ +#define VIDEO_TYPE_EGAC		0x21	/* EGA in Color Mode		*/ +#define VIDEO_TYPE_VGAC		0x22	/* VGA+ in Color Mode		*/ +#define VIDEO_TYPE_VLFB		0x23	/* VESA VGA in graphic mode	*/ + +#define VIDEO_TYPE_PICA_S3	0x30	/* ACER PICA-61 local S3 video	*/ +#define VIDEO_TYPE_MIPS_G364	0x31    /* MIPS Magnum 4000 G364 video  */ +#define VIDEO_TYPE_SGI          0x33    /* Various SGI graphics hardware */ + +#define VIDEO_TYPE_TGAC		0x40	/* DEC TGA */ + +#define VIDEO_TYPE_SUN          0x50    /* Sun frame buffer. */ +#define VIDEO_TYPE_SUNPCI       0x51    /* Sun PCI based frame buffer. */ + +#define VIDEO_TYPE_PMAC		0x60	/* PowerMacintosh frame buffer. */ + +#define VIDEO_TYPE_EFI		0x70	/* EFI graphic mode		*/ + +#define VIDEO_FLAGS_NOCURSOR	(1 << 0) /* The video mode has no cursor set */ + +#ifdef __KERNEL__ +extern struct screen_info screen_info; + +#define ORIG_X			(screen_info.orig_x) +#define ORIG_Y			(screen_info.orig_y) +#define ORIG_VIDEO_MODE		(screen_info.orig_video_mode) +#define ORIG_VIDEO_COLS 	(screen_info.orig_video_cols) +#define ORIG_VIDEO_EGA_BX	(screen_info.orig_video_ega_bx) +#define ORIG_VIDEO_LINES	(screen_info.orig_video_lines) +#define ORIG_VIDEO_ISVGA	(screen_info.orig_video_isVGA) +#define ORIG_VIDEO_POINTS       (screen_info.orig_video_points) +#endif /* __KERNEL__ */ + +#endif /* _SCREEN_INFO_H */ |