jcs's openbsd hax
openbsd
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
32typedef struct buf BUF;
33struct timeval;
34
35BUF *buf_alloc(size_t);
36BUF *buf_load(const char *);
37BUF *buf_load_fd(int);
38void buf_free(BUF *);
39void *buf_release(BUF *);
40u_char *buf_get(BUF *);
41void buf_append(BUF *, const void *, size_t);
42void buf_putc(BUF *, int);
43void buf_puts(BUF *, const char *);
44size_t buf_len(BUF *);
45int buf_write_fd(BUF *, int);
46int buf_write(BUF *, const char *, mode_t);
47int buf_differ(const BUF *, const BUF *);
48int buf_write_stmp(BUF *, char *, struct timeval *);
49
50#endif /* BUF_H */