RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Modules | Files | Data Structures | Macros | Typedefs | Enumerations | Variables
Per-CPU Information

This group contains the implementation of the per-CPU information. More...

Modules

 Flexible Per-CPU Data
 This group contains the implementation to support flexible per-CPU data.
 

Files

file  percpu.h
 This header file provides the interfaces of the Per-CPU Information.
 
file  percpu.c
 This source file contains the uniprocessor definition of _Per_CPU_Information and some static assertions.
 
file  percpuasm.c
 This source file contains the static assertions for defines used in assembler files.
 
file  percpujobs.c
 This source file contains the implementation of _Per_CPU_Add_job(), _Per_CPU_Perform_jobs(), _Per_CPU_Submit_job(), and _Per_CPU_Wait_for_job().
 
file  percpustatewait.c
 This source file contains the implementation of _Per_CPU_State_wait_for_non_initial_state().
 

Data Structures

struct  Per_CPU_Stats
 Per-CPU statistics. More...
 
struct  Per_CPU_Control
 Per CPU Core Structure. More...
 
struct  Per_CPU_Control_envelope
 

Macros

#define _Per_CPU_Acquire(cpu, lock_context)    _ISR_lock_Acquire( &( cpu )->Lock, lock_context )
 
#define _Per_CPU_Release(cpu, lock_context)    _ISR_lock_Release( &( cpu )->Lock, lock_context )
 
#define _Per_CPU_Get_snapshot()    ( &_Per_CPU_Information[ _SMP_Get_current_processor() ].per_cpu )
 
#define _Per_CPU_Get()   _Per_CPU_Get_snapshot()
 
#define _Thread_Dispatch_disable_level    _Per_CPU_Get()->thread_dispatch_disable_level
 
#define _Thread_Heir    _Per_CPU_Get()->heir
 
#define _Thread_Executing    _Per_CPU_Get_executing( _Per_CPU_Get() )
 
#define _ISR_Nest_level    _Per_CPU_Get()->isr_nest_level
 
#define _CPU_Interrupt_stack_low    _Per_CPU_Get()->interrupt_stack_low
 
#define _CPU_Interrupt_stack_high    _Per_CPU_Get()->interrupt_stack_high
 
#define _Thread_Dispatch_necessary    _Per_CPU_Get()->dispatch_necessary
 

Typedefs

typedef struct Per_CPU_Control Per_CPU_Control
 Per CPU Core Structure.
 

Enumerations

enum  Per_CPU_Watchdog_index { PER_CPU_WATCHDOG_TICKS , PER_CPU_WATCHDOG_REALTIME , PER_CPU_WATCHDOG_MONOTONIC , PER_CPU_WATCHDOG_COUNT }
 Per-CPU watchdog header index. More...
 

Variables

CPU_STRUCTURE_ALIGNMENT Per_CPU_Control_envelope _Per_CPU_Information []
 Set of Per CPU Core Information.
 

Detailed Description

This group contains the implementation of the per-CPU information.

The per-CPU information encapsulates state which is maintained for each configured processor in the system. There will be one instance of a Per_CPU_Control in the _Per_CPU_Information table for each configured processor in the system.

Typedef Documentation

◆ Per_CPU_Control

Per CPU Core Structure.

This structure is used to hold per core state information.

Enumeration Type Documentation

◆ Per_CPU_Watchdog_index

Per-CPU watchdog header index.

Enumerator
PER_CPU_WATCHDOG_TICKS 

Index for tick clock per-CPU watchdog header.

The reference time point for the tick clock is the system start. The clock resolution is one system clock tick. It is used for the system clock tick based time services.

PER_CPU_WATCHDOG_REALTIME 

Index for realtime clock per-CPU watchdog header.

The reference time point for the realtime clock is the POSIX Epoch. The clock resolution is one nanosecond. It is used for the time of day services and the POSIX services using CLOCK_REALTIME.

PER_CPU_WATCHDOG_MONOTONIC 

Index for monotonic clock per-CPU watchdog header.

The reference time point for the monotonic clock is the system start. The clock resolution is one nanosecond. It is used for the POSIX services using CLOCK_MONOTONIC.

PER_CPU_WATCHDOG_COUNT 

Count of per-CPU watchdog headers.

Variable Documentation

◆ _Per_CPU_Information

CPU_STRUCTURE_ALIGNMENT Per_CPU_Control_envelope _Per_CPU_Information[]
extern

Set of Per CPU Core Information.

This is an array of per CPU core information.