28#if !defined( INC_INOSKERNEL_H )
29#define INC_INOSKERNEL_H
53#ifdef INOS_TIMINIG_CHECKS
63#ifdef INOS_TIMINIG_CHECKS_DISABLEINTERRUPTS
104 #define INOSOptimizationBarrier() \
105 asm volatile ("" ::: "memory");
107 #define INOSOptimizationBarrier()
299 #ifdef INOS_BIG_ENDIAN
305 #if defined(INOS_TASK_LOGGER_EXTENDED)
509 friend class CINOSHwTarget;
528 void Idle () INOS_COMPILE_NONOPTIMIZED;
554 #if defined(INOS_TASK_LOGGER_EXTENDED)
767 #if defined(INOS_ARCH_ARM)
820 static uint32 m_uCoreMask;
839 CINCOObject* m_pRegister;
841 CINCOObject* m_pTask;
862 friend class CINOSMcTargetKernelLogger;
886 #if defined(INOS_TASK_LOGGER_EXTENDED)
909 #if defined(INOS_TASK_LOGGER_EXTENDED)
977extern void Goodbye();
982extern uint32 SwitchCore(uint32
auCoreId);
983extern void Schedule();
984extern void Schedule(uint32
auCoreId);
986extern void Relinquish();
989#if defined(INOS_WINDOWS)
991#define Sleep(aTime) _Sleep(aTime)
993extern long Sleep(
long aTime);
1003#if defined(INOS_CPU_CORTEXA9)
1005 #include <inoskernel_cortexa9.h>
1006#elif defined(INOS_CPU_CORTEXA72)
1008 #include <inoskernel_cortexa72.h>
1009#elif defined(INOS_CPU_P50XX)
1011 #include <inoskernel_p50xx.h>
1012#elif defined(INOS_CPU_P2020)
1014 #include <inoskernel_p2020.h>
1015#elif defined(INOS_CPU_PPC750)
1017 #include <inoskernel_ppc750.h>
1018#elif defined(INOS_DESKTOP)
1020 #include <inoskernel_desktop.h>
1040 return GetCoreId() == 0;
1102 #if defined(INOS_DESKTOP)
1112 #if defined(INOS_DESKTOP)
1182 return (
uCoreDone == (uint32) (1<<GetCoreId()));
Definition cinosbus.h:600
Definition inoskernel.h:239
friend void Ready(tTaskId aidTask, uint32 auFlags)
Put given task into ready list but do not schedule. This method is normally used in conjunction with ...
friend void Schedule(uint32 auCoreId)
Do an explicite schedule or given core. This method is normally used in in conjunction with Ready In ...
friend void SuspendEx(uint32 auTaskState, SINOSCoreLock *apLock, CINOSTask *apTask)
Suspend current task from execution and release the given lock. The lock will be released completely,...
friend void ChangePriority(uint32 auPriority)
Change priority of current task and do a reschedule if necessary. For more info see section Priority.
friend void Exit(uint32 auExitCode)
Terminate actual task.
friend void Ready(class CINOSTask *apTask, uint32 auFlags)
Put given task into ready list but do not schedule. This method is normally used in conjunction with ...
friend void Resume(tTaskId aidTask, uint32 auFlags)
Resume given task and put it into ready list.
static int32 GetKernelState()
Get kernel state. Valid values are.
Definition inoskernel.h:495
friend void Relinquish()
Give other tasks with the same priority a chance to run. For more info see section Relinquish.
friend void Resume(class CINOSTask *apTask, uint32 auFlags)
Resume given task and put it into ready list.
friend uint32 SwitchCore(uint32 auCoreId)
Switch current task to the given core.
virtual void AddIdle(void *apFunction, void *apObject)
Add idle handler. The given function is called whenever the CPU goes into idle state IMPORTANT things...
end of doxygen exclude friend void Suspend(uint32 auTaskState, uint32 auFlags)
Suspend current task from execution. Note that upon Resume, the interrupt state will be restored to t...
friend void Schedule()
Do an explicite schedule. This method is normally used in in conjunction with Ready In case of using ...
void AddBootedCallback(void *apFunction, void *apObject)
Add kernel booted callback, it is called after the kernel has entered the running state....
void AddFinalyse(void *apFunction, void *apObject)
Add kernel finalyse callback, it is called after the kernel has booted all cores and just before it g...
friend void Goodbye()
Suspend current task from execution without saving its context.
friend class CINOSTask * ActualTask()
Return pointer to actual running task.
Definition cinosmcmodule.h:1900
Definition cinosmutex.h:36
Definition cinostask.h:52
#define DF_INOS_MAX_TASKS
Definition inosdefault.h:435
#define DF_INOS_TASK_PRIO_HIGHEST
Definition inosdefine.h:182
#define INOS_INLINE
Definition inosdefine.h:60
#define DF_INOS_MAX_CORES
Definition inosdefine.h:164
Definition inostype.h:258
Definition inostype.h:192