www.pudn.com > ASYNC13.rar > ASYNC.H


/////// 
// Include for use with ASYNCx.LIB. 
/////// 
 
//// 
// The following #defines should be used with a_close(), a_getmcr(), 
// and a_setmcr() functions. 
//// 
#define MCR_DTR  1  // Turns DTR on. 
#define MCR_RTS  2  // Turns RTS on. 
#define MCR_OUT1 4  // Makes modem inactive. 
#define MCR_LOOP 16 // Puts modem into "local echo" mode. 
 
#define PAR_NONE  0 
#define PAR_ODD   1 
#define PAR_EVEN  3 
#define PAR_MARK  5 
#define PAR_SPACE 7 
 
#define a_icount(p) ((p)->icount) 
#define a_ocount(p) ((p)->ocount) 
 
typedef struct 
 {unsigned      base;      /* base address of async port                     */ 
  unsigned char *ibuf;     /* points to buffer for incomming data            */ 
  unsigned char *ibufend;  /* points 1 byte past end of input buffer         */ 
  unsigned char *ibufhead; /* next available byte in input buffer            */ 
  unsigned char *ibuftail; /* next byte to be read from input buffer         */ 
  unsigned      icount;    /* number of characters in the buffer             */ 
  unsigned char *obuf;     /* points to buffer for outgoing data             */ 
  unsigned char *obufend;  /* points 1 byte past end of output buffer        */ 
  unsigned char *obufhead; /* next available unsigned char in output buffer  */ 
  unsigned char *obuftail; /* next byte to be put into output buffer         */ 
  unsigned      ocount;    /* number of characters in the output buffer      */ 
  unsigned      xon;       /* either 0 or the level at which to send an XON  */ 
  unsigned      xoff;      /* either 0 or the level at which to send an XOFF */ 
  unsigned char lookx;     /* TRUE iff we must recognize xon/xoff            */ 
  unsigned char sentxoff;  /* TRUE iff an XOFF has been sent.                */ 
  unsigned char recvxoff;  /* TRUE iff we received an XOFF.                  */ 
 } ASYNC; 
 
/*************************/ 
/** function prototypes **/ 
/*************************/ 
int a_break(ASYNC *p,int count); 
ASYNC *a_close(ASYNC *p,int fc); 
int a_eof(ASYNC *p,int t); 
int a_getc(ASYNC *p); 
char *a_gets(char *s,int n,ASYNC *p,int t); 
int a_getlcr(ASYNC *p); 
int a_getlsr(ASYNC *p); 
int a_getmcr(ASYNC *p); 
int a_getmsr(ASYNC *p); 
int a_iflush(ASYNC *p); 
int a_oflush(ASYNC *p); 
ASYNC *a_open(int port,int baud,int par,int dbits, 
              int sbits,int ibufsize,int obufsize); 
int a_params(ASYNC *p,int baud,int par,int dbits,int sbits); 
int a_portno(ASYNC *p); 
int a_printf(ASYNC *p,char *format,...); 
int a_putc(int c,ASYNC *p); 
int a_puts(char *s,ASYNC *p); 
int a_read(void *buf,int size,int n,ASYNC *p,int t); 
void a_setlcr(ASYNC *p,int newval); 
void a_setmcr(ASYNC *p,int newval); 
int a_setxonoff(ASYNC *p,int xon,int xoff); 
int a_ungetc(int c,ASYNC *p); 
int a_waitfor(ASYNC *port,char *s,int t,int mode); 
int a_waitquiet(ASYNC *port,int t,int max,int mode); 
int a_write(void *buf,int size,int n,ASYNC *p);