diff --git a/src/tools/fs_shell/driver_settings.cpp b/src/tools/fs_shell/driver_settings.cpp index 1418d5240a..b92090983e 100644 --- a/src/tools/fs_shell/driver_settings.cpp +++ b/src/tools/fs_shell/driver_settings.cpp @@ -598,15 +598,16 @@ find_driver_settings(const char *name) } -static fssh_status_t driver_settings_init_post_sem() - __attribute__((constructor)); +namespace FSShell { -static fssh_status_t -driver_settings_init_post_sem() +fssh_status_t +driver_settings_init() { return mutex_init(&sLock, "driver settings"); } +} + // #pragma mark - public API diff --git a/src/tools/fs_shell/driver_settings.h b/src/tools/fs_shell/driver_settings.h new file mode 100644 index 0000000000..6dfddc8582 --- /dev/null +++ b/src/tools/fs_shell/driver_settings.h @@ -0,0 +1,22 @@ +/* + * Copyright 2007, Ingo Weinhold, bonefish@cs.tu-berlin.de. + * Distributed under the terms of the MIT License. + */ +#ifndef _FSSH_DRIVER_SETTINGS_PRIV_H +#define _FSSH_DRIVER_SETTINGS_PRIV_H + + +#include "fssh_defs.h" + + +namespace FSShell { + + +fssh_status_t driver_settings_init(); + + +} // namespace FSShell + + +#endif // _FSSH_DRIVER_SETTINGS_PRIV_H + diff --git a/src/tools/fs_shell/fssh.cpp b/src/tools/fs_shell/fssh.cpp index 480ebd696e..b3eac1fd63 100644 --- a/src/tools/fs_shell/fssh.cpp +++ b/src/tools/fs_shell/fssh.cpp @@ -16,6 +16,7 @@ #include #include "command_cp.h" +#include "driver_settings.h" #include "external_commands.h" #include "fd.h" #include "fssh_dirent.h" @@ -57,6 +58,14 @@ init_kernel() return error; } + // init driver settings + error = driver_settings_init(); + if (error != FSSH_B_OK) { + fprintf(stderr, "initializing driver settings failed: %s\n", + fssh_strerror(error)); + return error; + } + // register built-in modules, i.e. the rootfs and the client FS register_builtin_module(&gRootFileSystem.info); for (int i = 0; modules[i]; i++)