RTEMS CPU Kit with SuperCore  4.11.3
Files | Data Structures | Macros | Typedefs | Functions | Variables
Classic Timer Implementation
Collaboration diagram for Classic Timer Implementation:

Files

file  timerimpl.h
 Classic Timer Implementation.
 

Data Structures

struct  Timer_server_Watchdogs
 
struct  Timer_server_Control
 

Macros

#define RTEMS_TIMER_EXTERN   extern
 Instantiate RTEMS Timer Data. More...
 

Typedefs

typedef struct Timer_server_Control Timer_server_Control
 
typedef void(* Timer_server_Method) (Timer_server_Control *timer_server, Timer_Control *timer)
 Method used for task based timers.
 

Functions

void _Timer_Manager_initialization (void)
 Timer Manager Initialization. More...
 
RTEMS_INLINE_ROUTINE Timer_Control_Timer_Allocate (void)
 Timer_Allocate. More...
 
RTEMS_INLINE_ROUTINE void _Timer_Free (Timer_Control *the_timer)
 Timer_Free. More...
 
RTEMS_INLINE_ROUTINE Timer_Control_Timer_Get (Objects_Id id, Objects_Locations *location)
 Timer_Get. More...
 
RTEMS_INLINE_ROUTINE bool _Timer_Is_interval_class (Timer_Classes the_class)
 Timer_Is_interval_class. More...
 
RTEMS_INLINE_ROUTINE bool _Timer_Is_timer_of_day_class (Timer_Classes the_class)
 Timer_Is_time_of_day_class. More...
 
RTEMS_INLINE_ROUTINE bool _Timer_Is_dormant_class (Timer_Classes the_class)
 Timer_Is_dormant_class. More...
 
void _Timer_Cancel (Timer_Control *the_timer)
 

Variables

RTEMS_TIMER_EXTERN Timer_server_Control *volatile _Timer_server
 Pointer to default timer server control block. More...
 
RTEMS_TIMER_EXTERN Objects_Information _Timer_Information
 The following defines the information control block used to manage this class of objects.
 

Detailed Description

Macro Definition Documentation

◆ RTEMS_TIMER_EXTERN

#define RTEMS_TIMER_EXTERN   extern

Instantiate RTEMS Timer Data.

This constant is defined to extern most of the time when using this header file. However by defining it to nothing, the data declared in this header file can be instantiated. This is done in a single per manager file.

Function Documentation

◆ _Timer_Allocate()

RTEMS_INLINE_ROUTINE Timer_Control* _Timer_Allocate ( void  )

Timer_Allocate.

This function allocates a timer control block from the inactive chain of free timer control blocks.

References _Objects_Allocate().

Referenced by rtems_timer_create().

◆ _Timer_Free()

RTEMS_INLINE_ROUTINE void _Timer_Free ( Timer_Control the_timer)

Timer_Free.

This routine frees a timer control block to the inactive chain of free timer control blocks.

References _Objects_Free(), and Timer_Control::Object.

◆ _Timer_Get()

RTEMS_INLINE_ROUTINE Timer_Control* _Timer_Get ( Objects_Id  id,
Objects_Locations location 
)

Timer_Get.

This function maps timer IDs to timer control blocks. If ID corresponds to a local timer, then it returns the timer control pointer which maps to ID and location is set to OBJECTS_LOCAL. Otherwise, location is set to OBJECTS_ERROR and the returned value is undefined.

References _Objects_Get().

Referenced by rtems_timer_cancel(), rtems_timer_delete(), rtems_timer_fire_after(), rtems_timer_get_information(), and rtems_timer_server_fire_after().

◆ _Timer_Is_dormant_class()

RTEMS_INLINE_ROUTINE bool _Timer_Is_dormant_class ( Timer_Classes  the_class)

Timer_Is_dormant_class.

This function returns TRUE if the class is that of a DORMANT timer, and FALSE otherwise.

References TIMER_DORMANT.

◆ _Timer_Is_interval_class()

RTEMS_INLINE_ROUTINE bool _Timer_Is_interval_class ( Timer_Classes  the_class)

Timer_Is_interval_class.

This function returns TRUE if the class is that of an INTERVAL timer, and FALSE otherwise.

References TIMER_INTERVAL, and TIMER_INTERVAL_ON_TASK.

◆ _Timer_Is_timer_of_day_class()

RTEMS_INLINE_ROUTINE bool _Timer_Is_timer_of_day_class ( Timer_Classes  the_class)

Timer_Is_time_of_day_class.

This function returns TRUE if the class is that of an INTERVAL timer, and FALSE otherwise.

References TIMER_TIME_OF_DAY.

◆ _Timer_Manager_initialization()

void _Timer_Manager_initialization ( void  )

Timer Manager Initialization.

This routine performs the initialization necessary for this manager.

References _Objects_Initialize_information(), and _Timer_Information.

Variable Documentation

◆ _Timer_server

RTEMS_TIMER_EXTERN Timer_server_Control* volatile _Timer_server

Pointer to default timer server control block.

This value is NULL when the default timer server is not initialized.

Referenced by rtems_timer_server_fire_after(), and rtems_timer_server_fire_when().