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