From 56b9fcbf83033590a57528bb97ce333328db7a39 Mon Sep 17 00:00:00 2001 From: laranjeiro Date: Wed, 11 Jun 2008 08:08:01 +0000 Subject: interface: Split the callbacks init. * Seperate the init of the callback for the beacon reception. git-svn-id: svn+ssh://pessac/svn/cesar/trunk@2274 017c9cb6-072f-447c-8318-d5b54f68fe89 --- cesar/interface/src/interface.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'cesar/interface/src') diff --git a/cesar/interface/src/interface.c b/cesar/interface/src/interface.c index cba461914d..89bc390ef4 100644 --- a/cesar/interface/src/interface.c +++ b/cesar/interface/src/interface.c @@ -118,18 +118,34 @@ interface_uninit (interface_t *ctx) */ void interface_callback_init (interface_t *ctx, interface_mme_recv_cb_t mme_recv_cb, - interface_mme_buffer_add_cb_t buffer_add_cb, - interface_beacon_add_cb_t beacon_add_cb, void *user_data) + interface_mme_buffer_add_cb_t buffer_add_cb, void *user_data) { dbg_assert (ctx); dbg_assert (mme_recv_cb); dbg_assert (buffer_add_cb); - dbg_assert (beacon_add_cb); ctx->mme_recv_cb = mme_recv_cb; ctx->buffer_add_cb = buffer_add_cb; + ctx->interface_mme_user_data = user_data; +} + + +/** + * Initialise the callbacks functions. + * \param ctx the interface context. + * \param beacon_add_cb the function to call on beacon reception + * \param user_data the data to provide on each callback function. + */ +void +interface_callback_beacon_init (interface_t *ctx, + interface_beacon_add_cb_t beacon_add_cb, + void *user_data) +{ + dbg_assert (ctx); + dbg_assert (beacon_add_cb); + ctx->beacon_add_cb = beacon_add_cb; - ctx->actor_user_data = user_data; + ctx->beacon_user_data = user_data; } @@ -166,8 +182,8 @@ interface_mme_recv (interface_t *ctx, mfs_rx_t *mfs, u8 *buffer, uint length, // Call the actor callback. dbg_assert (ctx->mme_recv_cb); - (*ctx->mme_recv_cb) (ctx->actor_user_data, mfs, buffer, length, mme_data, - encrypted); + (*ctx->mme_recv_cb) (ctx->interface_mme_user_data, mfs, buffer, + length, mme_data, encrypted); } @@ -283,7 +299,7 @@ void interface_beacon_add (interface_t *ctx, pb_beacon_t *pb, } dbg_assert (ctx->beacon_add_cb); - (*ctx->beacon_add_cb) (ctx->actor_user_data, pb); + (*ctx->beacon_add_cb) (ctx->beacon_user_data, pb); } @@ -333,7 +349,7 @@ interface_buffer_add (interface_t *ctx, u8 *buffer) dbg_assert (buffer); dbg_assert (ctx->buffer_add_cb); - (*ctx->buffer_add_cb) (ctx->actor_user_data, buffer); + (*ctx->buffer_add_cb) (ctx->interface_mme_user_data, buffer); } /** -- cgit v1.2.3