aboutgitcodelistschat:MatrixIRC
path: root/cooker/gluten.c
diff options
context:
space:
mode:
authorAlice Frosi <afrosi@redhat.com>2023-03-28 16:48:58 +0200
committerAlice Frosi <afrosi@redhat.com>2023-03-28 17:05:54 +0200
commitb6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c (patch)
tree55449680aa735b529600b2b7927e160944685697 /cooker/gluten.c
parent21c4730f0cb020db3bdff22e347a52d012cc79fe (diff)
downloadseitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar.gz
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar.bz2
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar.lz
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar.xz
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.tar.zst
seitan-b6c964fb5a00c8b8ab26a4678cdde24c3e9b1d9c.zip
Rename cooker and eater with seitan prefix
Diffstat (limited to 'cooker/gluten.c')
-rw-r--r--cooker/gluten.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/cooker/gluten.c b/cooker/gluten.c
new file mode 100644
index 0000000..1116e6b
--- /dev/null
+++ b/cooker/gluten.c
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+/* seitan - Syscall Expressive Interpreter, Transformer and Notifier
+ *
+ * cooker/gluten.c - gluten (bytecode) file and layout functions
+ *
+ * Copyright 2023 Red Hat GmbH
+ * Author: Stefano Brivio <sbrivio@redhat.com>
+ */
+
+#include "cooker.h"
+#include "gluten.h"
+#include "util.h"
+
+#define GLUTEN_INST_SIZE BUFSIZ
+#define GLUTEN_DATA_SIZE BUFSIZ
+
+static char gluten[GLUTEN_INST_SIZE + GLUTEN_DATA_SIZE];
+
+static size_t gluten_arg_storage[ARG_TYPE_COUNT] = {
+ [ARG_INT] = sizeof(int),
+ [ARG_INTMASK] = sizeof(int),
+};
+
+int gluten_alloc(struct gluten_ctx *g, size_t size)
+{
+ debug(" allocating %lu at offset %i", size, g->sp);
+ if ((g->sp += size) >= GLUTEN_DATA_SIZE)
+ die("Temporary data size exceeded");
+
+ return g->sp - size;
+}
+
+int gluten_alloc_type(struct gluten_ctx *g, enum arg_type type)
+{
+ return gluten_alloc(g, gluten_arg_storage[type]);
+}
+
+int gluten_init(struct gluten_ctx *g)
+{
+ g->gluten = gluten;
+
+ return 0;
+}