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,
