| #ifndef HAP_DEBUG_H |
| #define HAP_DEBUG_H |
| /** |
| * Copyright (c) 2019, The Linux Foundation. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer in the documentation and/or other materials provided |
| * with the distribution. |
| * * Neither the name of The Linux Foundation nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED |
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 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. |
| */ |
| |
| #include "AEEStdDef.h" |
| #include <stdarg.h> |
| #include <stdio.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #define HAP_LEVEL_LOW 0 |
| #define HAP_LEVEL_MEDIUM 1 |
| #define HAP_LEVEL_HIGH 2 |
| #define HAP_LEVEL_ERROR 3 |
| #define HAP_LEVEL_FATAL 4 |
| |
| #define HAP_LEVEL_RUNTIME (1 << 5) |
| |
| //Add a weak reference so shared objects work with older images |
| #pragma weak HAP_debug_v2 |
| |
| //Add a weak reference so runtime FARFs are ignored on older images |
| #pragma weak HAP_debug_runtime |
| |
| /************************************************************************** |
| These HAP_debug* functions are not meant to be called directly. |
| Please use the FARF() macros to call them instead |
| **************************************************************************/ |
| void HAP_debug_v2(int level, const char* file, int line, const char* format, ...); |
| void HAP_debug_runtime(int level, const char* file, int line, const char* format, ...); |
| int HAP_setFARFRuntimeLoggingParams(unsigned int mask, const char* files[], |
| unsigned short numberOfFiles); |
| |
| // Keep these around to support older shared objects and older images |
| void HAP_debug(const char *msg, int level, const char *filename, int line); |
| |
| static __inline void _HAP_debug_v2(int level, const char* file, int line, |
| const char* format, ...){ |
| char buf[256]; |
| va_list args; |
| va_start(args, format); |
| vsnprintf(buf, sizeof(buf), format, args); |
| va_end(args); |
| HAP_debug(buf, level, file, line); |
| } |
| |
| /*! |
| This function is called to log an accumlated log entry. If logging is |
| enabled for the entry by the external device, then the entry is copied |
| into the diag allocation manager and commited. |
| |
| [in] log_code_type ID of the event to be reported |
| [in] *data data points to the log which is to be submitted |
| [in] dataLen The length of the data to be logged. |
| |
| Returns |
| TRUE if log is submitted successfully into diag buffers |
| FALSE if there is no space left in the buffers. |
| |
| */ |
| boolean HAP_log_data_packet(unsigned short log_code_type, unsigned int dataLen, |
| byte* data); |
| |
| #define HAP_DEBUG_TRACEME 0 |
| |
| long HAP_debug_ptrace(int req, unsigned int pid, void* addr, void* data); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // HAP_DEBUG_H |
| |