2 * PROJECT: ReactOS Kernel
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: ntoskrnl/inbv/inbvport.c
5 * PURPOSE: Serial Port Boot Driver for Headless Terminal Support
6 * PROGRAMMERS: ReactOS Portable Systems Group
9 /* INCLUDES ******************************************************************/
14 /* GLOBALS *******************************************************************/
24 /* FUNCTIONS *****************************************************************/
33 /* Set FIFO as requested */
34 CpEnableFifo(Port
[PortId
].Address
, Enable
);
45 CpPutByte(&Port
[PortId
], Output
);
54 /* The port is now available */
55 Port
[PortId
].Address
= NULL
;
63 IN PUCHAR PortAddress
,
65 IN BOOLEAN IsMMIODevice
68 /* Not yet supported */
69 ASSERT(IsMMIODevice
== FALSE
);
71 /* Set default baud rate */
72 if (BaudRate
== 0) BaudRate
= 19200;
74 /* Check if port or address given */
77 /* Pick correct address for port */
83 PortAddress
= (PUCHAR
)0x3F8;
87 PortAddress
= (PUCHAR
)0x2F8;
91 PortAddress
= (PUCHAR
)0x3E8;
96 PortAddress
= (PUCHAR
)0x2E8;
102 /* Pick correct port for address */
103 PortAddress
= (PUCHAR
)0x2F8;
104 if (CpDoesPortExist(PortAddress
))
110 PortAddress
= (PUCHAR
)0x3F8;
111 if (!CpDoesPortExist(PortAddress
)) return FALSE
;
116 /* Initialize the port unless it's already up, and then return it */
117 if (Port
[PortNumber
- 1].Address
) return FALSE
;
118 CpInitialize(&Port
[PortNumber
- 1], PortAddress
, BaudRate
);
119 *PortId
= PortNumber
- 1;