aboutsummaryrefslogtreecommitdiff
path: root/src/solvers
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-10 15:39:49 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-10 15:39:49 +0200
commit1f4900a3cc6ca74f94b73e224d14a09d52c4549c (patch)
tree955773f6467db3d3f62a4d453ec0a9853c8fccaa /src/solvers
parent3c8f8c2e60cd089679cf5da5160baaf35977b220 (diff)
downloadnissy-core-1f4900a3cc6ca74f94b73e224d14a09d52c4549c.tar.gz
nissy-core-1f4900a3cc6ca74f94b73e224d14a09d52c4549c.zip
Added tabletype to tableinfo
Diffstat (limited to 'src/solvers')
-rw-r--r--src/solvers/tables.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/solvers/tables.h b/src/solvers/tables.h
index 9598a09..29d0641 100644
--- a/src/solvers/tables.h
+++ b/src/solvers/tables.h
@@ -2,7 +2,8 @@
2#define INFOSIZE 512 2#define INFOSIZE 512
3#define INFO_OFFSET_SOLVER 0 3#define INFO_OFFSET_SOLVER 0
4#define INFO_SOLVER_STRLEN 20 4#define INFO_SOLVER_STRLEN 20
5#define INFO_OFFSET_INFOSIZE INFO_SOLVER_STRLEN 5#define INFO_OFFSET_TYPE INFO_SOLVER_STRLEN
6#define INFO_OFFSET_INFOSIZE (INFO_OFFSET_TYPE + sizeof(uint64_t))
6#define INFO_OFFSET_FULLSIZE (INFO_OFFSET_INFOSIZE + sizeof(uint64_t)) 7#define INFO_OFFSET_FULLSIZE (INFO_OFFSET_INFOSIZE + sizeof(uint64_t))
7#define INFO_OFFSET_HASH (INFO_OFFSET_FULLSIZE + sizeof(uint64_t)) 8#define INFO_OFFSET_HASH (INFO_OFFSET_FULLSIZE + sizeof(uint64_t))
8#define INFO_OFFSET_ENTRIES (INFO_OFFSET_HASH + sizeof(uint64_t)) 9#define INFO_OFFSET_ENTRIES (INFO_OFFSET_HASH + sizeof(uint64_t))
@@ -13,8 +14,12 @@
13#define INFO_OFFSET_DISTRIBUTION (INFO_OFFSET_NEXT + sizeof(uint64_t)) 14#define INFO_OFFSET_DISTRIBUTION (INFO_OFFSET_NEXT + sizeof(uint64_t))
14#define INFO_DISTRIBUTION_LEN 21 15#define INFO_DISTRIBUTION_LEN 21
15 16
17const uint64_t TABLETYPE_PRUNING = 0;
18const uint64_t TABLETYPE_SPECIAL = 1;
19
16typedef struct { 20typedef struct {
17 char solver[INFO_SOLVER_STRLEN]; 21 char solver[INFO_SOLVER_STRLEN];
22 uint64_t type;
18 uint64_t infosize; 23 uint64_t infosize;
19 uint64_t fullsize; 24 uint64_t fullsize;
20 uint64_t hash; 25 uint64_t hash;
@@ -44,6 +49,7 @@ readtableinfo(const void *buf, tableinfo_t *info)
44 49
45 memcpy(info->solver, OFFSET(buf, INFO_OFFSET_SOLVER), 50 memcpy(info->solver, OFFSET(buf, INFO_OFFSET_SOLVER),
46 INFO_SOLVER_STRLEN); 51 INFO_SOLVER_STRLEN);
52 info->type = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_TYPE);
47 info->infosize = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_INFOSIZE); 53 info->infosize = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_INFOSIZE);
48 info->fullsize = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_FULLSIZE); 54 info->fullsize = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_FULLSIZE);
49 info->hash = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_HASH); 55 info->hash = *(const uint64_t *)OFFSET(buf, INFO_OFFSET_HASH);
@@ -81,6 +87,7 @@ writetableinfo(const tableinfo_t *info, void *buf)
81 if (*OFFSET(buf, i) == 0) 87 if (*OFFSET(buf, i) == 0)
82 *OFFSET(buf, i) = 0; 88 *OFFSET(buf, i) = 0;
83 89
90 *(uint64_t *)OFFSET(buf, INFO_OFFSET_TYPE) = info->type;
84 *(uint64_t *)OFFSET(buf, INFO_OFFSET_INFOSIZE) = info->infosize; 91 *(uint64_t *)OFFSET(buf, INFO_OFFSET_INFOSIZE) = info->infosize;
85 *(uint64_t *)OFFSET(buf, INFO_OFFSET_FULLSIZE) = info->fullsize; 92 *(uint64_t *)OFFSET(buf, INFO_OFFSET_FULLSIZE) = info->fullsize;
86 *(uint64_t *)OFFSET(buf, INFO_OFFSET_HASH) = info->hash; 93 *(uint64_t *)OFFSET(buf, INFO_OFFSET_HASH) = info->hash;

Generated with cgit - Back to sebastiano.tronto.net