feat: reformatted code base to be more standard
This commit is contained in:
74
include/myke/drivers/ports.h
Normal file
74
include/myke/drivers/ports.h
Normal file
@@ -0,0 +1,74 @@
|
||||
#ifndef MY_KERNEL_DRIVERS_PORT_H
|
||||
#define MY_KERNEL_DRIVERS_PORT_H
|
||||
|
||||
#define PORT_PIC_MASTER_COMMAND 0x20
|
||||
#define PORT_PIC_MASTER_DATA 0x21
|
||||
#define PORT_PIC_SLAVE_COMMAND 0xA0
|
||||
#define PORT_PIC_SLAVE_DATA 0xA1
|
||||
|
||||
// https://wiki.osdev.org/PIT
|
||||
#define PORT_PIT_COMMAND 0x43
|
||||
#define PORT_PIT_DATA_0 0x40
|
||||
#define PORT_PIT_DATA_1 0x41
|
||||
#define PORT_PIT_DATA_3 0x42
|
||||
|
||||
// https://wiki.osdev.org/%228042%22_PS/2_Controller
|
||||
#define PORT_PS2_DATA 0x60
|
||||
#define PORT_PS2_STATUS 0x64
|
||||
#define PORT_PS2_COMMAND 0x64
|
||||
|
||||
//http://www.osdever.net/FreeVGA/vga/crtcreg.htm#0A
|
||||
#define PORT_REG_SCREEN_CTRL 0x3d4
|
||||
#define PORT_REG_SCREEN_CTRL_CURSOR_H 0x0E
|
||||
#define PORT_REG_SCREEN_CTRL_CURSOR_L 0x0F
|
||||
#define PORT_REG_SCREEN_DATA 0x3d5
|
||||
|
||||
// https://wiki.osdev.org/Serial_Ports
|
||||
#define PORT_SERIAL_0 0x3f8
|
||||
#define PORT_SERIAL_1 0x2f8
|
||||
#define PORT_SERIAL_2 0x3e8
|
||||
#define PORT_SERIAL_3 0x2e8
|
||||
|
||||
#define PORT_SERIAL_DATA 0
|
||||
#define PORT_SERIAL_INTERRUPT 1
|
||||
#define PORT_SERIAL_DLAB_LSB 0
|
||||
#define PORT_SERIAL_DLAB_MSB 1
|
||||
#define PORT_SERIAL_INTERRUPT_ID_FIFO 2
|
||||
#define PORT_SERIAL_LINE_CONTROL 3
|
||||
#define PORT_SERIAL_MODEM_CONTROL 4
|
||||
#define PORT_SERIAL_LINE_STATUS 5
|
||||
#define PORT_SERIAL_MODEM_STATUS 6
|
||||
#define PORT_SERIAL_SCRATCH 6
|
||||
|
||||
#define PORT_ACPI 0xB004
|
||||
#define PORT_ACPI_SHUTDOWN 0x2000
|
||||
|
||||
#define PORT_QEMU_COMMAND 0x604
|
||||
#define PORT_QEMU_COMMAND_SHUTDOWN 0x2000
|
||||
|
||||
#define PORT_VBOX 0x4004
|
||||
#define PORT_VBOX_SHUTDOWN 0x3400
|
||||
|
||||
// https://wiki.osdev.org/PCI
|
||||
#define PORT_PCI_CONFIG_ADDRESS (0xCF8)
|
||||
#define PORT_PCI_CONFIG_DATA (0xCFC)
|
||||
|
||||
unsigned char port_byte_in(unsigned short port);
|
||||
|
||||
void port_byte_out(unsigned short port, unsigned char data);
|
||||
|
||||
unsigned short port_word_in(unsigned short port);
|
||||
|
||||
void port_word_out(unsigned short port, unsigned short data);
|
||||
|
||||
unsigned int port_double_word_in(unsigned int port);
|
||||
|
||||
void port_double_word_out(unsigned short port, unsigned int data);
|
||||
|
||||
void port_word_out_repeat(unsigned short port, unsigned short *data, int buffer_size);
|
||||
|
||||
void port_word_in_repeat(unsigned short port, unsigned short *data, int buffer_size);
|
||||
|
||||
void port_double_word_in_repeat(unsigned short port, unsigned int *data, int buffer_size);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user