Return to vmbuf.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / ipsec-tools / src / racoon |
1.1 ! misho 1: /* $NetBSD: vmbuf.h,v 1.4 2006/09/09 16:22:10 manu Exp $ */ ! 2: ! 3: /* Id: vmbuf.h,v 1.4 2005/10/30 10:28:44 vanhu Exp */ ! 4: ! 5: /* ! 6: * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. ! 7: * All rights reserved. ! 8: * ! 9: * Redistribution and use in source and binary forms, with or without ! 10: * modification, are permitted provided that the following conditions ! 11: * are met: ! 12: * 1. Redistributions of source code must retain the above copyright ! 13: * notice, this list of conditions and the following disclaimer. ! 14: * 2. Redistributions in binary form must reproduce the above copyright ! 15: * notice, this list of conditions and the following disclaimer in the ! 16: * documentation and/or other materials provided with the distribution. ! 17: * 3. Neither the name of the project nor the names of its contributors ! 18: * may be used to endorse or promote products derived from this software ! 19: * without specific prior written permission. ! 20: * ! 21: * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ! 22: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 23: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 24: * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE ! 25: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 26: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 27: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 28: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 29: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 30: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 31: * SUCH DAMAGE. ! 32: */ ! 33: ! 34: #ifndef _VMBUF_H ! 35: #define _VMBUF_H ! 36: ! 37: /* ! 38: * bp v ! 39: * v v ! 40: * ........................ ! 41: * <--------------> l ! 42: * <----------------------> bl ! 43: */ ! 44: typedef struct _vchar_t_ { ! 45: #if notyet ! 46: u_int32_t t; /* type of the value */ ! 47: vchar_t *n; /* next vchar_t buffer */ ! 48: size_t bl; /* length of the buffer */ ! 49: caddr_t bp; /* pointer to the buffer */ ! 50: #endif ! 51: size_t l; /* length of the value */ ! 52: caddr_t v; /* place holder to the pointer to the value */ ! 53: } vchar_t; ! 54: ! 55: #define VPTRINIT(p) \ ! 56: do { \ ! 57: if (p) { \ ! 58: vfree(p); \ ! 59: (p) = NULL; \ ! 60: } \ ! 61: } while(0); ! 62: ! 63: #if defined(__APPLE__) && defined(__MACH__) ! 64: /* vfree is already defined in Apple's system libraries */ ! 65: #define vfree vmbuf_free ! 66: #endif ! 67: ! 68: extern vchar_t *vmalloc __P((size_t)); ! 69: extern vchar_t *vrealloc __P((vchar_t *, size_t)); ! 70: extern void vfree __P((vchar_t *)); ! 71: extern vchar_t *vdup __P((vchar_t *)); ! 72: ! 73: #endif /* _VMBUF_H */