/* * Copyright (c) 1995 Danny Gasparovski. * * Please read the file COPYRIGHT for the * terms and conditions of the copyright. */#ifndef _SBUF_H_#define _SBUF_H_#define sbflush(sb) sbdrop((sb),(sb)->sb_cc)#define sbspace(sb) ((sb)->sb_datalen - (sb)->sb_cc)structsbuf{u_intsb_cc;/* actual chars in buffer */u_intsb_datalen;/* Length of data */char*sb_wptr;/* write pointer. points to where the next * bytes should be written in the sbuf */char*sb_rptr;/* read pointer. points to where the next * byte should be read from the sbuf */char*sb_data;/* Actual data */};voidsbfree_P((structsbuf*));voidsbdrop_P((structsbuf*,int));voidsbreserve_P((structsbuf*,int));voidsbappend_P((structsocket*,structmbuf*));voidsbappendsb_P((structsbuf*,structmbuf*));voidsbcopy_P((structsbuf*,int,int,char*));#endif