acrn-hypervisor/devicemodel/include/log.h
Geoffroy Van Cutsem 8b16be9185 Remove "All rights reserved" string headers
Many of the license and Intel copyright headers include the "All rights
reserved" string. It is not relevant in the context of the BSD-3-Clause
license that the code is released under. This patch removes those strings
throughout the code (hypervisor, devicemodel and misc).

Tracked-On: #7254
Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
2022-04-06 13:21:02 +08:00

56 lines
1.5 KiB
C

/*
* Copyright (C) 2018 Intel Corporation.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __LOG_H__
#define __LOG_H__
#include <stdbool.h>
#include "types.h"
/* Logging severity levels */
#define LOG_ERROR 1U
#define LOG_WARNING 2U
#define LOG_NOTICE 3U
#define LOG_INFO 4U
#define LOG_DEBUG 5U
#define DEFAULT_LOG_LEVEL 4
#define MAX_ONE_LOG_SIZE 256
struct logger_ops {
const char *name;
bool (*is_enabled)(void);
uint8_t (*get_log_level)(void);
int (*init)(bool enable, uint8_t log_level);
void (*deinit)(void);
void (*output)(const char *fmt, va_list args);
};
int init_logger_setting(const char *opt);
void deinit_loggers(void);
void output_log(uint8_t level, const char *fmt, ...);
/*
* Put all logger instances' addresses into one section named logger_dev_ops
* so that DM could enumerate and initialize each of them.
*/
#define DECLARE_LOGGER_SECTION() SET_DECLARE(logger_dev_ops, struct logger_ops)
#define DEFINE_LOGGER_DEVICE(x) DATA_SET(logger_dev_ops, x)
#define FOR_EACH_LOGGER(pp_logger) SET_FOREACH(pp_logger, logger_dev_ops)
#ifndef pr_prefix
#define pr_prefix
#endif
#define pr_err(...) output_log(LOG_ERROR, pr_prefix __VA_ARGS__)
#define pr_warn(...) output_log(LOG_WARNING, pr_prefix __VA_ARGS__)
#define pr_notice(...) output_log(LOG_NOTICE, pr_prefix __VA_ARGS__)
#define pr_info(...) output_log(LOG_INFO, pr_prefix __VA_ARGS__)
#define pr_dbg(...) output_log(LOG_DEBUG, pr_prefix __VA_ARGS__)
#endif /* __LOG_H__ */