aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/util.c
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-06 15:49:55 +0200
committerlemon <lsof@mailbox.org>2022-08-06 15:49:55 +0200
commitf9840532ed954b1bafb600b9c9b1e9b597bb7fef (patch)
treea4f3a4f1cd17f153bf9fb307b6ac6591a437e4ee /bootstrap/util.c
parentb8d9ad1f6636f46a832b0f949ce7525ae08f53bd (diff)
fnv1a fix
Diffstat (limited to 'bootstrap/util.c')
-rw-r--r--bootstrap/util.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/bootstrap/util.c b/bootstrap/util.c
index bd6f951..43aa1b4 100644
--- a/bootstrap/util.c
+++ b/bootstrap/util.c
@@ -4,12 +4,23 @@ u32
fnv1a(u32 h, const void *p, size_t length) {
const u8 *data = p;
size_t i = 0;
- u64 H = h;
while (i != length) {
- H ^= data[i++];
- H *= 0x100000001b3;
+ h ^= data[i++];
+ h *= 0x01000193;
}
- return H;
+ return h;
+}
+u32
+fnv1ai(u32 hash, int i) {
+ return fnv1a(hash, &i, sizeof i);
+}
+u32
+fnv1aI(u32 hash, i64 i) {
+ return fnv1a(hash, &i, sizeof i);
+}
+u32
+fnv1az(u32 hash, size_t i) {
+ return fnv1a(hash, &i, sizeof i);
}
static const char *filepaths[100];