:: limine / common / protos / linux.h 2.9 KB raw

1
#ifndef PROTOS__LINUX_H__
2
#define PROTOS__LINUX_H__
3
4
#include <stdnoreturn.h>
5
6
struct screen_info {
7
    uint8_t  orig_x;        /* 0x00 */
8
    uint8_t  orig_y;        /* 0x01 */
9
    uint16_t ext_mem_k;    /* 0x02 */
10
    uint16_t orig_video_page;    /* 0x04 */
11
    uint8_t  orig_video_mode;    /* 0x06 */
12
    uint8_t  orig_video_cols;    /* 0x07 */
13
    uint8_t  flags;        /* 0x08 */
14
    uint8_t  unused2;        /* 0x09 */
15
    uint16_t orig_video_ega_bx;/* 0x0a */
16
    uint16_t unused3;        /* 0x0c */
17
    uint8_t  orig_video_lines;    /* 0x0e */
18
    uint8_t  orig_video_isVGA;    /* 0x0f */
19
    uint16_t orig_video_points;/* 0x10 */
20
21
    /* VESA graphic mode -- linear frame buffer */
22
    uint16_t lfb_width;    /* 0x12 */
23
    uint16_t lfb_height;    /* 0x14 */
24
    uint16_t lfb_depth;    /* 0x16 */
25
    uint32_t lfb_base;        /* 0x18 */
26
    uint32_t lfb_size;        /* 0x1c */
27
    uint16_t cl_magic, cl_offset; /* 0x20 */
28
    uint16_t lfb_linelength;    /* 0x24 */
29
    uint8_t  red_size;        /* 0x26 */
30
    uint8_t  red_pos;        /* 0x27 */
31
    uint8_t  green_size;    /* 0x28 */
32
    uint8_t  green_pos;    /* 0x29 */
33
    uint8_t  blue_size;    /* 0x2a */
34
    uint8_t  blue_pos;        /* 0x2b */
35
    uint8_t  rsvd_size;    /* 0x2c */
36
    uint8_t  rsvd_pos;        /* 0x2d */
37
    uint16_t vesapm_seg;    /* 0x2e */
38
    uint16_t vesapm_off;    /* 0x30 */
39
    uint16_t pages;        /* 0x32 */
40
    uint16_t vesa_attributes;    /* 0x34 */
41
    uint32_t capabilities;     /* 0x36 */
42
    uint32_t ext_lfb_base;    /* 0x3a */
43
    uint8_t  _reserved[2];    /* 0x3e */
44
} __attribute__((packed));
45
46
#define VIDEO_TYPE_MDA        0x10    /* Monochrome Text Display    */
47
#define VIDEO_TYPE_CGA        0x11    /* CGA Display             */
48
#define VIDEO_TYPE_EGAM        0x20    /* EGA/VGA in Monochrome Mode    */
49
#define VIDEO_TYPE_EGAC        0x21    /* EGA in Color Mode        */
50
#define VIDEO_TYPE_VGAC        0x22    /* VGA+ in Color Mode        */
51
#define VIDEO_TYPE_VLFB        0x23    /* VESA VGA in graphic mode    */
52
53
#define VIDEO_TYPE_PICA_S3    0x30    /* ACER PICA-61 local S3 video    */
54
#define VIDEO_TYPE_MIPS_G364    0x31    /* MIPS Magnum 4000 G364 video  */
55
#define VIDEO_TYPE_SGI          0x33    /* Various SGI graphics hardware */
56
57
#define VIDEO_TYPE_TGAC        0x40    /* DEC TGA */
58
59
#define VIDEO_TYPE_SUN          0x50    /* Sun frame buffer. */
60
#define VIDEO_TYPE_SUNPCI       0x51    /* Sun PCI based frame buffer. */
61
62
#define VIDEO_TYPE_PMAC        0x60    /* PowerMacintosh frame buffer. */
63
64
#define VIDEO_TYPE_EFI        0x70    /* EFI graphic mode        */
65
66
#define VIDEO_FLAGS_NOCURSOR    (1 << 0) /* The video mode has no cursor set */
67
68
#define VIDEO_CAPABILITY_SKIP_QUIRKS    (1 << 0)
69
#define VIDEO_CAPABILITY_64BIT_BASE    (1 << 1)    /* Frame buffer base is 64-bit */
70
71
noreturn void linux_load(char *config, char *cmdline);
72
73
#if defined (UEFI)
74
void linux_install_efi_tpm_event_log(void);
75
#endif
76
77
#endif
tab: 248 wrap: offon