xref: /original-bsd/sys/luna68k/stand/rcvbuf.h (revision 3705696b)
1 /*
2  * Copyright (c) 1992 OMRON Corporation.
3  * Copyright (c) 1992, 1993
4  *	The Regents of the University of California.  All rights reserved.
5  *
6  * This code is derived from software contributed to Berkeley by
7  * OMRON Corporation.
8  *
9  * %sccs.include.redist.c%
10  *
11  *	@(#)rcvbuf.h	8.1 (Berkeley) 06/10/93
12  */
13 
14 /*
15  * rcvbuf.h -- receive buffer control structure definition
16  *	by A.Fujita, Dec-12-1992
17  */
18 
19 #define	RBUF_SIZE	128
20 
21 struct rcvbuf {
22 	u_char	*rb_push;
23 	u_char	*rb_pop;
24 	u_char	 rb_buf[RBUF_SIZE+4];
25 };
26 
27 #define RBUF_INIT(n)	rcvbuf[n].rb_pop = rcvbuf[n].rb_push = &rcvbuf[n].rb_buf[RBUF_SIZE]
28 
29 #define PUSH_RBUF(n, c)	*(--rcvbuf[n].rb_push) = c ; \
30 			if (rcvbuf[n].rb_push == rcvbuf[n].rb_buf) \
31 				rcvbuf[n].rb_push = &rcvbuf[n].rb_buf[RBUF_SIZE]
32 
33 #define POP_RBUF(n, c)	c= *(--rcvbuf[n].rb_pop); \
34 			if (rcvbuf[n].rb_pop == rcvbuf[n].rb_buf) \
35 				rcvbuf[n].rb_pop = &rcvbuf[n].rb_buf[RBUF_SIZE]
36 
37 #define RBUF_EMPTY(n)	(rcvbuf[n].rb_push == rcvbuf[n].rb_pop ? 1: 0)
38