aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/screen_info.h
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2007-10-21 20:56:19 -0400
committerRusty Russell <rusty@rustcorp.com.au>2007-10-23 01:49:47 -0400
commitee8e7cfe9d330d6f1ce0b9b1620d6df5d9cf6b70 (patch)
treea9534bac7060e546c0c3e6ea34d0469d8903bf0e /include/linux/screen_info.h
parent9525ca0286afd54a5cd69d9ded741b4df8d0c554 (diff)
Make asm-x86/bootparam.h includable from userspace.
To actually write a bootloader (or, say, the lguest launcher) currently requires duplication of these structures. Making them includable from userspace is much nicer. We merge the common userspace-required definitions of e820_32/64.h into e820.h for export. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'include/linux/screen_info.h')
-rw-r--r--include/linux/screen_info.h81
1 files changed, 46 insertions, 35 deletions
diff --git a/include/linux/screen_info.h b/include/linux/screen_info.h
index ba81ffe9958a..827b85bbf388 100644
--- a/include/linux/screen_info.h
+++ b/include/linux/screen_info.h
@@ -8,45 +8,43 @@
8 */ 8 */
9 9
10struct screen_info { 10struct screen_info {
11 u8 orig_x; /* 0x00 */ 11 __u8 orig_x; /* 0x00 */
12 u8 orig_y; /* 0x01 */ 12 __u8 orig_y; /* 0x01 */
13 u16 ext_mem_k; /* 0x02 */ 13 __u16 ext_mem_k; /* 0x02 */
14 u16 orig_video_page; /* 0x04 */ 14 __u16 orig_video_page; /* 0x04 */
15 u8 orig_video_mode; /* 0x06 */ 15 __u8 orig_video_mode; /* 0x06 */
16 u8 orig_video_cols; /* 0x07 */ 16 __u8 orig_video_cols; /* 0x07 */
17 u16 unused2; /* 0x08 */ 17 __u16 unused2; /* 0x08 */
18 u16 orig_video_ega_bx; /* 0x0a */ 18 __u16 orig_video_ega_bx;/* 0x0a */
19 u16 unused3; /* 0x0c */ 19 __u16 unused3; /* 0x0c */
20 u8 orig_video_lines; /* 0x0e */ 20 __u8 orig_video_lines; /* 0x0e */
21 u8 orig_video_isVGA; /* 0x0f */ 21 __u8 orig_video_isVGA; /* 0x0f */
22 u16 orig_video_points; /* 0x10 */ 22 __u16 orig_video_points;/* 0x10 */
23 23
24 /* VESA graphic mode -- linear frame buffer */ 24 /* VESA graphic mode -- linear frame buffer */
25 u16 lfb_width; /* 0x12 */ 25 __u16 lfb_width; /* 0x12 */
26 u16 lfb_height; /* 0x14 */ 26 __u16 lfb_height; /* 0x14 */
27 u16 lfb_depth; /* 0x16 */ 27 __u16 lfb_depth; /* 0x16 */
28 u32 lfb_base; /* 0x18 */ 28 __u32 lfb_base; /* 0x18 */
29 u32 lfb_size; /* 0x1c */ 29 __u32 lfb_size; /* 0x1c */
30 u16 cl_magic, cl_offset; /* 0x20 */ 30 __u16 cl_magic, cl_offset; /* 0x20 */
31 u16 lfb_linelength; /* 0x24 */ 31 __u16 lfb_linelength; /* 0x24 */
32 u8 red_size; /* 0x26 */ 32 __u8 red_size; /* 0x26 */
33 u8 red_pos; /* 0x27 */ 33 __u8 red_pos; /* 0x27 */
34 u8 green_size; /* 0x28 */ 34 __u8 green_size; /* 0x28 */
35 u8 green_pos; /* 0x29 */ 35 __u8 green_pos; /* 0x29 */
36 u8 blue_size; /* 0x2a */ 36 __u8 blue_size; /* 0x2a */
37 u8 blue_pos; /* 0x2b */ 37 __u8 blue_pos; /* 0x2b */
38 u8 rsvd_size; /* 0x2c */ 38 __u8 rsvd_size; /* 0x2c */
39 u8 rsvd_pos; /* 0x2d */ 39 __u8 rsvd_pos; /* 0x2d */
40 u16 vesapm_seg; /* 0x2e */ 40 __u16 vesapm_seg; /* 0x2e */
41 u16 vesapm_off; /* 0x30 */ 41 __u16 vesapm_off; /* 0x30 */
42 u16 pages; /* 0x32 */ 42 __u16 pages; /* 0x32 */
43 u16 vesa_attributes; /* 0x34 */ 43 __u16 vesa_attributes; /* 0x34 */
44 u32 capabilities; /* 0x36 */ 44 __u32 capabilities; /* 0x36 */
45 u8 _reserved[6]; /* 0x3a */ 45 __u8 _reserved[6]; /* 0x3a */
46} __attribute__((packed)); 46} __attribute__((packed));
47 47
48extern struct screen_info screen_info;
49
50#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */ 48#define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
51#define VIDEO_TYPE_CGA 0x11 /* CGA Display */ 49#define VIDEO_TYPE_CGA 0x11 /* CGA Display */
52#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */ 50#define VIDEO_TYPE_EGAM 0x20 /* EGA/VGA in Monochrome Mode */
@@ -65,4 +63,17 @@ extern struct screen_info screen_info;
65 63
66#define VIDEO_TYPE_PMAC 0x60 /* PowerMacintosh frame buffer. */ 64#define VIDEO_TYPE_PMAC 0x60 /* PowerMacintosh frame buffer. */
67 65
66#ifdef __KERNEL__
67extern struct screen_info screen_info;
68
69#define ORIG_X (screen_info.orig_x)
70#define ORIG_Y (screen_info.orig_y)
71#define ORIG_VIDEO_MODE (screen_info.orig_video_mode)
72#define ORIG_VIDEO_COLS (screen_info.orig_video_cols)
73#define ORIG_VIDEO_EGA_BX (screen_info.orig_video_ega_bx)
74#define ORIG_VIDEO_LINES (screen_info.orig_video_lines)
75#define ORIG_VIDEO_ISVGA (screen_info.orig_video_isVGA)
76#define ORIG_VIDEO_POINTS (screen_info.orig_video_points)
77#endif /* __KERNEL__ */
78
68#endif /* _SCREEN_INFO_H */ 79#endif /* _SCREEN_INFO_H */