1 /*
2  * Copyright (c) 2018, Xilinx Inc. and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /*
8  * @file	zephyr/log.c
9  * @brief	Zephyr libmetal log handler.
10  */
11 
12 #include <stdarg.h>
13 #include <metal/log.h>
14 #include <zephyr/kernel.h>
15 
16 static const char * const level_strs[] = {
17 	"metal: emergency: ",
18 	"metal: alert:     ",
19 	"metal: critical:  ",
20 	"metal: error:     ",
21 	"metal: warning:   ",
22 	"metal: notice:    ",
23 	"metal: info:      ",
24 	"metal: debug:     ",
25 };
26 
metal_zephyr_log_handler(enum metal_log_level level,const char * format,...)27 void metal_zephyr_log_handler(enum metal_log_level level,
28 			      const char *format, ...)
29 {
30 	va_list args;
31 
32 	if (level <= METAL_LOG_EMERGENCY || level > METAL_LOG_DEBUG)
33 		level = METAL_LOG_EMERGENCY;
34 	printk("%s", level_strs[level]);
35 
36 	va_start(args, format);
37 	vprintk(format, args);
38 	va_end(args);
39 }
40 
41