]>
git.saurik.com Git - apple/xnu.git/blob - EXTERNAL_HEADERS/corecrypto/cc_macros.h
5 * Created on 01/11/2012
7 * Copyright (c) 2012,2015 Apple Inc. All rights reserved.
11 #ifndef _CORECRYPTO_CC_MACROS_H_
12 #define _CORECRYPTO_CC_MACROS_H_
14 #include <corecrypto/cc_config.h>
16 #ifndef __CC_DEBUG_ASSERT_COMPONENT_NAME_STRING
17 #define __CC_DEBUG_ASSERT_COMPONENT_NAME_STRING ""
20 #ifndef __CC_DEBUG_ASSERT_PRODUCTION_CODE
21 #define __CC_DEBUG_ASSERT_PRODUCTION_CODE !CORECRYPTO_DEBUG
24 #ifndef __CC_DEBUG_ASSERT_MESSAGE
25 #define __CC_DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \
26 cc_printf( "CCAssertMacros: %s, %s file: %s, line: %d\n", assertion, (message!=0) ? message : "", file, line);
30 #if __CC_DEBUG_ASSERT_PRODUCTION_CODE
31 #define cc_require(assertion, exceptionLabel) \
33 if ( __builtin_expect(!(assertion), 0) ) { \
34 goto exceptionLabel; \
38 #define cc_require(assertion, exceptionLabel) \
40 if ( __builtin_expect(!(assertion), 0) ) { \
41 __CC_DEBUG_ASSERT_MESSAGE(__CC_DEBUG_ASSERT_COMPONENT_NAME_STRING, \
42 #assertion, #exceptionLabel, 0, __FILE__, __LINE__, 0); \
43 goto exceptionLabel; \
49 #ifndef cc_require_action
50 #if __CC_DEBUG_ASSERT_PRODUCTION_CODE
51 #define cc_require_action(assertion, exceptionLabel, action) \
54 if ( __builtin_expect(!(assertion), 0) ) \
59 goto exceptionLabel; \
63 #define cc_require_action(assertion, exceptionLabel, action) \
66 if ( __builtin_expect(!(assertion), 0) ) \
68 __CC_DEBUG_ASSERT_MESSAGE( \
69 __CC_DEBUG_ASSERT_COMPONENT_NAME_STRING, \
70 #assertion, #exceptionLabel, 0, __FILE__, __LINE__, 0); \
74 goto exceptionLabel; \
80 #endif /* _CORECRYPTO_CC_MACROS_H_ */