Update of /cvsroot/monetdb/MonetDB/src/gdk
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv1976/src/gdk

Modified Files:
        gdk_utils.mx 
Log Message:
interface of GDKinit changed into GKDinit(opt *set, int setlen)


Index: gdk_utils.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB/src/gdk/gdk_utils.mx,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -d -r1.194 -r1.195
--- gdk_utils.mx        16 Oct 2007 09:23:45 -0000      1.194
+++ gdk_utils.mx        14 Nov 2007 12:40:19 -0000      1.195
@@ -26,6 +26,8 @@
 #ifndef _GDK_UTILS_H_
 #define _GDK_UTILS_H_
 
+#include <monet_options.h>
+
 gdk_export void GDKlog(const char *format, ...);
 gdk_export void GDKlockHome(void);
 gdk_export void GDKunlockHome(void);
@@ -1369,7 +1371,7 @@
 int GDKtime_startsec, GDKrecovery = 0;
 
 @h
-gdk_export int GDKinit(char *dbname, char *dbfarm, int alloc_map);
+gdk_export int GDKinit(opt *set, int setlen);
 
 @c
 void
@@ -1418,15 +1420,35 @@
 #endif
 
 int
-GDKinit(char *dbname, char *dbfarm, int alloc_map)
+GDKinit(opt *set, int setlen)
 {
-       gdk_alloc_map = alloc_map;
+       char *dbname = mo_find_option(set, setlen, "gdk_dbname");
+       char *dbfarm = mo_find_option(set, setlen, "gdk_dbfarm");
+       char *alloc_map = mo_find_option(set, setlen, "gdk_alloc_map");
+       char *p;
+       opt *n;
+       int i, j, nlen = 0;
+
+       gdk_alloc_map = strcasecmp(alloc_map, "yes") == 0;
        errno = 0;
-       if (!GDKenvironment(dbname, dbfarm))
+       dbfarm = mo_substitute(set, setlen, dbfarm);
+       if (!GDKenvironment(dbname, dbfarm)) {
+               free(dbfarm);
                return 0;
+       }
+       free(dbfarm);
+
+       if ((p = mo_find_option(set, setlen, "gdk_debug")))
+               GDKdebug = strtol(p, NULL, 10);
+
+       if ((p = mo_find_option(set, setlen, "gdk_mem_pagebits"))) 
+               GDK_mem_pagebits = strtol(p, NULL, 10);
+
+       if ((p = mo_find_option(set, setlen, "gdk_vmtrim"))) 
+               GDK_vm_trim = strcasecmp(p, "yes") == 0;
 
        stream_init();
-       MT_init_posix(alloc_map);
+       MT_init_posix(gdk_alloc_map);
        THRinit();
 #ifndef NATIVE_WIN32
        BATSIGinit();
@@ -1462,11 +1484,53 @@
        GDKmemchk(TRUE, TRUE);
        GDKremovedir(DELDIR);
        BBPinit();
+
        GDKenv = BATnew(TYPE_str, TYPE_str, 100);
        if (GDKenv == NULL)
                GDKfatal("GDKinit: Could not create environment BAT");
        BATrename(GDKenv, "monet_environment");
        BATmode(GDKenv, TRANSIENT);
+
+       n = (opt *) malloc(setlen * sizeof(opt));
+       for (i = 0; i < setlen; i++) {
+               int done = 0;
+
+               for (j = 0; j < nlen; j++) {
+                       if (strcmp(n[j].name, set[i].name) == 0) {
+                               if (n[j].kind < set[i].kind) {
+                                       n[j] = set[i];
+                               }
+                               done = 1;
+                               break;
+                       }
+               }
+               if (!done) {
+                       n[nlen] = set[i];
+                       nlen++;
+               }
+       }
+       for (i = 0; i < nlen; i++) {
+               char *value;
+
+               value = mo_substitute(n, nlen, n[i].value);
+               GDKsetenv(n[i].name, value);
+               free(value);
+       }
+       free(n);
+
+       if ((p = GDKgetenv("gdk_mem_bigsize"))) {
+               /* when allocating >6% of all RAM; do so using vmalloc() iso 
malloc() */
+               lng max_mem_bigsize = GDK_mem_maxsize/16;
+
+               /* sanity check to avoid memory fragmentation */
+               GDK_mem_bigsize = (size_t) MIN(max_mem_bigsize, strtol(p, NULL, 
10));
+       }
+       if ((p = GDKgetenv("gdk_vm_minsize"))) 
+               GDK_vm_minsize = (size_t)strtol(p, NULL, 10);
+
+       if (GDKgetenv_isyes("gdk_embedded") || GDKgetenv_isyes("embedded")) 
+               GDKembedded = 1;
+
 #ifndef WIN32
        if (!GDKembedded && GDK_vm_trim) {
                MT_Id t;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to