78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
| /* SPDX-License-Identifier: MIT OR X11
 | |
|  *
 | |
|  * Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
 | |
|  * Copyright © 1999 Egbert Eich
 | |
|  *
 | |
|  *                   XFree86 int10 module
 | |
|  *   execute BIOS int 10h calls in x86 real mode environment
 | |
|  */
 | |
| #ifndef _XSERVER_XF86INT10_H
 | |
| #define _XSERVER_XF86INT10_H
 | |
| 
 | |
| #include <X11/Xmd.h>
 | |
| #include <X11/Xdefs.h>
 | |
| #include "xf86Pci.h"
 | |
| #include "xf86int10.h"
 | |
| 
 | |
| #ifdef _INT10_PRIVATE
 | |
| 
 | |
| /* int.c */
 | |
| int int_handler(xf86Int10InfoPtr pInt);
 | |
| 
 | |
| /* helper_exec.c */
 | |
| int setup_int(xf86Int10InfoPtr pInt);
 | |
| void finish_int(xf86Int10InfoPtr, int sig);
 | |
| uint32_t getIntVect(xf86Int10InfoPtr pInt, int num);
 | |
| void pushw(xf86Int10InfoPtr pInt, uint16_t val);
 | |
| int run_bios_int(int num, xf86Int10InfoPtr pInt);
 | |
| void dump_code(xf86Int10InfoPtr pInt);
 | |
| void dump_registers(xf86Int10InfoPtr pInt);
 | |
| void stack_trace(xf86Int10InfoPtr pInt);
 | |
| uint8_t bios_checksum(const uint8_t *start, int size);
 | |
| void LockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga);
 | |
| void UnlockLegacyVGA(xf86Int10InfoPtr pInt, legacyVGAPtr vga);
 | |
| 
 | |
| int port_rep_inb(xf86Int10InfoPtr pInt,
 | |
|                  uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| int port_rep_inw(xf86Int10InfoPtr pInt,
 | |
|                  uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| int port_rep_inl(xf86Int10InfoPtr pInt,
 | |
|                  uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| int port_rep_outb(xf86Int10InfoPtr pInt,
 | |
|                   uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| int port_rep_outw(xf86Int10InfoPtr pInt,
 | |
|                   uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| int port_rep_outl(xf86Int10InfoPtr pInt,
 | |
|                   uint16_t port, uint32_t base, int d_f, uint32_t count);
 | |
| 
 | |
| uint8_t x_inb(uint16_t port);
 | |
| uint16_t x_inw(uint16_t port);
 | |
| void x_outb(uint16_t port, uint8_t val);
 | |
| void x_outw(uint16_t port, uint16_t val);
 | |
| uint32_t x_inl(uint16_t port);
 | |
| void x_outl(uint16_t port, uint32_t val);
 | |
| 
 | |
| uint8_t Mem_rb(uint32_t addr);
 | |
| uint16_t Mem_rw(uint32_t addr);
 | |
| uint32_t Mem_rl(uint32_t addr);
 | |
| void Mem_wb(uint32_t addr, uint8_t val);
 | |
| void Mem_ww(uint32_t addr, uint16_t val);
 | |
| void Mem_wl(uint32_t addr, uint32_t val);
 | |
| 
 | |
| /* helper_mem.c */
 | |
| void setup_int_vect(xf86Int10InfoPtr pInt);
 | |
| int setup_system_bios(void *base_addr);
 | |
| void reset_int_vect(xf86Int10InfoPtr pInt);
 | |
| void set_return_trap(xf86Int10InfoPtr pInt);
 | |
| Bool int10skip(const void *options);
 | |
| Bool int10_check_bios(int scrnIndex, int codeSeg,
 | |
|                       const unsigned char *vbiosMem);
 | |
| Bool initPrimary(const void *options);
 | |
| #ifdef DEBUG
 | |
| void dprint(unsigned long start, unsigned long size);
 | |
| #endif
 | |
| 
 | |
| #endif                          /* _INT10_PRIVATE */
 | |
| 
 | |
| #endif /* _XSERVER_XF86INT10_H */
 |