1 /*
2  * Copyright (c) 2018 Nordic Semiconductor ASA
3  * Copyright (c) 2015 Runtime Inc
4  *
5  * SPDX-License-Identifier: Apache-2.0
6  */
7 
8 #include <string.h>
9 #include <stdio.h>
10 #include <stdbool.h>
11 
12 #include <errno.h>
13 
14 #include <zephyr/settings/settings.h>
15 #include "settings/settings_file.h"
16 #include <zephyr/kernel.h>
17 #include "settings_priv.h"
18 
19 bool settings_subsys_initialized;
20 
21 void settings_init(void);
22 
23 int settings_backend_init(void);
24 
settings_subsys_init(void)25 int settings_subsys_init(void)
26 {
27 
28 	int err = 0;
29 
30 	settings_lock_take();
31 
32 	if (!settings_subsys_initialized) {
33 		settings_init();
34 
35 		err = settings_backend_init();
36 
37 		if (!err) {
38 			settings_subsys_initialized = true;
39 		}
40 	}
41 
42 	settings_lock_release();
43 
44 	return err;
45 }
46