FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/nucleus/tcce.c @ 214:bdfdea886bea
gsm-fw/services/ffs: ffs_env.c and ffstrace.c compile
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Mon, 06 Jan 2014 04:43:21 +0000 | 
| parents | afceeeb2cba1 | 
| children | 
| rev | line source | 
|---|---|
| 
79
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 /* Copyright Mentor Graphics Corporation 2002 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 /* All Rights Reserved. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 /* THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 /* THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 /* SUBJECT TO LICENSE TERMS. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 /* FILE NAME VERSION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 /* tcce.c Nucleus PLUS 1.14 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 /* COMPONENT */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 /* TC - Thread Control */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 /* This file contains error checking routines for the functions in */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 /* the Thread Control component. This permits easy removal of */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 /* error checking logic when it is not needed. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 /* DATA STRUCTURES */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 /* FUNCTIONS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 /* TCCE_Create_Task Create a task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 /* TCCE_Create_HISR Create HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 /* TCCE_Delete_HISR Delete HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 /* TCCE_Delete_Task Delete a task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 /* TCCE_Reset_Task Reset a task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 /* TCCE_Terminate_Task Terminate a task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 /* TCCE_Resume_Service Resume a task service call */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 /* TCCE_Suspend_Service Suspend a task service call */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
42 /* TCCE_Relinquish Relinquish task execution */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
43 /* TCCE_Task_Sleep Task sleep request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 /* TCCE_Suspend_Error Check for suspend req error */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
45 /* TCCE_Activate_HISR Activate an HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
46 /* TCCE_Validate_Resume Validates resume requests */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
47 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
48 /* DEPENDENCIES */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
49 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
50 /* tc_extr.h Thread Control functions */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
51 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
55 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
56 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
57 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
58 /* 03-01-1994 Modified logic that checked task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
59 /* status without protection of */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
60 /* scheduling structures, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
61 /* resulting in version 1.0a */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
62 /* 03-01-1994 Verified version 1.0a */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
63 /* 03-01-1994 Moved non-core error checking */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
64 /* functions to a supplemental */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
65 /* file, and modified function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
66 /* interfaces, added validate */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
67 /* resume service, resulting in */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
68 /* version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
69 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
70 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
71 /* 03-19-1996 Added error checking to */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
72 /* TCCE_Task_Sleep, resulting */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
73 /* in version 1.1+ (spr037) */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
74 /* 04-17-1996 updated to version 1.2 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
75 /* 10-16-1996 Modified to save the current */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
76 /* thread's protection rather */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
77 /* than that of the task being */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
78 /* resumed (SPR212)(SPR268) */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
79 /* 03-24-1998 Released version 1.3. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
80 /* 04-17-2002 Released version 1.13m */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
81 /* 11-07-2002 Released version 1.14 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
82 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
83 #define NU_SOURCE_FILE | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
84 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
85 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
86 #include "tc_extr.h" /* Thread control functions */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
87 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
88 /* Define external inner-component global data references. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
89 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
90 extern TC_TCB *TCD_Execute_Task; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
91 extern VOID *TCD_Current_Thread; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
92 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
93 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
94 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
95 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
96 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
97 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
98 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
99 /* TCCE_Create_Task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
100 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
101 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
102 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
103 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
104 /* to the create task function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
105 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
106 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
107 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
108 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
109 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
110 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
111 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
112 /* TCC_Create_Task Actual create task function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
113 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
114 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
115 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
116 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
117 /* name Task name */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
118 /* task_entry Entry function of the task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
119 /* argc Optional task parameter */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
120 /* argv Optional task parameter */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
121 /* stack_address Pointer to start of stack */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
122 /* stack_size Size of task stack in bytes */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
123 /* priority Task priority */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
124 /* time_slice Task time slice */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
125 /* preempt Task preemptability flag */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
126 /* auto_start Automatic task start */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
127 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
128 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
129 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
130 /* NU_SUCCESS Successful request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
131 /* NU_INVALID_TASK Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
132 /* is NULL */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
133 /* NU_INVALID_ENTRY Task entry function is NULL */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
134 /* NU_INVALID_MEMORY Stack pointer is NULL */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
135 /* NU_INVALID_SIZE Stack size is too small */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
136 /* NU_INVALID_PRIORITY Invalid task priority */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
137 /* NU_INVALID_PREEMPT Invalid preemption selection */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
138 /* NU_INVALID_START Invalid start selection */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
139 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
140 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
141 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
142 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
143 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
144 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
145 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
146 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
147 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
148 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
149 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
150 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
151 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
152 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
153 STATUS TCCE_Create_Task(NU_TASK *task_ptr, CHAR *name, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
154 VOID (*task_entry)(UNSIGNED, VOID *), UNSIGNED argc, VOID *argv, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
155 VOID *stack_address, UNSIGNED stack_size, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
156 OPTION priority, UNSIGNED time_slice, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
157 OPTION preempt, OPTION auto_start) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
158 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
159 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
160 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
161 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
162 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
163 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
164 /* Move input task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
165 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
166 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
167 /* Check each parameter. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
168 if ((task == NU_NULL) || (task -> tc_id == TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
169 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
170 /* Invalid task control block pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
171 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
172 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
173 else if (task_entry == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
174 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
175 /* Invalid task entry function pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
176 status = NU_INVALID_ENTRY; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
177 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
178 else if (stack_address == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
179 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
180 /* Invalid stack starting address. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
181 status = NU_INVALID_MEMORY; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
182 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
183 else if (stack_size < NU_MIN_STACK_SIZE) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
184 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
185 /* Invalid stack size. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
186 status = NU_INVALID_SIZE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
187 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
188 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
189 else if ((preempt != NU_PREEMPT) && (preempt != NU_NO_PREEMPT)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
190 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
191 /* Invalid preemption. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
192 status = NU_INVALID_PREEMPT; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
193 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
194 else if ((auto_start != NU_START) && (auto_start != NU_NO_START)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
195 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
196 /* Invalid start selection. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
197 status = NU_INVALID_START; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
198 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
199 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
200 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
201 /* Call the actual function to create a task. All the parameters | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
202 appear to be correct. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
203 status = TCC_Create_Task(task_ptr, name, task_entry, argc, argv, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
204 stack_address, stack_size, priority, time_slice, preempt, auto_start); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
205 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
206 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
207 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
208 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
209 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
210 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
211 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
212 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
213 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
214 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
215 /* TCCE_Create_HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
216 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
217 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
218 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
219 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
220 /* to the create HISR function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
221 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
222 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
223 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
224 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
225 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
226 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
227 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
228 /* TCC_Create_HISR Actual create HISR function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
229 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
230 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
231 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
232 /* hisr_ptr HISR control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
233 /* name HISR name */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
234 /* hisr_entry Entry function of the HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
235 /* priority Task priority */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
236 /* stack_address Pointer to start of stack */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
237 /* stack_size Size of HISR stack in bytes */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
238 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
239 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
240 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
241 /* NU_INVALID_HISR Invalid HISR pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
242 /* NU_INVALID_ENTRY Invalid HISR entry point */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
243 /* NU_INVALID_PRIORITY Invalid HISR priority */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
244 /* NU_INVALID_MEMORY Indicates stack pointer NULL */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
245 /* NU_INVALID_SIZE Indicates stack size is too */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
246 /* small */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
247 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
248 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
249 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
250 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
251 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
252 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
253 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
254 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
255 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
256 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
257 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
258 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
259 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
260 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
261 STATUS TCCE_Create_HISR(NU_HISR *hisr_ptr, CHAR *name, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
262 VOID (*hisr_entry)(VOID), OPTION priority, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
263 VOID *stack_address, UNSIGNED stack_size) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
264 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
265 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
266 TC_HCB *hisr; /* HISR control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
267 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
268 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
269 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
270 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
271 /* Move input HISR pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
272 hisr = (TC_HCB *) hisr_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
273 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
274 /* Check each parameter. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
275 if ((hisr == NU_NULL) || (hisr -> tc_id == TC_HISR_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
276 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
277 /* Invalid HISR control block pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
278 status = NU_INVALID_HISR; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
279 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
280 else if (hisr_entry == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
281 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
282 /* Invalid HISR entry function pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
283 status = NU_INVALID_ENTRY; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
284 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
285 else if (stack_address == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
286 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
287 /* Invalid stack starting address. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
288 status = NU_INVALID_MEMORY; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
289 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
290 else if (stack_size < NU_MIN_STACK_SIZE) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
291 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
292 /* Invalid stack size. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
293 status = NU_INVALID_SIZE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
294 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
295 else if (((INT) priority) >= TC_HISR_PRIORITIES) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
296 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
297 /* Invalid HISR priority. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
298 status = NU_INVALID_PRIORITY; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
299 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
300 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
301 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
302 /* Call the actual function to create a HISR. All the parameters | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
303 appear to be correct. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
304 status = TCC_Create_HISR(hisr_ptr, name, hisr_entry, priority, | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
305 stack_address, stack_size); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
306 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
307 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
308 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
309 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
310 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
311 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
312 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
313 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
314 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
315 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
316 /* TCCE_Delete_Task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
317 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
318 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
319 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
320 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
321 /* to the delete task function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
322 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
323 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
324 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
325 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
326 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
327 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
328 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
329 /* TCC_Delete_Task Actual delete task function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
330 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
331 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
332 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
333 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
334 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
335 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
336 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
337 /* NU_SUCCESS If successful completion */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
338 /* NU_INVALID_TASK Task pointer is invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
339 /* NU_INVALID_DELETE Task not in a finished or */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
340 /* terminated state */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
341 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
342 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
343 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
344 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
345 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
346 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
347 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
348 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
349 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
350 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
351 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
352 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
353 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
354 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
355 STATUS TCCE_Delete_Task(NU_TASK *task_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
356 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
357 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
358 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
359 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
360 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
361 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
362 /* Move input task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
363 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
364 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
365 /* Determine if the supplied task pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
366 if ((task == NU_NULL) || (task -> tc_id != TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
367 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
368 /* Invalid task pointer supplied. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
369 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
370 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
371 else if ((task -> tc_status != NU_FINISHED) && | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
372 (task -> tc_status != NU_TERMINATED)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
373 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
374 /* A task that is not in the finished or terminated state cannot | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
375 be deleted. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
376 status = NU_INVALID_DELETE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
377 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
378 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
379 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
380 /* Valid task pointer, call the function to delete the task. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
381 status = TCC_Delete_Task(task_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
382 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
383 /* Return the completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
384 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
385 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
386 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
387 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
388 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
389 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
390 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
391 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
392 /* TCCE_Delete_HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
393 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
394 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
395 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
396 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
397 /* to the delete HISR function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
398 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
399 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
400 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
401 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
402 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
403 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
404 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
405 /* TCC_Delete_HISR Actual delete HISR function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
406 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
407 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
408 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
409 /* hisr_ptr HISR control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
410 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
411 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
412 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
413 /* NU_INVALID_HISR Indicates HISR pointer is */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
414 /* invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
415 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
416 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
417 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
418 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
419 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
420 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
421 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
422 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
423 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
424 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
425 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
426 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
427 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
428 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
429 STATUS TCCE_Delete_HISR(NU_HISR *hisr_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
430 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
431 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
432 TC_HCB *hisr; /* HISR control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
433 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
434 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
435 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
436 /* Move input HISR control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
437 hisr = (TC_HCB *) hisr_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
438 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
439 /* Determine if the supplied HISR pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
440 if ((hisr) && (hisr -> tc_id == TC_HISR_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
441 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
442 /* Valid HISR pointer, call the function to delete the HISR. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
443 status = TCC_Delete_HISR(hisr_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
444 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
445 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
446 /* Invalid HISR pointer, indicate with the status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
447 status = NU_INVALID_HISR; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
448 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
449 /* Return the completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
450 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
451 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
452 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
453 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
454 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
455 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
456 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
457 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
458 /* TCCE_Reset_Task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
459 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
460 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
461 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
462 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
463 /* to the reset task function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
464 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
465 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
466 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
467 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
468 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
469 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
470 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
471 /* TCC_Reset_Task Actual reset task function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
472 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
473 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
474 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
475 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
476 /* argc Optional task parameter */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
477 /* argv Optional task parameter */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
478 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
479 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
480 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
481 /* NU_INVALID_TASK Indicates task pointer is */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
482 /* invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
483 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
484 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
485 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
486 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
487 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
488 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
489 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
490 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
491 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
492 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
493 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
494 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
495 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
496 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
497 STATUS TCCE_Reset_Task(NU_TASK *task_ptr, UNSIGNED argc, VOID *argv) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
498 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
499 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
500 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
501 STATUS status; /* Status of the request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
502 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
503 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
504 /* Move input task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
505 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
506 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
507 /* Determine if the task pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
508 if ((task == NU_NULL) || (task -> tc_id != TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
509 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
510 /* Task pointer is invalid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
511 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
512 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
513 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
514 /* Call actual function to reset the task. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
515 status = TCC_Reset_Task(task_ptr, argc, argv); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
516 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
517 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
518 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
519 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
520 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
521 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
522 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
523 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
524 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
525 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
526 /* TCCE_Terminate_Task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
527 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
528 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
529 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
530 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
531 /* to the terminate task function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
532 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
533 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
534 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
535 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
536 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
537 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
538 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
539 /* TCC_Terminate_Task Actual terminate task funct */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
540 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
541 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
542 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
543 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
544 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
545 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
546 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
547 /* NU_INVALID_TASK Indicates task pointer is */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
548 /* invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
549 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
550 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
551 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
552 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
553 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
554 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
555 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
556 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
557 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
558 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
559 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
560 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
561 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
562 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
563 STATUS TCCE_Terminate_Task(NU_TASK *task_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
564 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
565 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
566 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
567 STATUS status; /* Status return */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
568 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
569 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
570 /* Move input task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
571 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
572 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
573 /* Determine if the task pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
574 if ((task == NU_NULL) || (task -> tc_id != TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
575 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
576 /* Task pointer is invalid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
577 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
578 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
579 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
580 /* Call actual function to terminate the task. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
581 status = TCC_Terminate_Task(task_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
582 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
583 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
584 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
585 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
586 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
587 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
588 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
589 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
590 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
591 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
592 /* TCCE_Resume_Service */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
593 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
594 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
595 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
596 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
597 /* to the resume task function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
598 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
599 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
600 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
601 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
602 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
603 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
604 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
605 /* TCCE_Validate_Resume Function that checks the */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
606 /* current task status for a */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
607 /* valid resume request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
608 /* TCC_Resume_Service Actual task resume service */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
609 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
610 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
611 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
612 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
613 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
614 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
615 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
616 /* NU_SUCCESS If successful completion */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
617 /* NU_INVALID_TASK Task pointer is invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
618 /* NU_INVALID_RESUME Not previously suspended */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
619 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
620 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
621 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
622 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
623 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
624 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
625 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
626 /* 03-01-1994 Modified logic that checked task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
627 /* status without protection of */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
628 /* scheduling structures, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
629 /* resulting in version 1.0a */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
630 /* 03-01-1994 Verified version 1.0a */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
631 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
632 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
633 /* moved validate resume function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
634 /* to this file, resulting in */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
635 /* version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
636 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
637 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
638 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
639 STATUS TCCE_Resume_Service(NU_TASK *task_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
640 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
641 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
642 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
643 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
644 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
645 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
646 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
647 /* Move task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
648 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
649 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
650 /* Determine if the task pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
651 if ((task == NU_NULL) || (task -> tc_id != TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
652 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
653 /* Task pointer is invalid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
654 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
655 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
656 /* Make sure that the task is suspended in an identical manner. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
657 else if (TCCE_Validate_Resume(NU_PURE_SUSPEND, task_ptr)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
658 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
659 /* Task is not unconditionally suspended, return error status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
660 status = NU_INVALID_RESUME; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
661 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
662 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
663 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
664 /* Call the actual resume service. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
665 status = TCC_Resume_Service(task_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
666 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
667 /* Return the completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
668 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
669 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
670 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
671 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
672 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
673 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
674 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
675 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
676 /* TCCE_Suspend_Service */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
677 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
678 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
679 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
680 /* This function performs error checking on the suspend service. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
681 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
682 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
683 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
684 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
685 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
686 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
687 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
688 /* TCC_Suspend_Service Actual suspend service */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
689 /* function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
690 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
691 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
692 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
693 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
694 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
695 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
696 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
697 /* NU_SUCCESS If successful completion */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
698 /* NU_INVALID_TASK Task pointer is invalid */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
699 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
700 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
701 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
702 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
703 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
704 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
705 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
706 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
707 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
708 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
709 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
710 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
711 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
712 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
713 STATUS TCCE_Suspend_Service(NU_TASK *task_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
714 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
715 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
716 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
717 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
718 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
719 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
720 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
721 /* Move task control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
722 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
723 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
724 /* Determine if the task pointer is valid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
725 if ((task == NU_NULL) || (task -> tc_id != TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
726 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
727 /* Task pointer is invalid. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
728 status = NU_INVALID_TASK; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
729 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
730 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
731 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
732 if ((task->tc_status == NU_FINISHED) || (task->tc_status == NU_TERMINATED)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
733 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
734 /* Can't suspend a task in a finished or terminated state */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
735 status = NU_INVALID_SUSPEND; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
736 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
737 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
738 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
739 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
740 /* Call the actual service routine. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
741 status = TCC_Suspend_Service(task_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
742 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
743 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
744 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
745 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
746 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
747 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
748 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
749 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
750 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
751 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
752 /* TCCE_Relinquish */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
753 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
754 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
755 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
756 /* This function performs error checking for the relinquish */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
757 /* function. If the current thread is not a task, this request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
758 /* is ignored. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
759 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
760 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
761 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
762 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
763 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
764 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
765 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
766 /* TCC_Relinquish Actual relinquish function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
767 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
768 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
769 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
770 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
771 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
772 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
773 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
774 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
775 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
776 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
777 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
778 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
779 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
780 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
781 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
782 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
783 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
784 VOID TCCE_Relinquish(VOID) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
785 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
786 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
787 TC_TCB *task; /* Pointer to task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
788 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
789 /* Pickup the current thread and place it in the task pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
790 task = (TC_TCB *) TCD_Current_Thread; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
791 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
792 /* Determine if the current thread is a task. If so, call the actual | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
793 relinquish routine. Otherwise, ignore the request. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
794 if ((task) && (task -> tc_id == TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
795 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
796 /* Valid request, call the relinquish function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
797 TCC_Relinquish(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
798 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
799 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
800 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
801 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
802 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
803 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
804 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
805 /* TCCE_Task_Sleep */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
806 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
807 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
808 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
809 /* This function performs error checking for the task sleep */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
810 /* function. If the current thread is not a task, this request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
811 /* is ignored. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
812 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
813 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
814 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
815 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
816 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
817 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
818 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
819 /* TCC_Task_Sleep Actual task sleep function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
820 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
821 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
822 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
823 /* ticks Number of ticks to sleep for */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
824 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
825 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
826 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
827 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
828 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
829 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
830 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
831 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
832 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
833 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
834 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
835 /* 03-19-1996 Added check for parameter of 0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
836 /* or negative number, resulting */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
837 /* in version 1.1+ (spr037) */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
838 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
839 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
840 VOID TCCE_Task_Sleep(UNSIGNED ticks) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
841 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
842 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
843 TC_TCB *task; /* Pointer to task */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
844 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
845 /* If parameter is zero, return */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
846 if (ticks == 0) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
847 return; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
848 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
849 /* Pickup the current thread and place it in the task pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
850 task = (TC_TCB *) TCD_Current_Thread; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
851 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
852 /* Determine if the current thread is a task. If so, call the actual | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
853 task sleep routine. Otherwise, ignore the request. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
854 if ((task) && (task -> tc_id == TC_TASK_ID)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
855 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
856 /* Valid request, call the sleep function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
857 TCC_Task_Sleep(ticks); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
858 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
859 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
860 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
861 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
862 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
863 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
864 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
865 /* TCCE_Suspend_Error */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
866 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
867 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
868 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
869 /* This function checks for a suspend request error. Suspension */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
870 /* requests are only allowed from task threads. A suspend request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
871 /* from any other thread is an error. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
872 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
873 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
874 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
875 /* Other Components */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
876 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
877 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
878 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
879 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
880 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
881 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
882 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
883 /* None */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
884 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
885 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
886 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
887 /* NU_TRUE If an error is detected */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
888 /* NU_FALSE If no error is detected */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
889 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
890 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
891 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
892 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
893 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
894 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
895 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
896 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
897 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
898 INT TCCE_Suspend_Error(VOID) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
899 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
900 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
901 TC_TCB *task; /* Task pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
902 INT status = NU_FALSE; /* Initialize to no error */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
903 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
904 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
905 /* Setup the task pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
906 task = (TC_TCB *) TCD_Current_Thread; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
907 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
908 /* Check for suspension errors. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
909 if (task == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
910 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
911 /* Error, suspend request probably from initialization. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
912 status = NU_TRUE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
913 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
914 else if (task -> tc_id != TC_TASK_ID) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
915 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
916 /* Control block is probably an HISR not a task. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
917 status = NU_TRUE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
918 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
919 else if (task -> tc_signal_active) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
920 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
921 /* Called from a signal handler. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
922 status = NU_TRUE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
923 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
924 /* Return status to caller. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
925 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
926 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
927 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
928 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
929 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
930 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
931 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
932 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
933 /* TCCE_Activate_HISR */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
934 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
935 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
936 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
937 /* This function performs error checking on the parameters supplied */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
938 /* to the activate HISR function. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
939 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
940 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
941 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
942 /* Application */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
943 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
944 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
945 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
946 /* TCT_Activate_HISR Actual HISR activate call */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
947 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
948 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
949 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
950 /* hisr_ptr HISR control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
951 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
952 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
953 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
954 /* NU_INVALID_HISR Invalid HISR pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
955 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
956 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
957 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
958 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
959 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
960 /* 03-01-1993 Created initial version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
961 /* 04-19-1993 Verified version 1.0 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
962 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
963 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
964 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
965 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
966 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
967 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
968 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
969 STATUS TCCE_Activate_HISR(NU_HISR *hisr_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
970 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
971 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
972 TC_HCB *hisr; /* HISR control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
973 STATUS status; /* Completion status */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
974 NU_SUPERV_USER_VARIABLES | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
975 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
976 NU_SUPERVISOR_MODE(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
977 /* Move input HISR control block pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
978 hisr = (TC_HCB *) hisr_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
979 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
980 /* Check each parameter. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
981 if (hisr == NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
982 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
983 /* Invalid HISR control block pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
984 status = NU_INVALID_HISR; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
985 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
986 else if (hisr -> tc_id != TC_HISR_ID) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
987 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
988 /* Invalid HISR control block pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
989 status = NU_INVALID_HISR; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
990 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
991 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
992 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
993 /* Call the routine to activate the HISR. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
994 status = TCT_Activate_HISR(hisr_ptr); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
995 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
996 /* Return to user mode */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
997 NU_USER_MODE(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
998 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
999 /* Return completion status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1000 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1001 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1002 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1003 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1004 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1005 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1006 /* FUNCTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1007 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1008 /* TCCE_Validate_Resume */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1009 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1010 /* DESCRIPTION */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1011 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1012 /* This function validates the resume service and resume driver */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1013 /* calls with scheduling protection around the examination of the */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1014 /* task status. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1015 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1016 /* CALLED BY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1017 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1018 /* IOCE_Resume_Driver Driver error checking funct. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1019 /* TCCE_Resume_Service Error checking function */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1020 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1021 /* CALLS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1022 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1023 /* TCT_Set_Current_Protect Setup current protect pointer*/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1024 /* TCT_System_Protect Protect from system access */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1025 /* TCT_System_Unprotect Release system protection */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1026 /* TCT_Unprotect Release current protection */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1027 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1028 /* INPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1029 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1030 /* resume_type Type of resume request */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1031 /* task_ptr Task control block pointer */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1032 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1033 /* OUTPUTS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1034 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1035 /* NU_TRUE Invalid resume */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1036 /* NU_FALSE Valid resume */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1037 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1038 /* HISTORY */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1039 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1040 /* DATE REMARKS */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1041 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1042 /* 03-01-1994 Created initial version of */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1043 /* function for version 1.0g */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1044 /* 03-01-1994 Verified version 1.0g */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1045 /* 03-01-1994 Modified function interface, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1046 /* added register optimizations, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1047 /* added system protection logic, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1048 /* moved to TCCE since it is an */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1049 /* error interface function, */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1050 /* resulting in version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1051 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1052 /* 03-18-1994 Verified version 1.1 */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1053 /* 10-16-1996 Modified to save the current */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1054 /* thread's protection rather */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1055 /* than that of the task being */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1056 /* resumed (SPR212)(SPR268) */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1057 /* */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1058 /*************************************************************************/ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1059 STATUS TCCE_Validate_Resume(OPTION resume_type, NU_TASK *task_ptr) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1060 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1061 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1062 R1 TC_TCB *task; /* Task control block ptr */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1063 TC_PROTECT *save_protect; /* Save current protection */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1064 STATUS status; /* Return status variable */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1065 NU_SUPERV_USER_VARIABLES | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1066 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1067 NU_SUPERVISOR_MODE(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1068 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1069 /* Move input task pointer into internal pointer. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1070 task = (TC_TCB *) task_ptr; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1071 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1072 /* Save current protection. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1073 if (TCD_Current_Thread != NU_NULL) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1074 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1075 save_protect = TCT_Get_Current_Protect(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1076 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1077 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1078 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1079 save_protect = NU_NULL; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1080 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1081 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1082 /* Protect the scheduling structures from multiple access. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1083 TCT_System_Protect(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1084 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1085 /* Does the resume type match the current status? */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1086 if (task -> tc_status == resume_type) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1087 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1088 /* Indicate that there is no error. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1089 status = NU_FALSE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1090 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1091 /* Check for a resumption of a delayed pure suspend. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1092 else if ((resume_type == NU_PURE_SUSPEND) && (task -> tc_delayed_suspend)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1093 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1094 /* Indicate that there is no error. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1095 status = NU_FALSE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1096 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1097 /* Check for a signal active and the saved status the same as | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1098 the resume request. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1099 else if ((resume_type == task -> tc_saved_status) && | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1100 (task -> tc_signal_active)) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1101 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1102 /* Indicate that there is no error. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1103 status = NU_FALSE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1104 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1105 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1106 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1107 /* Indicate that there is an error. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1108 status = NU_TRUE; | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1109 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1110 /* Determine how to get out of protection. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1111 if (save_protect) | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1112 { | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1113 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1114 /* Restore current protection. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1115 TCT_Set_Current_Protect(save_protect); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1116 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1117 /* Release system protect. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1118 TCT_System_Unprotect(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1119 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1120 else | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1121 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1122 /* Release protection of system structures. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1123 TCT_Unprotect(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1124 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1125 /* Return to user mode */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1126 NU_USER_MODE(); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1127 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1128 /* Return status to caller. */ | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1129 return(status); | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1130 } | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1131 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1132 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1133 | 
| 
 
947b1f473960
beginning of nuc-fw
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1134 | 
