📄 xrcom16550.h
字号:
//
// Copyright (c) 2005 Exar Corporation. All rights reserved.
//
/*++
Module Name:
xrcom16550.h
Abstract:
Holds definitions for sample 16550 serial interface.
Notes:
--*/
#ifndef __SER_PDD_H__
#define __SER_PDD_H__
#ifdef __cplusplus
extern "C" {
#endif
// TODO - Define PAGE_CONTAINING_UART
#define PAGE_CONTAINING_UART XXXXX
/*
* @doc HWINTERNAL
* @struct SER_INFO | Private structure.
*/
typedef struct __SER_INFO {
// Put lib struct first so we can easily cast pointers
SER16550_INFO ser16550;
// now hardware specific fields
DWORD dwInterfaceType; // @filed IO Interface (bus) type
DWORD dwBusNumber; // @field PCI bus number.
DWORD dwMemBase; // @field IO Base Address - unmapped
DWORD dwMemLen; // @field IO Length
DWORD dwSysIntr; // @field System Interrupt number for this peripheral
DWORD dwDevIndex; // @field Index of device
PUCHAR pBaseAddress; // @field Start of serial registers - mapped
UINT8 cOpenCount; // @field Count of concurrent opens
COMMPROP CommProp; // @field Pointer to CommProp structure.
PVOID pMddHead; // @field First arg to mdd callbacks.
BOOL fIRMode; // @field Boolean, are we running in IR mode?
CEDEVICE_POWER_STATE LastDx;// Last Power State
#ifdef EXAMINE_BOOTARGS
PBOOT_ARGS pBootArgs; // @field Pointer to global boot args struct
#endif
PHWOBJ pHWObj; // @field Pointer to PDDs HWObj structure
BOOL dwPortInstanceOnChip; // Port Instance on PCI Chip
// to support PCI UART Config Reg Access
// and to limit the access only through 1st Port.
} SER_INFO, *PSER_INFO;
// Here are the names of the values stored in the registry
#define PC_REG_DEVINDEX_VAL_NAME TEXT("DeviceArrayIndex")
#define PC_REG_DEVINDEX_VAL_LEN sizeof( DWORD )
#define PC_REG_REGSTRIDE_VAL_NAME TEXT("RegStride")
#define PC_REG_REGSTRIDE_VAL_LEN sizeof( DWORD )
#ifdef __cplusplus
}
#endif
#endif __SER_PDD_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -