xref: /haiku/headers/private/fs_shell/fssh_driver_settings.h (revision af435dd1c9460acc910170b4f82f44bfd3f557c9)
1*eedc1553SIngo Weinhold #ifndef _FSSH_DRIVER_SETTINGS_H
2*eedc1553SIngo Weinhold #define _FSSH_DRIVER_SETTINGS_H
3*eedc1553SIngo Weinhold 
4*eedc1553SIngo Weinhold 
5*eedc1553SIngo Weinhold #include "fssh_defs.h"
6*eedc1553SIngo Weinhold 
7*eedc1553SIngo Weinhold 
8*eedc1553SIngo Weinhold typedef struct fssh_driver_parameter {
9*eedc1553SIngo Weinhold 	char *name;
10*eedc1553SIngo Weinhold 	int	value_count;
11*eedc1553SIngo Weinhold 	char **values;
12*eedc1553SIngo Weinhold 	int parameter_count;
13*eedc1553SIngo Weinhold 	struct fssh_driver_parameter *parameters;
14*eedc1553SIngo Weinhold } fssh_driver_parameter;
15*eedc1553SIngo Weinhold 
16*eedc1553SIngo Weinhold typedef struct fssh_driver_settings {
17*eedc1553SIngo Weinhold 	int parameter_count;
18*eedc1553SIngo Weinhold 	struct fssh_driver_parameter *parameters;
19*eedc1553SIngo Weinhold } fssh_driver_settings;
20*eedc1553SIngo Weinhold 
21*eedc1553SIngo Weinhold 
22*eedc1553SIngo Weinhold #ifdef __cplusplus
23*eedc1553SIngo Weinhold extern "C" {
24*eedc1553SIngo Weinhold #endif
25*eedc1553SIngo Weinhold 
26*eedc1553SIngo Weinhold 
27*eedc1553SIngo Weinhold extern void*			fssh_load_driver_settings(const char *driverName);
28*eedc1553SIngo Weinhold extern fssh_status_t	fssh_unload_driver_settings(void *handle);
29*eedc1553SIngo Weinhold 
30*eedc1553SIngo Weinhold extern void*			fssh_parse_driver_settings_string(
31*eedc1553SIngo Weinhold 							const char *settingsString);
32*eedc1553SIngo Weinhold extern fssh_status_t	fssh_get_driver_settings_string(void *_handle,
33*eedc1553SIngo Weinhold 							char *buffer, fssh_size_t *_bufferSize, bool flat);
34*eedc1553SIngo Weinhold 
35*eedc1553SIngo Weinhold extern const char*		fssh_get_driver_parameter(void *handle, const char *key,
36*eedc1553SIngo Weinhold 							const char *unknownValue,	/* key not present */
37*eedc1553SIngo Weinhold 							const char *noargValue);	/* key has no value */
38*eedc1553SIngo Weinhold extern bool				fssh_get_driver_boolean_parameter(void *handle,
39*eedc1553SIngo Weinhold 							const char *key, bool unknownValue,
40*eedc1553SIngo Weinhold 							bool noargValue);
41*eedc1553SIngo Weinhold 
42*eedc1553SIngo Weinhold extern const fssh_driver_settings *fssh_get_driver_settings(void *handle);
43*eedc1553SIngo Weinhold 
44*eedc1553SIngo Weinhold /* Pass this in as drivername to access safe mode settings */
45*eedc1553SIngo Weinhold #define FSSH_B_SAFEMODE_DRIVER_SETTINGS	"/safemode/"
46*eedc1553SIngo Weinhold 
47*eedc1553SIngo Weinhold /* Pass this as the key value to check if safe mode is enabled */
48*eedc1553SIngo Weinhold #define FSSH_B_SAFEMODE_SAFE_MODE		"safemode"
49*eedc1553SIngo Weinhold 
50*eedc1553SIngo Weinhold 
51*eedc1553SIngo Weinhold #ifdef __cplusplus
52*eedc1553SIngo Weinhold }
53*eedc1553SIngo Weinhold #endif
54*eedc1553SIngo Weinhold 
55*eedc1553SIngo Weinhold #endif	// _FSSH_DRIVER_SETTINGS_H
56