summaryrefslogblamecommitdiffstats
path: root/private/ntos/ndis/digi/pcimac/idd_pub.h
blob: da43ee2b404e058e9a9a532a5350df25eb487e26 (plain) (tree)


























































                                                                                                                
/*
 * IDD_PUB.H - IDP Device Driver public header for PCIMAC/ISA
 */

#ifndef _IDD_PUB_
#define _IDD_PUB_

#define     IDD_MAX_AREA			512         /* max size of area got in get_area */

//
// global idd def's
//
/* IDD message descriptor */
typedef struct
{
    USHORT          opcode;			/* message opcode (type) */
    USHORT          buflen;			/* related buffer length */
    UCHAR           *bufptr;		/* related buffer pointer (0=none) */
    ULONG           bufid;			/* related buffer id */
    ULONG           param;			/* parameter area */
} IDD_MSG;

/* IDD extended message descriptor */
typedef struct
{
    USHORT          opcode;			/* message opcode (type) */
    USHORT          buflen;			/* related buffer length */
    UCHAR           *bufptr;		/* related buffer pointer (0=none) */
    ULONG           bufid;			/* related buffer id */
    ULONG           param;			/* parameter area */
	USHORT			FragmentFlags;	/* fragmentation flags */
} IDD_XMSG;

/* IDD fragment descriptor */
typedef struct
{
    USHORT          len;			/* fragment length */
    CHAR            *ptr;			/* fragment buffer pointer */
} IDD_FRAG;

typedef struct
{
    VOID		(*area_handler)();  	/* handler for get_area */
    VOID		*area_handler_arg;  	/* argument for handler */

    ULONG       area_state;				/* state of last/current get_area command */
#define     AREA_ST_IDLE         0		/* - idle, no area defined */
#define     AREA_ST_PEND         1		/* - pending, get_area in progress */
#define     AREA_ST_DONE         2		/* - done, results ready */

    ULONG       area_id;				/* area id (number) pend/done */

    VOID		*area_idd;				/* related idd (from which area is retreived) */
    UCHAR       area_buf[IDD_MAX_AREA]; /* buffer receiving/containing area data */
    ULONG       area_len;               /* length of actual data */        
}IDD_AREA;

#endif			/* _IDD_PUB_ */