1 /* 2 * Copyright 2004-2008, François Revol, <revol@free.fr>. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 #include <stdlib.h> 7 #include <string.h> 8 #include <driver_settings.h> 9 #include <KernelExport.h> 10 #include "settings.h" 11 12 #include <stdio.h> 13 14 #define DEFAULT_MAX_VNODES 5000 15 uint32 max_vnodes = DEFAULT_MAX_VNODES; 16 uint32 max_results = 50; 17 bool sync_unlink_queries = false; 18 19 status_t load_settings(void) 20 { 21 void *handle; 22 const char *val; 23 handle = load_driver_settings("websearchfs"); 24 if (!handle) 25 return ENOENT; 26 27 fprintf(stderr, "websearchfs: loaded settings\n"); 28 29 val = get_driver_parameter(handle, "max_nodes", "5000", "5000"); 30 max_vnodes = strtoul(val, NULL, 10); 31 max_vnodes = MIN(max_vnodes, 1000000); 32 max_vnodes = MAX(max_vnodes, 10); 33 34 val = get_driver_parameter(handle, "max_results", "50", "50"); 35 max_results = strtoul(val, NULL, 10); 36 max_results = MIN(max_results, 1000); 37 max_results = MAX(max_results, 5); 38 39 sync_unlink_queries = get_driver_boolean_parameter(handle, "sync_unlink", false, true); 40 41 fprintf(stderr, "websearchfs: settings: max_nodes = %" B_PRIu32 "\n", max_vnodes); 42 fprintf(stderr, "websearchfs: settings: max_results = %" B_PRIu32 " \n", max_results); 43 fprintf(stderr, "websearchfs: settings: sync_unlink = %c\n", sync_unlink_queries?'t':'f'); 44 unload_driver_settings(handle); 45 return B_OK; 46 } 47 48