1 /* 2 * Copyright (c) 2006-2021, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2021-01-07 ChenYong first version 9 * 2021-12-20 armink add multi-instance version 10 */ 11 12 #ifndef _ULOG_BE_H_ 13 #define _ULOG_BE_H_ 14 15 #include <ulog.h> 16 17 #ifndef ULOG_FILE_PATH_LEN 18 #define ULOG_FILE_PATH_LEN 128 19 #endif 20 21 struct ulog_file_be 22 { 23 struct ulog_backend parent; 24 int cur_log_file_fd; 25 rt_size_t file_max_num; 26 rt_size_t file_max_size; 27 rt_size_t buf_size; 28 rt_bool_t enable; 29 30 rt_uint8_t *file_buf; 31 rt_uint8_t *buf_ptr_now; 32 33 char cur_log_file_path[ULOG_FILE_PATH_LEN]; 34 char cur_log_dir_path[ULOG_FILE_PATH_LEN]; 35 }; 36 37 /* ulog file backend api */ 38 int ulog_file_backend_init(struct ulog_file_be *be, const char *name, const char *dir_path, rt_size_t max_num, 39 rt_size_t max_size, rt_size_t buf_size); 40 int ulog_file_backend_deinit(struct ulog_file_be *be); 41 void ulog_file_backend_enable(struct ulog_file_be *be); 42 void ulog_file_backend_disable(struct ulog_file_be *be); 43 44 #endif /* _ULOG_BE_H_ */ 45