1#ifndef _DRIVER_SETTINGS_H
2#define _DRIVER_SETTINGS_H
3
4
5#include <OS.h>
6
7
8typedef struct driver_parameter {
9	char *name;
10	int	value_count;
11	char **values;
12	int parameter_count;
13	struct driver_parameter *parameters;
14} driver_parameter;
15
16typedef struct driver_settings {
17	int parameter_count;
18	struct driver_parameter *parameters;
19} driver_settings;
20
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26extern void			*load_driver_settings(const char *driverName);
27extern void			*load_driver_settings_file(int fd);
28extern status_t		unload_driver_settings(void *handle);
29
30extern void			*parse_driver_settings_string(const char *settingsString);
31extern status_t		get_driver_settings_string(void *_handle, char *buffer,
32						size_t *_bufferSize, bool flat);
33extern status_t		delete_driver_settings(void *handle);
34
35extern const char	*get_driver_parameter(void *handle, const char *key,
36						const char *unknownValue,	/* key not present */
37						const char *noargValue);	/* key has no value */
38extern bool			get_driver_boolean_parameter(void *handle, const char *key,
39						bool unknownValue, bool noargValue);
40
41extern const driver_settings *get_driver_settings(void *handle);
42
43/* Pass this in as drivername to access safe mode settings */
44#define B_SAFEMODE_DRIVER_SETTINGS	"/safemode/"
45
46/* Pass this as the key value to check if safe mode is enabled */
47#define B_SAFEMODE_SAFE_MODE		"safemode"
48
49#ifdef __cplusplus
50}
51#endif
52
53#endif	/* _DRIVER_SETTINGS_H */
54