Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*****************************************************************************
* * Copyright (c) 1996-1999 Microsoft Corporation * * @doc * @module settings.h | IrSIR NDIS Miniport Driver * @comm * *----------------------------------------------------------------------------- * * Author: Scott Holden (sholden) * * Date: 10/4/1996 (created) * * Contents: * *****************************************************************************/
#ifndef _SETTINGS_H
#define _SETTINGS_H
#include "dongle.h"
#define IRSIR_MAJOR_VERSION 5
#define IRSIR_MINOR_VERSION 0
enum baudRates {
//
// Slow IR
//
BAUDRATE_2400 = 0, BAUDRATE_9600, BAUDRATE_19200, BAUDRATE_38400, BAUDRATE_57600, BAUDRATE_115200,
//
// Medium IR
//
BAUDRATE_576000, BAUDRATE_1152000,
//
// Fast IR
//
BAUDRATE_4000000,
//
// must be last
//
NUM_BAUDRATES };
#define DEFAULT_BAUDRATE BAUDRATE_115200
#define ALL_SLOW_IRDA_SPEEDS ( NDIS_IRDA_SPEED_2400 | \
NDIS_IRDA_SPEED_9600 | \ NDIS_IRDA_SPEED_19200 | \ NDIS_IRDA_SPEED_38400 | \ NDIS_IRDA_SPEED_57600 | \ NDIS_IRDA_SPEED_115200 \ )
#define MAX_SPEED_SUPPORTED 115200
#define MAX_TX_PACKETS 7
#define MAX_RX_PACKETS 7
#define DEFAULT_BOFS_CODE BOFS_48
#define MAX_NUM_EXTRA_BOFS 48
#define DEFAULT_NUM_EXTRA_BOFS MAX_NUM_EXTRA_BOFS
#define BITS_PER_CHAR 10
#define usec_PER_SEC 1000000
#define MAX_TURNAROUND_usec 10000
#define MAX_TURNAROUND_BOFS (MAX_SPEED_SUPPORTED/BITS_PER_CHAR*MAX_TURNAROUND_usec/usec_PER_SEC)
#define DEFAULT_TURNAROUND_usec 5000
typedef struct{ enum baudRates tableIndex; UINT bitsPerSec; UINT ndisCode; // bitmask element
} baudRateInfo;
#define DEFAULT_BAUD_RATE 9600
//
// Need to make up some default dongle interface functions which
// do nothing, since a dongle may not need any special things
// to operate.
//
NDIS_STATUS __inline StdUart_QueryCaps( PDONGLE_CAPABILITIES pDongleCaps ) { //
// set the default caps
//
pDongleCaps->supportedSpeedsMask = ALL_SLOW_IRDA_SPEEDS; pDongleCaps->turnAroundTime_usec = 0; pDongleCaps->extraBOFsRequired = 0;
return NDIS_STATUS_SUCCESS; }
NDIS_STATUS __inline StdUart_Init( PDEVICE_OBJECT pSerialDevObj ) { return NDIS_STATUS_SUCCESS; }
void __inline StdUart_Deinit( PDEVICE_OBJECT pSerialDevObj ) { return; }
NDIS_STATUS __inline StdUart_SetSpeed( PDEVICE_OBJECT pSerialDevObj, UINT bitsPerSec, UINT currentSpeed ) { return NDIS_STATUS_SUCCESS; }
//
// This is the largest IR packet size
// (counting _I_ field only, and not counting ESC characters)
// that we handle.
//
#define MAX_I_DATA_SIZE 2048
#define MAX_NDIS_DATA_SIZE (SLOW_IR_ADDR_SIZE+SLOW_IR_CONTROL_SIZE+MAX_I_DATA_SIZE)
#ifdef DBG_ADD_PKT_ID
#pragma message("WARNING: INCOMPATIBLE DEBUG VERSION")
#define MAX_RCV_DATA_SIZE (MAX_NDIS_DATA_SIZE+SLOW_IR_FCS_SIZE+sizeof(USHORT))
#else
#define MAX_RCV_DATA_SIZE (MAX_NDIS_DATA_SIZE+SLOW_IR_FCS_SIZE)
#endif
//
// We loop an extra time in the receive state machine in order to
// see EOF after the last data byte; so we need some
// extra space in readBuf in case we then get garbage instead.
//
#define RCV_BUFFER_SIZE (MAX_RCV_DATA_SIZE+4)
//
// We allocate buffers twice as large as the max rcv size to
// accomodate ESC characters and BOFs, etc.
// Recall that in the worst possible case, the data contains
// all BOF/EOF/ESC characters, in which case we must expand it to
// twice its original size.
//
#define MAX_POSSIBLE_IR_PACKET_SIZE_FOR_DATA(dataLen) \
((dataLen)*2 + \ (MAX_NUM_EXTRA_BOFS+1)*SLOW_IR_BOF_SIZE + \ MAX_TURNAROUND_BOFS + \ SLOW_IR_ADDR_SIZE + \ SLOW_IR_CONTROL_SIZE + \ SLOW_IR_FCS_SIZE + \ SLOW_IR_EOF_SIZE)
#define MAX_IRDA_DATA_SIZE MAX_POSSIBLE_IR_PACKET_SIZE_FOR_DATA(MAX_I_DATA_SIZE)
//
// When FCS is computed on an IR packet with FCS appended,
// the result should be this constant.
//
#define GOOD_FCS ((USHORT)~0xf0b8)
//
// Sizes of IrLAP frame fields:
// Beginning Of Frame (BOF)
// End Of Frame (EOF)
// Address
// Control
//
#define SLOW_IR_BOF_TYPE UCHAR
#define SLOW_IR_BOF_SIZE sizeof(SLOW_IR_BOF_TYPE)
#define SLOW_IR_EXTRA_BOF_TYPE UCHAR
#define SLOW_IR_EXTRA_BOF_SIZE sizeof(SLOW_IR_EXTRA_BOF_TYPE)
#define SLOW_IR_EOF_TYPE UCHAR
#define SLOW_IR_EOF_SIZE sizeof(SLOW_IR_EOF_TYPE)
#define SLOW_IR_FCS_TYPE USHORT
#define SLOW_IR_FCS_SIZE sizeof(SLOW_IR_FCS_TYPE)
#define SLOW_IR_ADDR_SIZE 1
#define SLOW_IR_CONTROL_SIZE 1
#define SLOW_IR_BOF 0xC0
#define SLOW_IR_EXTRA_BOF 0xC0 /* don't use 0xFF, it breaks some HP printers! */
#define SLOW_IR_EOF 0xC1
#define SLOW_IR_ESC 0x7D
#define SLOW_IR_ESC_COMP 0x20
#define MEDIUM_IR_BOF 0x7E
#define MEDIUM_IR_EOF 0x7E
#define MIN(a,b) (((a) <= (b)) ? (a) : (b))
#define MAX(a,b) (((a) >= (b)) ? (a) : (b))
#endif // _SETTINGS_H
|