📄 mbce.c
字号:
/* Determine if the mailbox pointer is valid. */
if ((mailbox) && (mailbox -> mb_id == MB_MAILBOX_ID))
/* Mailbox pointer is valid, call function to delete it. */
status = MBC_Delete_Mailbox(mailbox_ptr);
else
/* Mailbox pointer is invalid, indicate in completion status. */
status = NU_INVALID_MAILBOX;
/* Return completion status. */
return(status);
}
/*************************************************************************/
/* */
/* FUNCTION */
/* */
/* MBCE_Send_To_Mailbox */
/* */
/* DESCRIPTION */
/* */
/* This function performs error checking on the parameters supplied */
/* to the send-to-mailbox function. */
/* */
/* CALLED BY */
/* */
/* Application */
/* */
/* CALLS */
/* */
/* MBC_Sent_To_Mailbox Actual mailbox send function */
/* TCCE_Suspend_Error Check suspend validity */
/* */
/* INPUTS */
/* */
/* mailbox_ptr Mailbox control block pointer*/
/* message Pointer to message to send */
/* suspend Suspension option if full */
/* */
/* OUTPUTS */
/* */
/* NU_INVALID_MAILBOX Mailbox pointer is invalid */
/* NU_INVALID_POINTER Message pointer is invalid */
/* NU_INVALID_SUSPEND Invalid suspend request */
/* */
/* HISTORY */
/* */
/* DATE REMARKS */
/* */
/* 03-01-1993 Created initial version 1.0 */
/* 04-19-1993 Verified version 1.0 */
/* 03-01-1994 Modified interface to exactly */
/* match prototype, resulting in */
/* version 1.1 */
/* */
/* 03-18-1994 Verified version 1.1 */
/* */
/*************************************************************************/
STATUS MBCE_Send_To_Mailbox(NU_MAILBOX *mailbox_ptr, VOID *message,
UNSIGNED suspend)
{
MB_MCB *mailbox; /* Mailbox control block ptr */
STATUS status; /* Completion status */
/* Move input mailbox pointer into internal pointer. */
mailbox = (MB_MCB *) mailbox_ptr;
/* Determine if mailbox pointer is invalid. */
if (mailbox == NU_NULL)
/* Mailbox pointer is invalid, indicate in completion status. */
status = NU_INVALID_MAILBOX;
else if (mailbox -> mb_id != MB_MAILBOX_ID)
/* Mailbox pointer is invalid, indicate in completion status. */
status = NU_INVALID_MAILBOX;
else if (message == NU_NULL)
/* Message pointer is invalid, indicate in completion status. */
status = NU_INVALID_POINTER;
else if ((suspend) && (TCCE_Suspend_Error()))
/* Indicate that suspension is only valid from a task thread. */
status = NU_INVALID_SUSPEND;
else
/* Parameters are valid, call actual function. */
status = MBC_Send_To_Mailbox(mailbox_ptr, message, suspend);
/* Return the completion status. */
return(status);
}
/*************************************************************************/
/* */
/* FUNCTION */
/* */
/* MBCE_Receive_From_Mailbox */
/* */
/* DESCRIPTION */
/* */
/* This function performs error checking on the parameters supplied */
/* to the receive message from mailbox function. */
/* */
/* CALLED BY */
/* */
/* Application */
/* */
/* CALLS */
/* */
/* MBC_Receive_From_Mailbox Actual receive function */
/* TCCE_Suspend_Error Check suspend validity */
/* */
/* INPUTS */
/* */
/* mailbox_ptr Mailbox control block pointer*/
/* message Pointer to message to send */
/* suspend Suspension option if empty */
/* */
/* OUTPUTS */
/* */
/* NU_INVALID_MAILBOX Mailbox pointer is invalid */
/* NU_INVALID_POINTER Message pointer is invalid */
/* NU_INVALID_SUSPEND Invalid suspend request */
/* */
/* HISTORY */
/* */
/* DATE REMARKS */
/* */
/* 03-01-1993 Created initial version 1.0 */
/* 04-19-1993 Verified version 1.0 */
/* 03-01-1994 Modified interface to exactly */
/* match prototype, resulting in */
/* version 1.1 */
/* */
/* 03-18-1994 Verified version 1.1 */
/* */
/*************************************************************************/
STATUS MBCE_Receive_From_Mailbox(NU_MAILBOX *mailbox_ptr, VOID *message,
UNSIGNED suspend)
{
MB_MCB *mailbox; /* Mailbox control block ptr */
STATUS status; /* Completion status */
/* Move input mailbox pointer into internal pointer. */
mailbox = (MB_MCB *) mailbox_ptr;
/* Determine if mailbox pointer is invalid. */
if (mailbox == NU_NULL)
/* Mailbox pointer is invalid, indicate in completion status. */
status = NU_INVALID_MAILBOX;
else if (mailbox -> mb_id != MB_MAILBOX_ID)
/* Mailbox pointer is invalid, indicate in completion status. */
status = NU_INVALID_MAILBOX;
else if (message == NU_NULL)
/* Message pointer is invalid, indicate in completion status. */
status = NU_INVALID_POINTER;
else if ((suspend) && (TCCE_Suspend_Error()))
/* Indicate that suspension is only valid from a task thread. */
status = NU_INVALID_SUSPEND;
else
/* Parameters are valid, call actual function. */
status = MBC_Receive_From_Mailbox(mailbox_ptr, message, suspend);
/* Return the completion status. */
return(status);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -