|
|
1.1 root 1: /*
2: * Copyright (c) 1995 Danny Gasparovski.
1.1.1.2 ! root 3: *
! 4: * Please read the file COPYRIGHT for the
1.1 root 5: * terms and conditions of the copyright.
6: */
7:
8: #ifndef _SBUF_H_
9: #define _SBUF_H_
10:
11: #define sbflush(sb) sbdrop((sb),(sb)->sb_cc)
12: #define sbspace(sb) ((sb)->sb_datalen - (sb)->sb_cc)
13:
14: struct sbuf {
15: u_int sb_cc; /* actual chars in buffer */
16: u_int sb_datalen; /* Length of data */
17: char *sb_wptr; /* write pointer. points to where the next
18: * bytes should be written in the sbuf */
19: char *sb_rptr; /* read pointer. points to where the next
20: * byte should be read from the sbuf */
21: char *sb_data; /* Actual data */
22: };
23:
24: void sbfree _P((struct sbuf *));
25: void sbdrop _P((struct sbuf *, int));
26: void sbreserve _P((struct sbuf *, int));
27: void sbappend _P((struct socket *, struct mbuf *));
28: void sbcopy _P((struct sbuf *, int, int, char *));
29:
30: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.