123 lines
3.2 KiB
C
123 lines
3.2 KiB
C
/*****************************************************************************
|
|
*
|
|
* Copyright (c) 1996-1999 Microsoft Corporation
|
|
*
|
|
* @doc
|
|
* @module dongle.h | IrSIR NDIS Minport Driver
|
|
* @comm
|
|
*
|
|
*-----------------------------------------------------------------------------
|
|
*
|
|
* Author: Scott Holden (sholden)
|
|
*
|
|
* Date: 9/30/1996 (created)
|
|
*
|
|
* Contents:
|
|
* dongle settings
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#ifndef DONGLE_H
|
|
#define DONGLE_H
|
|
|
|
//
|
|
// Some UART transceiver have minor differences which require special
|
|
// treatment. We will retrieve the type out of the registry.
|
|
// Any changes to this MUST also be reflected in the oemsetup.inf
|
|
// which allows the user to modify transceiver type.
|
|
//
|
|
|
|
typedef enum _IR_TRANSCEIVER_TYPE {
|
|
STANDARD_UART = 0,
|
|
ACTISYS_200L,
|
|
ACTISYS_220L,
|
|
ACTISYS_220LPLUS,
|
|
AMP_PHASIR,
|
|
ESI_9680,
|
|
PARALLAX,
|
|
TEKRAM_IRMATE_210,
|
|
TEMIC_TOIM3232,
|
|
GIRBIL,
|
|
// CRYSTAL,
|
|
// NSC_DEMO_BD, // NSC PC87108 demo board
|
|
|
|
NUM_TRANSCEIVER_TYPES
|
|
} IR_TRANSCEIVER_TYPE;
|
|
|
|
//
|
|
// ir speed masks
|
|
//
|
|
|
|
#define NDIS_IRDA_SPEED_2400 (UINT)(1 << 0) // SLOW IR ...
|
|
#define NDIS_IRDA_SPEED_9600 (UINT)(1 << 1)
|
|
#define NDIS_IRDA_SPEED_19200 (UINT)(1 << 2)
|
|
#define NDIS_IRDA_SPEED_38400 (UINT)(1 << 3)
|
|
#define NDIS_IRDA_SPEED_57600 (UINT)(1 << 4)
|
|
#define NDIS_IRDA_SPEED_115200 (UINT)(1 << 5)
|
|
#define NDIS_IRDA_SPEED_576K (UINT)(1 << 6) // MEDIUM IR ...
|
|
#define NDIS_IRDA_SPEED_1152K (UINT)(1 << 7)
|
|
#define NDIS_IRDA_SPEED_4M (UINT)(1 << 8) // FAST IR
|
|
|
|
|
|
typedef struct _DONGLE_CAPABILITIES
|
|
{
|
|
//
|
|
// Mask of NDIS_IRDA_SPEED_xxx bit values.
|
|
//
|
|
|
|
UINT supportedSpeedsMask;
|
|
|
|
//
|
|
// Time (in microseconds) that must transpire between
|
|
// a transmit and the next receive.
|
|
//
|
|
|
|
UINT turnAroundTime_usec;
|
|
|
|
//
|
|
// Extra BOF (Beginning Of Frame) characters required
|
|
// at the start of each received frame.
|
|
//
|
|
|
|
UINT extraBOFsRequired;
|
|
|
|
} DONGLE_CAPABILITIES, *PDONGLE_CAPABILITIES;
|
|
|
|
//
|
|
// Dongle init, set speed and deinit functions...all
|
|
// incorporated into a dongle interface.
|
|
//
|
|
|
|
typedef
|
|
NDIS_STATUS (_stdcall *IRSIR_QUERY_CAPS_HANDLER) (
|
|
PDONGLE_CAPABILITIES pDongleCaps
|
|
);
|
|
|
|
typedef
|
|
NDIS_STATUS (_stdcall *IRSIR_INIT_HANDLER) (
|
|
PDEVICE_OBJECT pSerialDevObj
|
|
);
|
|
|
|
typedef
|
|
void (_stdcall *IRSIR_DEINIT_HANDLER) (
|
|
PDEVICE_OBJECT pSerialDevObj
|
|
);
|
|
|
|
typedef
|
|
NDIS_STATUS (_stdcall *IRSIR_SETSPEED_HANDLER) (
|
|
PDEVICE_OBJECT pSerialDevObj,
|
|
UINT bitsPerSec,
|
|
UINT currentSpeed
|
|
);
|
|
|
|
typedef struct _DONGLE_INTERFACE
|
|
{
|
|
IRSIR_QUERY_CAPS_HANDLER QueryCaps;
|
|
IRSIR_INIT_HANDLER Initialize;
|
|
IRSIR_SETSPEED_HANDLER SetSpeed;
|
|
IRSIR_DEINIT_HANDLER Deinitialize;
|
|
} DONGLE_INTERFACE, *PDONGLE_INTERFACE;
|
|
|
|
|
|
#endif // DONGLE_H
|