summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2016-01-01 22:48:32 -0500
committermidipix <writeonce@midipix.org>2016-01-02 01:39:28 -0500
commitd3f07e5d9a9fad51b71f35af6c704c1636c451fd (patch)
tree91d08d6944aa60192e9dac7af2219dd696d745f3
parentc46a30d75a992c7c061cba8c128b1bf134c45952 (diff)
downloadapimagic-d3f07e5d9a9fad51b71f35af6c704c1636c451fd.tar.bz2
apimagic-d3f07e5d9a9fad51b71f35af6c704c1636c451fd.tar.xz
interface actions: initial design.
-rw-r--r--include/apimagic/apimagic.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/apimagic/apimagic.h b/include/apimagic/apimagic.h
index beee461..1139873 100644
--- a/include/apimagic/apimagic.h
+++ b/include/apimagic/apimagic.h
@@ -41,17 +41,36 @@ extern "C" {
#define AMGC_DRIVER_VERSION 0x0010
#define AMGC_DRIVER_DRY_RUN 0x0020
-/* unit action flags */
+enum amgc_action_type {
+ AMGC_ACTION_NONE,
+ AMGC_ACTION_OUTPUT,
+};
+
+enum amgc_output_action {
+ AMGC_OUTPUT_DEFINE,
+ AMGC_OUTPUT_ENUM,
+ AMGC_OUTPUT_TYPEDEF,
+ AMGC_OUTPUT_STRUCT,
+ AMGC_OUTPUT_UNION,
+ AMGC_OUTPUT_FUNCTION,
+};
struct amgc_input {
void * addr;
size_t size;
};
+struct amgc_action {
+ enum amgc_action_type type;
+ int action;
+ const char * filter;
+};
+
struct amgc_common_ctx {
uint64_t drvflags;
uint64_t actflags;
uint64_t fmtflags;
+ const struct amgc_action * actions;
struct compilation_env_t * ccenv;
enum lang_standard_t std;
};