FreeCalypso > hg > fc-selenite
annotate src/nucleus/mbce.c @ 208:68184e15d92c
src/cs: sync with Magnetite (TI_PROFILER support)
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 16 Oct 2020 05:20:43 +0000 | 
| parents | 0f80e1e4dce4 | 
| children | 
| rev | line source | 
|---|---|
| 7 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 /* Copyright Mentor Graphics Corporation 2002 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 /* All Rights Reserved. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 /* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 /* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 /* SUBJECT TO LICENSE TERMS. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 /* FILE NAME VERSION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 /* mbce.c Nucleus PLUS 1.14 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 /* COMPONENT */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 /* MB - Mailbox Management */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 /* This file contains the error checking routines for the core */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 /* functions in the Mailbox component. This permits easy removal */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 /* of error checking logic when it is not needed. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 /* DATA STRUCTURES */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 /* None */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 /* FUNCTIONS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 /* MBCE_Create_Mailbox Create a mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /* MBCE_Delete_Mailbox Delete a mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 /* MBCE_Send_To_Mailbox Send a mailbox message */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 /* MBCE_Receive_From_Mailbox Receive a mailbox message */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 /* DEPENDENCIES */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* cs_extr.h Common Service functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 /* tc_extr.h Thread Control functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 /* mb_extr.h Mailbox functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 /* DATE REMARKS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 /* 03-01-1993 Created initial version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 /* 04-19-1993 Verified version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 /* 03-01-1994 Created new file that contains */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 /* error checking shells for core */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 /* mailbox functions, also */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 /* changed interface to exactly */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 /* 03-18-1994 Verified version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 /* 04-17-1996 updated to version 1.2 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* 03-24-1998 Released version 1.3 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 /* 04-17-2002 Released version 1.13m */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 /* 11-07-2002 Released version 1.14 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 #define NU_SOURCE_FILE | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 #include "cs_extr.h" /* Common service functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 #include "tc_extr.h" /* Thread control functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 #include "mb_extr.h" /* Mailbox functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 /* MBCE_Create_Mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 /* This function performs error checking on the parameters supplied */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 /* to the mailbox create function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 /* CALLED BY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 /* Application */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 /* CALLS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 /* MBC_Create_Mailbox Actual create mailbox funct. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 /* INPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 /* name Mailbox name */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 /* suspend_type Suspension type */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 /* OUTPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 /* NU_INVALID_MAILBOX Mailbox pointer is NULL */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 /* NU_INVALID_SUSPEND Suspension type is invalid */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 /* DATE REMARKS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 /* 03-01-1993 Created initial version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 /* 04-19-1993 Verified version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 /* 03-01-1994 Modified interface to exactly */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 /* 03-18-1994 Verified version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 STATUS MBCE_Create_Mailbox(NU_MAILBOX *mailbox_ptr, CHAR *name, | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 OPTION suspend_type) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 MB_MCB *mailbox; /* Mailbox control block ptr */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 STATUS status; /* Completion status */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 /* Move input mailbox pointer into internal pointer. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 mailbox = (MB_MCB *) mailbox_ptr; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 /* Check for a NULL mailbox pointer or an already created mailbox. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 if ((mailbox == NU_NULL) || (mailbox -> mb_id == MB_MAILBOX_ID)) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 /* Invalid mailbox control block pointer. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 else if ((suspend_type != NU_FIFO) && (suspend_type != NU_PRIORITY)) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 /* Invalid suspension type. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 status = NU_INVALID_SUSPEND; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 else | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 /* Call the actual service to create the mailbox. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 status = MBC_Create_Mailbox(mailbox_ptr, name, suspend_type); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 /* Return completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 } | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 /* MBCE_Delete_Mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 /* This function performs error checking on the parameters supplied */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 /* to the actual delete mailbox function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 /* CALLED BY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 /* Application */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 /* CALLS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 /* MBC_Delete_Mailbox Actual delete mailbox funct. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 /* INPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 /* OUTPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 /* NU_INVALID_MAILBOX Invalid mailbox supplied */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 /* DATE REMARKS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 /* 03-01-1993 Created initial version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 /* 04-19-1993 Verified version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 /* 03-01-1994 Modified interface to exactly */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 /* 03-18-1994 Verified version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 STATUS MBCE_Delete_Mailbox(NU_MAILBOX *mailbox_ptr) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 MB_MCB *mailbox; /* Mailbox control block ptr */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 STATUS status; /* Completion status */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 /* Move input mailbox pointer into internal pointer. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 mailbox = (MB_MCB *) mailbox_ptr; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 /* Determine if the mailbox pointer is valid. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 if ((mailbox) && (mailbox -> mb_id == MB_MAILBOX_ID)) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 /* Mailbox pointer is valid, call function to delete it. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 status = MBC_Delete_Mailbox(mailbox_ptr); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 else | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 /* Mailbox pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 /* Return completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 } | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 /* MBCE_Send_To_Mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 /* This function performs error checking on the parameters supplied */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 /* to the send-to-mailbox function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 /* CALLED BY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 /* Application */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 /* CALLS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 /* MBC_Sent_To_Mailbox Actual mailbox send function */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 /* TCCE_Suspend_Error Check suspend validity */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 /* INPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 /* message Pointer to message to send */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 /* suspend Suspension option if full */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 /* OUTPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 /* NU_INVALID_MAILBOX Mailbox pointer is invalid */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 /* NU_INVALID_POINTER Message pointer is invalid */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 /* NU_INVALID_SUSPEND Invalid suspend request */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 /* DATE REMARKS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 /* 03-01-1993 Created initial version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 /* 04-19-1993 Verified version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 /* 03-01-1994 Modified interface to exactly */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 /* 03-18-1994 Verified version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 STATUS MBCE_Send_To_Mailbox(NU_MAILBOX *mailbox_ptr, VOID *message, | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 UNSIGNED suspend) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 MB_MCB *mailbox; /* Mailbox control block ptr */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 STATUS status; /* Completion status */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 /* Move input mailbox pointer into internal pointer. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 mailbox = (MB_MCB *) mailbox_ptr; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 /* Determine if mailbox pointer is invalid. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 if (mailbox == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 /* Mailbox pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 else if (mailbox -> mb_id != MB_MAILBOX_ID) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 /* Mailbox pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 else if (message == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 /* Message pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 status = NU_INVALID_POINTER; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 else if ((suspend) && (TCCE_Suspend_Error())) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 /* Indicate that suspension is only valid from a task thread. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 status = NU_INVALID_SUSPEND; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 else | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 /* Parameters are valid, call actual function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 status = MBC_Send_To_Mailbox(mailbox_ptr, message, suspend); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 /* Return the completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 } | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 /* MBCE_Receive_From_Mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 /* This function performs error checking on the parameters supplied */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 /* to the receive message from mailbox function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 /* CALLED BY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 /* Application */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 /* CALLS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 /* MBC_Receive_From_Mailbox Actual receive function */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 /* TCCE_Suspend_Error Check suspend validity */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 /* INPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 /* message Pointer to message to send */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 /* suspend Suspension option if empty */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 /* OUTPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 /* NU_INVALID_MAILBOX Mailbox pointer is invalid */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 /* NU_INVALID_POINTER Message pointer is invalid */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 /* NU_INVALID_SUSPEND Invalid suspend request */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 /* DATE REMARKS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 /* 03-01-1993 Created initial version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 /* 04-19-1993 Verified version 1.0 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 /* 03-01-1994 Modified interface to exactly */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 /* 03-18-1994 Verified version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 STATUS MBCE_Receive_From_Mailbox(NU_MAILBOX *mailbox_ptr, VOID *message, | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 UNSIGNED suspend) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 MB_MCB *mailbox; /* Mailbox control block ptr */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 STATUS status; /* Completion status */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 /* Move input mailbox pointer into internal pointer. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 mailbox = (MB_MCB *) mailbox_ptr; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 /* Determine if mailbox pointer is invalid. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 if (mailbox == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 /* Mailbox pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 else if (mailbox -> mb_id != MB_MAILBOX_ID) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 /* Mailbox pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 else if (message == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 /* Message pointer is invalid, indicate in completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 status = NU_INVALID_POINTER; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 else if ((suspend) && (TCCE_Suspend_Error())) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 /* Indicate that suspension is only valid from a task thread. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 status = NU_INVALID_SUSPEND; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 else | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 /* Parameters are valid, call actual function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 status = MBC_Receive_From_Mailbox(mailbox_ptr, message, suspend); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 /* Return the completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 } | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 | 
