273 lines
7.6 KiB
C
273 lines
7.6 KiB
C
// Misc function and variable declarations.
|
|
#ifndef __UTIL_H
|
|
#define __UTIL_H
|
|
|
|
#include "types.h" // u32
|
|
|
|
// apm.c
|
|
void apm_shutdown(void);
|
|
struct bregs;
|
|
void handle_1553(struct bregs *regs);
|
|
|
|
// bmp.c
|
|
struct bmp_decdata *bmp_alloc(void);
|
|
int bmp_decode(struct bmp_decdata *bmp, unsigned char *data, int data_size);
|
|
void bmp_get_info(struct bmp_decdata *bmp, int *width, int *height, int *bpp);
|
|
int bmp_show(struct bmp_decdata *bmp, unsigned char *pic, int width
|
|
, int height, int depth, int bytes_per_line_dest);
|
|
|
|
// boot.c
|
|
void boot_init(void);
|
|
void boot_add_bev(u16 seg, u16 bev, u16 desc, int prio);
|
|
void boot_add_bcv(u16 seg, u16 ip, u16 desc, int prio);
|
|
struct drive_s;
|
|
void boot_add_floppy(struct drive_s *drive_g, const char *desc, int prio);
|
|
void boot_add_hd(struct drive_s *drive_g, const char *desc, int prio);
|
|
void boot_add_cd(struct drive_s *drive_g, const char *desc, int prio);
|
|
void boot_add_cbfs(void *data, const char *desc, int prio);
|
|
void interactive_bootmenu(void);
|
|
void bcv_prepboot(void);
|
|
u8 is_bootprio_strict(void);
|
|
struct pci_device;
|
|
int bootprio_find_pci_device(struct pci_device *pci);
|
|
int bootprio_find_mmio_device(void *mmio);
|
|
int bootprio_find_scsi_device(struct pci_device *pci, int target, int lun);
|
|
int bootprio_find_scsi_mmio_device(void *mmio, int target, int lun);
|
|
int bootprio_find_ata_device(struct pci_device *pci, int chanid, int slave);
|
|
int bootprio_find_fdc_device(struct pci_device *pci, int port, int fdid);
|
|
int bootprio_find_pci_rom(struct pci_device *pci, int instance);
|
|
int bootprio_find_named_rom(const char *name, int instance);
|
|
struct usbdevice_s;
|
|
int bootprio_find_usb(struct usbdevice_s *usbdev, int lun);
|
|
int get_keystroke_full(int msec);
|
|
int get_keystroke(int msec);
|
|
struct chs_s;
|
|
int boot_lchs_find_pci_device(struct pci_device *pci, struct chs_s *chs);
|
|
int boot_lchs_find_scsi_device(struct pci_device *pci, int target, int lun,
|
|
struct chs_s *chs);
|
|
int boot_lchs_find_ata_device(struct pci_device *pci, int chanid, int slave,
|
|
struct chs_s *chs);
|
|
|
|
// bootsplash.c
|
|
void enable_vga_console(void);
|
|
void enable_bootsplash(void);
|
|
void disable_bootsplash(void);
|
|
|
|
// cdrom.c
|
|
extern struct eltorito_s CDEmu;
|
|
extern struct drive_s *cdemu_drive_gf;
|
|
struct disk_op_s;
|
|
int cdemu_process_op(struct disk_op_s *op);
|
|
void cdrom_prepboot(void);
|
|
int cdrom_boot(struct drive_s *drive_g);
|
|
char *cdrom_media_info(struct drive_s *drive_g);
|
|
|
|
// clock.c
|
|
void clock_setup(void);
|
|
void handle_1583(struct bregs *regs);
|
|
void clock_poll_irq(void);
|
|
u32 irqtimer_calc_ticks(u32 count);
|
|
u32 irqtimer_calc(u32 msecs);
|
|
int irqtimer_check(u32 end);
|
|
void handle_1586(struct bregs *regs);
|
|
|
|
// fw/acpi.c
|
|
void acpi_setup(void);
|
|
|
|
// fw/biostable.c
|
|
void copy_pir(void *pos);
|
|
void copy_mptable(void *pos);
|
|
extern struct pir_header *PirAddr;
|
|
void copy_acpi_rsdp(void *pos);
|
|
extern struct rsdp_descriptor *RsdpAddr;
|
|
extern u32 acpi_pm1a_cnt;
|
|
extern u16 acpi_pm_base;
|
|
void *find_acpi_rsdp(void);
|
|
void *find_acpi_table(u32 signature);
|
|
u32 find_resume_vector(void);
|
|
void acpi_reboot(void);
|
|
void find_acpi_features(void);
|
|
void *smbios_get_tables(u32 *length);
|
|
void copy_smbios_21(void *pos);
|
|
void display_uuid(void);
|
|
void copy_table(void *pos);
|
|
void smbios_setup(void);
|
|
|
|
// fw/dsdt_parser.c
|
|
struct acpi_device;
|
|
void acpi_dsdt_parse(void);
|
|
struct acpi_device *acpi_dsdt_find_string(struct acpi_device *prev, const char *hid);
|
|
struct acpi_device *acpi_dsdt_find_eisaid(struct acpi_device *prev, u16 eisaid);
|
|
char *acpi_dsdt_name(struct acpi_device *dev);
|
|
int acpi_dsdt_present_eisaid(u16 eisaid);
|
|
int acpi_dsdt_find_io(struct acpi_device *dev, u64 *min, u64 *max);
|
|
int acpi_dsdt_find_mem(struct acpi_device *dev, u64 *min, u64 *max);
|
|
int acpi_dsdt_find_irq(struct acpi_device *dev, u64 *irq);
|
|
|
|
// fw/coreboot.c
|
|
extern const char *CBvendor, *CBpart;
|
|
struct cbfs_file;
|
|
void coreboot_debug_putc(char c);
|
|
void cbfs_run_payload(struct cbfs_file *file);
|
|
void coreboot_platform_setup(void);
|
|
void cbfs_payload_setup(void);
|
|
void coreboot_preinit(void);
|
|
void coreboot_cbfs_init(void);
|
|
struct cb_header;
|
|
void *find_cb_subtable(struct cb_header *cbh, u32 tag);
|
|
struct cb_header *find_cb_table(void);
|
|
|
|
// fw/csm.c
|
|
int csm_bootprio_fdc(struct pci_device *pci, int port, int fdid);
|
|
int csm_bootprio_ata(struct pci_device *pci, int chanid, int slave);
|
|
int csm_bootprio_pci(struct pci_device *pci);
|
|
|
|
// fw/mptable.c
|
|
void mptable_setup(void);
|
|
|
|
// fw/mtrr.c
|
|
void mtrr_setup(void);
|
|
|
|
// fw/multiboot.c
|
|
void multiboot_init(void);
|
|
|
|
// fw/pciinit.c
|
|
extern u64 pcimem_start, pcimem_end;
|
|
extern u64 pcimem64_start, pcimem64_end;
|
|
extern const u8 pci_irqs[4];
|
|
void pci_setup(void);
|
|
void pci_resume(void);
|
|
|
|
// fw/pirtable.c
|
|
void pirtable_setup(void);
|
|
|
|
// fw/shadow.c
|
|
void make_bios_writable(void);
|
|
void make_bios_readonly(void);
|
|
void qemu_reboot(void);
|
|
|
|
// fw/smbios.c
|
|
void smbios_legacy_setup(void);
|
|
|
|
// fw/smm.c
|
|
void smm_device_setup(void);
|
|
void smm_setup(void);
|
|
|
|
// fw/smp.c
|
|
extern u32 MaxCountCPUs;
|
|
void wrmsr_smp(u32 index, u64 val);
|
|
void smp_setup(void);
|
|
void smp_resume(void);
|
|
int apic_id_is_present(u8 apic_id);
|
|
|
|
// hw/dma.c
|
|
int dma_floppy(u32 addr, int count, int isWrite);
|
|
void dma_setup(void);
|
|
|
|
// hw/floppy.c
|
|
extern struct floppy_ext_dbt_s diskette_param_table2;
|
|
void floppy_setup(void);
|
|
struct drive_s *init_floppy(int floppyid, int ftype);
|
|
int find_floppy_type(u32 size);
|
|
int floppy_process_op(struct disk_op_s *op);
|
|
void floppy_tick(void);
|
|
|
|
// hw/ramdisk.c
|
|
void ramdisk_setup(void);
|
|
int ramdisk_process_op(struct disk_op_s *op);
|
|
|
|
// hw/sdcard.c
|
|
int sdcard_process_op(struct disk_op_s *op);
|
|
void sdcard_setup(void);
|
|
|
|
// hw/timer.c
|
|
void timer_setup(void);
|
|
void pmtimer_setup(u16 ioport);
|
|
void tsctimer_setfreq(u32 khz, const char *src);
|
|
u32 timer_calc(u32 msecs);
|
|
u32 timer_calc_usec(u32 usecs);
|
|
int timer_check(u32 end);
|
|
void ndelay(u32 count);
|
|
void udelay(u32 count);
|
|
void mdelay(u32 count);
|
|
void nsleep(u32 count);
|
|
void usleep(u32 count);
|
|
void msleep(u32 count);
|
|
u32 ticks_to_ms(u32 ticks);
|
|
u32 ticks_from_ms(u32 ms);
|
|
void pit_setup(void);
|
|
|
|
// jpeg.c
|
|
struct jpeg_decdata *jpeg_alloc(void);
|
|
int jpeg_decode(struct jpeg_decdata *jpeg, unsigned char *buf);
|
|
void jpeg_get_size(struct jpeg_decdata *jpeg, int *width, int *height);
|
|
int jpeg_show(struct jpeg_decdata *jpeg, unsigned char *pic, int width
|
|
, int height, int depth, int bytes_per_line_dest);
|
|
|
|
// kbd.c
|
|
void kbd_init(void);
|
|
void handle_15c2(struct bregs *regs);
|
|
void process_key(u8 key);
|
|
u8 enqueue_key(u16 keycode);
|
|
u16 ascii_to_keycode(u8 ascii);
|
|
|
|
// misc.c
|
|
extern int HaveRunPost;
|
|
extern struct bios_config_table_s BIOS_CONFIG_TABLE __aligned(1);
|
|
extern struct floppy_dbt_s diskette_param_table __aligned(1);
|
|
extern u8 BiosChecksum;
|
|
int in_post(void);
|
|
void mathcp_setup(void);
|
|
|
|
// mouse.c
|
|
void mouse_init(void);
|
|
void process_mouse(u8 data);
|
|
|
|
// optionroms.c
|
|
struct rom_header;
|
|
void callrom(struct rom_header *rom, u16 bdf);
|
|
void call_bcv(u16 seg, u16 ip);
|
|
int is_pci_vga(struct pci_device *pci);
|
|
void optionrom_setup(void);
|
|
void vgarom_setup(void);
|
|
void s3_resume_vga(void);
|
|
extern int ScreenAndDebug;
|
|
|
|
// pcibios.c
|
|
void handle_1ab1(struct bregs *regs);
|
|
void bios32_init(void);
|
|
|
|
// pmm.c
|
|
void pmm_init(void);
|
|
void pmm_prepboot(void);
|
|
|
|
// pnpbios.c
|
|
u16 get_pnp_offset(void);
|
|
void pnp_init(void);
|
|
|
|
// post.c
|
|
void interface_init(void);
|
|
void device_hardware_setup(void);
|
|
void prepareboot(void);
|
|
void startBoot(void);
|
|
void reloc_preinit(void *f, void *arg);
|
|
void code_mutable_preinit(void);
|
|
|
|
// sercon.c
|
|
void sercon_setup(void);
|
|
void sercon_check_event(void);
|
|
|
|
// serial.c
|
|
void serial_setup(void);
|
|
void lpt_setup(void);
|
|
|
|
// version.c
|
|
extern const char VERSION[], BUILDINFO[];
|
|
|
|
// vgahooks.c
|
|
void handle_155f(struct bregs *regs);
|
|
void handle_157f(struct bregs *regs);
|
|
void vgahook_setup(struct pci_device *pci);
|
|
|
|
#endif // util.h
|