GeMRTOS
Data Structures | Typedefs | Functions | Variables
gemrtos_core.h File Reference

GEmRTOS CORE definitions. More...

Go to the source code of this file.

Data Structures

union  timepriority
 
struct  gs_tm
 
struct  gs_ext_isr
 
struct  gs_ecb
 GS_ECB Event Control Block structure. More...
 
struct  gs_kcb
 GS_KCB Kernel Control Block structure. More...
 
struct  gs_lcb
 GS_LCB List Control Block. More...
 
struct  gs_pcb
 GS_PCB Processor Control Block. More...
 
struct  T_MESSAGE_RESOURCE
 
struct  gs_mcb
 
struct  g_rgb
 G_RCB Resource Request Data Structure. More...
 
struct  gs_rrds
 GS_RRDS Resource Request Data Structure. More...
 
struct  gs_scb
 GS_SCB Signal Control Block structure. More...
 
struct  gs_tcb
 gs_tcb Task Control Block (TCB) structure More...
 

Detailed Description

GEmRTOS CORE definitions.

Author
Ricardo Cayssials

This file contains the Message queue definitions.

Version
0.9a
Date
2015-2020
Bug:
None known
Warning
This product was produced by Ricardo Cayssials in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
DISCLAIMER OF WARRANTY. THIS PRODUCT IS LICENSED "AS IS." YOU BEAR THE RISK OF USING IT.
RICARDO CAYSSIALS GIVES NO EXPRESS WARRANTIES, GUARANTEES, OR CONDITIONS. TO THE EXTENT PERMITTED UNDER APPLICABLE LAWS, RICARDO CAYSSIALS EXCLUDES ALL IMPLIED WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.

Definition in file gemrtos_core.h.

Typedef Documentation

◆ G_RCB

typedef struct g_rgb G_RCB

Definition at line 54 of file gemrtos_core.h.

◆ GS_ECB

typedef struct gs_ecb GS_ECB

Definition at line 51 of file gemrtos_core.h.

◆ GS_KCB

typedef struct gs_kcb GS_KCB

Definition at line 47 of file gemrtos_core.h.

◆ GS_LCB

typedef struct gs_lcb GS_LCB

Definition at line 49 of file gemrtos_core.h.

◆ GS_MCB

typedef struct gs_mcb GS_MCB

Definition at line 55 of file gemrtos_core.h.

◆ GS_PCB

typedef struct gs_pcb GS_PCB

Definition at line 48 of file gemrtos_core.h.

◆ GS_RRDS

typedef struct gs_rrds GS_RRDS

Definition at line 53 of file gemrtos_core.h.

◆ GS_SCB

typedef struct gs_scb GS_SCB

Definition at line 52 of file gemrtos_core.h.

◆ GS_STK

typedef unsigned int GS_STK

Definition at line 63 of file gemrtos_core.h.

◆ GS_TCB

typedef struct gs_tcb GS_TCB

Definition at line 50 of file gemrtos_core.h.

◆ gt_priority

typedef unsigned long long gt_priority

Definition at line 66 of file gemrtos_core.h.

◆ gt_time

typedef unsigned long long gt_time

Definition at line 65 of file gemrtos_core.h.

◆ gt_tm

typedef struct gs_tm gt_tm

◆ INT32

typedef unsigned INT32

Definition at line 62 of file gemrtos_core.h.

◆ INT64

typedef unsigned long long INT64

Definition at line 61 of file gemrtos_core.h.

◆ t_message_resource

typedef struct g_rgb t_message_resource

Definition at line 56 of file gemrtos_core.h.

◆ t_semaphore_resource

typedef struct g_rgb t_semaphore_resource

Definition at line 57 of file gemrtos_core.h.

◆ TIMEPRIORITY

typedef union timepriority TIMEPRIORITY

Function Documentation

◆ Check_list_TCBAEL_IsValid()

INT32 Check_list_TCBAEL_IsValid ( int  cycles)

Definition at line 258 of file monitor.c.

◆ ECB_IsValid()

INT32 ECB_IsValid ( GS_ECB pevent)

Returns G_TRUE is pointer points to ECB.

Parameters
[in]peventpointer to ECB
Returns
G_TRUE if pointer to ECB, G_FALSE otherwise

Definition at line 109 of file monitor.c.

◆ ECBState_Valid()

INT32 ECBState_Valid ( unsigned int  ecbstate)

Definition at line 203 of file monitor.c.

◆ ECBType_Valid()

INT32 ECBType_Valid ( unsigned int  ecbtype)

Definition at line 213 of file monitor.c.

◆ gk_CODE_IDLE_TASK()

void gk_CODE_IDLE_TASK ( void*  pdata)
related

◆ gk_Create_PCBs()

INT32 gk_Create_PCBs ( int  Nmbr_PCB)
related

◆ gk_CreateTask()

GS_TCB* gk_CreateTask ( void *  TaskCode,
void *  p_arg,
void *  StkBotton,
unsigned int  StkSize,
unsigned int  TCBType,
INT64  TCBReadyPriority,
INT64  TCBRunPriority,
INT64  TCBDeadline,
INT64  TCBPeriod,
GS_LCB TCB_RDY_LCB_Index,
int  TCB_Abort_w_Deadline,
INT64  TCBInherPriority,
int  TCB_INTNumber 
)
related

◆ gk_ECB_GetFree()

GS_ECB* gk_ECB_GetFree ( void  )
related

◆ gk_ECB_List_Unlink()

INT32 gk_ECB_List_Unlink ( GS_ECB pevent)
related

◆ gk_ECBAEL_Link()

INT32 gk_ECBAEL_Link ( GS_ECB pevent1,
GS_ECB pevent2 
)

◆ gk_ECBAEL_Remove()

INT32 gk_ECBAEL_Remove ( GS_ECB pevent)
related

◆ gk_ECBASL_GetSCB()

GS_SCB* gk_ECBASL_GetSCB ( GS_ECB pevent,
INT32  SignalType 
)
related

◆ gk_ECBASL_Link()

void gk_ECBASL_Link ( GS_ECB pevent,
GS_SCB psignal 
)
related

◆ gk_ECBASL_Unlink()

INT32 gk_ECBASL_Unlink ( GS_ECB pevent,
GS_SCB psignal 
)
related

◆ gk_ECBFL_Link()

INT32 gk_ECBFL_Link ( GS_ECB pevent)
related

◆ gk_ECBTL_Link()

INT32 gk_ECBTL_Link ( GS_ECB pevent)
related

◆ gk_ECBTL_Unlink()

INT32 gk_ECBTL_Unlink ( GS_ECB pevent)
related

◆ gk_ENTRY_IRQ_HANDLER()

void gk_ENTRY_IRQ_HANDLER ( void  )

Executes the ISR of GRTOS.

gk_ENTRY_IRQ_HANDLER

This routine is executed each time processor is interrupted

Disable processor interrupt

Remove pending interrupt of current processor

Get into critical section

Time Event happened

An External IRQ happened: IRQ = event_code, IRQ index = event_code - 1

Definition at line 186 of file grtos_kernel.c.

◆ gk_ENTRY_SIGNAL_RETURN()

void gk_ENTRY_SIGNAL_RETURN ( void  )

Return from Signal:

gk_ENTRY_SIGNAL_RETURN

Get critical section and return to GRTOS_Return_from_Signal in grtos_switch.S file

Get into critical section

Definition at line 308 of file grtos_kernel.c.

◆ gk_FROZEN_CALLBACK()

void gk_FROZEN_CALLBACK ( void  )
related

◆ gk_Get_ECB()

GS_ECB* gk_Get_ECB ( void  )

Core functions definitions.

◆ gk_Get_LCB()

GS_LCB* gk_Get_LCB ( void  )
related

◆ gk_Get_RCB()

G_RCB* gk_Get_RCB ( void  )

◆ gk_Get_RRDS()

GS_RRDS* gk_Get_RRDS ( void  )

◆ gk_Get_SCB()

GS_SCB* gk_Get_SCB ( void  )

◆ gk_INIT_IRQ()

void gk_INIT_IRQ ( void  )
related

◆ gk_INIT_KERNEL()

void gk_INIT_KERNEL ( void  )

Routine execute BEFORE the main() function, ONLY by PROCESSOR 1.

gk_INIT_KERNEL

Processors with ID different from 1 start in different reset vector. The gk_START_KERNEL() function is executed AFTER the main() function Initialises all the structures to start the GRTOS

Todo:

Modify to allow executing with normal drivers instead of reduced ones

use alt_dcache_flush_all(); after mutex to flush cache

See also
gk_START_KERNEL

INITIALIZE THE KCB STRUCTURE

Init GLOBAL VARIABLES (used in grtos_switch.S code)

INITIALIZE THE TIMED EVENT LIST

Set the Next Occurence time equal to G_LATEST_TIME (is g_kcb.KCB_NextECBTL->ECBValue.i64)

Link an ECB with the latest time

Initialize Processor Structures creating IDLE TCBs

!!! Set error NO_FREE_GS_TCB

Definition at line 552 of file grtos_kernel.c.

◆ gk_ISR_COMPLETE()

INT32 gk_ISR_COMPLETE ( GS_TCB ptcb)
related

◆ gk_ISR_RELEASE()

void gk_ISR_RELEASE ( int  irq_nbr)
related

◆ gk_KCBASL_GetSCB()

GS_SCB* gk_KCBASL_GetSCB ( INT32  SignalType)
related

◆ gk_KCBASL_Link()

INT32 gk_KCBASL_Link ( GS_SCB psignal)
related

◆ gk_KCBASL_Unlink()

INT32 gk_KCBASL_Unlink ( GS_SCB psignal)
related

◆ gk_KERNEL_TASK_COMPLETE()

void gk_KERNEL_TASK_COMPLETE ( void  )

This function is executed when a task finishes its execution.

gk_KERNEL_TASK_COMPLETE

Enter in Critial Section

Restore TCB to waiting list

If task is an ISR, then enable it for next request

Todo:
Check if IRQ is enabled when all ISR are complete

Get the Next Priority to run in the current processor

Definition at line 411 of file grtos_kernel.c.

◆ gk_KERNEL_TASK_START()

void gk_KERNEL_TASK_START ( void  )

Start the execution of the tasks of the system.

gk_KERNEL_TASK_START

Get the Next TCB to run in the current processor

Change State to Running

Enable Processor Interrupt

Definition at line 352 of file grtos_kernel.c.

◆ gk_KERNEL_TASK_SUSPEND()

void gk_KERNEL_TASK_SUSPEND ( GS_TCB ptcb)

Suspends the execution of the task pointed by ptcb.

gk_KERNEL_TASK_SUSPEND

Parameters
[in]ptcbPOinter to the TCB of the task to suspend

Stop the processor triggering its interrupt

Definition at line 470 of file grtos_kernel.c.

◆ gk_KERNEL_TASK_SUSPEND_CURRENT()

void gk_KERNEL_TASK_SUSPEND_CURRENT ( void  )

Suspends the execution of the current task and switch to Highest Priority Task.

gk_KERNEL_TASK_SUSPEND_CURRENT

Definition at line 502 of file grtos_kernel.c.

◆ gk_LCB_CheckInvertion()

INT32 gk_LCB_CheckInvertion ( void  )
related

◆ gk_LCBFPL_Link()

INT32 gk_LCBFPL_Link ( int  processorID)
related

◆ gk_LCBFPL_Unlink()

INT32 gk_LCBFPL_Unlink ( int  processorID)
related

◆ gk_LCBL_Link()

INT32 gk_LCBL_Link ( GS_LCB plcb)
related

◆ gk_LCBL_UnLink()

INT32 gk_LCBL_UnLink ( GS_LCB plcb)
related

◆ gk_LCBLowerPriorityThanLCB()

INT32 gk_LCBLowerPriorityThanLCB ( GS_LCB plcb1,
GS_LCB plcb2 
)
related

◆ gk_MONITOR_FIFO_SAMPLE()

void gk_MONITOR_FIFO_SAMPLE ( int  data)

Monitor functions

◆ gk_PCB_GetCurrentTCB()

GS_TCB* gk_PCB_GetCurrentTCB ( void  )
related

◆ gk_PCB_GetNextTCB()

GS_TCB* gk_PCB_GetNextTCB ( void  )
related

◆ gk_PCBInit()

void gk_PCBInit ( void  )

◆ gk_RCB_GetFree()

G_RCB* gk_RCB_GetFree ( void  )
related

◆ gk_RCBASL_GetSCB()

GS_SCB* gk_RCBASL_GetSCB ( G_RCB presource,
INT32  SignalType 
)
related

◆ gk_RCBASL_Link()

INT32 gk_RCBASL_Link ( G_RCB presource,
GS_SCB psignal 
)
related

◆ gk_RCBASL_Unlink()

INT32 gk_RCBASL_Unlink ( G_RCB presource,
GS_SCB psignal 
)
related

◆ gk_RCBFL_Link()

INT32 gk_RCBFL_Link ( G_RCB presource)
related

◆ gk_RCBGEL_Link()

GS_ECB* gk_RCBGEL_Link ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_RCBGEL_Unlink()

void gk_RCBGEL_Unlink ( GS_ECB pevent)
related

◆ gk_RCBWEL_Link()

GS_ECB* gk_RCBWEL_Link ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_RCBWEL_Unlink()

void gk_RCBWEL_Unlink ( GS_ECB pevent)
related

◆ gk_RESOURCE_ECB_KILL_CALLBACK()

void gk_RESOURCE_ECB_KILL_CALLBACK ( GS_ECB pevent)
related

◆ gk_RRDS_GetFree()

GS_RRDS* gk_RRDS_GetFree ( void  )
related

◆ gk_RRDSASL_GetSCB()

GS_SCB* gk_RRDSASL_GetSCB ( GS_RRDS prrds,
INT32  SignalType 
)
related

◆ gk_RRDSASL_Link()

INT32 gk_RRDSASL_Link ( GS_RRDS prrds,
GS_SCB psignal 
)
related

◆ gk_RRDSASL_UnLink()

INT32 gk_RRDSASL_UnLink ( GS_RRDS prrds,
GS_SCB psignal 
)
related

◆ gk_RRDSFL_Link()

INT32 gk_RRDSFL_Link ( GS_RRDS prrds)

Links a RRDS to the Free List.

gk_RRDSFL_Link

Parameters
[in]prrdsPointer to the RRDS
Returns
G_TRUE when successful, G_FALSE otherwise
Todo:

Check the RRDS according structure (queue, semaphore)

Check if RRDS is to ECB or TCB too (I am not sure)

See also
RRDS

TCBs linked list for debugging

Definition at line 2105 of file listfunctions.c.

◆ gk_RST_MONITOR_HANDLER()

void gk_RST_MONITOR_HANDLER ( void  )

DEBUG MONITOR VARIABLES
COPY MIRROR OF SYSTEM VARIABLES

Definition at line 53 of file monitor.c.

◆ gk_SCB_Copy()

GS_SCB* gk_SCB_Copy ( GS_SCB psignal)
related

◆ gk_SCB_GetFree()

GS_SCB* gk_SCB_GetFree ( void  )
related

◆ gk_SCBAPSL_Link()

void gk_SCBAPSL_Link ( GS_SCB pscb_root,
GS_SCB pscb_pending 
)
related

◆ gk_SCBAPSL_UnLink()

INT32 gk_SCBAPSL_UnLink ( GS_SCB pscb_root,
GS_SCB pscb_pending 
)
related

◆ gk_SCBFL_Link()

INT32 gk_SCBFL_Link ( GS_SCB psignal)
related

◆ gk_SetLowestProcessor()

INT32 gk_SetLowestProcessor ( void  )
related

◆ gk_SetNextTimeProcessor()

INT32 gk_SetNextTimeProcessor ( void  )
related

◆ gk_SetTaskISR()

INT32 gk_SetTaskISR ( struct gs_tcb ptcb,
unsigned int  irq_nbr 
)
related

◆ gk_TASK_GRANTED_PRIORITY_GET()

INT64 gk_TASK_GRANTED_PRIORITY_GET ( GS_TCB ptcb)
related

◆ gk_TASK_INHERENCE_PRIORITY_SET()

INT32 gk_TASK_INHERENCE_PRIORITY_SET ( GS_TCB ptcb)
related

◆ gk_TASK_IS_BLOCKED()

INT32 gk_TASK_IS_BLOCKED ( GS_TCB ptcb)
related

◆ gk_TASK_Kill()

INT32 gk_TASK_Kill ( GS_TCB ptcb)
related

◆ gk_TASK_PRIORITY_SET()

INT32 gk_TASK_PRIORITY_SET ( GS_TCB ptcb,
INT32  task_state 
)
related

◆ gk_TASK_RELEASE()

INT32 gk_TASK_RELEASE ( GS_TCB ptcb)
related

◆ gk_TASK_RESOURCE_CREATE()

GS_ECB* gk_TASK_RESOURCE_CREATE ( G_RCB presource,
GS_TCB ptcb,
INT64  waiting_priority,
INT64  RCBGrantedPriority,
INT64  RCBWaitingTimeout,
INT64  RCBGrantedTimeout 
)
related

◆ gk_TASK_RESOURCE_DESTROY()

INT32 gk_TASK_RESOURCE_DESTROY ( GS_ECB pevent)
related

◆ gk_TASK_RESOURCE_GRANT()

INT32 gk_TASK_RESOURCE_GRANT ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_TASK_RESOURCE_UNGRANT()

INT32 gk_TASK_RESOURCE_UNGRANT ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_TASK_RESOURCE_UNWAIT()

INT32 gk_TASK_RESOURCE_UNWAIT ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_TASK_RESOURCE_WAIT()

INT32 gk_TASK_RESOURCE_WAIT ( G_RCB presource,
GS_ECB pevent 
)
related

◆ gk_TASK_STK_Init()

INT32 gk_TASK_STK_Init ( GS_TCB ptcb)
related

◆ gk_TCB_GetFree()

GS_TCB* gk_TCB_GetFree ( void  )

◆ gk_TCB_in_RCBGEL()

GS_ECB* gk_TCB_in_RCBGEL ( G_RCB presource,
GS_TCB ptcb 
)
related

◆ gk_TCB_List_Unlink()

INT32 gk_TCB_List_Unlink ( GS_TCB ptcb)
related

◆ gk_TCB_Unlink()

INT32 gk_TCB_Unlink ( GS_TCB ptcb)
related

◆ gk_TCBAEL_Link()

INT32 gk_TCBAEL_Link ( GS_ECB pevent,
GS_TCB ptcb 
)
related

◆ gk_TCBAEL_Unlink()

INT32 gk_TCBAEL_Unlink ( GS_ECB pevent)
related

◆ gk_TCBASL_GetSCB()

GS_SCB* gk_TCBASL_GetSCB ( GS_TCB ptcb,
INT32  SignalType 
)
related

◆ gk_TCBASL_Link()

INT32 gk_TCBASL_Link ( GS_TCB ptcb,
GS_SCB psignal 
)
related

◆ gk_TCBASL_Unlink()

INT32 gk_TCBASL_Unlink ( GS_TCB ptcb,
GS_SCB psignal 
)
related

◆ gk_TCBFL_Init()

void gk_TCBFL_Init ( void  )

◆ gk_TCBFL_Link()

INT32 gk_TCBFL_Link ( GS_TCB ptcb)
related

◆ gk_TCBLowerPriorityThanTCB()

INT32 gk_TCBLowerPriorityThanTCB ( GS_TCB ptcb1,
GS_TCB ptcb2 
)
related

◆ gk_TCBPSL_GetSCB()

GS_SCB* gk_TCBPSL_GetSCB ( GS_TCB ptcb,
INT32  SignalType 
)
related

◆ gk_TCBPSL_Link()

INT32 gk_TCBPSL_Link ( GS_TCB ptcb,
GS_SCB psignal 
)
related

◆ gk_TCBPSL_Unlink()

INT32 gk_TCBPSL_Unlink ( GS_TCB ptcb,
GS_SCB psignal 
)
related

◆ gk_TCBRDYL_Link()

INT32 gk_TCBRDYL_Link ( GS_TCB ptcb)
related

◆ gk_TCBRDYL_Unlink()

INT32 gk_TCBRDYL_Unlink ( GS_TCB ptcb)
related

◆ gk_TCBRUNL_Link()

INT32 gk_TCBRUNL_Link ( GS_TCB ptcb)
related

◆ gk_TCBRUNL_Unlink()

INT32 gk_TCBRUNL_Unlink ( GS_TCB ptcb)
related

◆ gk_TCBWL_Link()

INT32 gk_TCBWL_Link ( GS_TCB ptcb,
unsigned int  state 
)
related

◆ gk_TCBWL_Unlink()

INT32 gk_TCBWL_Unlink ( GS_TCB ptcb)
related

◆ gk_TIME_CALLBACK()

void gk_TIME_CALLBACK ( GS_ECB event)
related

◆ grtos_irq_entry()

void grtos_irq_entry ( void  )

◆ GRTOS_Start_Task()

void GRTOS_Start_Task ( void  )

◆ GRTOS_Suspend_Task()

void GRTOS_Suspend_Task ( void  )

◆ GRTOS_Task_GetPendingSCB()

void GRTOS_Task_GetPendingSCB ( void  )
related

◆ gu_Clock()

gt_tm gu_Clock ( gt_time  gtime)
related

◆ gu_Convert_Time()

gt_time gu_Convert_Time ( INT32  days,
INT32  hours,
INT32  minutes,
INT32  seconds,
INT32  ms 
)
related

User functions for system status and control

◆ gu_Get_CPU_ID()

int gu_Get_CPU_ID ( void  )
related

Function Headers for user usage

◆ gu_Get_Default_Task_List()

INT32 gu_Get_Default_Task_List ( void  )
related

◆ gu_Get_Default_Task_Type()

INT32 gu_Get_Default_Task_Type ( void  )
related

◆ gu_get_frozen_threshold()

gt_time gu_get_frozen_threshold ( void  )
related

◆ gu_get_irq_status()

INT32 gu_get_irq_status ( void  )
related

◆ gu_get_mutex_time()

gt_time gu_get_mutex_time ( void  )
related

◆ gu_Get_Next_Occurrence_Time()

gt_time gu_Get_Next_Occurrence_Time ( void  )
related

◆ gu_get_now()

gt_time gu_get_now ( void  )
related

◆ gu_get_reserved_mutex_processor()

INT32 gu_get_reserved_mutex_processor ( void  )

◆ gu_GetTask()

void* gu_GetTask ( void *  TaskCode,
void *  p_arg,
void *  StkBotton,
unsigned int  StkSize 
)
related

Task related functions

◆ gu_Set_Default_Task_List()

INT32 gu_Set_Default_Task_List ( GS_LCB list)
related

◆ gu_Set_Default_Task_Period()

void gu_Set_Default_Task_Period ( INT32  hours,
INT32  minutes,
INT32  seconds,
INT32  ms 
)
related

◆ gu_Set_Default_Task_Priority()

void gu_Set_Default_Task_Priority ( INT32  level,
INT32  priority 
)
related

◆ gu_Set_Default_Task_Type()

INT32 gu_Set_Default_Task_Type ( unsigned int  type)

Default setting functions

◆ gu_SetTaskAbortwhenDeadline()

INT32 gu_SetTaskAbortwhenDeadline ( struct gs_tcb ptcb,
unsigned int  abort_when_deadline 
)
related

◆ gu_SetTaskDeadline()

INT32 gu_SetTaskDeadline ( struct gs_tcb ptcb,
unsigned int  hours,
unsigned int  minutes,
unsigned int  seconds,
unsigned int  ms 
)
related

◆ gu_SetTaskISR()

INT32 gu_SetTaskISR ( struct gs_tcb ptcb,
unsigned int  irq_nbr 
)
related

◆ gu_SetTaskList()

INT32 gu_SetTaskList ( struct gs_tcb ptcb,
struct gs_lcb plcb 
)
related

◆ gu_SetTaskPeriod()

INT32 gu_SetTaskPeriod ( struct gs_tcb ptcb,
unsigned int  hours,
unsigned int  minutes,
unsigned int  seconds,
unsigned int  ms 
)
related

◆ gu_SetTaskReadyPriority()

INT32 gu_SetTaskReadyPriority ( struct gs_tcb ptcb,
long long  priority 
)
related

◆ gu_SetTaskRunPriority()

INT32 gu_SetTaskRunPriority ( struct gs_tcb ptcb,
long long  priority 
)
related

◆ gu_SetTaskType()

INT32 gu_SetTaskType ( struct gs_tcb ptcb,
unsigned int  type 
)
related

◆ gu_signal_create()

GS_SCB* gu_signal_create ( INT32  Type,
INT32  Priority,
void *  pxcb,
void *  Signal_Code,
void *  Signal_Arg 
)
related

Signal related functions

◆ gu_signal_destroy()

INT32 gu_signal_destroy ( GS_SCB pscb)
related

◆ gu_StartTaskwithOffset()

INT32 gu_StartTaskwithOffset ( struct gs_tcb ptcb,
unsigned int  hours,
unsigned int  minutes,
unsigned int  seconds,
unsigned int  ms 
)
related

◆ gu_TASK_IS_BLOCKED()

INT32 gu_TASK_IS_BLOCKED ( GS_TCB ptcb)
related

◆ gu_TASK_Kill()

INT32 gu_TASK_Kill ( GS_TCB ptcb)
related

◆ gu_TASK_RESUME()

INT32 gu_TASK_RESUME ( GS_TCB ptcb)
related

◆ gu_TASK_Sleep()

INT32 gu_TASK_Sleep ( INT32  hours,
INT32  minutes,
INT32  seconds,
INT32  ms 
)
related

◆ gu_TASK_Sleep_Time()

INT32 gu_TASK_Sleep_Time ( gt_time  ticks)
related

◆ gu_TASK_SUSPEND()

INT32 gu_TASK_SUSPEND ( GS_TCB ptcb)
related

◆ IsAListorNull()

INT32 IsAListorNull ( GS_LCB plcb)

Definition at line 174 of file monitor.c.

◆ LCB_IsValid()

INT32 LCB_IsValid ( GS_LCB plcb)

Definition at line 167 of file monitor.c.

◆ PCB_IsValid()

INT32 PCB_IsValid ( GS_PCB ppcb)

Definition at line 83 of file monitor.c.

◆ RCB_IsValid()

INT32 RCB_IsValid ( void *  prcb)
related

◆ RRDS_IsValid()

INT32 RRDS_IsValid ( GS_RRDS prrds)
related

◆ SCB_IsValid()

INT32 SCB_IsValid ( GS_SCB pscb)
related

◆ TCB_IsValid()

INT32 TCB_IsValid ( GS_TCB ptcb)

Returns G_TRUE if points to a TCB

Parameters
ptcbpointer to ECB structure to check
Returns
G_TRUE if pointer to ECB, G_FALSE otherwise

Definition at line 76 of file monitor.c.

◆ TCBState_Valid()

INT32 TCBState_Valid ( unsigned int  tcbstate)

Definition at line 182 of file monitor.c.

◆ TCBType_Valid()

INT32 TCBType_Valid ( unsigned int  tcbtype)

Definition at line 193 of file monitor.c.

Variable Documentation

◆ fpuart

FILE* fpuart[G_NUMBER_OF_PCB]

◆ G_DEBUG_SAMPLE_BEGIN_ENABLE

volatile int G_DEBUG_SAMPLE_BEGIN_ENABLE

◆ G_DEBUG_SAMPLE_END_ENABLE

volatile int G_DEBUG_SAMPLE_END_ENABLE

◆ G_IRQ_ENABLED

volatile int G_IRQ_ENABLED

◆ G_IRQ_PENDING

volatile int G_IRQ_PENDING

◆ g_kcb

GS_KCB g_kcb

◆ G_Running

volatile INT32 G_Running

◆ G_SCB_ARG

volatile INT32 G_SCB_ARG

◆ G_SCB_CODE

volatile INT32 G_SCB_CODE

◆ G_SCB_PENDING

volatile INT32 G_SCB_PENDING

◆ G_TASK_LCB_DEFAULT

volatile GS_LCB* G_TASK_LCB_DEFAULT

◆ G_TASK_PERIOD_DEFAULT

volatile INT64 G_TASK_PERIOD_DEFAULT

◆ G_TASK_PRIORITY_DEFAULT

volatile INT64 G_TASK_PRIORITY_DEFAULT

◆ G_TASK_TYPE_DEFAULT

volatile INT32 G_TASK_TYPE_DEFAULT

◆ G_TCB_CURRENT

volatile GS_STK G_TCB_CURRENT

◆ GRTOS_InterruptDisableRegisterAddress

volatile INT32 GRTOS_InterruptDisableRegisterAddress

◆ GRTOS_InterruptEnableRegisterAddress

volatile INT32 GRTOS_InterruptEnableRegisterAddress

◆ GRTOS_MutexReleaseRegisterAddress

volatile INT32 GRTOS_MutexReleaseRegisterAddress

◆ GRTOS_MutexRequestRegisterAddress

volatile INT32 GRTOS_MutexRequestRegisterAddress

◆ GRTOS_S_PROCESSOR1_IRQ

volatile int GRTOS_S_PROCESSOR1_IRQ

◆ gs_addressof_G_PCBTbl

volatile void* gs_addressof_G_PCBTbl

◆ gs_offsetof_PCB_EXECTCB

volatile INT32 gs_offsetof_PCB_EXECTCB

◆ gs_offsetof_PCB_IDLETCB

volatile INT32 gs_offsetof_PCB_IDLETCB

◆ gs_offsetof_TCB_StackPointer

volatile INT32 gs_offsetof_TCB_StackPointer

◆ gs_sizeof_G_PCBTbl

volatile INT32 gs_sizeof_G_PCBTbl

◆ queue

struct T_QUEUE_RESOURCE queue