xref: /csrg-svn/sys/luna68k/stand/rcvbuf.h (revision 63199)
157093Sakito /*
257093Sakito  * Copyright (c) 1992 OMRON Corporation.
3*63199Sbostic  * Copyright (c) 1992, 1993
4*63199Sbostic  *	The Regents of the University of California.  All rights reserved.
557093Sakito  *
657093Sakito  * This code is derived from software contributed to Berkeley by
757093Sakito  * OMRON Corporation.
857093Sakito  *
957093Sakito  * %sccs.include.redist.c%
1057093Sakito  *
11*63199Sbostic  *	@(#)rcvbuf.h	8.1 (Berkeley) 06/10/93
1257093Sakito  */
1357093Sakito 
1457093Sakito /*
1557093Sakito  * rcvbuf.h -- receive buffer control structure definition
1657093Sakito  *	by A.Fujita, Dec-12-1992
1757093Sakito  */
1857093Sakito 
1957093Sakito #define	RBUF_SIZE	128
2057093Sakito 
2157093Sakito struct rcvbuf {
2257093Sakito 	u_char	*rb_push;
2357093Sakito 	u_char	*rb_pop;
2457093Sakito 	u_char	 rb_buf[RBUF_SIZE+4];
2557093Sakito };
2657093Sakito 
2757093Sakito #define RBUF_INIT(n)	rcvbuf[n].rb_pop = rcvbuf[n].rb_push = &rcvbuf[n].rb_buf[RBUF_SIZE]
2857093Sakito 
2957093Sakito #define PUSH_RBUF(n, c)	*(--rcvbuf[n].rb_push) = c ; \
3057093Sakito 			if (rcvbuf[n].rb_push == rcvbuf[n].rb_buf) \
3157093Sakito 				rcvbuf[n].rb_push = &rcvbuf[n].rb_buf[RBUF_SIZE]
3257093Sakito 
3357093Sakito #define POP_RBUF(n, c)	c= *(--rcvbuf[n].rb_pop); \
3457093Sakito 			if (rcvbuf[n].rb_pop == rcvbuf[n].rb_buf) \
3557093Sakito 				rcvbuf[n].rb_pop = &rcvbuf[n].rb_buf[RBUF_SIZE]
3657093Sakito 
3757093Sakito #define RBUF_EMPTY(n)	(rcvbuf[n].rb_push == rcvbuf[n].rb_pop ? 1: 0)
38