summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-02-28 16:07:46 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-03-03 08:47:22 -0600
commitb3a04d1638f20bd146590dd2c8b1e6fea96faf9c (patch)
treebdea5a9739ea09438856cc0860350c3457754b6a /src/lib
parentb623fb5b9feba1e5eb1808b456f6dd67bcd79cea (diff)
downloadtalos-hostboot-b3a04d1638f20bd146590dd2c8b1e6fea96faf9c.tar.gz
talos-hostboot-b3a04d1638f20bd146590dd2c8b1e6fea96faf9c.zip
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 <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/syscall_msg.C16
1 files changed, 15 insertions, 1 deletions
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<msg_t*>(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)
OpenPOWER on IntegriCloud