void dnx_log(const char *func, uint32_t line, dnx_log_level_t level, const char *fmt, ...) { char buff[DNX_MAX_LOG_BUFF] = {0}; int n = 0, offset = 0; va_list va; if (log_flags & DNX_LOG_FLAG_TIMESTAMP) { n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%010u] ", dnx_timestamp()); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; } switch (level) { case DNX_LOG_LEVEL_ERROR: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Error: "); break; case DNX_LOG_LEVEL_WARNING: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Warning: "); break; case DNX_LOG_LEVEL_INFO: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Info: "); break; case DNX_LOG_LEVEL_EXTRA: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Extra: "); break; default: DNX_ASSERT(0); } if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%s: (%d)]: ", func, line); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; va_start(va, fmt); vsnprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, fmt, va); va_end(va); Exit: syslog(dnx_convert_prioroty(level), "%s", buff); }
void dnx_log(const char *func, uint32_t line, dnx_log_level_t level, const char *fmt, ...) { char buff[DNX_MAX_LOG_BUFF] = {0}; int n = 0, offset = 0; va_list va; if (level > dnx_max_dlevel) goto Exit; if (log_flags & DNX_LOG_FLAG_TIMESTAMP) { n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%010u] ", dnx_timestamp()); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; } n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%s: (%d)]: ", func, line); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; va_start(va, fmt); dnx_vsnprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, fmt, va); va_end(va); Exit: switch (level) { case DNX_LOG_LEVEL_ERROR: printk(KERN_ERR "%s", buff); return; case DNX_LOG_LEVEL_WARNING: printk(KERN_WARNING "%s", buff); return; case DNX_LOG_LEVEL_INFO: printk(KERN_INFO "%s", buff); return; case DNX_LOG_LEVEL_EXTRA: printk(KERN_DEBUG "%s", buff); return; default: DNX_ASSERT(0); break; } }
dnx_status_t dnx_test_time(void) { uint32_t timestamp1, timestamp2; dnx_status_t rc = DNX_ERR_OK; timestamp1 = dnx_timestamp(); if (0 == timestamp1) { dnx_printf("DNX_OS_TIME_TEST: Failed to get first timestamp.\n"); rc = DNX_ERR_UNKNOWN; goto Exit; } dnx_msleep(100); timestamp2 = dnx_timestamp(); if (0 == timestamp2) { dnx_printf("DNX_OS_TIME_TEST: Failed to get second timestamp.\n"); rc = DNX_ERR_UNKNOWN; goto Exit; } if (timestamp1 == timestamp2) { dnx_printf("DNX_OS_TIME_TEST: Both timestamps have the same value: %u.\n", timestamp1); rc = DNX_ERR_UNKNOWN; goto Exit; } dnx_printf("DNX_OS_TIME_TEST: First timestamp: %u, second timestamp %u.\n", timestamp1, timestamp2); dnx_printf("DNX_OS_TIME_TEST: Finished Successfully.\n"); Exit: return rc; }
void dnx_log(const char *func, uint32_t line, dnx_log_level_t level, const char *fmt, ...) { char buff[DNX_MAX_LOG_BUFF] = {0}; int offset = 0, n = 0; va_list va; if (level > os_max_level) return; if (log_flags & DNX_LOG_FLAG_TIMESTAMP) { n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%010u] ", dnx_timestamp()); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; } switch (level) { case DNX_LOG_LEVEL_ERROR: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Error: "); break; case DNX_LOG_LEVEL_WARNING: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Warning: "); break; case DNX_LOG_LEVEL_INFO: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Info: "); break; case DNX_LOG_LEVEL_EXTRA: n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "Extra: "); break; default: DNX_ASSERT(0); } if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "[%s: (%d)]: ", func, line); if (n >= DNX_MAX_LOG_BUFF - offset) { goto Exit; } offset += n; if (os_ident) { n = dnx_snprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, "%s: ", os_ident); /* if ident too long. skip it. */ if (n < DNX_MAX_LOG_BUFF - offset) { offset +=n; } } va_start(va, fmt); n = dnx_vsnprintf(buff + offset, DNX_MAX_LOG_BUFF - offset, fmt, va); va_end(va); if (n >= DNX_MAX_LOG_BUFF - offset) { buff[DNX_MAX_LOG_BUFF - 1] = 0; } Exit: OutputDebugStringA(buff); if (duplicate_to_stderr) fprintf(stderr, "%s\n", buff); }