From b3a04d1638f20bd146590dd2c8b1e6fea96faf9c Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Tue, 28 Feb 2012 16:07:46 -0600 Subject: Add non-blocking sync msg interface. Change-Id: I808fc55ca4706bf03df63b1a72acc87ddba20822 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/705 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert Reviewed-by: Daniel M. Crowell Reviewed-by: A. Patrick Williams III --- src/lib/syscall_msg.C | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/lib/syscall_msg.C') diff --git a/src/lib/syscall_msg.C b/src/lib/syscall_msg.C index 1b0ea500a..8374d0d34 100644 --- a/src/lib/syscall_msg.C +++ b/src/lib/syscall_msg.C @@ -93,6 +93,15 @@ msg_q_t msg_q_resolve(const char* name) } } +msg_t* msg_allocate() +{ + msg_t* msg = reinterpret_cast(malloc(sizeof(msg_t))); + + memset(msg, 0, sizeof(msg_t)); + + return msg; +} + int msg_send(msg_q_t q, msg_t* msg) { return (int64_t)_syscall2(MSG_SEND, q, msg); @@ -100,7 +109,12 @@ int msg_send(msg_q_t q, msg_t* msg) int msg_sendrecv(msg_q_t q, msg_t* msg) { - return (int64_t)_syscall2(MSG_SENDRECV, q, msg); + return (int64_t)_syscall3(MSG_SENDRECV, q, msg, NULL); +} + +int msg_sendrecv_noblk(msg_q_t q, msg_t* msg, msg_q_t q2) +{ + return (int64_t)_syscall3(MSG_SENDRECV, q, msg, q2); } int msg_respond(msg_q_t q, msg_t* msg) -- cgit v1.2.1