@@ -193,4 +193,11 @@ void kernel_createTask (INIT_MODE_
gTaskIndex += 1 ;
}
+static void kernel_makeNoTaskRunning(KERNEL_MODE) {
+ gRunningTaskControlBlockPtr = nullptr; // No running task
+}
+// Task termination
+void service_taskSelfTerminates(KERNEL_MODE) {
+ kernel_makeNoTaskRunning(MODE);
@@ -21,4 +21,7 @@ TaskControlBlock * descriptorPointerForTaskIndex (const uint8_t inTaskIndex) ;
uint8_t indexForDescriptorTask (const TaskControlBlock * inTaskPtr) ; // should be not nullptr
-
+void taskSelfTerminates(USER_MODE) asm ("task.self.terminates");
+void service_taskSelfTerminates(KERNEL_MODE) asm ("service.task.self.terminates");
+//$service task.self.terminates