lnk commit front code
This commit is contained in:
132
include/mmslite/ethsub.h
Normal file
132
include/mmslite/ethsub.h
Normal file
@@ -0,0 +1,132 @@
|
||||
#ifndef ETHSUB_INCLUDED
|
||||
#define ETHSUB_INCLUDED
|
||||
/************************************************************************/
|
||||
/* SISCO SOFTWARE MODULE HEADER *****************************************/
|
||||
/************************************************************************/
|
||||
/* (c) Copyright Systems Integration Specialists Company, Inc., */
|
||||
/* 2000-2006 All Rights Reserved */
|
||||
/* */
|
||||
/* MODULE NAME : ethsub.h */
|
||||
/* PRODUCT(S) : Lean-T Stack for Windows 95/98/NT */
|
||||
/* */
|
||||
/* MODULE DESCRIPTION : */
|
||||
/* Definitions to allow Subnetwork interface to work with OSI LLC */
|
||||
/* Ethernet driver. */
|
||||
/* */
|
||||
/* MODIFICATION LOG : */
|
||||
/* Date Who Rev Comments */
|
||||
/* -------- --- ------ ------------------------------------------- */
|
||||
/* 07/21/06 JRB 04 Chg to use SISCO naming conventions. */
|
||||
/* 04/14/06 JRB 03 Add sysincs header. */
|
||||
/* 11/20/02 ASK 02 Add ethdown_etype proto */
|
||||
/* 04/06/00 JRB 01 Created */
|
||||
/************************************************************************/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/****************************************************************/
|
||||
/* Include files required to interface with */
|
||||
/* OSI LLC NDIS Ethernet Driver */
|
||||
/* */
|
||||
/****************************************************************/
|
||||
|
||||
#include "conpack.h"
|
||||
#include "osillc.h"
|
||||
|
||||
#include "glbtypes.h"
|
||||
#include "sysincs.h"
|
||||
#include "slog.h"
|
||||
#include "stime.h"
|
||||
#include "clnp_usr.h" /* clnp_sne.h needs this */
|
||||
#include "clnp_log.h"
|
||||
#include "clnp_sne.h" /* for SN_UNITDATA, etc. */
|
||||
|
||||
/****************************************************************/
|
||||
/****************************************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/** ----- Following fields are specific to this Access Method */
|
||||
HANDLE hFile; /* LLC device driver descriptor */
|
||||
|
||||
unsigned long seq; /* sequence number to expect */
|
||||
void *readlst[10]; /* list of pointers to out of sequence packet blocks */
|
||||
|
||||
/* ----- Following fields are required for 95/98 */
|
||||
struct rd_wr_block *pWriteEvents; /* list of write event structures */
|
||||
struct rd_wr_block *pReadEvents; /* list of read event structures */
|
||||
} LLC_CONTEXT;
|
||||
|
||||
/************************************************************************/
|
||||
/* OSI Event structure - Modified for MMS_LITE */
|
||||
/************************************************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
void * nxevt;
|
||||
SN_UNITDATA sn_req; /* event data in format needed by LEANT CLNP. */
|
||||
} SN_EVENT;
|
||||
|
||||
typedef struct rd_wr_block
|
||||
{
|
||||
int inuse;
|
||||
HANDLE hEvent;
|
||||
OVERLAPPED *ovlp;
|
||||
ST_UCHAR *framep; /* pointer to raw Ethernet frame */
|
||||
void *pb;
|
||||
LLC_CONTEXT *gccp;
|
||||
} RD_WR_BLOCK;
|
||||
|
||||
/************************************************************************/
|
||||
/* MMS_LITE function to Queue received packet for Lite CLNP. */
|
||||
/************************************************************************/
|
||||
void QueueRxPacket (ST_UCHAR *framep);
|
||||
|
||||
/************************************************************************/
|
||||
/* Functions that may be called from CLNP. */
|
||||
/************************************************************************/
|
||||
void ethdown (SN_UNITDATA *sn_req);
|
||||
void ethdown_etype (SN_UNITDATA *sn_req);
|
||||
void ethsapoff (void);
|
||||
void ethsapon (ST_CHAR *drvname);
|
||||
int llcsetup (void);
|
||||
|
||||
BOOL QueryOid (HANDLE hDriver, ULONG ulOid, PBYTE pBuffer, ULONG ulLength);
|
||||
BOOL SetOid (HANDLE hDriver, ULONG ulOid, PBYTE pBuffer, ULONG ulLength);
|
||||
|
||||
void osifreeevt (SN_EVENT *evt);
|
||||
SN_EVENT *osiallocevt ();
|
||||
void osiputevt (SN_EVENT *evt);
|
||||
SN_EVENT *osigetevt ();
|
||||
|
||||
void OsiReadThread (LPDWORD lpdwParam);
|
||||
void OsiReadThreadNT (LPDWORD lpdwParam);
|
||||
void CALLBACK WriteCompletion (DWORD error, DWORD length, OVERLAPPED *ovlp);
|
||||
void CALLBACK ReadCompletion (DWORD error, DWORD length, OVERLAPPED *ovlp);
|
||||
void ProcessReadBlock (OVERLAPPED *ovlp);
|
||||
|
||||
/************************************************************************/
|
||||
/* Global variables. */
|
||||
/************************************************************************/
|
||||
extern LLC_CONTEXT GCC; /* General Current Context */
|
||||
extern LLC_CONTEXT *GCCP; /* General Current Context Pointer */
|
||||
|
||||
extern int MaxWriteOut;
|
||||
extern int MaxReadOut;
|
||||
extern int FramesPerBlock;
|
||||
extern int ReceptionMode;
|
||||
extern int DriverID;
|
||||
extern int NumWriteOut;
|
||||
extern CRITICAL_SECTION csOsiList; /* Critical Section object for OSI Event List */
|
||||
extern BOOL bServiceControl;
|
||||
extern BOOL bNT;
|
||||
extern BOOL bOsiRequired;
|
||||
extern DWORD Priority;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !ETHSUB_INCLUDED */
|
||||
|
||||
Reference in New Issue
Block a user