diff options
author | Alice Frosi <afrosi@redhat.com> | 2023-03-24 10:07:48 +0100 |
---|---|---|
committer | Alice Frosi <afrosi@redhat.com> | 2023-03-24 15:38:07 +0100 |
commit | 069009f8e39238ec1a67fba6cfb287b9a0cac83e (patch) | |
tree | 77f817eb7b96178b71f3d573a83cec19f7fba09c /src/cooker/cooker.h | |
parent | 06b0f6d323c396ca1df000af96fdd07cc69b06e0 (diff) | |
download | seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar.gz seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar.bz2 seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar.lz seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar.xz seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.tar.zst seitan-069009f8e39238ec1a67fba6cfb287b9a0cac83e.zip |
Re-organize project and add license header
Diffstat (limited to 'src/cooker/cooker.h')
-rw-r--r-- | src/cooker/cooker.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/cooker/cooker.h b/src/cooker/cooker.h new file mode 100644 index 0000000..53aa0db --- /dev/null +++ b/src/cooker/cooker.h @@ -0,0 +1,99 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later + * Copyright 2023 Red Hat GmbH + * Author: Stefano Brivio <sbrivio@redhat.com> + */ + +#ifndef COOKER_H +#define COOKER_H + +#include <stddef.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#define REFS_MAX 256 +#define CALL_ARGS 6 + +struct arg_num; +struct arg_struct; +struct arg_select; + +union arg_value { + struct arg_num *d_num; + struct arg_struct *d_struct; + struct arg_select *d_select; +}; + +enum arg_type { + ARG_INT, + ARG_INTMASK, + ARG_INTFLAGS, + + ARG_U32, + ARG_U32MASK, + ARG_U32FLAGS, + + ARG_LONG, + ARG_LONGMASK, + ARG_LONGFLAGS, + + ARG_STRING, + + ARG_STRUCT, + ARG_SELECT, + + ARG_PID, + + ARG_PORT, + ARG_IPV4, + ARG_IPV6, + + ARG_FDPATH, + + ARG_TYPE_END, +}; + +#define ARG_TYPE_COUNT (ARG_TYPE_END - 1) + +struct arg_num { + char *name; + long long value; +}; + +struct arg_struct { + char *name; + enum arg_type type; + size_t offset; + + size_t strlen; + + union arg_value desc; +}; + +struct arg_select_num { + long long value; + + enum arg_type type; + union arg_value desc; +}; + +struct arg_select { + struct arg_struct *field; + + union { + struct arg_select_num *d_num; + } desc; +}; + +struct arg { + int pos; + char *name; + + enum arg_type type; + size_t size; + + union arg_value desc; +}; + +#endif /* COOKER_H */ |