From b8225b67f6e452b4751150e52b3dfee54744f4bf Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 5 Aug 2018 00:48:15 -0400 Subject: output interfaces: revised API and implementation to use fdctx and pure fdio. --- src/driver/amgc_amain.c | 8 +++++--- src/driver/amgc_unit_action.c | 16 ++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src/driver') diff --git a/src/driver/amgc_amain.c b/src/driver/amgc_amain.c index 096b960..9325a4f 100644 --- a/src/driver/amgc_amain.c +++ b/src/driver/amgc_amain.c @@ -47,12 +47,14 @@ static ssize_t amgc_version(struct amgc_driver_ctx * dctx, int fdout) verclr[4],verinfo->commit,verclr[5]); } -static void amgc_perform_unit_actions(struct amgc_unit_ctx * uctx) +static void amgc_perform_unit_actions( + const struct amgc_driver_ctx * dctx, + struct amgc_unit_ctx * uctx) { const struct amgc_action * action; for (action=uctx->cctx->actions; action->type; action++) - amgc_perform_unit_action(uctx,action,0,stdout); + amgc_perform_unit_action(dctx,uctx,action,0); } static int amgc_exit(struct amgc_driver_ctx * dctx, int ret) @@ -85,7 +87,7 @@ int amgc_main(int argc, char ** argv, char ** envp, const struct amgc_fd_ctx * f for (unit=dctx->units; *unit && !dctx->errv[0]; unit++) { if (!(amgc_get_unit_ctx(dctx,*unit,&uctx))) { - amgc_perform_unit_actions(uctx); + amgc_perform_unit_actions(dctx,uctx); amgc_free_unit_ctx(uctx); } } diff --git a/src/driver/amgc_unit_action.c b/src/driver/amgc_unit_action.c index 29bc446..6189481 100644 --- a/src/driver/amgc_unit_action.c +++ b/src/driver/amgc_unit_action.c @@ -11,34 +11,34 @@ #include "apimagic_driver_impl.h" int amgc_perform_unit_action( + const struct amgc_driver_ctx * dctx, const struct amgc_unit_ctx * uctx, const struct amgc_action * action, - const struct amgc_layout * layout, - FILE * fout) + const struct amgc_layout * layout) { switch (action->action) { case AMGC_OUTPUT_ENUM: if (action->symbol) return -1; else - return amgc_output_unit_enums(uctx,0,stdout); + return amgc_output_unit_enums(dctx,uctx,0); case AMGC_LIST_ENUM: if (action->symbol) return -1; else - return amgc_list_unit_enums(uctx,0,stdout); + return amgc_list_unit_enums(dctx,uctx,0); case AMGC_OUTPUT_TYPEDEF: return amgc_output_unit_entities( - uctx,ENTITY_TYPEDEF,action->subset, - layout,fout); + dctx,uctx,ENTITY_TYPEDEF, + action->subset,layout); case AMGC_OUTPUT_STRUCT: - return amgc_output_unit_structs(uctx,layout,fout); + return amgc_output_unit_structs(dctx,uctx,layout); case AMGC_OUTPUT_UNION: - return amgc_output_unit_unions(uctx,layout,fout); + return amgc_output_unit_unions(dctx,uctx,layout); } return -1; -- cgit v1.2.3