1 | #ifndef _SYSLINUX_FIRMWARE_H |
---|
2 | #define _SYSLINUX_FIRMWARE_H |
---|
3 | |
---|
4 | #include <inttypes.h> |
---|
5 | #include <stdbool.h> |
---|
6 | |
---|
7 | struct term_state; |
---|
8 | |
---|
9 | struct output_ops { |
---|
10 | void (*erase) (int, int, int, int, uint8_t); |
---|
11 | void (*write_char) (uint8_t, uint8_t); |
---|
12 | void (*showcursor) (const struct term_state *); |
---|
13 | void (*scroll_up) (uint8_t, uint8_t, uint8_t); |
---|
14 | void (*set_cursor) (int, int, bool); |
---|
15 | void (*beep) (void); |
---|
16 | void (*get_mode)(int *, int *); |
---|
17 | void (*text_mode)(void); |
---|
18 | void (*get_cursor)(uint8_t *, uint8_t *); |
---|
19 | }; |
---|
20 | |
---|
21 | struct input_ops { |
---|
22 | char (*getchar)(char *); |
---|
23 | int (*pollchar)(void); |
---|
24 | uint8_t (*shiftflags)(void); |
---|
25 | }; |
---|
26 | |
---|
27 | struct adv_ops { |
---|
28 | void (*init)(void); |
---|
29 | int (*write)(void); |
---|
30 | }; |
---|
31 | |
---|
32 | struct vesa_info; |
---|
33 | enum vesa_pixel_format; |
---|
34 | struct win_info; |
---|
35 | |
---|
36 | struct vesa_ops { |
---|
37 | int (*set_mode)(struct vesa_info *, int *, int *, enum vesa_pixel_format *); |
---|
38 | void (*screencpy)(size_t, const uint32_t *, size_t, struct win_info *); |
---|
39 | int (*font_query)(uint8_t **); |
---|
40 | }; |
---|
41 | |
---|
42 | enum heap; |
---|
43 | struct mem_ops { |
---|
44 | void *(*malloc)(size_t, enum heap, size_t); |
---|
45 | void *(*realloc)(void *, size_t); |
---|
46 | void (*free)(void *); |
---|
47 | }; |
---|
48 | |
---|
49 | struct initramfs; |
---|
50 | struct setup_data; |
---|
51 | |
---|
52 | struct firmware { |
---|
53 | void (*init)(void); |
---|
54 | void (*adjust_screen)(void); |
---|
55 | void (*cleanup)(void); |
---|
56 | struct disk *(*disk_init)(void *); |
---|
57 | struct output_ops *o_ops; |
---|
58 | struct input_ops *i_ops; |
---|
59 | void (*get_serial_console_info)(uint16_t *, uint16_t *, uint16_t *); |
---|
60 | struct adv_ops *adv_ops; |
---|
61 | int (*boot_linux)(void *, size_t, struct initramfs *, |
---|
62 | struct setup_data *, char *); |
---|
63 | struct vesa_ops *vesa; |
---|
64 | struct mem_ops *mem; |
---|
65 | }; |
---|
66 | |
---|
67 | extern struct firmware *firmware; |
---|
68 | |
---|
69 | extern void syslinux_register_bios(void); |
---|
70 | extern void init(void); |
---|
71 | |
---|
72 | #endif /* _SYSLINUX_FIRMWARE_H */ |
---|