summaryrefslogtreecommitdiff
path: root/cesar/hle/src
diff options
context:
space:
mode:
authorlaranjeiro2008-04-14 15:44:24 +0000
committerlaranjeiro2008-04-14 15:44:24 +0000
commit046519a971da6005e8fe6c9193a02a2fb308f13f (patch)
treeae44f61774af07f72af82407d2428bd34eae58a4 /cesar/hle/src
parente6edf12d2e6a3bacf2b595ac45c3d2c048383f8a (diff)
Update the HLE to transmit Interface Messages directly to the interface.
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@1824 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar/hle/src')
-rw-r--r--cesar/hle/src/hle.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/cesar/hle/src/hle.c b/cesar/hle/src/hle.c
index 5410d87f1c..1887194f7d 100644
--- a/cesar/hle/src/hle.c
+++ b/cesar/hle/src/hle.c
@@ -83,18 +83,22 @@ void hle_uninit (hle_t *ctx)
* Initialise the interface to add an Interface buffer.
*
* \param ctx the hle context.
- * \param cb the function to call on interface buffer reception.
+ * \param buffer_cb the function to call on interface buffer reception.
+ * \param mme_cb the function to call on interface specific MME reception.
* \param user_data the user_data to provide on function call.
*/
void
-hle_init_interface_buffer_add_cb (hle_t *ctx, hle_interface_buffer_add_cb_t
- cb, void *user_data)
+hle_init_interface_cb (hle_t *ctx, hle_interface_buffer_add_cb_t buffer_cb,
+ hle_interface_mme_recv_cb_t mme_cb,
+ void *user_data)
{
dbg_assert (ctx);
- dbg_assert (cb);
+ dbg_assert (buffer_cb);
+ dbg_assert (mme_cb);
- ctx->interface_buffer_add_cb = cb;
- ctx->interface_buffer_add_user_data = user_data;
+ ctx->interface_buffer_add_cb = buffer_cb;
+ ctx->interface_mme_recv_cb = mme_cb;
+ ctx->interface_user_data = user_data;
}
/**
@@ -331,11 +335,16 @@ bool hle_ipmbox_recv (hle_t *ctx, u32 *msg_buffer, uint length)
break;
case HLE_BUFFER_ALLOC_INTERFACE:
(*ctx->interface_buffer_add_cb)
- (ctx->interface_buffer_add_user_data, (u8 *)
+ (ctx->interface_user_data, (u8 *)
*(msg_buffer + length_processed + 1));
break;
}
break;
+ case HLE_MSG_TYPE_INTERFACE:
+ (*ctx->interface_mme_recv_cb)
+ (ctx->interface_user_data, (u8 *)
+ *(msg_buffer + length_processed + 1));
+
}
/** Message length + the message header. */