Added driver settings support to the FS shell.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21233 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2007-05-25 05:07:34 +00:00
parent 362d99e715
commit eedc15536c
4 changed files with 952 additions and 0 deletions
@@ -22,6 +22,7 @@
#include "fssh_defs.h"
#include "fssh_disk_device_defs.h"
#include "fssh_disk_device_manager.h"
#include "fssh_driver_settings.h"
#include "fssh_drivers.h"
#include "fssh_errors.h"
#include "fssh_fs_attr.h"
@@ -350,6 +351,24 @@
#define update_disk_device_job_interrupt_properties fssh_update_disk_device_job_interrupt_properties
////////////////////////////////////////////////////////////////////////////////
// #pragma mark - fssh_driver_settings.h
#define driver_parameter fssh_driver_parameter
#define driver_settings fssh_driver_settings
#define load_driver_settings fssh_load_driver_settings
#define unload_driver_settings fssh_unload_driver_settings
#define parse_driver_settings_string fssh_parse_driver_settings_string
#define get_driver_settings_string fssh_get_driver_settings_string
#define delete_driver_settings fssh_delete_driver_settings
#define get_driver_parameter fssh_get_driver_parameter
#define get_driver_boolean_parameter fssh_get_driver_boolean_parameter
#define get_driver_settings fssh_get_driver_settings
#define B_SAFEMODE_DRIVER_SETTINGS FSSH_B_SAFEMODE_DRIVER_SETTINGS
#define B_SAFEMODE_SAFE_MODE FSSH_B_SAFEMODE_SAFE_MODE
////////////////////////////////////////////////////////////////////////////////
// #pragma mark - fssh_drivers.h
@@ -0,0 +1,56 @@
#ifndef _FSSH_DRIVER_SETTINGS_H
#define _FSSH_DRIVER_SETTINGS_H
#include "fssh_defs.h"
typedef struct fssh_driver_parameter {
char *name;
int value_count;
char **values;
int parameter_count;
struct fssh_driver_parameter *parameters;
} fssh_driver_parameter;
typedef struct fssh_driver_settings {
int parameter_count;
struct fssh_driver_parameter *parameters;
} fssh_driver_settings;
#ifdef __cplusplus
extern "C" {
#endif
extern void* fssh_load_driver_settings(const char *driverName);
extern fssh_status_t fssh_unload_driver_settings(void *handle);
extern void* fssh_parse_driver_settings_string(
const char *settingsString);
extern fssh_status_t fssh_get_driver_settings_string(void *_handle,
char *buffer, fssh_size_t *_bufferSize, bool flat);
extern fssh_status_t fssh_delete_driver_settings(void *handle);
extern const char* fssh_get_driver_parameter(void *handle, const char *key,
const char *unknownValue, /* key not present */
const char *noargValue); /* key has no value */
extern bool fssh_get_driver_boolean_parameter(void *handle,
const char *key, bool unknownValue,
bool noargValue);
extern const fssh_driver_settings *fssh_get_driver_settings(void *handle);
/* Pass this in as drivername to access safe mode settings */
#define FSSH_B_SAFEMODE_DRIVER_SETTINGS "/safemode/"
/* Pass this as the key value to check if safe mode is enabled */
#define FSSH_B_SAFEMODE_SAFE_MODE "safemode"
#ifdef __cplusplus
}
#endif
#endif // _FSSH_DRIVER_SETTINGS_H