/* * @file hv_vos_Printf.h * @brief Header file of I2C driver. * * @verbatim * ============================================================================== * ##### How to use ##### * ============================================================================== * (+) Use () * * @endverbatim * @author HiView SoC Software Team * @version 1.0.0 * @date 2023-03-01 */ #ifndef _VOS_PRINTF_H #define _VOS_PRINTF_H #include "hv_vos_Types.h" VOS_EXTERN_C_BEGIN #ifdef __GNUC__ #define _VOS_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) __attribute__((format (printf, fmt_idx, arg1_idx))) #else #define _VOS_SPECIFY_PRINTF_FMT(fmt_idx,arg1_idx) #endif int Hv_Vos_vsnprintf(char *str, size_t size, const char *fmt, va_list ap); int Hv_Vos_snprintf(char *str, size_t size, const char *fmt, ...) _VOS_SPECIFY_PRINTF_FMT(3, 4); int Hv_Vos_vsprintf(char *str, const char *fmt, va_list ap); int Hv_Vos_sprintf(char *str, const char *fmt, ...) _VOS_SPECIFY_PRINTF_FMT(2, 3); void Hv_Vos_printf(const char *fmt, ...) _VOS_SPECIFY_PRINTF_FMT(1, 2); #ifdef HV_CONFIG_NO_PRINTF #define HV_VSNPRINTF(...) #define HV_SNPRINTF(...) INLINE int HV_VSPRINTF(char *str, const char *format, va_list ap) { return 0; } #define HV_SPRINTF(str, format, ...) (1) #define HV_PRINTF(...) #else #define HV_VSNPRINTF Hv_Vos_vsnprintf #define HV_SNPRINTF Hv_Vos_snprintf #define HV_VSPRINTF Hv_Vos_vsprintf #define HV_SPRINTF Hv_Vos_sprintf #define HV_PRINTF Hv_Vos_printf #define HV_PUTCHAR Hv_Vos_STDIO_PutChar #define HV_FFLUSH Hv_Vos_STDIO_FFlush #endif VOS_EXTERN_C_END #endif