📄 pdd.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
#ifndef __PDD_H
#define __PDD_H
//------------------------------------------------------------------------------
static PVOID HWInit(ULONG context, PVOID pMdd, PHWOBJ pHWObj);
static BOOL HWPostInit(PVOID pContext);
static BOOL HWDeinit(PVOID pContext);
static BOOL HWOpen(PVOID pContext);
static ULONG HWClose(PVOID pContext);
static INTERRUPT_TYPE HWGetInterruptType(PVOID pContext);
static ULONG HWRxIntr(PVOID pContext, PUCHAR pRxBuffer, ULONG *pLength);
static VOID HWTxIntr(PVOID pContext, PUCHAR pTxBuffer, ULONG *pLength);
static VOID HWModemIntr(PVOID pContext);
static VOID HWLineIntr(PVOID pContext);
static ULONG HWGetRxBufferSize(PVOID pContext);
static BOOL HWPowerOff(PVOID pContext);
static BOOL HWPowerOn(PVOID pContext);
static VOID HWClearDTR(PVOID pContext);
static VOID HWSetDTR(PVOID pContext);
static VOID HWClearRTS(PVOID pContext);
static VOID HWSetRTS(PVOID pContext);
static BOOL HWEnableIR(PVOID pContext, ULONG baudRate);
static BOOL HWDisableIR(PVOID pContext);
static VOID HWClearBreak(PVOID pContext);
static VOID HWSetBreak(PVOID pContext);
static VOID HWReset(PVOID pContext);
static VOID HWGetModemStatus(PVOID pContext, ULONG *pModemStat);
static BOOL HWXmitComChar(PVOID pContext, UCHAR ch);
static ULONG HWGetStatus(PVOID pContext, COMSTAT *pComStat);
static VOID HWGetCommProperties(PVOID pContext, COMMPROP *pCommProp);
static VOID HWPurgeComm(PVOID pContext, DWORD action);
static BOOL HWSetDCB(PVOID pContext, DCB *pDCB);
static ULONG HWSetCommTimeouts(PVOID pContext, COMMTIMEOUTS *pCommTimeouts);
static BOOL HWIOCtl(
PVOID pContext, DWORD code, UCHAR *pInpBuffer, DWORD inpSize,
UCHAR *pOutBuffer, DWORD outSize, DWORD *pOutSize
);
// SmartOne add
#define CP_UART0_PHYS_ADDR // SmartOne add
// 有可以打开这些debug message进行调试
#if 0
#ifdef DEBUGMSG
#undef DEBUGMSG
#define DEBUGMSG RETAILMSG
#endif
#define ZONE_ERROR 1
#define ZONE_OPEN 1
#define ZONE_CLOSE 1
#define ZONE_THREAD 1
#define ZONE_FUNCTION 1
#endif
// Uart Control
#define UART_ENABLE_BIT 0x01 // 0:disable, 1: enable
#define UART_RESET_BIT 0x02 // a high level signal reset
#define UART_RX_FIFO_ENB_BIT 0x04 // invalid, reserve
#define UART_SET_BAUDRATE_BIT 0x08 // 0: 9600 baud rate, 1: 38400 baud rate
// Uart Status
#define TX_STATUS_BIT 0x01 // 0 Tx is busy, 1 Tx is free
#define RX_STATUS_BIT 0x02 // 0 Receive fifo contains valid characters, 1 Receive fifo contains invalid characters
#define ALL_INT_BITS (TX_STATUS_BIT | RX_STATUS_BIT)
// Uart interrupt enable
#define TX_INT_ENB_BIT 0x01
#define RX_INT_ENB_BIT 0x02
// End SmartOne add
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -