RTEMS CPU Kit with SuperCore  4.11.3
Modules | Files | Data Structures | Macros | Typedefs | Functions
RTEMS Classic API

RTEMS Classic API. More...

Collaboration diagram for RTEMS Classic API:

Modules

 Configuration
 This encapsulates functionality related to the application's configuration of the Classic API including the maximum number of each class of objects.
 
 ASR Support
 Asynchronous Signal Handler.
 
 Attributes
 Object Attributes Handler.
 
 Barriers
 Classic API Barrier Manager.
 
 Cache
 The Cache Manager provides functions to perform maintenance operations for data and instruction caches.
 
 Clocks
 Clock Manager API.
 
 Dual Ported Memory
 Dual Ported Memory Manager.
 
 Events
 Information Related to Event Manager.
 
 Event MP Support
 Event Manager MP Support.
 
 Interrupts
 Header file for Interrupt Manager.
 
 Message Queues
 Message Queue Manager.
 
 Modes
 RTEMS thread and RTEMS_ASR modes.
 
 Multiprocessing
 Multiprocessing Manager.
 
 Object Class Information
 Classic API interfaces to Object Services.
 
 Classic API Options
 Options Available on Many Directives.
 
 Partitions
 Partition Manager.
 
 Rate Monotonic Scheduler
 Classic API Rate Monotonic Manager.
 
 Regions
 Region Manager.
 
 RTEMS API Support
 RTEMS API Support.
 
 Semaphores
 This encapsulates functionality related to the Classic API Semaphore Manager.
 
 Semaphore MP Support
 Semaphore Manager MP Support.
 
 Signals
 Directives provided are:
 
 SMP Services
 This encapsulates functionality which is useful for SMP applications.
 
 Status Codes
 Status Codes Returned from Executive Directives.
 
 Workspace
 Classic API support.
 
 Task MP Support
 Task Manager MP Support.
 
 Tasks
 RTEMS Tasks.
 
 Timers
 Instantiate RTEMS Timer Data.
 
 Types
 Types used by Classic API.
 
 Chains
 Chain API.
 
 Free-Running Counter and Busy Wait Delay
 Free-running counter and busy wait delay functions.
 
 User Extensions
 The User Extensions Manager allows the application developer to augment the executive by allowing them to supply extension routines which are invoked at critical system events.
 
 Fatal
 The Fatal Manager provides functions for fatal system states and or irrecoverable errors.
 
 Input/Output
 
 Red-Black Tree Heap
 Red-Black Tree Heap API.
 
 Red-Black Trees
 A Red-Black Tree container.
 
 Timespec
 Timespec API.
 

Files

file  taskgetnote.c
 RTEMS Get Task Node.
 
file  workspacegreedy.c
 Greedy Allocate that Empties the Workspace and Free.
 
file  exinit.c
 Initialization Manager.
 
file  getversionstring.c
 Get the RTEMS Version as a String.
 
file  posixapi.c
 Initialize POSIX API.
 
file  rtemsapi.c
 Initializes the RTEMS API.
 

Data Structures

struct  rtems_time_of_day
 Data structure to manage and manipulate calendar time. More...
 

Macros

#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms)   ((uint32_t)(_ms) * 1000UL)
 Returns the number of micro seconds for the milli seconds value _ms.
 
#define RTEMS_MILLISECONDS_TO_TICKS(_ms)
 Returns the number of ticks for the milli seconds value _ms. More...
 
#define RTEMS_MICROSECONDS_TO_TICKS(_us)   ((_us) / rtems_configuration_get_microseconds_per_tick())
 Returns the number of ticks for the micro seconds value _us.
 
#define RTEMS_ID_NONE   OBJECTS_ID_NONE
 Invalid object identifier value. More...
 
#define RTEMS_HAS_HARDWARE_FP   CPU_HARDWARE_FP
 Indicates whether this processor variant has hardware floating point support.
 
#define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
 Indicates that a search is across all nodes.
 
#define RTEMS_SEARCH_OTHER_NODES   OBJECTS_SEARCH_OTHER_NODES
 Indicates that a search is across all nodes except the one the call is made from.
 
#define RTEMS_SEARCH_LOCAL_NODE   OBJECTS_SEARCH_LOCAL_NODE
 Indicates that the search is to be restricted to the local node.
 
#define RTEMS_WHO_AM_I   OBJECTS_WHO_AM_I
 Indicates that the caller wants to obtain the name of the currently executing thread. More...
 
#define RTEMS_OBJECT_ID_INITIAL_INDEX   OBJECTS_ID_INITIAL_INDEX
 Lowest valid index value for the index portion of an object identifier.
 
#define RTEMS_OBJECT_ID_FINAL_INDEX   OBJECTS_ID_FINAL_INDEX
 Maximum valid index value for the index portion of an object identifier.
 
#define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node)   OBJECTS_ID_INITIAL(_api, _class, _node)
 Returns the identifier of the object with the lowest valid index value. More...
 
#define RTEMS_OBJECT_ID_FINAL   OBJECTS_ID_FINAL
 Maximum valid object identifier.
 
#define RTEMS_MINIMUM_STACK_SIZE   STACK_MINIMUM_SIZE
 Minimum stack size which every thread must exceed. More...
 
#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE   0
 Specifies that the task should be created with the configured minimum stack size. More...
 
#define RTEMS_NO_TIMEOUT   WATCHDOG_NO_TIMEOUT
 Constant for indefinite wait. More...
 
#define RTEMS_MINIMUM_PACKET_SIZE   MP_PACKET_MINIMUM_PACKET_SIZE
 An MPCI must support packets of at least this size.
 
#define RTEMS_MINIMUN_HETERO_CONVERSION   MP_PACKET_MINIMUN_HETERO_CONVERSION
 Defines the count of uint32_t numbers in a packet which must be converted to native format in a heterogeneous system. More...
 

Typedefs

typedef uint32_t rtems_name
 Classic API object name type. More...
 
typedef Objects_Id rtems_id
 Used to manage and manipulate RTEMS object identifiers.
 
typedef Context_Control rtems_context
 Public name for task context area.
 
typedef Context_Control_fp rtems_context_fp
 Public name for task floating point context area.
 
typedef CPU_Interrupt_frame rtems_interrupt_frame
 Defines the format of the interrupt stack frame as it appears to a user ISR. More...
 
typedef Heap_Information_block region_information_block
 Information structure returned by the Heap Handler via the Region Manager.
 
typedef Watchdog_Interval rtems_interval
 Used to manage and manipulate intervals specified by clock ticks.
 
typedef struct timespec rtems_thread_cpu_usage_t
 Represents the CPU usage per thread. More...
 
typedef Modes_Control rtems_mode
 Task mode type.
 

Functions

RTEMS_INLINE_ROUTINE bool rtems_is_name_valid (rtems_name name)
 Returns true if the name is valid, and false otherwise.
 
RTEMS_INLINE_ROUTINE void rtems_name_to_characters (rtems_name name, char *c1, char *c2, char *c3, char *c4)
 Breaks the object name into the four component characters c1, c2, c3, and c4.
 
const char * rtems_get_version_string (void)
 Returns the pointer to the RTEMS version string.
 

Detailed Description

RTEMS Classic API.

RTEMS Classic API definitions and modules.

the Public Interface to the RTEMS Classic API

Macro Definition Documentation

◆ RTEMS_CONFIGURED_MINIMUM_STACK_SIZE

#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE   0

Specifies that the task should be created with the configured minimum stack size.

Using this constant when specifying the task stack size indicates that this task is to be created with a stack size of the minimum stack size that was configured by the application. If not explicitly configured by the application, the default configured minimum stack size is the processor dependent value RTEMS_MINIMUM_STACK_SIZE. Since this uses the configured minimum stack size value, you may get a stack size that is smaller or larger than the recommended minimum. This can be used to provide large stacks for all tasks on complex applications or small stacks on applications that are trying to conserve memory.

◆ RTEMS_ID_NONE

#define RTEMS_ID_NONE   OBJECTS_ID_NONE

Invalid object identifier value.

No object can have this identifier value.

Referenced by rtems_telnetd_initialize().

◆ RTEMS_MILLISECONDS_TO_TICKS

#define RTEMS_MILLISECONDS_TO_TICKS (   _ms)
Value:
rtems_configuration_get_microseconds_per_tick())
#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms)
Returns the number of micro seconds for the milli seconds value _ms.
Definition: support.h:36

Returns the number of ticks for the milli seconds value _ms.

◆ RTEMS_MINIMUM_STACK_SIZE

#define RTEMS_MINIMUM_STACK_SIZE   STACK_MINIMUM_SIZE

Minimum stack size which every thread must exceed.

It is the minimum stack size recommended for use on this processor. This value is selected by the RTEMS developers conservatively to minimize the risk of blown stacks for most user applications. Using this constant when specifying the task stack size, indicates that the stack size will be at least RTEMS_MINIMUM_STACK_SIZE bytes in size. If the user configured minimum stack size is larger than the recommended minimum, then it will be used.

◆ RTEMS_MINIMUN_HETERO_CONVERSION

#define RTEMS_MINIMUN_HETERO_CONVERSION   MP_PACKET_MINIMUN_HETERO_CONVERSION

Defines the count of uint32_t numbers in a packet which must be converted to native format in a heterogeneous system.

In packets longer than this value, some of the extra data may be a user message buffer which is not automatically endian swapped.

◆ RTEMS_NO_TIMEOUT

#define RTEMS_NO_TIMEOUT   WATCHDOG_NO_TIMEOUT

Constant for indefinite wait.

This is actually an illegal interval value.

Referenced by i2c_bus_obtain(), rtems_termios_device_close(), rtems_termios_device_open(), and rtems_termios_device_remove().

◆ RTEMS_OBJECT_ID_INITIAL

#define RTEMS_OBJECT_ID_INITIAL (   _api,
  _class,
  _node 
)    OBJECTS_ID_INITIAL(_api, _class, _node)

Returns the identifier of the object with the lowest valid index value.

The object is specified by the API _api, the object class _class and the node _node where the object resides.

◆ RTEMS_WHO_AM_I

#define RTEMS_WHO_AM_I   OBJECTS_WHO_AM_I

Indicates that the caller wants to obtain the name of the currently executing thread.

This constant is only meaningful when obtaining the name of a task.

Typedef Documentation

◆ rtems_interrupt_frame

Defines the format of the interrupt stack frame as it appears to a user ISR.

This data structure may not be defined on all ports

◆ rtems_name

typedef uint32_t rtems_name

Classic API object name type.

Contains the name of a Classic API object. It is an unsigned 32-bit integer which can be treated as a numeric value or initialized using rtems_build_name() to contain four ASCII characters.

◆ rtems_thread_cpu_usage_t

typedef struct timespec rtems_thread_cpu_usage_t

Represents the CPU usage per thread.

When using nanoseconds granularity timing, RTEMS may internally use a variety of representations.