PatchworkOS
19e446b
A non-POSIX operating system.
Theme:
Default
Round
Robot
Loading...
Searching...
No Matches
com.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
stdint.h
>
4
5
typedef
enum
com_port
6
{
7
COM1
= 0x3F8,
8
COM2
= 0x2F8,
9
COM3
= 0x3E8,
10
COM4
= 0x2E8,
11
COM5
= 0x5F8,
12
COM6
= 0x4F8,
13
COM7
= 0x5E8,
14
COM8
= 0x48E
15
}
com_port_t
;
16
17
typedef
enum
com_reg
18
{
19
COM_REG_RECEIVE
= 0,
20
COM_REG_TRANSMIT
= 0,
21
COM_REG_cli_pop
= 1,
22
COM_REG_BAUD_LOW
= 0,
// DLAB must be set to 1
23
COM_REG_BAUD_HIGH
= 1,
// DLAB must be set to 1
24
COM_REG_INTERRUPT_ID
= 2,
25
COM_REG_FIFO_CONTROL
= 2,
26
COM_REG_LINE_CONTROL
= 3,
27
COM_REG_MODEM_CONTROL
= 4,
28
COM_REG_LINE_STATUS
= 5,
29
COM_REG_MODEM_STATUS
= 6,
30
COM_REG_SCRATCH
= 7
31
}
com_reg_t
;
32
33
typedef
enum
com_line_control
34
{
35
COM_LINE_SIZE_5
= 0,
36
COM_LINE_SIZE_6
= 1,
37
COM_LINE_SIZE_7
= 2,
38
COM_LINE_SIZE_8
= 3,
39
COM_LINE_DLAB
= 1 << 7
40
}
com_line_control_t
;
41
42
typedef
enum
com_modem_control
43
{
44
COM_MODEM_DTR
= 1 << 0,
45
COM_MODEM_RTS
= 1 << 1,
46
COM_MODEM_OUT1
= 1 << 2,
47
COM_MODEM_OUT2
= 1 << 3,
48
COM_MODEM_LOOP
= 1 << 4
49
}
com_modem_control_t
;
50
51
typedef
enum
com_line_status
52
{
53
COM_LINE_READ_READY
= 1 << 0,
54
COM_LINE_WRITE_READY
= 1 << 5
55
}
com_line_status_t
;
56
57
void
com_init
(
com_port_t
port);
58
59
uint8_t
com_read
(
com_port_t
port);
60
61
void
com_write
(
com_port_t
port,
uint8_t
value);
62
63
uint8_t
com_reg_read
(
com_port_t
port,
com_reg_t
reg);
64
65
void
com_reg_write
(
com_port_t
port,
com_reg_t
reg,
uint8_t
value);
com_reg_write
void com_reg_write(com_port_t port, com_reg_t reg, uint8_t value)
Definition
com.c:37
com_port_t
com_port_t
Definition
com.h:6
COM1
@ COM1
Definition
com.h:7
COM4
@ COM4
Definition
com.h:10
COM5
@ COM5
Definition
com.h:11
COM2
@ COM2
Definition
com.h:8
COM8
@ COM8
Definition
com.h:14
COM3
@ COM3
Definition
com.h:9
COM7
@ COM7
Definition
com.h:13
COM6
@ COM6
Definition
com.h:12
com_line_status_t
com_line_status_t
Definition
com.h:52
COM_LINE_WRITE_READY
@ COM_LINE_WRITE_READY
Definition
com.h:54
COM_LINE_READ_READY
@ COM_LINE_READ_READY
Definition
com.h:53
com_line_control_t
com_line_control_t
Definition
com.h:34
COM_LINE_DLAB
@ COM_LINE_DLAB
Definition
com.h:39
COM_LINE_SIZE_5
@ COM_LINE_SIZE_5
Definition
com.h:35
COM_LINE_SIZE_7
@ COM_LINE_SIZE_7
Definition
com.h:37
COM_LINE_SIZE_6
@ COM_LINE_SIZE_6
Definition
com.h:36
COM_LINE_SIZE_8
@ COM_LINE_SIZE_8
Definition
com.h:38
com_modem_control_t
com_modem_control_t
Definition
com.h:43
COM_MODEM_OUT2
@ COM_MODEM_OUT2
Definition
com.h:47
COM_MODEM_RTS
@ COM_MODEM_RTS
Definition
com.h:45
COM_MODEM_DTR
@ COM_MODEM_DTR
Definition
com.h:44
COM_MODEM_OUT1
@ COM_MODEM_OUT1
Definition
com.h:46
COM_MODEM_LOOP
@ COM_MODEM_LOOP
Definition
com.h:48
com_write
void com_write(com_port_t port, uint8_t value)
Definition
com.c:23
com_read
uint8_t com_read(com_port_t port)
Definition
com.c:14
com_reg_t
com_reg_t
Definition
com.h:18
COM_REG_MODEM_CONTROL
@ COM_REG_MODEM_CONTROL
Definition
com.h:27
COM_REG_BAUD_LOW
@ COM_REG_BAUD_LOW
Definition
com.h:22
COM_REG_RECEIVE
@ COM_REG_RECEIVE
Definition
com.h:19
COM_REG_SCRATCH
@ COM_REG_SCRATCH
Definition
com.h:30
COM_REG_LINE_CONTROL
@ COM_REG_LINE_CONTROL
Definition
com.h:26
COM_REG_cli_pop
@ COM_REG_cli_pop
Definition
com.h:21
COM_REG_INTERRUPT_ID
@ COM_REG_INTERRUPT_ID
Definition
com.h:24
COM_REG_FIFO_CONTROL
@ COM_REG_FIFO_CONTROL
Definition
com.h:25
COM_REG_TRANSMIT
@ COM_REG_TRANSMIT
Definition
com.h:20
COM_REG_LINE_STATUS
@ COM_REG_LINE_STATUS
Definition
com.h:28
COM_REG_MODEM_STATUS
@ COM_REG_MODEM_STATUS
Definition
com.h:29
COM_REG_BAUD_HIGH
@ COM_REG_BAUD_HIGH
Definition
com.h:23
com_init
void com_init(com_port_t port)
Definition
com.c:4
com_reg_read
uint8_t com_reg_read(com_port_t port, com_reg_t reg)
Definition
com.c:32
stdint.h
uint8_t
__UINT8_TYPE__ uint8_t
Definition
stdint.h:11
include
kernel
drivers
com.h
Generated on Sat Jan 24 2026 10:59:24 for PatchworkOS by
1.9.8