1 /* $NetBSD: dst_pkcs11.h,v 1.1.1.3 2014/12/10 03:34:39 christos Exp $ */ 2 3 /* 4 * Copyright (C) 2014 Internet Systems Consortium, Inc. ("ISC") 5 * 6 * Permission to use, copy, modify, and/or distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 11 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 12 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 13 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 14 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 15 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 #ifndef DST_PKCS11_H 20 #define DST_PKCS11_H 1 21 22 #include <isc/lang.h> 23 #include <isc/log.h> 24 #include <isc/result.h> 25 26 ISC_LANG_BEGINDECLS 27 28 isc_result_t 29 dst__pkcs11_toresult(const char *funcname, const char *file, int line, 30 isc_result_t fallback, CK_RV rv); 31 32 #define PK11_CALL(func, args, fallback) \ 33 ((void) (((rv = (func) args) == CKR_OK) || \ 34 ((ret = dst__pkcs11_toresult(#func, __FILE__, __LINE__, \ 35 fallback, rv)), 0))) 36 37 #define PK11_RET(func, args, fallback) \ 38 ((void) (((rv = (func) args) == CKR_OK) || \ 39 ((ret = dst__pkcs11_toresult(#func, __FILE__, __LINE__, \ 40 fallback, rv)), 0))); \ 41 if (rv != CKR_OK) goto err; 42 43 ISC_LANG_ENDDECLS 44 45 #endif /* DST_PKCS11_H */ 46