ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

serial.h File Reference
#include <ntddk.h>
#include <ndk/haltypes.h>
#include <ntddser.h>
#include <stdio.h>
#include <debug.h>

Go to the source code of this file.

Data Structures

struct  PCIRCULAR_BUFFER
struct  PSERIAL_DEVICE_EXTENSION
struct  PWORKITEM_DATA

Defines

#define PST_RS232   1
#define COMMPROP_INITIALIZED   0xE73CF52E
#define SERIAL_TAG   'lreS'
#define INFINITE   MAXULONG
#define BAUD_CLOCK   1843200
#define CLOCKS_PER_BIT   16
#define SER_RBR(x)   ((x)+0) /* Receive Register */
#define SER_THR(x)   ((x)+0) /* Transmit Register */
#define SER_DLL(x)   ((x)+0) /* Baud Rate Divisor LSB */
#define SER_IER(x)   ((x)+1) /* Interrupt Enable Register */
#define SR_IER_DATA_RECEIVED   0x01
#define SR_IER_THR_EMPTY   0x02
#define SR_IER_LSR_CHANGE   0x04
#define SR_IER_MSR_CHANGE   0x08
#define SR_IER_SLEEP_MODE   0x10 /* Uart >= 16750 */
#define SR_IER_LOW_POWER   0x20 /* Uart >= 16750 */
#define SER_DLM(x)   ((x)+1) /* Baud Rate Divisor MSB */
#define SER_IIR(x)   ((x)+2) /* Interrupt Identification Register */
#define SR_IIR_SELF   0x00
#define SR_IIR_ID_MASK   0x07
#define SR_IIR_MSR_CHANGE   SR_IIR_SELF
#define SR_IIR_THR_EMPTY   (SR_IIR_SELF | 2)
#define SR_IIR_DATA_RECEIVED   (SR_IIR_SELF | 4)
#define SR_IIR_ERROR   (SR_IIR_SELF | 6)
#define SER_FCR(x)   ((x)+2) /* FIFO Control Register (Uart >= 16550A) */
#define SR_FCR_ENABLE_FIFO   0x01
#define SR_FCR_CLEAR_RCVR   (0x02 | SR_FCR_ENABLE_FIFO)
#define SR_FCR_CLEAR_XMIT   (0x04 | SR_FCR_ENABLE_FIFO)
#define SR_FCR_1_BYTE   (0x00 | SR_FCR_ENABLE_FIFO)
#define SR_FCR_4_BYTES   (0x40 | SR_FCR_ENABLE_FIFO)
#define SR_FCR_8_BYTES   (0x80 | SR_FCR_ENABLE_FIFO)
#define SR_FCR_14_BYTES   (0xC0 | SR_FCR_ENABLE_FIFO)
#define SER_LCR(x)   ((x)+3) /* Line Control Register */
#define SR_LCR_CS5   0x00
#define SR_LCR_CS6   0x01
#define SR_LCR_CS7   0x02
#define SR_LCR_CS8   0x03
#define SR_LCR_ST1   0x00
#define SR_LCR_ST2   0x04
#define SR_LCR_PNO   0x00
#define SR_LCR_POD   0x08
#define SR_LCR_PEV   0x18
#define SR_LCR_PMK   0x28
#define SR_LCR_PSP   0x38
#define SR_LCR_BRK   0x40
#define SR_LCR_DLAB   0x80
#define SER_MCR(x)   ((x)+4) /* Modem Control Register */
#define SR_MCR_DTR   SERIAL_DTR_STATE
#define SR_MCR_RTS   SERIAL_RTS_STATE
#define SER_LSR(x)   ((x)+5) /* Line Status Register */
#define SR_LSR_DATA_RECEIVED   0x01
#define SR_LSR_OVERRUN_ERROR   0x02
#define SR_LSR_PARITY_ERROR   0x04
#define SR_LSR_FRAMING_ERROR   0x08
#define SR_LSR_BREAK_INT   0x10
#define SR_LSR_THR_EMPTY   0x20
#define SR_LSR_TSR_EMPTY   0x40
#define SR_LSR_ERROR_IN_FIFO   0x80 /* Uart >= 16550A */
#define SER_MSR(x)   ((x)+6) /* Modem Status Register */
#define SR_MSR_CTS_CHANGED   0x01
#define SR_MSR_DSR_CHANGED   0x02
#define SR_MSR_RI_CHANGED   0x04
#define SR_MSR_DCD_CHANGED   0x08
#define SR_MSR_CTS   SERIAL_CTS_STATE /* Clear To Send */
#define SR_MSR_DSR   SERIAL_DSR_STATE /* Data Set Ready */
#define SI_MSR_RI   SERIAL_RI_STATE /* Ring Indicator */
#define SR_MSR_DCD   SERIAL_DCD_STATE /* Data Carrier Detect */
#define SER_SCR(x)   ((x)+7) /* Scratch Pad Register, Uart >= Uart16450 */

Enumerations

enum  SERIAL_DEVICE_STATE {
  dsStopped, dsStarted, dsPaused, dsRemoved,
  dsSurpriseRemoved
}
enum  UART_TYPE {
  UartUnknown, Uart8250, Uart16450, Uart16550,
  Uart16550A, Uart16650, Uart16750
}

Functions

NTSTATUS InitializeCircularBuffer (IN PCIRCULAR_BUFFER pBuffer, IN ULONG BufferSize)
NTSTATUS FreeCircularBuffer (IN PCIRCULAR_BUFFER pBuffer)
BOOLEAN IsCircularBufferEmpty (IN PCIRCULAR_BUFFER pBuffer)
ULONG GetNumberOfElementsInCircularBuffer (IN PCIRCULAR_BUFFER pBuffer)
NTSTATUS PushCircularBufferEntry (IN PCIRCULAR_BUFFER pBuffer, IN UCHAR Entry)
NTSTATUS PopCircularBufferEntry (IN PCIRCULAR_BUFFER pBuffer, OUT PUCHAR Entry)
NTSTATUS IncreaseCircularBufferSize (IN PCIRCULAR_BUFFER pBuffer, IN ULONG NewBufferSize)
NTSTATUS NTAPI SerialSetBaudRate (IN PSERIAL_DEVICE_EXTENSION DeviceExtension, IN ULONG NewBaudRate)
NTSTATUS NTAPI SerialSetLineControl (IN PSERIAL_DEVICE_EXTENSION DeviceExtension, IN PSERIAL_LINE_CONTROL NewSettings)
UART_TYPE SerialDetectUartType (IN PUCHAR ComPortBase)
NTSTATUS ForwardIrpAndWait (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
VOID NTAPI SerialReceiveByte (IN PKDPC Dpc, IN PVOID pDeviceExtension, IN PVOID Unused1, IN PVOID Unused2)
VOID NTAPI SerialSendByte (IN PKDPC Dpc, IN PVOID pDeviceExtension, IN PVOID Unused1, IN PVOID Unused2)
VOID NTAPI SerialCompleteIrp (IN PKDPC Dpc, IN PVOID pDeviceExtension, IN PVOID pIrp, IN PVOID Unused)
NTSTATUS NTAPI SerialAddDeviceInternal (IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT Pdo, IN UART_TYPE UartType, IN PULONG pComPortNumber OPTIONAL, OUT PDEVICE_OBJECT *pFdo OPTIONAL)
NTSTATUS NTAPI SerialPnpStartDevice (IN PDEVICE_OBJECT DeviceObject, IN PCM_RESOURCE_LIST ResourceList, IN PCM_RESOURCE_LIST ResourceListTranslated)

Variables

DRIVER_DISPATCH SerialCleanup
DRIVER_DISPATCH SerialClose
DRIVER_DISPATCH SerialCreate
DRIVER_DISPATCH SerialDeviceControl
DRIVER_DISPATCH SerialQueryInformation
DRIVER_DISPATCH ForwardIrpAndForget
KSERVICE_ROUTINE SerialInterruptService
DRIVER_ADD_DEVICE SerialAddDevice
DRIVER_DISPATCH SerialPnp
DRIVER_DISPATCH SerialPower
DRIVER_DISPATCH SerialRead
DRIVER_DISPATCH SerialWrite

Generated on Fri May 25 2012 04:45:59 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.