pise.c
来自「nucleus 2006 source code」· C语言 代码 · 共 306 行 · 第 1/2 页
C
306 行
/*************************************************************************/
/* */
/* Copyright Mentor Graphics Corporation 2004 */
/* All Rights Reserved. */
/* */
/* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS */
/* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS */
/* SUBJECT TO LICENSE TERMS. */
/* */
/*************************************************************************/
/*************************************************************************/
/* */
/* FILE NAME VERSION */
/* */
/* pise.c Nucleus PLUS 1.15 */
/* */
/* COMPONENT */
/* */
/* PI - Pipe Management */
/* */
/* DESCRIPTION */
/* */
/* This file contains error checking routines for supplemental */
/* functions of the Pipe component. This permits easy removal of */
/* error checking logic when it is not needed. */
/* */
/* DATA STRUCTURES */
/* */
/* None */
/* */
/* FUNCTIONS */
/* */
/* PISE_Reset_Pipe Reset a pipe */
/* PISE_Send_To_Front_Of_Pipe Send message to pipe's front */
/* PISE_Broadcast_To_Pipe Broadcast message to pipe */
/* */
/* DEPENDENCIES */
/* */
/* cs_extr.h Common Service functions */
/* tc_extr.h Thread Control functions */
/* pi_extr.h Pipe functions */
/* */
/*************************************************************************/
#define NU_SOURCE_FILE
#include "plus/inc/cs_extr.h" /* Common service functions */
#include "plus/inc/tc_extr.h" /* Thread control functions */
#include "plus/inc/pi_extr.h" /* Pipe functions */
/*************************************************************************/
/* */
/* FUNCTION */
/* */
/* PISE_Reset_Pipe */
/* */
/* DESCRIPTION */
/* */
/* This function performs error checking on the parameter supplied */
/* to the pipe reset function. */
/* */
/* CALLED BY */
/* */
/* Application */
/* */
/* CALLS */
/* */
/* PIS_Reset_Pipe Actual reset pipe function */
/* */
/* INPUTS */
/* */
/* pipe_ptr Pipe control block pointer */
/* */
/* OUTPUTS */
/* */
/* NU_INVALID_PIPE Invalid pipe pointer */
/* */
/*************************************************************************/
STATUS PISE_Reset_Pipe(NU_PIPE *pipe_ptr)
{
PI_PCB *pipe;
STATUS status;
/* Move input pipe pointer into internal pointer. */
pipe = (PI_PCB *) pipe_ptr;
/* Determine if there is an error with the pipe pointer. */
if (pipe == NU_NULL)
/* Indicate that the pipe pointer is invalid. */
status = NU_INVALID_PIPE;
else if (pipe -> pi_id != PI_PIPE_ID)
/* Indicate that the pipe pointer is invalid. */
status = NU_INVALID_PIPE;
else
/* All the parameters are okay, call the actual function to reset
a pipe. */
status = PIS_Reset_Pipe(pipe_ptr);
/* Return completion status. */
return(status);
}
/*************************************************************************/
/* */
/* FUNCTION */
/* */
/* PISE_Send_To_Front_Of_Pipe */
/* */
/* DESCRIPTION */
/* */
/* This function performs error checking on the parameters supplied */
/* to the send message to front of pipe function. */
/* */
/* CALLED BY */
/* */
/* Application */
/* */
/* CALLS */
/* */
/* PIS_Send_To_Front_Of_Pipe Actual send to front of pipe */
/* function */
/* TCCE_Suspend_Error Check suspend validity */
/* */
/* INPUTS */
/* */
/* pipe_ptr Pipe control block pointer */
/* message Pointer to message to send */
/* size Size of message to send */
/* suspend Suspension option if full */
/* */
/* OUTPUTS */
/* */
/* NU_INVALID_PIPE Invalid pipe pointer */
/* NU_INVALID_POINTER Invalid message pointer */
/* NU_INVALID_SIZE Invalid message size */
/* NU_INVALID_SUSPEND Invalid suspend request */
/* */
/*************************************************************************/
STATUS PISE_Send_To_Front_Of_Pipe(NU_PIPE *pipe_ptr, VOID *message,
UNSIGNED size, UNSIGNED suspend)
{
PI_PCB *pipe;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?