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