summaryrefslogtreecommitdiff
path: root/src/memory_bucket.h
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 14:29:17 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-03-03 14:29:17 +0100
commita3685d46c883c96e122b12bfebc6975705962e07 (patch)
treecddf8e88aee97ffe791ebaf5a5243d2346d8450d /src/memory_bucket.h
v2 initial commit
Diffstat (limited to 'src/memory_bucket.h')
-rw-r--r--src/memory_bucket.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/memory_bucket.h b/src/memory_bucket.h
new file mode 100644
index 0000000..f203804
--- /dev/null
+++ b/src/memory_bucket.h
@@ -0,0 +1,28 @@
+#ifndef INCLUDE_MEMORY_BUCKET
+#define INCLUDE_MEMORY_BUCKET
+
+#define kilobytes(num) num*1000
+#define megabytes(num) kilobytes(num*1000)
+
+#include "mutex.h"
+#include "array.h"
+
+typedef struct t_memory_bucket_entry
+{
+ char *data;
+ int length;
+ int cursor;
+} memory_bucket_entry;
+
+typedef struct t_memory_bucket
+{
+ mutex bucket_mutex;
+ array buckets;
+} memory_bucket;
+
+memory_bucket memory_bucket_init(int bucket_size);
+void* memory_bucket_reserve(memory_bucket *bucket, int reserve_length);
+void memory_bucket_reset(memory_bucket *bucket);
+void memory_bucket_destroy(memory_bucket *bucket);
+
+#endif \ No newline at end of file