summaryrefslogtreecommitdiff
path: root/project-base/src/memory_bucket.h
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-11-23 22:33:43 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-11-23 22:33:43 +0100
commitb1e857cf1471d1871a9396696b22fa531da98249 (patch)
tree3923008a8653057698cb339faf6dcfa92e18364b /project-base/src/memory_bucket.h
parent106bb7fcadf637cec883648916cc8d19529d6199 (diff)
add projbase to repo
Diffstat (limited to 'project-base/src/memory_bucket.h')
-rw-r--r--project-base/src/memory_bucket.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/project-base/src/memory_bucket.h b/project-base/src/memory_bucket.h
new file mode 100644
index 0000000..b8f24f5
--- /dev/null
+++ b/project-base/src/memory_bucket.h
@@ -0,0 +1,26 @@
+/*
+* BSD 2-Clause “Simplified” License
+* Copyright (c) 2019, Aldrik Ramaekers, aldrik.ramaekers@protonmail.com
+* All rights reserved.
+*/
+
+#define kilobytes(num) num*1000
+#define megabytes(num) kilobytes(num*1000)
+
+typedef struct t_memory_bucket_entry
+{
+ char *data;
+ s32 length;
+ s32 cursor;
+} memory_bucket_entry;
+
+typedef struct t_memory_bucket
+{
+ mutex bucket_mutex;
+ array buckets;
+} memory_bucket;
+
+memory_bucket memory_bucket_init(s32 bucket_size);
+void* memory_bucket_reserve(memory_bucket *bucket, s32 reserve_length);
+void memory_bucket_reset(memory_bucket *bucket);
+void memory_bucket_destroy(memory_bucket *bucket); \ No newline at end of file