2020-09-30 17:12:29 +02:00

60 lines
1.8 KiB
C

/*
* 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_ */