55 SAMPLE_FUNCTION_BEGIN(2)
58 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
59 if (
ECB_IsValid(pevent1) != G_TRUE) G_DEBUG_WHILEFOREVER;
60 if (
ECB_IsValid(pevent2) != G_TRUE) G_DEBUG_WHILEFOREVER;
63 if (pevent1->ECB_NextECBAEL == (
struct gs_ecb *) 00)
66 if (pevent2->ECB_NextECBAEL == (
struct gs_ecb *) 00)
79 if (pevent2->ECB_NextECBAEL == (
struct gs_ecb *) 00)
91 SAMPLE_FUNCTION_END(2)
104 SAMPLE_FUNCTION_BEGIN(3)
106 INT32 retorno = G_FALSE;
108 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
109 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
112 if (pevent->ECB_NextECBAEL != (
struct gs_ecb *) 0)
115 pevent1 = pevent->ECB_NextECBAEL;
116 while (pevent1->ECB_NextECBAEL != (
struct gs_ecb *) pevent)
118 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
119 if (
ECB_IsValid(pevent1) != G_TRUE) G_DEBUG_WHILEFOREVER;
121 pevent1 = (
GS_ECB *) pevent1->ECB_NextECBAEL;
128 SAMPLE_FUNCTION_END(3)
141 SAMPLE_FUNCTION_BEGIN(4)
146 if (pevent->ECB_NextECBASL == (
struct gs_scb *) 0)
149 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
150 pevent->ECB_NextECBASL = (
struct gs_scb *) psignal;
154 if(pevent->ECB_NextECBASL->SCBType > priority)
157 psignal->SCB_NextSCB = pevent->ECB_NextECBASL;
158 pevent->ECB_NextECBASL = (
struct gs_scb *) psignal;
163 psignal2 = pevent->ECB_NextECBASL;
164 while (psignal2 != (
struct gs_scb *) 0)
166 if (psignal2->SCB_NextSCB == (
struct gs_scb *) 0)
169 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
170 psignal2->SCB_NextSCB = (
struct gs_scb *) psignal;
171 psignal2 = (
struct gs_scb *) 0;
175 if (psignal2->SCB_NextSCB->SCBType > priority)
177 psignal->SCB_NextSCB = psignal2->SCB_NextSCB;
178 psignal2->SCB_NextSCB = (
struct gs_scb *) psignal;
179 psignal2 = (
struct gs_scb *) 0;
184 psignal2 = psignal2->SCB_NextSCB;
189 psignal->SCBState = G_SCBState_IN_ECB;
191 SAMPLE_FUNCTION_END(4)
205 SAMPLE_FUNCTION_BEGIN(5)
206 int retorno = G_FALSE;
210 if (pevent->ECB_NextECBASL == psignal)
214 psignal->
SCBState = G_SCBState_UNLINKED;
219 psignal2 = pevent->ECB_NextECBASL;
220 while (psignal2 != psignal && psignal2 != (
struct gs_scb *) 0)
223 psignal2 = psignal2->SCB_NextSCB;
225 if (psignal2 == (
struct gs_scb *) 0)
231 psignal1->SCB_NextSCB = psignal->SCB_NextSCB;
232 psignal->SCBState = G_SCBState_UNLINKED;
236 SAMPLE_FUNCTION_END(5)
250 SAMPLE_FUNCTION_BEGIN(6)
271 switch (pevent->ECBState)
273 case GS_ECBState_WAITING_TIME:
276 case GS_ECBState_GRANTED_RESOURCE:
279 case GS_ECBState_WAITING_RESOURCE:
282 case GS_ECBState_UNLINKED:
285 G_DEBUG_WHILEFOREVER;
296 while (pevent->ECB_NextECBASL != (
struct gs_scb *) 0)
298 psignal1 = pevent->ECB_NextECBASL;
306 prrds = (
struct gs_rrds *) pevent->ECB_RRDS;
307 pevent->ECB_RRDS = (
struct gs_rrds *) 0;
308 while (prrds != (
struct gs_rrds *) 0) {
313 SAMPLE_FUNCTION_END(6)
326 SAMPLE_FUNCTION_BEGIN(7)
330 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
331 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
332 if (pevent->ECBState != GS_ECBState_UNLINKED) G_DEBUG_WHILEFOREVER;
341 g_kcb.KCB_NUMBER_OF_ECBs-- ;
343 SAMPLE_FUNCTION_END(7)
357 SAMPLE_FUNCTION_BEGIN(8)
360 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
361 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
362 if (pevent->ECBState != GS_ECBState_UNLINKED) G_DEBUG_WHILEFOREVER;
366 if (
g_kcb.KCB_NextECBTL->ECBValue.i64 > pevent->ECBValue.i64)
369 pevent->ECB_PrevECB = (
struct gs_ecb *) 00;
370 g_kcb.KCB_NextECBTL->ECB_PrevECB = (
struct gs_ecb *) pevent;
372 GRTOS_CMD_NXT_OCC_TM_EVN_SET(pevent->ECBValue.i64);
376 pevent2 =
g_kcb.KCB_NextECBTL;
377 while (pevent2->ECBValue.i64 <= pevent->ECBValue.i64){
378 pevent2 = pevent2->ECB_NextECB;
381 pevent->ECB_NextECB = (
struct gs_ecb *) pevent2;
382 pevent->ECB_PrevECB = pevent2->ECB_PrevECB;
383 pevent2->ECB_PrevECB->ECB_NextECB = (
struct gs_ecb *) pevent;
384 pevent2->ECB_PrevECB = (
struct gs_ecb *) pevent;
387 pevent->ECBState = GS_ECBState_WAITING_TIME;
388 SAMPLE_FUNCTION_END(8)
407 SAMPLE_FUNCTION_BEGIN(9)
408 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
409 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
410 if (pevent->ECBState != GS_ECBState_WAITING_TIME) G_DEBUG_WHILEFOREVER;
414 if (
g_kcb.KCB_NextECBTL == (
struct gs_ecb *) pevent)
419 if (
g_kcb.KCB_NextECBTL == (
struct gs_ecb *) 0) G_DEBUG_WHILEFOREVER;
421 g_kcb.KCB_NextECBTL->ECB_PrevECB = (
struct gs_ecb *) 00;
422 GRTOS_CMD_NXT_OCC_TM_EVN_SET(
g_kcb.KCB_NextECBTL->ECBValue.i64);
431 pevent->
ECBState = GS_ECBState_UNLINKED;
432 SAMPLE_FUNCTION_END(9)
445 SAMPLE_FUNCTION_BEGIN(10)
453 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
458 if(
g_kcb.KCB_NextKCBASL->SCBType > priority)
461 psignal->SCB_NextSCB =
g_kcb.KCB_NextKCBASL;
467 psignal2 =
g_kcb.KCB_NextKCBASL;
468 while (psignal2 != (
struct gs_scb *) 0)
470 if (psignal2->SCB_NextSCB == (
struct gs_scb *) 0)
473 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
474 psignal2->SCB_NextSCB = (
struct gs_scb *) psignal;
475 psignal2 = (
struct gs_scb *) 0;
479 if (psignal2->SCB_NextSCB->SCBType > priority)
481 psignal->SCB_NextSCB = psignal2->SCB_NextSCB;
482 psignal2->SCB_NextSCB = (
struct gs_scb *) psignal;
483 psignal2 = (
struct gs_scb *) 0;
488 psignal2 = psignal2->SCB_NextSCB;
493 psignal->SCBState = G_SCBState_IN_KCB;
495 SAMPLE_FUNCTION_END(10)
509 SAMPLE_FUNCTION_BEGIN(11)
510 int retorno = G_FALSE;
514 if (
g_kcb.KCB_NextKCBASL == psignal)
517 g_kcb.KCB_NextKCBASL = psignal->SCB_NextSCB;
518 psignal->SCBState = G_SCBState_UNLINKED;
523 psignal2 =
g_kcb.KCB_NextKCBASL;
524 while (psignal2 != psignal && psignal2 != (
struct gs_scb *) 0)
527 psignal2 = psignal2->SCB_NextSCB;
529 if (psignal2 == (
struct gs_scb *) 0)
535 psignal1->SCB_NextSCB = psignal->SCB_NextSCB;
536 psignal->SCBState = G_SCBState_UNLINKED;
540 SAMPLE_FUNCTION_END(11)
555 SAMPLE_FUNCTION_BEGIN(12)
558 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
559 if (
LCB_IsValid(plcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
565 plcb->LCB_NextLCBL = (
struct gs_lcb *) 0;
566 plcb->LCB_PrevLCBL = (
struct gs_lcb *) 0;
573 plcb->LCB_NextLCBL =
g_kcb.KCB_NextLCBL;
574 plcb->LCB_PrevLCBL = (
struct gs_lcb *) 0;
575 plcb->LCB_NextLCBL->LCB_PrevLCBL = (
struct gs_lcb *) plcb;
580 while (plcb1 != (
struct gs_lcb *) 0) {
581 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
582 if (
LCB_IsValid(plcb1) != G_TRUE) G_DEBUG_WHILEFOREVER;
584 if (plcb1->LCB_NextLCBL == (
struct gs_lcb *) 0){
586 plcb->LCB_NextLCBL = (
struct gs_lcb *) 0;
587 plcb->LCB_PrevLCBL = (
struct gs_lcb *) plcb1;
588 plcb1->LCB_NextLCBL = (
struct gs_lcb *) plcb;
589 plcb1 = (
struct gs_lcb *) 0;
595 plcb->LCB_NextLCBL = plcb1->LCB_NextLCBL;
596 plcb->LCB_PrevLCBL = (
struct gs_lcb *) plcb1;
597 plcb->LCB_NextLCBL->LCB_PrevLCBL = (
struct gs_lcb *) plcb;
598 plcb1->LCB_NextLCBL = (
struct gs_lcb *) plcb;
599 plcb1 = (
struct gs_lcb *) 0;
603 plcb1 = plcb1->LCB_NextLCBL;
609 plcb->LCBState = GS_LCBState_LINKED;
610 SAMPLE_FUNCTION_END(12)
625 SAMPLE_FUNCTION_BEGIN(13)
627 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
628 if (
LCB_IsValid(plcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
633 if (
g_kcb.KCB_NextLCBL == plcb)
635 g_kcb.KCB_NextLCBL = plcb->LCB_NextLCBL;
640 plcb->LCB_PrevLCBL->LCB_NextLCBL = plcb->LCB_NextLCBL;
641 if (plcb->LCB_NextLCBL != (
struct gs_lcb *) 0) plcb->LCB_NextLCBL->LCB_PrevLCBL = plcb->LCB_PrevLCBL;
643 plcb->LCBState = GS_LCBState_UNLINKED;
645 SAMPLE_FUNCTION_END(13)
661 SAMPLE_FUNCTION_BEGIN(14)
663 GS_LCB *plcb = ppcb->PCB_RDY_LCBL[0];
665 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
666 if (processorID < 1 || processorID > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER;
669 if (ppcb->PCBState != GS_PCBState_FREE) {
670 if (plcb->LCB_NextLCBFPL == (
struct gs_pcb *) 0) {
680 plcb->LCB_NextLCBFPL = (
struct gs_pcb *) ppcb;
686 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
687 if (plcb->LCB_NextLCBFPL == (
struct gs_pcb *) 0) G_DEBUG_WHILEFOREVER;
689 SAMPLE_FUNCTION_END(14)
704 SAMPLE_FUNCTION_BEGIN(15)
706 GS_LCB *plcb = ppcb->PCB_RDY_LCBL[0];
708 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
709 if (processorID < 1 || processorID > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER;
712 if (ppcb->PCBState != GS_PCBState_RUNNING) {
713 if (plcb->LCB_NextLCBFPL == ppcb) {
722 ppcb->
PCBState = GS_PCBState_RUNNING;
723 SAMPLE_FUNCTION_END(15)
739 SAMPLE_FUNCTION_BEGIN(16)
740 INT32 priority = psignal->SCBType;
743 if (presource->RCB_NextRCBASL == (
struct gs_scb *) 0)
747 presource->RCB_NextRCBASL = (
struct gs_scb *) psignal;
751 if(presource->RCB_NextRCBASL->SCBType < priority)
755 presource->RCB_NextRCBASL = (
struct gs_scb *) psignal;
760 psignal1 = presource->RCB_NextRCBASL;
761 while (psignal1 != (
struct gs_scb *) 0)
763 if (psignal1->SCB_NextSCB == (
struct gs_scb *) 0)
768 psignal1 = (
struct gs_scb *) 0;
772 if (psignal1->SCB_NextSCB->SCBType < priority)
776 psignal1 = (
struct gs_scb *) 0;
787 psignal->
SCBState = G_SCBState_IN_RCB;
788 SAMPLE_FUNCTION_END(16)
804 SAMPLE_FUNCTION_BEGIN(17)
807 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
808 if (psignal->SCBState == G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
811 if (presource->RCB_NextRCBASL != (
struct gs_scb *) 0)
813 if (presource->RCB_NextRCBASL == psignal)
819 psignal1 = presource->RCB_NextRCBASL;
820 while (psignal1 != (
struct gs_scb *) 0)
822 if (psignal1->SCB_NextSCB == psignal)
825 psignal1 = (
struct gs_scb *) 0;
833 psignal->
SCBState = G_SCBState_UNLINKED;
836 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
837 if (psignal->SCBState != G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
839 SAMPLE_FUNCTION_END(17)
853 SAMPLE_FUNCTION_BEGIN(18)
854 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
855 if (presource->RCBType != GK_RCBType_UNUSED) G_DEBUG_WHILEFOREVER;
859 if (
g_kcb.KCB_ROOT_RCBs != (
struct g_rcb *) presource) presource->RCB_PREV_RCBs->RCB_NEXT_RCBs = presource->RCB_NEXT_RCBs;
860 else g_kcb.KCB_ROOT_RCBs = (
struct g_rcb *) presource->RCB_NEXT_RCBs;
861 if (presource->RCB_NEXT_RCBs != (
G_RCB *) 0) presource->RCB_NEXT_RCBs->RCB_PREV_RCBs = presource->RCB_PREV_RCBs;
863 free(presource->malloc_address);
864 g_kcb.KCB_NUMBER_OF_RCBs--;
866 SAMPLE_FUNCTION_END(18)
899 SAMPLE_FUNCTION_BEGIN(20)
900 GS_SCB *psignal = ptcb->TCB_NextTCBASL;
901 unsigned int state = ptcb->TCBState;
905 ptcb->TCB_NextTCBASL = (
struct gs_scb *) 0;
910 ptcb->TCB_NextTCBASL = (
struct gs_scb *) psignal;
913 if (state == G_TCBState_WAITING) {
915 if (psignal != (
GS_SCB *) 0) {
921 SAMPLE_FUNCTION_END(20)
937 SAMPLE_FUNCTION_BEGIN(21)
941 if (pevent == (
struct gs_ecb *) 0) {
942 SAMPLE_FUNCTION_END(21)
946 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
947 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
952 if (pevent->ECB_RRDS != (
struct gs_rrds *) 0) pevent->ECBValue.i64 = pevent->ECB_RRDS->RRDSGrantedPriority.i64;
953 else pevent->ECBValue.i64 = (
INT64) G_LOWEST_PRIORITY - (
INT64) 100;
956 pevent1 = presource->RCB_NextRCBGEL;
958 if (pevent1 == (
struct gs_ecb *) 0)
960 pevent->ECB_NextECB = (
struct gs_ecb *)0;
961 pevent->ECB_PrevECB = (
struct gs_ecb *)0;
962 presource->RCB_NextRCBGEL = (
struct gs_ecb *) pevent;
966 if (pevent1->ECBValue.i64 > pevent->ECBValue.i64)
968 pevent->ECB_NextECB = (
struct gs_ecb *) pevent1;
969 pevent->ECB_NextECB->ECB_PrevECB = (
struct gs_ecb *) pevent;
970 pevent->ECB_PrevECB = (
struct gs_ecb *)0;
971 presource->RCB_NextRCBGEL = (
struct gs_ecb *) pevent;
973 while (pevent1 != (
struct gs_ecb *) 0)
975 if (pevent1->ECBValue.i64 > pevent->ECBValue.i64)
977 pevent->ECB_NextECB = (
struct gs_ecb *) pevent1;
978 pevent->ECB_PrevECB = pevent1->ECB_PrevECB;
979 pevent1->ECB_PrevECB->ECB_NextECB = (
struct gs_ecb *) pevent;
980 pevent1->ECB_PrevECB = (
struct gs_ecb *) pevent;
985 if (pevent1->ECB_NextECB == (
struct gs_ecb *) 0)
987 pevent->ECB_NextECB = (
struct gs_ecb *) 0;
988 pevent->ECB_PrevECB = (
struct gs_ecb *)pevent1;
989 pevent1->ECB_NextECB = (
struct gs_ecb *)pevent;
990 pevent1 = (
struct gs_ecb *) 0;
994 pevent1 = pevent1->ECB_NextECB;
1000 pevent->ECB_AssocRCB = (
struct g_rcb *) presource;
1001 pevent->ECBState = GS_ECBState_GRANTED_RESOURCE;
1002 SAMPLE_FUNCTION_END(21)
1003 return((
GS_ECB *)pevent);
1014 SAMPLE_FUNCTION_BEGIN(22)
1016 G_RCB *presource = (
G_RCB *) pevent->ECB_AssocRCB;
1018 #
if G_DEBUG_WHILEFOREVER_ENABLE == 1
1019 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
1020 if (pevent->ECBState != GS_ECBState_GRANTED_RESOURCE) G_DEBUG_WHILEFOREVER;
1021 if (
ECB_IsValid(presource->RCB_NextRCBGEL) != G_TRUE) G_DEBUG_WHILEFOREVER;
1025 if (presource->RCB_NextRCBGEL == pevent)
1036 pevent->
ECBState = GS_ECBState_UNLINKED;
1037 pevent->ECB_PrevECB = (
struct gs_ecb *) 0;
1038 pevent->ECB_NextECB = (
struct gs_ecb *) 0;
1039 SAMPLE_FUNCTION_END(22)
1056 SAMPLE_FUNCTION_BEGIN(23)
1060 if (pevent == (
struct gs_ecb *) 0){
1062 if (pevent != (
struct gs_ecb *) 0) pevent->ECB_RRDS = (
struct gs_rrds *) 0;
1064 if (pevent == (
struct gs_ecb *) 0) G_DEBUG_WHILEFOREVER;
1066 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1067 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
1071 if (pevent->ECB_RRDS != (
struct gs_rrds *) 0) pevent->ECBValue.i64 = pevent->ECB_RRDS->RRDSWaitingPriority.i64;
1072 else pevent->ECBValue.i64 = presource->RCBPriority.i64;
1076 pevent1 = presource->RCB_NextRCBWEL;
1078 if (pevent1 == (
struct gs_ecb *) 00)
1080 pevent->ECB_NextECB = (
struct gs_ecb *) 00;
1081 pevent->ECB_PrevECB = (
struct gs_ecb *) 00;
1082 presource->RCB_NextRCBWEL = (
struct gs_ecb *) pevent;
1086 if (pevent1->ECBValue.i64 > pevent->ECBValue.i64){
1087 pevent->ECB_NextECB = presource->RCB_NextRCBWEL;
1088 pevent->ECB_PrevECB = (
struct gs_ecb *) 00;
1089 presource->RCB_NextRCBWEL = (
struct gs_ecb *) pevent;
1090 pevent1->ECB_PrevECB = (
struct gs_ecb *) pevent;
1094 while (pevent1 != (
struct gs_ecb *) 00){
1095 if (pevent1->ECB_NextECB == (
struct gs_ecb *) 00) {
1096 pevent->ECB_NextECB = (
struct gs_ecb *) 0;
1097 pevent->ECB_PrevECB = (
struct gs_ecb *) pevent1;
1098 pevent1->ECB_NextECB = (
struct gs_ecb *) pevent;
1099 pevent1 = (
struct gs_ecb *) 0;
1103 if (pevent1->ECB_NextECB->ECBValue.i64 > pevent->ECBValue.i64){
1104 pevent->ECB_NextECB = pevent1->ECB_NextECB;
1105 pevent->ECB_PrevECB = (
struct gs_ecb *) pevent1;
1106 pevent->ECB_NextECB->ECB_PrevECB = (
struct gs_ecb *) pevent;
1107 pevent1->ECB_NextECB = (
struct gs_ecb *) pevent;
1108 pevent1 = (
struct gs_ecb *) 0;
1112 pevent1 = pevent1->ECB_NextECB;
1118 pevent->ECBState = GS_ECBState_WAITING_RESOURCE;
1119 pevent->ECB_AssocRCB = (
struct g_rcb *) presource;
1120 SAMPLE_FUNCTION_END(23)
1137 SAMPLE_FUNCTION_BEGIN(24)
1138 G_RCB *presource = (
G_RCB *) pevent->ECB_AssocRCB;
1140 #
if G_DEBUG_WHILEFOREVER_ENABLE == 1
1141 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
1142 if (pevent->ECBState == GS_ECBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1146 if (presource->RCB_NextRCBWEL == pevent)
1153 if (pevent->ECB_NextECB != (
struct gs_ecb *) 0) {
1158 pevent->
ECBState = GS_ECBState_UNLINKED;
1159 pevent->ECB_PrevECB = (
struct gs_ecb *) 0;
1160 pevent->ECB_NextECB = (
struct gs_ecb *) 0;
1161 SAMPLE_FUNCTION_END(24)
1175 SAMPLE_FUNCTION_BEGIN(25)
1177 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1178 if (psignal->SCBState != G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1187 g_kcb.KCB_NUMBER_OF_SCBs--;
1189 SAMPLE_FUNCTION_END(25)
1203 SAMPLE_FUNCTION_BEGIN(27)
1206 if (psignal1 != (
struct gs_scb *) 0){
1207 psignal1->SCBState = psignal->SCBState;
1208 psignal1->SCBType = psignal->SCBType;
1209 psignal1->SCBPriority = psignal->SCBPriority;
1210 psignal1->SCB_TaskCode = psignal->SCB_TaskCode;
1211 psignal1->SCB_TaskArg = psignal->SCB_TaskArg;
1212 psignal1->SCB_NextSCB = (
struct gs_scb *) 0;
1213 psignal1->SCB_NextSCBAPSL = (
struct gs_scb *) 0;
1214 psignal1->SCB_AssocXCB = psignal->SCB_AssocXCB;
1216 SAMPLE_FUNCTION_END(27)
1230 SAMPLE_FUNCTION_BEGIN(28)
1231 pscb_pending->SCB_NextSCBAPSL = pscb_root->SCB_NextSCBAPSL;
1232 pscb_root = pscb_pending;
1233 SAMPLE_FUNCTION_END(28)
1246 SAMPLE_FUNCTION_BEGIN(29)
1248 if (pscb_pending->SCBState == G_SCBState_EXECUTING)
return(G_FALSE);
1250 if (pscb_root->SCB_NextSCBAPSL == pscb_pending)
1257 while (pscb != (
struct gs_scb *) 0)
1259 if (pscb->SCB_NextSCBAPSL == pscb_pending)
1262 pscb = (
struct gs_scb *) 0;
1270 SAMPLE_FUNCTION_END(29)
1286 SAMPLE_FUNCTION_BEGIN(30)
1287 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1288 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
1289 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
1292 pevent->ECB_AssocTCB = (
struct gs_tcb *) ptcb;
1294 pevent->ECB_NextTCBAEL = ptcb->TCB_NextTCBAEL;
1295 pevent->ECB_PrevTCBAEL = (
struct gs_ecb *) 0;
1296 if (ptcb->TCB_NextTCBAEL != (
struct gs_ecb *) 0) ptcb->TCB_NextTCBAEL->ECB_PrevTCBAEL = (
struct gs_ecb *) pevent;
1297 ptcb->TCB_NextTCBAEL = (
struct gs_ecb *) pevent;
1298 SAMPLE_FUNCTION_END(30)
1312 SAMPLE_FUNCTION_BEGIN(31)
1313 int retorno = G_FALSE;
1314 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1315 if (
ECB_IsValid(pevent) != G_TRUE) G_DEBUG_WHILEFOREVER;
1317 if (pevent->ECB_AssocTCB != (
GS_TCB *)0)
1319 if (pevent->ECB_PrevTCBAEL == (
struct gs_ecb *) 0) {
1320 pevent->ECB_AssocTCB->TCB_NextTCBAEL = pevent->ECB_NextTCBAEL;
1323 pevent->ECB_PrevTCBAEL->ECB_NextTCBAEL = pevent->ECB_NextTCBAEL;
1325 if (pevent->ECB_NextTCBAEL != (
struct gs_ecb *) 0) pevent->ECB_NextTCBAEL->ECB_PrevTCBAEL = pevent->ECB_PrevTCBAEL;
1328 pevent->ECB_PrevTCBAEL = (
struct gs_ecb *) 0;
1329 pevent->ECB_NextTCBAEL = (
struct gs_ecb *) 0;
1330 pevent->ECB_AssocTCB = (
struct gs_tcb *) 0;
1333 SAMPLE_FUNCTION_END(31)
1348 SAMPLE_FUNCTION_BEGIN(32)
1349 INT32 priority = psignal->SCBType;
1352 if (ptcb->TCB_NextTCBASL == (
struct gs_scb *) 0)
1356 ptcb->TCB_NextTCBASL = (
struct gs_scb *) psignal;
1360 if(ptcb->TCB_NextTCBASL->SCBType < priority)
1364 ptcb->TCB_NextTCBASL = (
struct gs_scb *) psignal;
1369 psignal1 = ptcb->TCB_NextTCBASL;
1370 while (psignal1 != (
struct gs_scb *) 0)
1372 if (psignal1->SCB_NextSCB == (
struct gs_scb *) 0)
1377 psignal1 = (
struct gs_scb *) 0;
1381 if (psignal1->SCB_NextSCB->SCBType > priority)
1385 psignal1 = (
struct gs_scb *) 0;
1396 psignal->
SCBState = G_SCBState_IN_TCB;
1397 SAMPLE_FUNCTION_END(32)
1413 SAMPLE_FUNCTION_BEGIN(33)
1416 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1417 if (psignal->SCBState == G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1420 if (ptcb->TCB_NextTCBASL != (
struct gs_scb *) 0)
1422 if (ptcb->TCB_NextTCBASL == psignal)
1428 psignal1 = ptcb->TCB_NextTCBASL;
1429 while (psignal1 != (
struct gs_scb *) 0)
1431 if (psignal1->SCB_NextSCB == psignal)
1434 psignal1 = (
struct gs_scb *) 0;
1442 psignal->
SCBState = G_SCBState_UNLINKED;
1445 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1446 if (psignal->SCBState != G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1448 SAMPLE_FUNCTION_END(33)
1462 SAMPLE_FUNCTION_BEGIN(34)
1470 while (ptcb->TCB_NextTCBASL != (
struct gs_scb *) 0)
1472 psignal1 = ptcb->TCB_NextTCBASL;
1478 while (ptcb->TCB_NextTCBPSL != (
struct gs_scb *) 0)
1480 psignal1 = ptcb->TCB_NextTCBPSL;
1487 pevent1 = ptcb->TCB_NextTCBAEL;
1488 while (pevent1 != (
struct gs_ecb *) 0)
1491 pevent1 = ptcb->TCB_NextTCBAEL;
1493 SAMPLE_FUNCTION_END(34)
1506 SAMPLE_FUNCTION_BEGIN(35)
1509 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1510 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
1511 if (ptcb->TCBState != G_TCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1524 g_kcb.KCB_NUMBER_OF_TCBs--;
1529 SAMPLE_FUNCTION_END(35)
1545 SAMPLE_FUNCTION_BEGIN(37)
1550 if ((ptcb->TCB_NextTCBPSL == (
struct gs_scb *) 0))
1552 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
1553 ptcb->TCB_NextTCBPSL = (
struct gs_scb *) psignal;
1557 if (ptcb->TCB_NextTCBPSL->SCBPriority > priority)
1559 psignal->SCB_NextSCB = ptcb->TCB_NextTCBPSL;
1560 ptcb->TCB_NextTCBPSL = (
struct gs_scb *) psignal;
1564 psignal1 = ptcb->TCB_NextTCBPSL;
1565 while (psignal1 != (
struct gs_scb *) 0)
1567 if (psignal1->SCB_NextSCB == (
struct gs_scb *) 0)
1570 psignal->SCB_NextSCB = (
struct gs_scb *) 0;
1571 psignal1->SCB_NextSCB = (
struct gs_scb *) psignal;
1572 psignal1 = (
struct gs_scb *) 0;
1576 if (psignal1->SCB_NextSCB->SCBPriority > priority)
1578 psignal->SCB_NextSCB = psignal1->SCB_NextSCB;
1579 psignal1->SCB_NextSCB = (
struct gs_scb *) psignal;
1580 psignal1 = (
struct gs_scb *) 0;
1585 psignal1 = psignal1->SCB_NextSCB;
1591 psignal->SCBState = G_SCBState_PENDING;
1592 SAMPLE_FUNCTION_END(37)
1608 SAMPLE_FUNCTION_BEGIN(38)
1610 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1611 if (psignal->SCBState == G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1613 if (ptcb->TCB_NextTCBPSL != (
struct gs_scb *) 0)
1615 if (ptcb->TCB_NextTCBPSL == psignal)
1621 psignal1 = ptcb->TCB_NextTCBPSL;
1622 while (psignal1 != (
struct gs_scb *) 0)
1624 if (psignal1->SCB_NextSCB == psignal)
1627 psignal1 = (
struct gs_scb *) 0;
1635 psignal->
SCBState = G_SCBState_UNLINKED;
1637 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1638 if (psignal->SCBState != G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
1640 SAMPLE_FUNCTION_END(38)
1655 SAMPLE_FUNCTION_BEGIN(39)
1658 GS_LCB *readylist = ptcb->TCB_RDY_LCB_Index; PRINT_DEBUG_LINE
1661 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1662 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1663 if (ptcb->TCBState != G_TCBState_UNLINKED) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1668 if (ptcb->TCBType != G_TCBType_IDLE)
1670 if (readylist->LCB_NextTCBRDYL == (
struct gs_tcb *) 0)
1672 ptcb->TCB_NextTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1673 ptcb->TCB_PrevTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1674 readylist->LCB_NextTCBRDYL = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1678 if (readylist->LCB_NextTCBRDYL->TCBCurrentPriority > ptcb->TCBCurrentPriority) {
1679 ptcb->TCB_NextTCB = readylist->LCB_NextTCBRDYL ; PRINT_DEBUG_LINE
1680 ptcb->TCB_PrevTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1681 ptcb->TCB_NextTCB->TCB_PrevTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1682 readylist->LCB_NextTCBRDYL = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1684 ptcb1 = readylist->LCB_NextTCBRDYL; PRINT_DEBUG_LINE
1685 while (ptcb1 != (
struct gs_tcb *) 0)
1687 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1688 if (
TCB_IsValid(ptcb1) != G_TRUE) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1690 if (ptcb1->TCB_NextTCB == (
struct gs_tcb *) 0){
1691 ptcb->TCB_NextTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1692 ptcb->TCB_PrevTCB = (
struct gs_tcb *) ptcb1; PRINT_DEBUG_LINE
1693 ptcb1->TCB_NextTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1694 ptcb1 = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1698 if (ptcb1->TCB_NextTCB->TCBCurrentPriority > ptcb->TCBCurrentPriority){
1700 ptcb->TCB_NextTCB = ptcb1->TCB_NextTCB; PRINT_DEBUG_LINE
1701 ptcb->TCB_PrevTCB = (
struct gs_tcb *) ptcb1; PRINT_DEBUG_LINE
1702 ptcb->TCB_NextTCB->TCB_PrevTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1703 ptcb1->TCB_NextTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1704 ptcb1 = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1708 ptcb1 = (
GS_TCB *) ptcb1->TCB_NextTCB; PRINT_DEBUG_LINE
1715 ptcb->TCB_AssocPCB = (
INT32) 0; PRINT_DEBUG_LINE
1716 ptcb->TCBState = G_TCBState_READY; PRINT_DEBUG_LINE
1719 if (readylist->LCB_NextLCBFPL != (
struct gs_pcb *) 0)
1721 if (readylist->LCB_NextLCBFPL->PCBID != GRTOS_CMD_PRC_ID ) {
1723 GRTOS_CMD_PRC_INT(readylist->LCB_NextLCBFPL->PCBID);
1727 G_DEBUG_VERBOSE; PRINT_DEBUG_LINE
1728 SAMPLE_FUNCTION_END(39)
1742 SAMPLE_FUNCTION_BEGIN(40)
1743 GS_LCB *readylist = ptcb->TCB_RDY_LCB_Index; PRINT_DEBUG_LINE
1745 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1746 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1747 if ((
TCB_IsValid(readylist->LCB_NextTCBRDYL) != G_TRUE && readylist->LCB_NextTCBRDYL != 0) ||
1748 (readylist->LCB_NextTCBRDYL == (
struct gs_tcb *) 0 && ptcb->TCBType != G_TCBType_IDLE)) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1749 if (ptcb->TCBState != G_TCBState_READY) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1752 if (ptcb->TCBType != G_TCBType_IDLE)
1754 if (readylist->LCB_NextTCBRDYL == ptcb)
1766 ptcb->
TCBState = G_TCBState_UNLINKED; PRINT_DEBUG_LINE
1768 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1769 if (
TCB_IsValid(readylist->LCB_NextTCBRDYL) != G_TRUE &&
1770 readylist->LCB_NextTCBRDYL != (
struct gs_tcb *) 0) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1774 SAMPLE_FUNCTION_END(40)
1788 SAMPLE_FUNCTION_BEGIN(41)
1790 GS_LCB *RunList = ptcb->TCB_RDY_LCB_Index; PRINT_DEBUG_LINE
1794 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1795 if (
TCB_IsValid(ptcb1) != G_TRUE && ptcb1 != (
struct gs_tcb *) 0) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1796 if ((
TCB_IsValid(ptcb) != G_TRUE) && (ptcb != (
struct gs_tcb *) 0))G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1798 if (ptcb->TCBState != G_TCBState_UNLINKED) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1805 ptcb->TCB_AssocPCB = (
INT32) GRTOS_CMD_PRC_ID; PRINT_DEBUG_LINE
1807 if (RunList->LCB_NextTCBRUNL == (
struct gs_tcb *) 0)
1809 RunList->LCBRunPriority = ptcb->TCBCurrentPriority; PRINT_DEBUG_LINE
1810 RunList->LCB_NextTCBRUNL = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1811 ptcb->TCB_NextTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1812 ptcb->TCB_PrevTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1818 ptcb1 = RunList->LCB_NextTCBRUNL; PRINT_DEBUG_LINE
1821 RunList->LCBRunPriority = ptcb->TCBCurrentPriority; PRINT_DEBUG_LINE
1822 ptcb->TCB_NextTCB = RunList->LCB_NextTCBRUNL; PRINT_DEBUG_LINE
1823 ptcb->TCB_PrevTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1824 ptcb->TCB_NextTCB->TCB_PrevTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1825 RunList->LCB_NextTCBRUNL = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1832 while (ptcb1 != (
struct gs_tcb *) 0)
1834 if (ptcb1->TCB_NextTCB == (
struct gs_tcb *) 0) {
1835 ptcb->TCB_NextTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1836 ptcb->TCB_PrevTCB = (
struct gs_tcb *) ptcb1; PRINT_DEBUG_LINE
1837 ptcb1->TCB_NextTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1838 ptcb1 = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1843 ptcb->TCB_NextTCB = ptcb1->TCB_NextTCB; PRINT_DEBUG_LINE
1844 ptcb->TCB_PrevTCB = (
struct gs_tcb *) ptcb1; PRINT_DEBUG_LINE
1845 ptcb->TCB_NextTCB->TCB_PrevTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1846 ptcb1->TCB_NextTCB = (
struct gs_tcb *) ptcb; PRINT_DEBUG_LINE
1847 ptcb1 = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1851 ptcb1 = (
GS_TCB *) ptcb1->TCB_NextTCB; PRINT_DEBUG_LINE
1858 ptcb->TCBState = G_TCBState_RUNNING; PRINT_DEBUG_LINE
1862 if (ptcb->TCB_RDY_LCB_Index !=
g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCB_RDY_LCBL[0] || ptcb->TCBType == G_TCBType_IDLE)
1864 if (
g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCBState != GS_PCBState_FREE)
1869 if (ptcb->TCB_RDY_LCB_Index ==
g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCB_RDY_LCBL[0])
1871 if (
g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCBState == GS_PCBState_FREE)
1878 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1880 g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB = (
struct gs_tcb *) 0;
1881 if (
TCB_IsValid(ptcb) != G_TRUE) {PRINT_TO_DEBUG(
"ERROR TCB= %p\n",ptcb); G_DEBUG_WHILEFOREVER;}
1882 for (i=0; i<G_NUMBER_OF_PCB;i++){
1883 if (
g_kcb.G_PCBTbl[i].PCB_EXECTCB == ptcb) {
1884 PRINT_TO_DEBUG(
"ERROR %s, %s, %d, pi %x, tcb %p, ptcb %p, proc %x, mtx %x\n",__FUNCTION__,__FILE__,__LINE__, i,
g_kcb.G_PCBTbl[i].PCB_EXECTCB, ptcb, GRTOS_CMD_PRC_ID, GRTOS_MTX_PRC_GRANTED);
1885 PRINT_TO_DEBUG(
"ERROR %s, %s, %d, pi %x, tcb %p, ptcb %p, proc %x, mtx %x\n",__FUNCTION__,__FILE__,__LINE__, i,
g_kcb.G_PCBTbl[i].PCB_EXECTCB, ptcb, GRTOS_CMD_PRC_ID, GRTOS_MTX_PRC_GRANTED);
1886 G_DEBUG_WHILEFOREVER;
1889 if ((ptcb->TCB_StackPointer < ptcb->TCB_StackTop - 300) || (ptcb->TCB_StackPointer > ptcb->TCB_StackBottom)) {
1890 PRINT_TO_DEBUG(
"ERROR TCB= %p, TCB_StackBottom = %p, TCB_StackPointer = %p, TCB_StackTop = %p\n",ptcb, (
void *) ptcb->TCB_StackBottom, (
void *) ptcb->TCB_StackPointer, (
void *) ptcb->TCB_StackTop);
1891 PRINT_TO_DEBUG(
"ERROR TCB_IDLE= %p\n", (
void *)
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_IDLETCB );
1892 G_DEBUG_WHILEFOREVER; }
1895 g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB = (
struct gs_tcb *) ptcb;
1896 ptcb->TCB_AssocPCB = GRTOS_CMD_PRC_ID;
1897 if (
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_RDY_LCBL[0] == ptcb->TCB_RDY_LCB_Index) {
1903 SAMPLE_FUNCTION_END(41)
1917 SAMPLE_FUNCTION_BEGIN(42)
1918 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1919 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1920 if (ptcb->TCBState != G_TCBState_RUNNING) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1921 if (ptcb->TCBState == G_TCBState_UNLINKED) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1924 GS_LCB *RunList = ptcb->TCB_RDY_LCB_Index; PRINT_DEBUG_LINE
1926 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1927 if (
TCB_IsValid(RunList->LCB_NextTCBRUNL) != G_TRUE) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1928 if (ptcb->TCB_AssocPCB < 1 || ptcb->TCB_AssocPCB > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER; PRINT_DEBUG_LINE
1933 if (ptcb->TCB_AssocPCB != GRTOS_CMD_PRC_ID ) {
1935 GRTOS_CMD_PRC_INT(ptcb->TCB_AssocPCB);
1937 if (
g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCBState != GS_PCBState_FREE)
1946 if (RunList->LCB_NextTCBRUNL == ptcb){
1947 RunList->LCB_NextTCBRUNL = (
GS_TCB *) ptcb->TCB_NextTCB; PRINT_DEBUG_LINE
1948 if (RunList->LCB_NextTCBRUNL != (
struct gs_tcb *) 0)
1950 RunList->LCB_NextTCBRUNL->TCB_PrevTCB = (
struct gs_tcb *) 0; PRINT_DEBUG_LINE
1951 RunList->LCBRunPriority = ptcb->TCBCurrentPriority; PRINT_DEBUG_LINE
1955 RunList->LCBRunPriority = G_LOWEST_PRIORITY; PRINT_DEBUG_LINE
1964 ptcb->TCB_PrevTCB->TCB_NextTCB = ptcb->TCB_NextTCB; PRINT_DEBUG_LINE
1965 if (ptcb->TCB_NextTCB != (
GS_TCB *)0) ptcb->TCB_NextTCB->TCB_PrevTCB = ptcb->TCB_PrevTCB; PRINT_DEBUG_LINE
1972 g_kcb.G_PCBTbl[ptcb->TCB_AssocPCB-1].PCB_EXECTCB = (
struct gs_tcb *) 0;
1973 ptcb->TCB_AssocPCB = (
INT32) 0; PRINT_DEBUG_LINE
1974 ptcb->TCBState = G_TCBState_UNLINKED; PRINT_DEBUG_LINE
1977 SAMPLE_FUNCTION_END(42)
1992 SAMPLE_FUNCTION_BEGIN(43)
1993 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
1994 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
1995 if (ptcb->TCBState != G_TCBState_UNLINKED)G_DEBUG_WHILEFOREVER;
2001 ptcb->TCB_NextTCB =
g_kcb.KCB_NextTCBWL;
2002 ptcb->TCB_PrevTCB = (
struct gs_tcb *) 0;
2004 if (
g_kcb.KCB_NextTCBWL != (
struct gs_tcb *) 0)
g_kcb.KCB_NextTCBWL->TCB_PrevTCB = (
struct gs_tcb *) ptcb;
2007 ptcb->TCBState = state;
2008 SAMPLE_FUNCTION_END(43)
2022 SAMPLE_FUNCTION_BEGIN(44)
2023 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2024 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
2025 if (!GRTOS_TASK_STATE_WAITING(ptcb)) G_DEBUG_WHILEFOREVER;
2028 if (
g_kcb.KCB_NextTCBWL == ptcb)
g_kcb.KCB_NextTCBWL = (
GS_TCB *) ptcb->TCB_NextTCB;
2029 else ptcb->TCB_PrevTCB->TCB_NextTCB = ptcb->TCB_NextTCB;
2031 if (ptcb->TCB_NextTCB != (
struct gs_tcb *) 0) ptcb->TCB_NextTCB->TCB_PrevTCB = ptcb->TCB_PrevTCB;
2033 ptcb->TCBState = G_TCBState_UNLINKED;
2034 SAMPLE_FUNCTION_END(44)
2048 SAMPLE_FUNCTION_BEGIN(45)
2049 GS_ECB *pevent; PRINT_DEBUG_LINE
2050 INT32 return_int; PRINT_DEBUG_LINE
2052 return_int = G_FALSE; PRINT_DEBUG_LINE
2054 pevent = ptcb->TCB_NextTCBAEL; PRINT_DEBUG_LINE
2056 while (pevent != (
struct gs_ecb *) 0)
2059 switch (pevent->ECBState)
2062 case GS_ECBState_WAITING_RESOURCE:
2063 return_int = G_TRUE; PRINT_DEBUG_LINE
2066 pevent = pevent->ECB_NextECB; PRINT_DEBUG_LINE
2068 SAMPLE_FUNCTION_END(45)
2083 SAMPLE_FUNCTION_BEGIN(46)
2084 GS_ECB *pevent; PRINT_DEBUG_LINE
2086 pevent = presource->RCB_NextRCBGEL; PRINT_DEBUG_LINE
2087 while ((pevent != (
struct gs_ecb *) 0)) {
2089 if(pevent->ECB_AssocTCB == ptcb)
break;
2092 SAMPLE_FUNCTION_END(46)
2107 SAMPLE_FUNCTION_BEGIN(47)
2109 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2110 fprintf(stderr,
"[ MESSAGE ] Remove SCB from ASL\n");
2113 while (prrds->RRDS_NextSCB != (
struct gs_scb *) 0)
2115 psignal1 = prrds->RRDS_NextSCB;
2119 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2120 fprintf(stderr,
"[ MESSAGE ] Insert the RRDS in the Free RRDS List\n");
2129 g_kcb.KCB_NUMBER_OF_RRDSs-- ;
2131 SAMPLE_FUNCTION_END(47)
2145 SAMPLE_FUNCTION_BEGIN(49)
2146 INT32 priority = psignal->SCBType;
2149 if (prrds->RRDS_NextSCB == (
struct gs_scb *) 0)
2153 prrds->RRDS_NextSCB = (
struct gs_scb *) psignal;
2157 if(prrds->RRDS_NextSCB->SCBType < priority)
2161 prrds->RRDS_NextSCB = (
struct gs_scb *) psignal;
2166 psignal1 = prrds->RRDS_NextSCB;
2167 while (psignal1 != (
struct gs_scb *) 0)
2169 if (psignal1->SCB_NextSCB == (
struct gs_scb *) 0)
2174 psignal1 = (
struct gs_scb *) 0;
2178 if (psignal1->SCB_NextSCB->SCBType > priority)
2182 psignal1 = (
struct gs_scb *) 0;
2193 psignal->
SCBState = G_SCBState_IN_TCB;
2194 SAMPLE_FUNCTION_END(49)
2209 SAMPLE_FUNCTION_BEGIN(50)
2212 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2213 if (psignal->SCBState == G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
2216 if (prrds->RRDS_NextSCB != (
struct gs_scb *) 0)
2218 if (prrds->RRDS_NextSCB == psignal)
2224 psignal1 = prrds->RRDS_NextSCB;
2225 while (psignal1 != (
struct gs_scb *) 0)
2227 if (psignal1->SCB_NextSCB == psignal)
2230 psignal1 = (
struct gs_scb *) 0;
2238 psignal->
SCBState = G_SCBState_UNLINKED;
2241 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2242 if (psignal->SCBState != G_SCBState_UNLINKED) G_DEBUG_WHILEFOREVER;
2244 SAMPLE_FUNCTION_END(50)
2264 SAMPLE_FUNCTION_BEGIN(51)
2265 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2266 if (
TCB_IsValid(
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB) != G_TRUE &&
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB != (
struct gs_tcb *) 0) {
2267 PRINT_TO_DEBUG(
"g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB = %p", (
void *)
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB)
2268 G_DEBUG_WHILEFOREVER;
2271 SAMPLE_FUNCTION_END(51)
2272 return(
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB);
2286 SAMPLE_FUNCTION_BEGIN(52)
2287 int retorno = G_FALSE;
2288 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2289 if (
LCB_IsValid(plcb1) != G_TRUE) G_DEBUG_WHILEFOREVER;
2290 if (
LCB_IsValid(plcb2) != G_TRUE) G_DEBUG_WHILEFOREVER;
2292 if ((plcb1->LCB_NextTCBRUNL != (
struct gs_tcb *) 0) && (plcb2->LCB_NextTCBRUNL == (
struct gs_tcb *) 0)) retorno = G_TRUE;
2293 if (((plcb1->LCB_NextTCBRUNL != (
struct gs_tcb *) 0) && (plcb2->LCB_NextTCBRUNL != (
struct gs_tcb *) 0)) &&
2294 (plcb1->LCBRunPriority > plcb2->LCBRunPriority)) retorno = G_TRUE;
2295 SAMPLE_FUNCTION_END(52)
2309 SAMPLE_FUNCTION_BEGIN(53)
2310 int retorno = G_FALSE;
2311 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2312 if (
TCB_IsValid(ptcb1) != G_TRUE) G_DEBUG_WHILEFOREVER;
2313 if (
TCB_IsValid(ptcb2) != G_TRUE) G_DEBUG_WHILEFOREVER;
2316 if (ptcb1->TCBCurrentPriority > ptcb2->TCBCurrentPriority) retorno = G_TRUE;
2317 SAMPLE_FUNCTION_END(53)
2335 SAMPLE_FUNCTION_BEGIN(54)
2336 GS_TCB *ptcb =
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1].PCB_EXECTCB;
2337 GS_PCB *ppcb = &
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID -1];
2343 if (ppcb->PCBState == GS_PCBState_FREE) {
2345 if ((ptcb != ppcb->PCB_IDLETCB) && (ptcb != (
struct gs_tcb *) 0)) {
2349 if (ppcb->PCB_RDY_LCBL[0]->LCB_NextTCBRDYL != (
struct gs_tcb *) 0) {
2350 ptcb = ppcb->PCB_RDY_LCBL[0]->LCB_NextTCBRDYL;
2353 ptcb = ppcb->PCB_IDLETCB;
2354 for (i = 1; i < G_NUMBER_OF_LCBs_FOR_PCB; i++) {
2355 if (ppcb->PCB_RDY_LCBL[i]->LCB_NextTCBRDYL != (
struct gs_tcb *) 0) {
2356 ptcb = ppcb->PCB_RDY_LCBL[i]->LCB_NextTCBRDYL;
2364 if (ppcb->PCB_RDY_LCBL[0]->LCB_NextTCBRDYL != (
struct gs_tcb *) 0) {
2365 if (ptcb->TCBCurrentPriority > ppcb->PCB_RDY_LCBL[0]->LCB_NextTCBRDYL->TCBCurrentPriority) {
2368 ptcb = ppcb->PCB_RDY_LCBL[0]->LCB_NextTCBRDYL;
2375 SAMPLE_FUNCTION_END(54)
2388 SAMPLE_FUNCTION_BEGIN(55)
2389 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2390 if (
g_kcb.KCB_NextLCBL == (
GS_LCB *)0) G_DEBUG_WHILEFOREVER;
2391 if (
g_kcb.KCB_NextLCBL->LCB_NextTCBRUNL == (
GS_TCB *)0) G_DEBUG_WHILEFOREVER;
2392 if (
g_kcb.KCB_NextLCBL->LCB_NextTCBRUNL->TCB_AssocPCB <= 0) G_DEBUG_WHILEFOREVER;
2393 if (
g_kcb.KCB_NextLCBL->LCB_NextTCBRUNL->TCB_AssocPCB == 0) G_DEBUG_WHILEFOREVER;
2394 if (
g_kcb.KCB_NextLCBL->LCB_NextTCBRUNL->TCB_AssocPCB > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER;
2397 GRTOS_CMD_LOW_PRC_SET((
int)
g_kcb.KCB_NextLCBL->LCB_NextTCBRUNL->TCB_AssocPCB);
2398 SAMPLE_FUNCTION_END(55)
2410 SAMPLE_FUNCTION_BEGIN(56)
2411 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2412 if (
g_kcb.KCB_NextECBTL == (
struct gs_ecb *) 0) G_DEBUG_WHILEFOREVER;
2413 if (
g_kcb.KCB_NextECBTL->ECB_AssocTCB == (
GS_TCB *)0 &&
2414 g_kcb.KCB_NextECBTL->ECBType != (
INT32) G_ECBType_LASTEST_TIME) G_DEBUG_WHILEFOREVER;
2415 if (
g_kcb.KCB_NextECBTL->ECB_AssocTCB->TCB_AssocPCB > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER;
2418 if (
g_kcb.KCB_NextECBTL->ECBType != (
INT32) G_ECBType_LASTEST_TIME) {
2419 GRTOS_CMD_NXT_TM_PRC_SET((
int)
g_kcb.KCB_NextECBTL->ECB_AssocTCB->TCB_AssocPCB);
2421 GRTOS_CMD_NXT_TM_PRC_SET((
int) 0);
2423 SAMPLE_FUNCTION_END(56)
2437 SAMPLE_FUNCTION_BEGIN(57)
2443 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2444 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
2447 priority = ptcb->TCBReadyPriority;
2448 pevent = ptcb->TCB_NextTCBAEL;
2450 while (pevent != (
struct gs_ecb *) 0) {
2451 if (pevent->ECBState == GS_ECBState_GRANTED_RESOURCE){
2452 presource = (
G_RCB *) pevent->ECB_AssocRCB;
2454 if (priority2 < priority){
2455 priority = priority2;
2458 pevent = pevent->ECB_NextTCBAEL;
2460 ptcb->TCBInherPriority = priority;
2461 SAMPLE_FUNCTION_END(57)
2476 SAMPLE_FUNCTION_BEGIN(58)
2477 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2478 if (
TCB_IsValid(ptcb) != G_TRUE || ptcb == (
struct gs_tcb *) 0) G_DEBUG_WHILEFOREVER;
2481 if (ptcb->TCBReadyPriority < ptcb->TCBInherPriority) {ptcb->TCBCurrentPriority = ptcb->TCBReadyPriority;}
2482 else {ptcb->TCBCurrentPriority = ptcb->TCBInherPriority;}
2483 if (task_state == G_TCBState_RUNNING && ptcb->TCBCurrentPriority > ptcb->TCBRunPriority) {
2484 ptcb->TCBCurrentPriority = ptcb->TCBRunPriority;}
2485 SAMPLE_FUNCTION_END(58)
2498 SAMPLE_FUNCTION_BEGIN(59)
2499 GS_LCB *readylist =
g_kcb.G_PCBTbl[GRTOS_CMD_PRC_ID-1].PCB_RDY_LCBL[0];
2500 int i = GRTOS_CMD_PRC_ID ;
2504 if (readylist->LCB_NextTCBRDYL != (
struct gs_tcb *) 0)
2506 if (readylist->LCB_NextLCBFPL != (
struct gs_pcb *) 0)
2510 if (i != readylist->LCB_NextLCBFPL->PCBID) {
2511 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2512 fprintf(stderr,
"[ OK ] Processor %d trigger proc %d in %s, %d\n", GRTOS_CMD_PRC_ID, readylist->LCB_NextLCBFPL->PCBID, __FUNCTION__,__LINE__);
2514 GRTOS_CMD_PRC_INT(readylist->LCB_NextLCBFPL->PCBID);
2519 if (readylist->LCB_NextTCBRUNL != (
struct gs_tcb *) 0)
2521 if (readylist->LCB_NextTCBRUNL->TCBCurrentPriority > readylist->LCB_NextTCBRDYL->TCBCurrentPriority){
2524 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2525 if (readylist->LCB_NextTCBRUNL->TCB_AssocPCB < 1 || readylist->LCB_NextTCBRUNL->TCB_AssocPCB > G_NUMBER_OF_PCB) G_DEBUG_WHILEFOREVER;
2528 if (i != readylist->LCB_NextTCBRUNL->TCB_AssocPCB) {
2529 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2530 fprintf(stderr,
"[ OK ] Processor %d trigger proc %d in %s, %d\n", GRTOS_CMD_PRC_ID, readylist->LCB_NextTCBRUNL->TCB_AssocPCB, __FUNCTION__,__LINE__);
2532 GRTOS_CMD_PRC_INT(readylist->LCB_NextTCBRUNL->TCB_AssocPCB);
2538 SAMPLE_FUNCTION_END(59)
2552 SAMPLE_FUNCTION_BEGIN(60)
2553 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2554 if (
TCB_IsValid(ptcb) != G_TRUE) G_DEBUG_WHILEFOREVER;
2557 switch (ptcb->TCBState)
2561 case G_TCBState_WAITING_COMPLETED:
gk_TCBWL_Unlink(ptcb); PRINT_DEBUG_LINE
break;
2562 case G_TCBState_WAITING :
gk_TCBWL_Unlink(ptcb); PRINT_DEBUG_LINE
break;
2563 case G_TCBState_UNLINKED:
2564 if (ptcb->TCBType != G_TCBType_IDLE) G_DEBUG_WHILEFOREVER;
2567 G_DEBUG_WHILEFOREVER;
2570 SAMPLE_FUNCTION_END(60)
2585 SAMPLE_FUNCTION_BEGIN(61)
2588 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2589 if (
ECB_IsValid(pecb) != G_TRUE) G_DEBUG_WHILEFOREVER;
2592 if (pecb != (
struct gs_ecb *) 0)
2594 switch (pecb->ECBState)
2599 default: G_DEBUG_WHILEFOREVER;
break;
2602 SAMPLE_FUNCTION_END(61)
2617 SAMPLE_FUNCTION_BEGIN(62)
2619 GS_SCB *psignal1 = ptcb->TCB_NextTCBPSL;
2621 while (psignal1 != (
struct gs_scb *) 0)
2623 if (psignal1->SCBType == SignalType)
2626 psignal1 = (
struct gs_scb *) 0;
2633 SAMPLE_FUNCTION_END(62)
2649 SAMPLE_FUNCTION_BEGIN(63)
2651 GS_SCB *psignal1 = prrds->RRDS_NextSCB;
2653 while (psignal1 != (
struct gs_scb *) 0)
2655 if (psignal1->SCBType == SignalType)
2658 psignal1 = (
struct gs_scb *) 0;
2665 SAMPLE_FUNCTION_END(63)
2680 SAMPLE_FUNCTION_BEGIN(64)
2684 while (psignal1 != (
struct gs_scb *) 0)
2686 if (psignal1->SCBType == SignalType)
2689 psignal1 = (
struct gs_scb *) 0;
2693 psignal1 = psignal1->SCB_NextSCB;
2696 SAMPLE_FUNCTION_END(64)
2711 SAMPLE_FUNCTION_BEGIN(65)
2713 GS_SCB *psignal1 = ptcb->TCB_NextTCBASL;
2715 while (psignal1 != (
struct gs_scb *) 0)
2717 if (psignal1->SCBType == SignalType)
2720 psignal1 = (
struct gs_scb *) 0;
2727 SAMPLE_FUNCTION_END(65)
2742 SAMPLE_FUNCTION_BEGIN(66)
2744 GS_SCB *psignal1 = pecb->ECB_NextECBASL;
2746 while (psignal != (
struct gs_scb *) 0)
2748 if (psignal->SCBType == SignalType)
2751 psignal1 = (
struct gs_scb *) 0;
2758 SAMPLE_FUNCTION_END(66)
2772 SAMPLE_FUNCTION_BEGIN(67)
2774 GS_SCB *psignal1 = prcb->RCB_NextRCBASL;
2776 while (psignal1 != (
struct gs_scb *) 0)
2778 if (psignal1->SCBType == SignalType)
2781 psignal1 = (
struct gs_scb *) 0;
2788 SAMPLE_FUNCTION_END(67)
2807 SAMPLE_FUNCTION_BEGIN(69)
2810 stk = (
GS_STK *) ptcb->TCB_StackBottom - 80;
2811 ptcb->TCB_StackPointer = stk;
2816 stk[2] = (
INT32)ptcb->TCB_TaskCode + 4;
2817 stk[3] = (
INT32)ptcb->TCB_StackPointer-1;
2829 stk[15] = (
INT32) ptcb->TCB_TaskArg;
2831 stk[17] = (
INT32) ptcb->TCB_TaskArg;
2842 SAMPLE_FUNCTION_END(69)
2857 SAMPLE_FUNCTION_BEGIN(70)
2861 SAMPLE_FUNCTION_END(70)
2879 SAMPLE_FUNCTION_BEGIN(72)
2880 SAMPLE_FUNCTION_END(72)
2881 return(GRTOS_CMD_PRC_ID );
2894 SAMPLE_FUNCTION_BEGIN(73)
2895 SAMPLE_FUNCTION_END(73)
2896 return(
g_kcb.KCB_NextECBTL->ECBValue.i64);
2914 SAMPLE_FUNCTION_BEGIN(74)
2918 #if G_DEBUG_WHILEFOREVER_ENABLE == 1
2919 if ((
TCB_IsValid(ptcb) != G_TRUE)) G_DEBUG_WHILEFOREVER;
2922 priority = G_LOWEST_PRIORITY;
2923 pevent = ptcb->TCB_NextTCBAEL;
2924 while ((pevent != (
struct gs_ecb *) 0))
2927 if (priority > pevent->ECBValue.i64) priority = pevent->ECBValue.i64;
2928 pevent = pevent->ECB_NextECB;
2930 SAMPLE_FUNCTION_END(74)