/****************************************************************************
*
*            COPYRIGHT 1990,91,92 BY GRACILIS INC.
*
*              623 Palace St.
*            Aurora, Il. 60506
*
* GRACILIS, INC., MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS
* SOFTWARE FOR ANY PURPOSE.
*
* THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
*
* Permission is granted for non-commercial distribution only.
*
******************************************************************************/
  
  
#ifndef GRACILIS
#define GRACILIS
  
#define OLD_KA9Q    1   /* for versions of nos up to and including 12/29/91 */
  
/* Commonly used data types for Gracilis drivers */
typedef unsigned short  uint;
typedef unsigned long   ulong;
typedef unsigned char   bool;
typedef unsigned char   uchar;
typedef unsigned char   byte;
  
  
  
/*
 * driver buffer block
 */
struct drvbuf {
    struct drvbuf *next;    /* pointer to next drvbuf in LL */
    int16  msgsize;     /* number of bytes in message */
    char  buf;      /* 1st byte of message */
};
  
struct mbuf_qhat {
    struct mbuf *headp;
    struct mbuf *tailp;
};
  
  
/*
 * driver timer control block
 */
struct drv_timer {
    struct drv_timer  *nxt_timer;
    int16       ticks;
    void        (*thandler)();
    unsigned long   targ;
};
  
/* Gracilis specific ioctl parameters */
#define GRACILIS_PARM_BASE  50
#define PARAM_RXBUFS    GRACILIS_PARM_BASE
#define PARAM_TXQMAX    GRACILIS_PARM_BASE+1
  
#define MAX_AX25_HDR_LEN 72
  
/* Function definitions for gracilis.c */
struct mbuf *f_dequeavail __ARGS((struct mbuf **,int16 *));
void f_getavail __ARGS((struct mbuf **,int16,int16,int16 *,struct iface *,bool));
  
#endif  /* GRACILIS */
