1 /*- 2 * Copyright (c) 2009 The NetBSD Foundation, Inc. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The NetBSD Foundation 6 * by Alistair Crooks (agc@netbsd.org) 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 * POSSIBILITY OF SUCH DAMAGE. 28 */ 29 #ifndef NETPGPDEFS_H_ 30 #define NETPGPDEFS_H_ 1 31 32 #define PRItime "ll" 33 34 #ifdef WIN32 35 #define PRIsize "I" 36 #else 37 #define PRIsize "z" 38 #endif 39 40 /* for silencing unused parameter warnings */ 41 #define OPS_USED(x) /*LINTED*/(void)&(x) 42 43 #ifndef __UNCONST 44 #define __UNCONST(a) ((void *)(unsigned long)(const void *)(a)) 45 #endif 46 47 /* 48 * These macros code ensures that you are casting what you intend to cast. 49 * It works because in "a ? b : c", b and c must have the same type. 50 * This is a copy of the macro defined in openssl/asn1.h. 51 */ 52 #ifndef CHECKED_PTR_OF 53 #define CHECKED_PTR_OF(type, p) ((void*) (/*CONSTCOND*/1 ? p : (type *)0)) 54 #endif 55 #define CHECKED_INSTANCE_OF(type, p) (/*CONSTCOND*/1 ? p : (type)0) 56 57 /* number of elements in an array */ 58 #define OPS_ARRAY_SIZE(a) (sizeof(a)/sizeof(*(a))) 59 60 void hexdump(const unsigned char *, size_t, const char *); 61 62 const char *__ops_str_from_map(int, __ops_map_t *); 63 64 int __ops_set_debug_level(const char *); 65 int __ops_get_debug_level(const char *); 66 67 #define NETPGP_BUFSIZ 8192 68 69 #define CALLBACK(cbinfo, t, pc) do { \ 70 (pc)->tag = (t); \ 71 if (__ops_parse_cb((pc), (cbinfo)) == OPS_RELEASE_MEMORY) { \ 72 __ops_parser_content_free(pc); \ 73 } \ 74 } while(/* CONSTCOND */0) 75 76 #endif /* !NETPGPDEFS_H_ */ 77