From: fennecdjay Date: Tue, 12 Mar 2019 20:49:24 +0000 (+0100) Subject: :art: Add driver macros X-Git-Tag: nightly~2744 X-Git-Url: http://10.11.0.4:5575/?a=commitdiff_plain;h=2002464eee5aad06bc8bde45ed08004df591e212;p=gwion.git :art: Add driver macros --- diff --git a/include/driver.h b/include/driver.h index 2d5b9cf1..5a2ea549 100644 --- a/include/driver.h +++ b/include/driver.h @@ -4,8 +4,11 @@ typedef m_bool (*f_drvini)(VM*, struct BBQ_*); typedef void (*f_drvrun)(VM*, struct BBQ_*); typedef void (*f_drvdel)(VM*, struct BBQ_*); -#define DRVRUN(a) void a(VM *vm, struct BBQ_* di) -#define DRVDEL(a) void a(VM *vm, struct BBQ_* di) + +#define DRVINI(a) ANN m_bool a(VM *vm __attribute__((unused)), struct BBQ_* di __attribute__((unused))) +#define DRVRUN(a) ANN void a(VM *vm __attribute__((unused)), struct BBQ_* di __attribute__((unused))) +#define DRVDEL(a) ANN void a(VM *vm __attribute__((unused)), struct BBQ_* di __attribute__((unused))) + typedef struct DriverData_ { void* data; f_drvini ini; diff --git a/src/vm/driver.c b/src/vm/driver.c index 3a3f6117..d73e6f74 100644 --- a/src/vm/driver.c +++ b/src/vm/driver.c @@ -15,14 +15,14 @@ ANN void bbq_alloc(struct BBQ_ *bbq) { bbq->in = (m_float*)xcalloc(bbq->si->in, SZ_FLOAT); } -static void dummy_run(VM* vm, struct BBQ_* di) { +static DRVRUN(dummy_run) { while(di->is_running) { di->run(vm); ++di->pos; } } -static m_bool dummy_ini(VM* vm __attribute__((unused)), struct BBQ_* di __attribute__((unused))) { +static DRVINI(dummy_ini) { return GW_OK; } diff --git a/tests/import/driver.c b/tests/import/driver.c index 91bf817e..99e20e9b 100644 --- a/tests/import/driver.c +++ b/tests/import/driver.c @@ -9,17 +9,19 @@ #include "gwion.h" #include "plug.h" -static void dummy_run(VM* vm, struct BBQ_* di) { +static DRVRUN(dummy_run) { while(vm->bbq->is_running) { di->run(vm); ++vm->bbq->pos; } } -static m_bool dummy_ini(VM* vm __attribute__((unused)), struct BBQ_* di __attribute__((unused))) { +static DRVINI(dummy_ini) { return GW_OK; } + GWMODSTR(dummy2); + GWDRIVER(dummy2) { d->ini = dummy_ini; d->run = dummy_run;