Home | History | Annotate | Download | only in syslinux
      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 */
     73