diff options
author | Alice Frosi <afrosi@redhat.com> | 2023-03-24 16:08:46 +0100 |
---|---|---|
committer | Alice Frosi <afrosi@redhat.com> | 2023-03-24 16:08:46 +0100 |
commit | e6562db0423e6019154baf05beb02ff3da02f3bb (patch) | |
tree | 07c17ea7d3c193c7cdf6b591422a1e6b7ba22a99 /seitan-cooker/gluten.c | |
parent | 2e4cab1ff7c9d8db278427d9dca6ccb62619ca18 (diff) | |
download | seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar.gz seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar.bz2 seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar.lz seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar.xz seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.tar.zst seitan-e6562db0423e6019154baf05beb02ff3da02f3bb.zip |
Re-arrange repository structure
Diffstat (limited to 'seitan-cooker/gluten.c')
-rw-r--r-- | seitan-cooker/gluten.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/seitan-cooker/gluten.c b/seitan-cooker/gluten.c new file mode 100644 index 0000000..1116e6b --- /dev/null +++ b/seitan-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; +} |