15d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/*
25d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * Copyright (c) 1995 Danny Gasparovski.
35d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *
45d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * Please read the file COPYRIGHT for the
55d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner * terms and conditions of the copyright.
65d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner */
75d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
85d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#ifndef _SBUF_H_
95d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define _SBUF_H_
105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define sbflush(sb) sbdrop((sb),(sb)->sb_cc)
125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define sbspace(sb) ((sb)->sb_datalen - (sb)->sb_cc)
135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstruct sbuf {
155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	u_int	sb_cc;		/* actual chars in buffer */
165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	u_int	sb_datalen;	/* Length of data  */
175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	char	*sb_wptr;	/* write pointer. points to where the next
185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner				 * bytes should be written in the sbuf */
195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	char	*sb_rptr;	/* read pointer. points to where the next
205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner				 * byte should be read from the sbuf */
215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner	char	*sb_data;	/* Actual data */
225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner};
235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid sbfree _P((struct sbuf *));
255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid sbdrop _P((struct sbuf *, int));
265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid sbreserve _P((struct sbuf *, int));
275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid sbappend _P((struct socket *, struct mbuf *));
285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervoid sbcopy _P((struct sbuf *, int, int, char *));
295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner
305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#endif
31