Author: jelmer
Date: 2007-08-04 13:16:33 +0000 (Sat, 04 Aug 2007)
New Revision: 24193

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24193

Log:
Some more work towards fixing the build.
Modified:
   branches/4.0-regwrite/
   branches/4.0-regwrite/.bzrignore
   branches/4.0-regwrite/source/lib/registry/creg.c
   branches/4.0-regwrite/source/lib/registry/dir.c
   branches/4.0-regwrite/source/lib/registry/ldb.c
   branches/4.0-regwrite/source/lib/registry/rpc.c


Changeset:

Property changes on: branches/4.0-regwrite
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: Thu 2007-02-08 18:18:35.105000019 +0100
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
properties: 
        branch-nick: 4.0-regwrite
        rebase-of: [EMAIL PROTECTED]

   + timestamp: Sat 2007-02-10 16:02:22.318000078 +0100
committer: Jelmer Vernooij <[EMAIL PROTECTED]>
properties: 
        branch-nick: 4.0-regwrite
        rebase-of: [EMAIL PROTECTED]

Name: bzr:file-ids
   - source/lib/registry/ldb.c  [EMAIL 
PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fregistry%2Freg_backend_ldb.c
source/lib/registry/creg.c      [EMAIL 
PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fregistry%2Freg_backend_w95.c
source/lib/registry/regf.c      [EMAIL 
PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fregistry%2Freg_backend_nt4.c
source/lib/registry/dir.c       [EMAIL 
PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fregistry%2Freg_backend_dir.c
source/lib/registry/wine.c      [EMAIL 
PROTECTED]:branches%2FSAMBA_4_0:source%2Flib%2Fregistry%2Freg_backend_wine.c

   + 
Name: bzr:revision-id:v3-trunk0
   - 11140 [EMAIL PROTECTED]
11142 [EMAIL PROTECTED]
11143 [EMAIL PROTECTED]
11144 [EMAIL PROTECTED]
11145 [EMAIL PROTECTED]
11146 [EMAIL PROTECTED]
11147 [EMAIL PROTECTED]
11148 [EMAIL PROTECTED]
11149 [EMAIL PROTECTED]
11150 [EMAIL PROTECTED]
11151 [EMAIL PROTECTED]
11152 [EMAIL PROTECTED]
11153 [EMAIL PROTECTED]
11154 [EMAIL PROTECTED]
11155 [EMAIL PROTECTED]
11156 [EMAIL PROTECTED]
11157 [EMAIL PROTECTED]
11158 [EMAIL PROTECTED]
11159 [EMAIL PROTECTED]
11160 [EMAIL PROTECTED]
11161 [EMAIL PROTECTED]
11162 [EMAIL PROTECTED]
11163 [EMAIL PROTECTED]
11164 [EMAIL PROTECTED]
11165 [EMAIL PROTECTED]

   + 11140 [EMAIL PROTECTED]
11142 [EMAIL PROTECTED]
11143 [EMAIL PROTECTED]
11144 [EMAIL PROTECTED]
11145 [EMAIL PROTECTED]
11146 [EMAIL PROTECTED]
11147 [EMAIL PROTECTED]
11148 [EMAIL PROTECTED]
11149 [EMAIL PROTECTED]
11150 [EMAIL PROTECTED]
11151 [EMAIL PROTECTED]
11152 [EMAIL PROTECTED]
11153 [EMAIL PROTECTED]
11154 [EMAIL PROTECTED]
11155 [EMAIL PROTECTED]
11156 [EMAIL PROTECTED]
11157 [EMAIL PROTECTED]
11158 [EMAIL PROTECTED]
11159 [EMAIL PROTECTED]
11160 [EMAIL PROTECTED]
11161 [EMAIL PROTECTED]
11162 [EMAIL PROTECTED]
11163 [EMAIL PROTECTED]
11164 [EMAIL PROTECTED]
11165 [EMAIL PROTECTED]
11166 [EMAIL PROTECTED]


Modified: branches/4.0-regwrite/.bzrignore
===================================================================
--- branches/4.0-regwrite/.bzrignore    2007-08-04 13:16:25 UTC (rev 24192)
+++ branches/4.0-regwrite/.bzrignore    2007-08-04 13:16:33 UTC (rev 24193)
@@ -172,3 +172,4 @@
 source/st
 source/samba.info
 source/pidl/cover_db
+source/lib/registry/apidocs

Modified: branches/4.0-regwrite/source/lib/registry/creg.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/creg.c    2007-08-04 13:16:25 UTC 
(rev 24192)
+++ branches/4.0-regwrite/source/lib/registry/creg.c    2007-08-04 13:16:33 UTC 
(rev 24193)
@@ -83,7 +83,6 @@
        REG_ID id;
 } RGKN_KEY;
 
-
 typedef struct rgdb_block {
        DWORD RGDB_ID;          /* RGDB */
        DWORD size;
@@ -123,6 +122,11 @@
        RGDB_KEY ***rgdb_keys;
 } CREG;
 
+struct creg_key_data {
+       RGKN_KEY *data;
+       CREG *hive;
+};
+
 #if 0 /* unused */
 #define RGKN_START_SIZE 0x2000
 #define RGKN_INC_SIZE   0x1000
@@ -183,16 +187,15 @@
        }
 }
 
-WERROR reg_open_creg_file(const char *location, struct registry_key **root)
+WERROR reg_open_creg_file(TALLOC_CTX *parent_ctx, const char *location, struct 
registry_key **root)
 {
        CREG *creg;
        DWORD creg_id, rgkn_id;
        DWORD i;
        DWORD offset;
 
-       creg = talloc(h, CREG);
+       creg = talloc(parent_ctx, CREG);
        memset(creg, 0, sizeof(CREG));
-       h->backend_data = creg;
 
        if((creg->fd = open(location, O_RDONLY, 0000)) < 0) {
                return WERR_FOOBAR;
@@ -205,7 +208,7 @@
     creg->base = mmap(0, creg->sbuf.st_size, PROT_READ, MAP_SHARED, creg->fd, 
0);
                                                                                
                                                               
     if (creg->base == (void *)-1) {
-               DEBUG(0,("Could not mmap file: %s, %s\n", h->location, 
strerror(errno)));
+               DEBUG(0,("Could not mmap file: %s, %s\n", location, 
strerror(errno)));
         return WERR_FOOBAR;
     }
 
@@ -213,7 +216,7 @@
 
        if ((creg_id = IVAL(&creg->creg_hdr->CREG_ID,0)) != 
str_to_dword("CREG")) {
                DEBUG(0, ("Unrecognized Windows 95 registry header id: 0x%0X, 
%s\n", 
-                                 creg_id, h->location));
+                                 creg_id, location));
                return WERR_FOOBAR;
        }
 
@@ -221,7 +224,7 @@
 
        if ((rgkn_id = IVAL(&creg->rgkn_hdr->RGKN_ID,0)) != 
str_to_dword("RGKN")) {
                DEBUG(0, ("Unrecognized Windows 95 registry key index id: 
0x%0X, %s\n", 
-                                 rgkn_id, h->location));
+                                 rgkn_id, location));
                return WERR_FOOBAR;
        }
 
@@ -237,7 +240,7 @@
        }
 #endif
 
-       creg->rgdb_keys = talloc_array(h, RGDB_KEY **, 
creg->creg_hdr->num_rgdb);
+       creg->rgdb_keys = talloc_array(parent_ctx, RGDB_KEY **, 
creg->creg_hdr->num_rgdb);
 
        offset = 0;
        DEBUG(3, ("Reading %d rgdb entries\n", creg->creg_hdr->num_rgdb));
@@ -246,14 +249,14 @@
                
                if(strncmp((char *)&(rgdb_hdr->RGDB_ID), "RGDB", 4)) {
                        DEBUG(0, ("unrecognized rgdb entry: %4d, %s\n", 
-                                         rgdb_hdr->RGDB_ID, h->location));
+                                         rgdb_hdr->RGDB_ID, location));
                        return WERR_FOOBAR;
                } else {
                        DEBUG(3, ("Valid rgdb entry, first free id: %d, max id: 
%d\n", rgdb_hdr->first_free_id, rgdb_hdr->max_id));
                }
 
 
-               creg->rgdb_keys[i] = talloc_array(h, RGDB_KEY *, 
rgdb_hdr->max_id+1);
+               creg->rgdb_keys[i] = talloc_array(creg, RGDB_KEY *, 
rgdb_hdr->max_id+1);
                memset(creg->rgdb_keys[i], 0, sizeof(RGDB_KEY *) * 
(rgdb_hdr->max_id+1));
 
                parse_rgdb_block(creg, rgdb_hdr);
@@ -262,9 +265,10 @@
        }
        
        /* First element in rgkn should be root key */
-       *root = talloc(h, struct registry_key);
+       *root = talloc(parent_ctx, struct registry_key);
        (*root)->name = NULL;
        (*root)->backend_data = LOCN_RGKN(creg, sizeof(RGKN_HDR));
+       /* FIXME: attach creg to key */
        
        return WERR_OK;
 }
@@ -272,7 +276,8 @@
 static WERROR creg_get_subkey_by_index (TALLOC_CTX *mem_ctx, const struct 
registry_key *parent, int n, struct registry_key **key)
 {
        CREG *creg = parent->hive->backend_data;
-       RGKN_KEY *rgkn_key = parent->backend_data;
+       struct creg_key_data *private_data = parent->backend_data;
+       RGKN_KEY *rgkn_key = private_data->data;
        RGKN_KEY *child;
        DWORD child_offset;
        DWORD cur = 0;
@@ -343,7 +348,7 @@
        return WERR_OK;
 }
 
-static struct hive_operations reg_backend_creg = {
+static struct reg_key_operations reg_backend_creg = {
        .name = "creg",
        .get_value_by_index = creg_get_value_by_id,
        .num_values = creg_num_values,

Modified: branches/4.0-regwrite/source/lib/registry/dir.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/dir.c     2007-08-04 13:16:25 UTC 
(rev 24192)
+++ branches/4.0-regwrite/source/lib/registry/dir.c     2007-08-04 13:16:33 UTC 
(rev 24193)
@@ -118,16 +118,17 @@
        return WERR_NO_MORE_ITEMS;
 }
 
-WERROR reg_open_directory(const char *location, struct registry_key **key)
+WERROR reg_open_directory(TALLOC_CTX *parent_ctx, 
+                                                 const char *location, struct 
registry_key **key)
 {
-       if(!h->location) return WERR_INVALID_PARAM;
+       if(!location) return WERR_INVALID_PARAM;
 
        *key = talloc(h, struct registry_key);
        (*key)->backend_data = talloc_strdup(*key, location);
        return WERR_OK;
 }
 
-static struct hive_operations reg_backend_dir = {
+static struct reg_key_operations reg_backend_dir = {
        .name = "dir",
        .open_key = reg_dir_open_key,
        .add_key = reg_dir_add_key,

Modified: branches/4.0-regwrite/source/lib/registry/ldb.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/ldb.c     2007-08-04 13:16:25 UTC 
(rev 24192)
+++ branches/4.0-regwrite/source/lib/registry/ldb.c     2007-08-04 13:16:33 UTC 
(rev 24193)
@@ -391,7 +391,7 @@
        return WERR_OK;
 }
 
-static struct hive_operations reg_backend_ldb = {
+static struct reg_key_operations reg_backend_ldb = {
        .name = "ldb",
        .add_key = ldb_add_key,
        .del_key = ldb_del_key,

Modified: branches/4.0-regwrite/source/lib/registry/rpc.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/rpc.c     2007-08-04 13:16:25 UTC 
(rev 24192)
+++ branches/4.0-regwrite/source/lib/registry/rpc.c     2007-08-04 13:16:33 UTC 
(rev 24193)
@@ -346,7 +346,7 @@
        return WERR_OK;
 }
 
-static struct hive_operations reg_backend_rpc = {
+static struct reg_key_operations reg_backend_rpc = {
        .name = "rpc",
        .open_key = rpc_open_key,
        .get_subkey_by_index = rpc_get_subkey_by_index,

Reply via email to