mirror of https://github.com/E-Almqvist/eOS
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
631 B
26 lines
631 B
// Function to read a byte from port
|
|
unsigned char port_byte_in(unsigned short port) {
|
|
unsigned char res;
|
|
__asm__("in %%dx, %%al" : "=a" (res) : "d" (port));
|
|
|
|
return res;
|
|
}
|
|
|
|
// to write a byte to port
|
|
void port_byte_out(unsigned short port, unsigned char data) {
|
|
__asm__("out %%al, %%dx" : :"a" (data), "d" (port));
|
|
}
|
|
|
|
|
|
// Read word from port
|
|
unsigned short port_word_in(unsigned short port) {
|
|
unsigned short res;
|
|
__asm__("in %%dx, %%ax" : "=a" (res) : "d" (port));
|
|
|
|
return res;
|
|
}
|
|
|
|
// write word to port
|
|
void port_word_out(unsigned short port, unsigned short data) {
|
|
__asm__("out %%ax, %%dx" : :"a" (data), "d" (port));
|
|
}
|
|
|