/* ** Act - Abstract Container Type Library ** Copyright (c) 1999-2000 Ralf S. Engelschall ** ** This file is part of Act, a library for dealing with Abstract ** Container Types which can be found at http://www.ossp.org/pkg/act/. ** ** Permission to use, copy, modify, and distribute this software for ** any purpose with or without fee is hereby granted, provided that ** the above copyright notice and this permission notice appear in all ** copies. ** ** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ** IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ** OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ** SUCH DAMAGE. ** ** act_p.h: private global header */ #ifndef _ACT_P_H_ #define _ACT_P_H_ #include #include #include #include #include /* library version */ #define _ACT_VERS_C_AS_HEADER_ #include "act_vers.c" #undef _ACT_VERS_C_AS_HEADER_ /* temporarily preserve and restore errno */ #define errno_preserve \ do { pth_errno_storage = errno; } while (0) #define errno_restore \ do { errno = pth_errno_storage; } while (0) #define errno_safe(cmd) \ do { int __local_errno = errno; cmd; errno = __local_errno; } while (0) #define return_errno(return_val,errno_val) \ do { errno = (errno_val); return (return_val); } while (0) #include "act_cfg.h" #include "act_lib.h" #include "act_ctx.h" #include "act_mem.h" #include "act_hash.h" #define insist(expr,false) if (!(expr)) return false /* compiler happyness: avoid ``empty compilation unit'' problem */ #define COMPILER_HAPPYNESS(name) \ int __##name##_unit = 0; /* generated contents */ BEGIN_DECLARATION ==#== END_DECLARATION #endif /* _ACT_P_H_ */