From 85db3873a90753e45b82e249fb1030768610c390 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 25 Jun 2010 13:40:51 +0000 Subject: [PATCH] find_directory.c, driver_settings.c: Converted to C++. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37256 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/boot/loader/Jamfile | 4 +-- src/system/kernel/lib/Jamfile | 8 ++--- src/system/libroot/os/Jamfile | 4 +-- ...{driver_settings.c => driver_settings.cpp} | 36 +++++++++++-------- .../{find_directory.c => find_directory.cpp} | 33 ++++++++--------- 5 files changed, 46 insertions(+), 39 deletions(-) rename src/system/libroot/os/{driver_settings.c => driver_settings.cpp} (95%) rename src/system/libroot/os/{find_directory.c => find_directory.cpp} (91%) diff --git a/src/system/boot/loader/Jamfile b/src/system/boot/loader/Jamfile index 2e8d74d078..e9b8ba1a7c 100644 --- a/src/system/boot/loader/Jamfile +++ b/src/system/boot/loader/Jamfile @@ -66,7 +66,7 @@ KernelStaticLibrary boot_loader : vm.cpp # libroot - driver_settings.c + driver_settings.cpp # utils kernel_cpp.cpp @@ -102,7 +102,7 @@ SEARCH on [ FGristFiles KMessage.cpp ] SEARCH on [ FGristFiles safemode_settings.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel debug ] ; -SEARCH on [ FGristFiles driver_settings.c ] +SEARCH on [ FGristFiles driver_settings.cpp ] = [ FDirName $(HAIKU_TOP) src system libroot os ] ; SEARCH on [ FGristFiles amiga_rdb.cpp ] diff --git a/src/system/kernel/lib/Jamfile b/src/system/kernel/lib/Jamfile index cd831f15b4..d82abe70e5 100644 --- a/src/system/kernel/lib/Jamfile +++ b/src/system/kernel/lib/Jamfile @@ -5,16 +5,16 @@ UsePrivateHeaders shared ; # kernel libroot os files KernelMergeObject kernel_os_main.o : - driver_settings.c - find_directory.c + driver_settings.cpp + find_directory.cpp fs_info.c wait_for_objects.cpp : $(TARGET_KERNEL_PIC_CCFLAGS) ; SEARCH on [ FGristFiles - driver_settings.c - find_directory.c + driver_settings.cpp + find_directory.cpp fs_info.c wait_for_objects.cpp ] = [ FDirName $(HAIKU_TOP) src system libroot os ] ; diff --git a/src/system/libroot/os/Jamfile b/src/system/libroot/os/Jamfile index f052bc82e8..217b7b9231 100644 --- a/src/system/libroot/os/Jamfile +++ b/src/system/libroot/os/Jamfile @@ -11,8 +11,8 @@ MergeObject os_main.o : area.c atomic.c debug.c - driver_settings.c - find_directory.c + driver_settings.cpp + find_directory.cpp fs_attr.cpp fs_index.c fs_info.c diff --git a/src/system/libroot/os/driver_settings.c b/src/system/libroot/os/driver_settings.cpp similarity index 95% rename from src/system/libroot/os/driver_settings.c rename to src/system/libroot/os/driver_settings.cpp index 2bf16ad220..189031be21 100644 --- a/src/system/libroot/os/driver_settings.c +++ b/src/system/libroot/os/driver_settings.cpp @@ -284,8 +284,8 @@ parse_parameter(struct driver_parameter *parameter, char **_pos, int32 level) // enlarge value array and save the value - newArray = realloc(parameter->values, (parameter->value_count + 1) - * sizeof(char *)); + newArray = (char**)realloc(parameter->values, + (parameter->value_count + 1) * sizeof(char *)); if (newArray == NULL) return B_NO_MEMORY; @@ -318,7 +318,7 @@ parse_parameters(struct driver_parameter **_parameters, int *_count, if (status != NO_PARAMETER) { driver_parameter *newParameter; - newArray = realloc(*_parameters, (*_count + 1) + newArray = (driver_parameter*)realloc(*_parameters, (*_count + 1) * sizeof(struct driver_parameter)); if (newArray == NULL) return B_NO_MEMORY; @@ -395,10 +395,10 @@ free_settings(settings_handle *handle) } -static void * +static settings_handle * new_settings(char *buffer, const char *driverName) { - settings_handle *handle = malloc(sizeof(settings_handle)); + settings_handle *handle = (settings_handle*)malloc(sizeof(settings_handle)); if (handle == NULL) return NULL; @@ -506,7 +506,7 @@ put_string(char **_buffer, size_t *_bufferSize, char *string) static bool -put_chars(char **_buffer, size_t *_bufferSize, char *chars) +put_chars(char **_buffer, size_t *_bufferSize, const char *chars) { char *buffer = *_buffer; size_t length; @@ -610,7 +610,8 @@ find_driver_settings(const char *name) ASSERT_LOCKED_MUTEX(&sLock); - while ((handle = list_get_next_item(&sHandles, handle)) != NULL) { + while ((handle = (settings_handle*)list_get_next_item(&sHandles, handle)) + != NULL) { if (!strcmp(handle->name, name)) return handle; } @@ -629,12 +630,13 @@ driver_settings_init(kernel_args *args) list_init(&sHandles); while (settings != NULL) { - settings_handle *handle = malloc(sizeof(settings_handle)); + settings_handle *handle + = (settings_handle*)malloc(sizeof(settings_handle)); if (handle == NULL) return B_NO_MEMORY; if (settings->size != 0) { - handle->text = malloc(settings->size + 1); + handle->text = (char*)malloc(settings->size + 1); if (handle->text == NULL) { free(handle); return B_NO_MEMORY; @@ -746,7 +748,7 @@ load_driver_settings(const char *driverName) if (!strcmp(settings->name, driverName)) { // we have it - since the buffer is clobbered, we have to // copy its contents, though - char *text = malloc(settings->size + 1); + char *text = (char*)malloc(settings->size + 1); if (text == NULL) return NULL; @@ -845,7 +847,8 @@ parse_driver_settings_string(const char *settingsString) // we simply copy the whole string to use it as our internal buffer char *text = strdup(settingsString); if (settingsString == NULL || text != NULL) { - settings_handle *handle = malloc(sizeof(settings_handle)); + settings_handle *handle + = (settings_handle*)malloc(sizeof(settings_handle)); if (handle != NULL) { handle->magic = SETTINGS_MAGIC; handle->text = text; @@ -903,9 +906,10 @@ get_driver_settings_string(void *_handle, char *buffer, size_t *_bufferSize, Also returns "unknownValue" if the handle passed in was not valid. */ bool -get_driver_boolean_parameter(void *handle, const char *keyName, +get_driver_boolean_parameter(void *_handle, const char *keyName, bool unknownValue, bool noArgValue) { + settings_handle *handle = (settings_handle*)_handle; driver_parameter *parameter; char *boolean; @@ -943,9 +947,10 @@ get_driver_boolean_parameter(void *handle, const char *keyName, const char * -get_driver_parameter(void *handle, const char *keyName, +get_driver_parameter(void *_handle, const char *keyName, const char *unknownValue, const char *noArgValue) { + settings_handle* handle = (settings_handle*)_handle; struct driver_parameter *parameter; if (!check_handle(handle)) @@ -966,7 +971,7 @@ get_driver_parameter(void *handle, const char *keyName, const driver_settings * get_driver_settings(void *handle) { - if (!check_handle(handle)) + if (!check_handle((settings_handle*)handle)) return NULL; return &((settings_handle *)handle)->settings; @@ -975,5 +980,6 @@ get_driver_settings(void *handle) // this creates an alias of the above function // unload_driver_settings() is the same as delete_driver_settings() -extern __typeof(unload_driver_settings) delete_driver_settings __attribute__ ((alias ("unload_driver_settings"))); +extern "C" __typeof(unload_driver_settings) delete_driver_settings + __attribute__((alias ("unload_driver_settings"))); diff --git a/src/system/libroot/os/find_directory.c b/src/system/libroot/os/find_directory.cpp similarity index 91% rename from src/system/libroot/os/find_directory.c rename to src/system/libroot/os/find_directory.cpp index d8c1b2ef79..5ab24bd013 100644 --- a/src/system/libroot/os/find_directory.c +++ b/src/system/libroot/os/find_directory.cpp @@ -151,7 +151,7 @@ find_directory(directory_which which, dev_t device, bool createIt, struct stat st; char *buffer = NULL; char *home = NULL; - const char *template = NULL; + const char *templatePath = NULL; /* as with the R5 version, no on-stack buffer */ buffer = (char *)malloc(pathLength); @@ -196,14 +196,14 @@ find_directory(directory_which which, dev_t device, bool createIt, /* Per volume directories */ case B_DESKTOP_DIRECTORY: if (device == bootDevice || !strcmp(fsInfo.fsh_name, "bfs")) - template = "$h/Desktop"; + templatePath = "$h/Desktop"; break; case B_TRASH_DIRECTORY: // TODO: eventually put that into the file system API? if (device == bootDevice || !strcmp(fsInfo.fsh_name, "bfs")) - template = "trash"; // TODO: add suffix for current user + templatePath = "trash"; // TODO: add suffix for current user else if (!strcmp(fsInfo.fsh_name, "fat")) - template = "RECYCLED/_BEOS_"; + templatePath = "RECYCLED/_BEOS_"; break; /* Haiku system directories */ @@ -223,7 +223,7 @@ find_directory(directory_which which, dev_t device, bool createIt, case B_SYSTEM_MEDIA_NODES_DIRECTORY: case B_SYSTEM_SOUNDS_DIRECTORY: case B_SYSTEM_DATA_DIRECTORY: - template = kSystemDirectories[which - B_SYSTEM_DIRECTORY]; + templatePath = kSystemDirectories[which - B_SYSTEM_DIRECTORY]; break; /* Common directories, shared among users */ @@ -247,7 +247,7 @@ find_directory(directory_which which, dev_t device, bool createIt, case B_COMMON_MEDIA_NODES_DIRECTORY: case B_COMMON_SOUNDS_DIRECTORY: case B_COMMON_DATA_DIRECTORY: - template = kCommonDirectories[which - B_COMMON_DIRECTORY]; + templatePath = kCommonDirectories[which - B_COMMON_DIRECTORY]; break; /* User directories */ @@ -265,18 +265,18 @@ find_directory(directory_which which, dev_t device, bool createIt, case B_USER_SOUNDS_DIRECTORY: case B_USER_DATA_DIRECTORY: case B_USER_CACHE_DIRECTORY: - template = kUserDirectories[which - B_USER_DIRECTORY]; + templatePath = kUserDirectories[which - B_USER_DIRECTORY]; break; /* Global directories */ case B_APPS_DIRECTORY: - template = "apps"; + templatePath = "apps"; break; case B_PREFERENCES_DIRECTORY: - template = "preferences"; + templatePath = "preferences"; break; case B_UTILITIES_DIRECTORY: - template = "utilities"; + templatePath = "utilities"; break; default: @@ -285,8 +285,8 @@ find_directory(directory_which which, dev_t device, bool createIt, } err = B_OK; - if (template) { - if (!strncmp(template, "$h", 2)) { + if (templatePath) { + if (!strncmp(templatePath, "$h", 2)) { if (bootDevice > -1 && device != bootDevice) { int l = pathLength - strlen(buffer); if (l > 5) @@ -312,13 +312,14 @@ find_directory(directory_which which, dev_t device, bool createIt, home = "/boot/home"; strncpy(buffer, home, pathLength); } - template += 2; + templatePath += 2; } else strlcat(buffer, "/", pathLength); - if (!err && strlen(buffer) + 2 + strlen(template) < (uint32)pathLength) - strcat(buffer, template); - else + if (!err && strlen(buffer) + 2 + strlen(templatePath) + < (uint32)pathLength) { + strcat(buffer, templatePath); + } else err = err ? err : E2BIG; } else err = err ? err : ENOENT;