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