diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2013-04-23 14:10:52 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-05-16 12:36:09 -0500 |
commit | 8fac481d825883154ca20612ca0a69bc52f02618 (patch) | |
tree | 4429e6f57e9b73a4750181cbe138d74c359c6cf1 /src/include/usr/mbox | |
parent | a151ccb70dab1007ca8aed2f0b89dfdf1cfe406b (diff) | |
download | talos-hostboot-8fac481d825883154ca20612ca0a69bc52f02618.tar.gz talos-hostboot-8fac481d825883154ca20612ca0a69bc52f02618.zip |
Inter-processor communications for multinode
RTC: 63128
Change-Id: Ica27c7f714bc8b874c9bccb663a32d3cfba37c5a
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4193
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/mbox')
-rw-r--r-- | src/include/usr/mbox/mbox_reasoncodes.H | 6 | ||||
-rw-r--r-- | src/include/usr/mbox/mboxif.H | 67 |
2 files changed, 45 insertions, 28 deletions
diff --git a/src/include/usr/mbox/mbox_reasoncodes.H b/src/include/usr/mbox/mbox_reasoncodes.H index 424b0ad13..4760d1de1 100644 --- a/src/include/usr/mbox/mbox_reasoncodes.H +++ b/src/include/usr/mbox/mbox_reasoncodes.H @@ -39,7 +39,9 @@ namespace MBOX MOD_MBOXSRV_FSP_MSG = 0x07, // MailboxSp::handle_hbmbox_msg MOD_MBOXSRV_SENDMSG = 0x08, // MailboxSp::send_msg MOD_MBOXSRV_INIT = 0x09, // MailboxSp::_init - MOD_MBOXSRC_UNCLAIMED = 0x0A, // MailboxSp::invalidMsgResponder + MOD_MBOXSRC_UNCLAIMED = 0x0A, // MailboxSp::handleUnclaimed + MOD_MBOX_SEND = 0x0B, // MBOX::send + MOD_MBOXSRV_IPC_MSG = 0x0C, // MailboxSp::handleIPC }; enum MBOXReasonCode @@ -60,6 +62,8 @@ namespace MBOX RC_INVALID_DMA_LENGTH = MBOX_COMP_ID | 0x0E, RC_KERNEL_REG_FAILED = MBOX_COMP_ID | 0x0F, RC_MAILBOX_DISABLED = MBOX_COMP_ID | 0x10, + RC_IPC_INVALID_NODE = MBOX_COMP_ID | 0x11, + RC_MSG_SEND_ERROR = MBOX_COMP_ID | 0x12, }; diff --git a/src/include/usr/mbox/mboxif.H b/src/include/usr/mbox/mboxif.H index d427e5e28..a8609a31f 100644 --- a/src/include/usr/mbox/mboxif.H +++ b/src/include/usr/mbox/mboxif.H @@ -1,26 +1,25 @@ -/* IBM_PROLOG_BEGIN_TAG - * This is an automatically generated prolog. - * - * $Source: src/include/usr/mbox/mboxif.H $ - * - * IBM CONFIDENTIAL - * - * COPYRIGHT International Business Machines Corp. 2012 - * - * p1 - * - * Object Code Only (OCO) source materials - * Licensed Internal Code Source Materials - * IBM HostBoot Licensed Internal Code - * - * The source code for this program is not published or other- - * wise divested of its trade secrets, irrespective of what has - * been deposited with the U.S. Copyright Office. - * - * Origin: 30 - * - * IBM_PROLOG_END_TAG - */ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/mbox/mboxif.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2012,2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ #ifndef __MBOX_MBOXIF_H #define __MBOX_MBOXIF_H @@ -30,6 +29,11 @@ namespace MBOX { + enum + { + MBOX_NODE_FSP = -1, + }; + /** * Register a message queue to receive mailbox messages * @param[in] i_queueu_id, The queue identifier @@ -50,20 +54,29 @@ namespace MBOX * Send message asynchronously * @param[in] i_q_id id, of the FSP message queue to send the msg to. * @param[in] i_msg. The message to send. + * @param[in] i_node The destination node [0-7] for IPC messages, + * otherwise the default is FSP * * @return errlHndl_t on error. * - * @pre i_msg->extra_data == NULL If there is no extra data is associated - * with the message. + * @note extra_data payload is not supported for interprocessor + * communication(IPC) messages therefore the i_msg->extra_data field + * may be used as another user data field + * + * @pre For FSP mbox messages, i_msg->extra_data must be NULL If there is + * no payload associated with the message. * - * @pre i_msg->extra_data = malloc(size); i_msg->data[1] = size; + * @pre For FSP mbox messages, + * i_msg->extra_data = malloc(size); i_msg->data[1] = size; * Any extra data associated with i_msg was obtained from the heap * using malloc and i_msg->data[1] contains the length of that data. * * @post free(i_msg->extra_dat) was done (if no error) * @post msg_free(i_msg) was done (if no error) */ - errlHndl_t send(queue_id_t i_q_id, msg_t * i_msg); + errlHndl_t send(queue_id_t i_q_id, + msg_t * i_msg, + int i_node = MBOX_NODE_FSP); /** * Send message synchronously |