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