Current Path : /compat/linux/proc/68247/root/compat/linux/proc/68247/root/compat/linux/proc/3760/cwd/usr/local/include/dnet/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/proc/68247/root/compat/linux/proc/68247/root/compat/linux/proc/3760/cwd/usr/local/include/dnet/blob.h |
/* * blob.h * * Binary blob handling. * * Copyright (c) 2002 Dug Song <dugsong@monkey.org> * * $Id: blob.h,v 1.2 2002/04/05 03:06:44 dugsong Exp $ */ #ifndef DNET_BLOB_H #define DNET_BLOB_H typedef struct blob { u_char *base; /* start of data */ int off; /* offset into data */ int end; /* end of data */ int size; /* size of allocation */ } blob_t; __BEGIN_DECLS blob_t *blob_new(void); int blob_read(blob_t *b, void *buf, int len); int blob_write(blob_t *b, const void *buf, int len); int blob_seek(blob_t *b, int off, int whence); #define blob_skip(b, l) blob_seek(b, l, SEEK_CUR) #define blob_rewind(b) blob_seek(b, 0, SEEK_SET) #define blob_offset(b) ((b)->off) #define blob_left(b) ((b)->end - (b)->off) int blob_index(blob_t *b, const void *buf, int len); int blob_rindex(blob_t *b, const void *buf, int len); int blob_pack(blob_t *b, const char *fmt, ...); int blob_unpack(blob_t *b, const char *fmt, ...); int blob_insert(blob_t *b, const void *buf, int len); int blob_delete(blob_t *b, void *buf, int len); int blob_print(blob_t *b, char *style, int len); blob_t *blob_free(blob_t *b); int blob_register_alloc(size_t size, void *(*bmalloc)(size_t), void (*bfree)(void *), void *(*brealloc)(void *, size_t)); #ifdef va_start typedef int (*blob_fmt_cb)(int pack, int len, blob_t *b, va_list *arg); int blob_register_pack(char c, blob_fmt_cb fmt_cb); #endif __END_DECLS #endif /* DNET_BLOB_H */