X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5dd5f9ec28f304ca377c42fd7f711d6cf12b90e1..5c19dc3ae3bd8e40a9c028b0deddd50ff337692c:/Security/utilities/src/debugging.h diff --git a/Security/utilities/src/debugging.h b/Security/utilities/src/debugging.h deleted file mode 100644 index 6505702e..00000000 --- a/Security/utilities/src/debugging.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2006-2007,2009-2010,2012-2014 Apple Inc. All Rights Reserved. - * - * @APPLE_LICENSE_HEADER_START@ - * - * This file contains Original Code and/or Modifications of Original Code - * as defined in and that are subject to the Apple Public Source License - * Version 2.0 (the 'License'). You may not use this file except in - * compliance with the License. Please obtain a copy of the License at - * http://www.opensource.apple.com/apsl/ and read it before using this - * file. - * - * The Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - * - * @APPLE_LICENSE_HEADER_END@ - */ - -/* - * debugging.h - non-trivial debug support - */ -#ifndef _SECURITY_UTILITIES_DEBUGGING_H_ -#define _SECURITY_UTILITIES_DEBUGGING_H_ - -#ifdef KERNEL - #include - #define secalert(format, ...) printf((format), ## __VA_ARGS__) - #define secemergency(format, ...) printf((format), ## __VA_ARGS__) - #define seccritical(format, ...) printf((format), ## __VA_ARGS__) - #define secerror(format, ...) printf((format), ## __VA_ARGS__) - #define secwarning(format, ...) printf((format), ## __VA_ARGS__) - #define secnotice(scope, format, ...) printf((format), ## __VA_ARGS__) - #define secnoticeq(scope, format, ...) printf((format), ## __VA_ARGS__) - #define secinfo(scope, format, ...) printf((format), ## __VA_ARGS__) - #if !defined(NDEBUG) - #define secdebug(scope, format, ...) printf((format), ## __VA_ARGS__) - #else // NDEBUG - #define secdebug(scope, format, ...) /* nothing */ - #endif // NDEBUG -#else // !KERNEL - -#include -#include -#include - -__BEGIN_DECLS - -extern void __security_trace_enter_api(const char *api, CFStringRef format, ...) CF_FORMAT_FUNCTION(2, 3); -extern void __security_trace_return_api(const char *api, CFStringRef format, ...) CF_FORMAT_FUNCTION(2, 3); - -extern void __security_debug(CFStringRef scope, - const char *function, const char *file, int line, - CFStringRef format, ...) CF_FORMAT_FUNCTION(5,6); - -extern void __security_log(int level, CFStringRef scope, - const char *function, const char *file, int line, - CFStringRef format, ...) CF_FORMAT_FUNCTION(6,7); - -#define sec_trace_enter_api(format...) __security_trace_enter_api(__FUNCTION__, format) -#define sec_trace_return_api(rtype, body, format...) { rtype _r = body(); __security_trace_return_api(__FUNCTION__, format, _r); return _r; } -#define sec_trace_return_bool_api(body, format...) { bool _r = body(); typeof(format) _fmt = format; __security_trace_return_api(__FUNCTION__, _fmt ? _fmt : CFSTR("return=%d"), (int)_r); return _r; } - -#define secemergency(format, ...) __security_log(ASL_LEVEL_EMERG, NULL, \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define secalert(format, ...) __security_log(ASL_LEVEL_ALERT, NULL, \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define seccritical(format, ...) __security_log(ASL_LEVEL_CRIT, NULL, \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define secerror(format, ...) __security_log(ASL_LEVEL_ERR, NULL, \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define secerrorq(format, ...) __security_log(ASL_LEVEL_ERR, NULL, \ - "", "", 0, \ - CFSTR(format), ## __VA_ARGS__) - -#define secwarning(format, ...) __security_log(ASL_LEVEL_WARNING, NULL, \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define secnotice(scope, format, ...) __security_log(ASL_LEVEL_NOTICE, CFSTR(scope), \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#define secnoticeq(scope, format, ...) __security_log(ASL_LEVEL_NOTICE, CFSTR(scope), \ - "", "", 0, \ - CFSTR(format), ## __VA_ARGS__) - -#define secinfo(scope, format, ...) __security_log(ASL_LEVEL_INFO, CFSTR(scope), \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) - -#if !defined(NDEBUG) - -# define secdebug(scope,format, ...) __security_debug(CFSTR(scope), \ - __FUNCTION__, __FILE__, __LINE__, \ - CFSTR(format), ## __VA_ARGS__) -#else -# define secdebug(scope,...) /* nothing */ -#endif - -typedef void (^security_log_handler)(int level, CFStringRef scope, const char *function, - const char *file, int line, CFStringRef message); - -void add_security_log_handler(security_log_handler handler); -void remove_security_log_handler(security_log_handler handler); - -/* To simulate a process crash in some conditions */ -void __security_simulatecrash(CFStringRef reason, uint32_t code); - -/* predefined simulate crash exception codes */ -#define __sec_exception_code(x) (0x53c00000+x) -#define __sec_exception_code_CorruptDb(db,rc) __sec_exception_code(1|((db)<<8)|((rc)<<16)) -#define __sec_exception_code_CorruptItem __sec_exception_code(2) -#define __sec_exception_code_OTRError __sec_exception_code(3) -#define __sec_exception_code_DbItemDescribe __sec_exception_code(4) -#define __sec_exception_code_TwiceCorruptDb(db) __sec_exception_code(5|((db)<<8)) - -/* Logging control functions */ - -typedef enum { - kScopeIDEnvironment = 0, - kScopeIDDefaults = 1, - kScopeIDConfig = 2, - kScopeIDXPC = 3, - kScopeIDMax = 3, -} SecDebugScopeID; - -void ApplyScopeListForID(CFStringRef scopeList, SecDebugScopeID whichID); -void ApplyScopeDictionaryForID(CFDictionaryRef scopeList, SecDebugScopeID whichID); -CFPropertyListRef CopyCurrentScopePlist(void); - -__END_DECLS - -#endif // !KERNEL - -#endif /* _SECURITY_UTILITIES_DEBUGGING_H_ */