From 2a232b371bd639cb6ab46817e319b141f9b70d16 Mon Sep 17 00:00:00 2001 From: Armin Luntzer <armin.luntzer@univie.ac.at> Date: Wed, 6 May 2020 13:19:54 +0200 Subject: [PATCH] change API to smile_fee_ctrl_init() so the user may provide their own memory buffer --- FEE/smile_fee_ctrl.c | 19 ++++++++++++------- FEE/smile_fee_ctrl.h | 2 +- FEE/smile_fee_demo.c | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/FEE/smile_fee_ctrl.c b/FEE/smile_fee_ctrl.c index 274e85a..f178415 100644 --- a/FEE/smile_fee_ctrl.c +++ b/FEE/smile_fee_ctrl.c @@ -1861,19 +1861,24 @@ int smile_fee_sync_execute_op(enum sync_direction dir) - - - - /** * @brief initialise the smile_fee control library + * + * @param fee_mirror the desired FEE mirror, set NULL to allocate it for you */ -void smile_fee_ctrl_init(void) +void smile_fee_ctrl_init(struct smile_fee_mirror *fee_mirror) { - smile_fee = (struct smile_fee_mirror *) malloc(sizeof(struct smile_fee_mirror)); - if (!smile_fee) + if (!fee_mirror) + smile_fee = (struct smile_fee_mirror *) + malloc(sizeof(struct smile_fee_mirror)); + else + smile_fee = fee_mirror; + + if (!smile_fee) { printf("Error allocating memory for the SMILE_FEE mirror\n"); + return; + } bzero(smile_fee, sizeof(struct smile_fee_mirror)); } diff --git a/FEE/smile_fee_ctrl.h b/FEE/smile_fee_ctrl.h index a60dbe5..deca718 100644 --- a/FEE/smile_fee_ctrl.h +++ b/FEE/smile_fee_ctrl.h @@ -239,7 +239,7 @@ void smile_fee_set_execute_op(uint32_t mode); /* setup */ -void smile_fee_ctrl_init(void); +void smile_fee_ctrl_init(struct smile_fee_mirror *fee_mirror); #endif /* _SMILE_FEE_CTRL_H_ */ diff --git a/FEE/smile_fee_demo.c b/FEE/smile_fee_demo.c index 681dfd4..eb98d8d 100644 --- a/FEE/smile_fee_demo.c +++ b/FEE/smile_fee_demo.c @@ -549,7 +549,7 @@ int main(void) #endif /* initialise the libraries */ - smile_fee_ctrl_init(); + smile_fee_ctrl_init(NULL); smile_fee_rmap_init(GRSPW2_DEFAULT_MTU, rmap_tx, rmap_rx); -- GitLab