You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.4 KiB
C

//---------------------------------------------------------------------------
//
// File: osillc.h
//
// Copyright (c) 1998,1999 SISCO, Inc. All rights reserved.
//
// Description: Driver external definitions.
//
// Author: A. Shajenko/Stratos Technology, Inc.
//
// History:
// 13-Sep-98 A. Shajenko Implemented.
//
//---------------------------------------------------------------------------
#ifndef _OSILLC_H
#define _OSILLC_H
#if defined (_NTDDK_)
#include <devioctl.h>
#else
#include <winioctl.h>
#endif
////////////////////////////////////////////////////////////////////////////////////
#pragma pack(1)
//
// standard 802.3 defines (not defined elsewhere)
//
#define ETH_LENGTH_OF_HEADER 14
#define ETH_MINIMUM_LENGTH_OF_DATA 46
#define ETH_MAXIMUM_LENGTH_OF_DATA 1500
#define ETH_LENGTH_OF_FRAME 1514
// max number of packets that will be returned at a time
#define OSILLC_MAX_RXPACKETS 10
typedef struct _OSILLC_PACKET_DATA
{
ULONG Length;
UCHAR Data[ETH_LENGTH_OF_FRAME];
} OSILLC_PACKET_DATA, * POSILLC_PACKET_DATA;
typedef struct _OSILLC_PACKET_BLOCK
{
ULONG NumberOfPackets;
ULONG SeqNumber;
OSILLC_PACKET_DATA PacketData[OSILLC_MAX_RXPACKETS];
} OSILLC_PACKET_BLOCK, * POSILLC_PACKET_BLOCK;
typedef struct _OSILLC_OID_DATA
{
ULONG Oid;
ULONG Length;
ULONG BytesProcessed;
ULONG BytesNeeded;
ULONG Status;
UCHAR Data[1];
} OSILLC_OID_DATA, * POSILLC_OID_DATA;
typedef struct _OSILLC_GET_STATS
{
ULONG XmitOk;
ULONG RcvOk;
ULONG XmitError;
ULONG RcvError;
ULONG RcvUnknown;
ULONG XmitInd;
ULONG RcvInd;
ULONG AllocError;
} OSILLC_GET_STATS, * POSILLC_GET_STATS;
// base for IOCTLs
#define FILE_DEVICE_PROTOCOL 0x8000
#define OSILLC_CONTROL_CODE(request, method) \
CTL_CODE(FILE_DEVICE_PROTOCOL, request, method, FILE_ANY_ACCESS)
#define IOCTL_OSILLC_QUERY_OID OSILLC_CONTROL_CODE(0, METHOD_BUFFERED)
#define IOCTL_OSILLC_SET_OID OSILLC_CONTROL_CODE(1, METHOD_BUFFERED)
#define IOCTL_OSILLC_GET_STATS OSILLC_CONTROL_CODE(2, METHOD_BUFFERED)
#define IOCTL_OSILLC_GET_MACNAME OSILLC_CONTROL_CODE(3, METHOD_BUFFERED)
#define IOCTL_OSILLC_RESET OSILLC_CONTROL_CODE(4, METHOD_BUFFERED)
#define IOCTL_OSILLC_BIND OSILLC_CONTROL_CODE(10, METHOD_BUFFERED)
#define IOCTL_OSILLC_UNBIND OSILLC_CONTROL_CODE(11, METHOD_BUFFERED)
#define IOCTL_OSILLC_WRITE OSILLC_CONTROL_CODE(12, METHOD_BUFFERED)
#define IOCTL_OSILLC_READ OSILLC_CONTROL_CODE(13, METHOD_BUFFERED)
#pragma pack()
#endif _OSILLC_H