xref: /openbsd/usr.bin/cvs/buf.h (revision fc61954a)
1 /*	$OpenBSD: buf.h,v 1.29 2016/10/15 22:20:17 millert Exp $	*/
2 /*
3  * Copyright (c) 2003 Jean-Francois Brousseau <jfb@openbsd.org>
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. The name of the author may not be used to endorse or promote products
13  *    derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
18  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26 
27 #ifndef BUF_H
28 #define BUF_H
29 
30 #include <sys/types.h>
31 
32 typedef struct buf BUF;
33 struct timeval;
34 
35 BUF		*buf_alloc(size_t);
36 BUF		*buf_load(const char *);
37 BUF		*buf_load_fd(int);
38 void		 buf_free(BUF *);
39 void		*buf_release(BUF *);
40 u_char		*buf_get(BUF *);
41 void		 buf_append(BUF *, const void *, size_t);
42 void		 buf_putc(BUF *, int);
43 void		 buf_puts(BUF *, const char *);
44 size_t		 buf_len(BUF *);
45 int		 buf_write_fd(BUF *, int);
46 int		 buf_write(BUF *, const char *, mode_t);
47 int		 buf_differ(const BUF *, const BUF *);
48 int		 buf_write_stmp(BUF *, char *, struct timeval *);
49 
50 #endif	/* BUF_H */
51