63 lines
1.8 KiB
C
63 lines
1.8 KiB
C
#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
|
|
|
|
//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
|
|
|
|
// 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
|
|
|
|
// 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_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
|