mirror of https://github.com/lianthony/NT4.0
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.
80 lines
2.1 KiB
80 lines
2.1 KiB
/*
|
|
* DONGLE.H
|
|
*
|
|
*
|
|
*
|
|
*/
|
|
|
|
#ifndef DONGLE_H
|
|
#define DONGLE_H
|
|
|
|
|
|
#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 unsigned int UINT;
|
|
typedef unsigned char UCHAR;
|
|
typedef unsigned char BOOLEAN;
|
|
#undef VOID
|
|
#define VOID void
|
|
#undef FALSE
|
|
#define FALSE ((BOOLEAN)0)
|
|
#undef TRUE
|
|
#define TRUE (!FALSE)
|
|
|
|
typedef struct dongleCapabilities {
|
|
|
|
/*
|
|
* This is a 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;
|
|
|
|
} dongleCapabilities;
|
|
|
|
|
|
typedef BOOLEAN (_stdcall *IRMINI_INIT_HANDLER)
|
|
(UINT comBase, dongleCapabilities *caps, UINT *context);
|
|
typedef void (_stdcall *IRMINI_DEINIT_HANDLER)
|
|
(UINT comBase, UINT context);
|
|
typedef BOOLEAN (_stdcall *IRMINI_SETSPEED_HANDLER)
|
|
(UINT comBase, UINT bitsPerSec, UINT context);
|
|
|
|
typedef struct IRMINI_Dongle_Interface
|
|
{
|
|
IRMINI_INIT_HANDLER initHandler;
|
|
IRMINI_SETSPEED_HANDLER setSpeedHandler;
|
|
IRMINI_DEINIT_HANDLER deinitHandler;
|
|
} IRMINI_Dongle_Interface;
|
|
|
|
|
|
/*
|
|
* A dongle module should not use any NDIS functions directly.
|
|
* It should only use these wrapper functions to access hardware.
|
|
*/
|
|
extern void _cdecl IRMINI_RawReadPort(UINT IOaddr, UCHAR *val);
|
|
extern void _cdecl IRMINI_RawWritePort(UINT IOaddr, UCHAR val);
|
|
extern void _cdecl IRMINI_StallExecution(UINT usec);
|
|
extern UINT _cdecl IRMINI_GetSystemTime_msec();
|
|
|
|
#endif DONGLE_H
|
|
|