21#define IS_COM1(IoBase) ((IoBase) == UlongToPtr(0x30))
22#define IS_NS16550(IoBase) ((IoBase) == UlongToPtr(0x238))
25#define READ_PORT_BUFFER_UCHAR(port, buffer, count) __inbytestring(H2I(port), buffer, count)
26#define WRITE_PORT_BUFFER_UCHAR(port, buffer, count) __outbytestring(H2I(port), buffer, count)
68 for (
i = 0;
i < 6;
i++)
76 UCHAR IntValue1, IntValue2;
217 for (
i = 0;
i < 3; ++
i)
305 if (!(Lsr & ExpectedValue))
316 if (!(Lsr & ExpectedValue))
342 UCHAR RxReadyFlags, ErrorFlags;
373 if (!(Lsr & RxReadyFlags))
377 if (Lsr & ErrorFlags)
USHORT NTAPI CpGetByte(_Inout_ PCPPORT Port, _Out_ PUCHAR Byte, _In_ BOOLEAN Wait, _In_ BOOLEAN Poll)
#define READ_PORT_BUFFER_UCHAR(port, buffer, count)
static VOID CpiWait(VOID)
#define IS_NS16550(IoBase)
static BOOLEAN CpiIsNekoProject(VOID)
VOID NTAPI CpPutByte(_Inout_ PCPPORT Port, _In_ UCHAR Byte)
NTSTATUS NTAPI CpInitialize(_Inout_ PCPPORT Port, _In_ PUCHAR Address, _In_ ULONG BaudRate)
static ULONG CpiGetPitTickRate(VOID)
BOOLEAN NTAPI CpDoesPortExist(_In_ PUCHAR Address)
#define WRITE_PORT_BUFFER_UCHAR(port, buffer, count)
static BOOLEAN Cpi8251DoesPortExist(_In_ PUCHAR IoBase)
static UCHAR NTAPI CpReadLsr(_Inout_ PCPPORT Port, _In_ UCHAR ExpectedValue)
static BOOLEAN Cpi8251HasFifo(VOID)
static BOOLEAN Cpi8251IsPortResponding(_In_ PUCHAR IoBase)
static BOOLEAN IsFifoEnabled
VOID NTAPI CpSetBaud(_Inout_ PCPPORT Port, _In_ ULONG BaudRate)
VOID NTAPI CpEnableFifo(_In_ PUCHAR Address, _In_ BOOLEAN Enable)
#define CPPORT_FLAG_MODEM_CONTROL
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
VOID NTAPI Uart16550SetBaud(_Inout_ PCPPORT Port, _In_ ULONG BaudRate)
USHORT NTAPI Uart16550GetByte(_Inout_ PCPPORT Port, _Out_ PUCHAR Byte, _In_ BOOLEAN Wait, _In_ BOOLEAN Poll)
NTSTATUS NTAPI Uart16550Initialize(_Inout_ PCPPORT Port, _In_ PUCHAR Address, _In_ ULONG BaudRate)
VOID NTAPI Uart16550PutByte(_Inout_ PCPPORT Port, _In_ UCHAR Byte)
VOID NTAPI Uart16550EnableFifo(_In_ PUCHAR Address, _In_ BOOLEAN Enable)
static UCHAR NTAPI Cp16550ReadLsr(_Inout_ PCPPORT Port, _In_ UCHAR ExpectedValue)
BOOLEAN NTAPI Uart16550DoesPortExist(_In_ PUCHAR Address)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
#define READ_PORT_UCHAR(p)
#define WRITE_PORT_UCHAR(p, d)
#define CPU_IO_o_ARTIC_DELAY
#define TIMER_FREQUENCY_1
FORCEINLINE VOID Write8253Timer(TIMER_CONTROL_PORT_REGISTER TimerControl, USHORT Count)
#define TIMER_FREQUENCY_2
#define SR_8251F_IIR_FIFO_DET
#define SER_8251F_REG_IIR
#define SR_8251A_STATUS_RxRDY
#define SR_8251A_STATUS_PE
#define SER_8251F_REG_FCR
#define SR_8251A_MODE_CLOCKx16
#define SR_8251F_LSR_RxRDY
#define SER_8251F_REG_RBR
#define SR_8251F_FCR_ENABLE
#define SR_8251A_COMMMAND_TxEN
#define SR_8251A_COMMMAND_RxEN
#define SR_8251F_FCR_DISABLE
#define SR_8251A_COMMMAND_IR
#define SR_8251A_COMMMAND_DTR
#define SR_8251F_FCR_TXMT_RESET
#define SR_8251A_COMMMAND_RTS
#define SER_8251F_REG_MSR
#define SR_8251A_STATUS_OE
#define SR_8251F_DLR_MODE_LEGACY
#define SER_8251F_REG_DLR
#define SR_8251A_MODE_1_STOP
#define SR_8251A_MODE_LENGTH_8
#define SR_8251A_STATUS_FE
#define SR_8251A_COMMMAND_ER
#define SER_8251F_REG_LSR
#define SR_8251A_STATUS_TxEMPTY
#define SR_8251F_FCR_RCVR_RESET
#define SR_8251F_LSR_TxEMPTY
#define STATUS_INVALID_PARAMETER
UCHAR InterruptEnableTxReady
UCHAR InterruptEnableRxReady
UCHAR InterruptEnableTxEmpty
_In_ WDFDPC _In_ BOOLEAN Wait
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value