FreeCalypso > hg > fc-selenite
annotate src/nucleus/mbse.c @ 48:c56f1d6202f5
l1_small.c: disable TMS470 assembly for gcc
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 19 Jul 2018 02:56:15 +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 /* mbse.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 functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 /* in the Mailbox component. This permits easy removal of error */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 /* 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 /* MBSE_Reset_Mailbox Reset a mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /* MBSE_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 | 36 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 /* DEPENDENCIES */ | 
| 
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 /* cs_extr.h Common Service functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 /* tc_extr.h Thread Control functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* mb_extr.h Mailbox functions */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 /* HISTORY */ | 
| 
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 /* DATE REMARKS */ | 
| 
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 /* 03-01-1994 Created initial version 1.1 from */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 /* routines originally in core */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 /* error checking file */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 /* 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 | 52 /* 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 | 53 /* 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 | 54 /* 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 | 55 /* 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 | 56 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 #define NU_SOURCE_FILE | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 #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 | 61 #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 | 62 #include "mb_extr.h" /* Mailbox functions */ | 
| 
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 | 
| 
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 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 /* MBSE_Reset_Mailbox */ | 
| 
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 /* DESCRIPTION */ | 
| 
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 /* 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 | 75 /* to the actual reset mailbox function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 /* CALLED BY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 /* Application */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 /* CALLS */ | 
| 
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 /* MBS_Reset_Mailbox Actual reset mailbox function*/ | 
| 
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 /* INPUTS */ | 
| 
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 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
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 /* OUTPUTS */ | 
| 
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 /* NU_INVALID_MAILBOX Invalid mailbox supplied */ | 
| 
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 /* HISTORY */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 /* DATE REMARKS */ | 
| 
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 /* 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 | 98 /* 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 | 99 /* 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 | 100 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 /* version 1.1 */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 /* 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 | 104 /* */ | 
| 
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 STATUS MBSE_Reset_Mailbox(NU_MAILBOX *mailbox_ptr) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 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 | 110 STATUS status; /* Completion status */ | 
| 
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 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 /* 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 | 114 mailbox = (MB_MCB *) mailbox_ptr; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 /* 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 | 117 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 | 118 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 /* Mailbox pointer is valid, call function to reset it. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 status = MBS_Reset_Mailbox(mailbox_ptr); | 
| 
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 else | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 /* 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 | 125 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 /* Return completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 } | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 | 
| 
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 /*************************************************************************/ | 
| 
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 /* FUNCTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 /* MBSE_Broadcast_To_Mailbox */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 /* DESCRIPTION */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 /* 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 | 141 /* to the mailbox broadcast function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 /* CALLED BY */ | 
| 
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 /* Application */ | 
| 
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 /* CALLS */ | 
| 
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 /* MBS_Broadcast_To_Mailbox Actual broadcast mailbox func*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 /* TCCE_Suspend_Error Check suspend validity */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 /* INPUTS */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 /* mailbox_ptr Mailbox control block pointer*/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 /* message Pointer to message to send */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 /* suspend Suspension option if full */ | 
| 
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 /* OUTPUTS */ | 
| 
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 /* 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 | 161 /* 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 | 162 /* NU_INVALID_SUSPEND Invalid suspend request */ | 
| 
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 /* HISTORY */ | 
| 
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 /* DATE REMARKS */ | 
| 
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 /* 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 | 169 /* 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 | 170 /* 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 | 171 /* match prototype, resulting in */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 /* version 1.1 */ | 
| 
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 /* 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 | 175 /* */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 /*************************************************************************/ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 STATUS MBSE_Broadcast_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 | 178 UNSIGNED suspend) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 { | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 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 | 182 STATUS status; /* Completion status */ | 
| 
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 | 
| 
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 /* 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 | 187 mailbox = (MB_MCB *) 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 /* Determine if mailbox pointer is invalid. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 if (mailbox == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 /* 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 | 193 status = NU_INVALID_MAILBOX; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 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 | 196 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 /* 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 | 198 status = NU_INVALID_MAILBOX; | 
| 
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 else if (message == NU_NULL) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 /* 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 | 203 status = NU_INVALID_POINTER; | 
| 
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 else if ((suspend) && (TCCE_Suspend_Error())) | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 /* 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 | 208 status = NU_INVALID_SUSPEND; | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 else | 
| 
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 /* Parameters are valid, call actual function. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 status = MBS_Broadcast_To_Mailbox(mailbox_ptr, message, suspend); | 
| 
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 /* Return the completion status. */ | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 return(status); | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 } | 
| 
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 | 
| 
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 | 
| 
0f80e1e4dce4
src/nucleus: library C code import from FreeNucleus package
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 | 
