PatchworkOS
Loading...
Searching...
No Matches
com.c
Go to the documentation of this file.
1#include <kernel/cpu/port.h>
3
13
15{
17 {
18 asm volatile("pause");
19 }
20 return com_reg_read(port, COM_REG_RECEIVE);
21}
22
23void com_write(com_port_t port, uint8_t value)
24{
26 {
27 asm volatile("pause");
28 }
29 com_reg_write(port, COM_REG_TRANSMIT, value);
30}
31
33{
34 return port_inb(port + reg);
35}
36
38{
39 port_outb(port + reg, value);
40}
void com_reg_write(com_port_t port, com_reg_t reg, uint8_t value)
Definition com.c:37
void com_write(com_port_t port, uint8_t value)
Definition com.c:23
uint8_t com_read(com_port_t port)
Definition com.c:14
void com_init(com_port_t port)
Definition com.c:4
uint8_t com_reg_read(com_port_t port, com_reg_t reg)
Definition com.c:32
com_port_t
Definition com.h:6
@ COM_LINE_WRITE_READY
Definition com.h:54
@ COM_LINE_READ_READY
Definition com.h:53
@ COM_LINE_DLAB
Definition com.h:39
@ COM_LINE_SIZE_8
Definition com.h:38
@ COM_MODEM_OUT2
Definition com.h:47
@ COM_MODEM_RTS
Definition com.h:45
@ COM_MODEM_DTR
Definition com.h:44
com_reg_t
Definition com.h:18
@ COM_REG_MODEM_CONTROL
Definition com.h:27
@ COM_REG_BAUD_LOW
Definition com.h:22
@ COM_REG_RECEIVE
Definition com.h:19
@ COM_REG_LINE_CONTROL
Definition com.h:26
@ COM_REG_INTERRUPT_ID
Definition com.h:24
@ COM_REG_TRANSMIT
Definition com.h:20
@ COM_REG_LINE_STATUS
Definition com.h:28
@ COM_REG_BAUD_HIGH
Definition com.h:23
static uint8_t port_inb(uint16_t port)
Definition port.h:34
static void port_outb(uint16_t port, uint8_t val)
Definition port.h:29
__UINT8_TYPE__ uint8_t
Definition stdint.h:11