RTEMS: Flexible Per-CPU Data

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Macros | Functions
Flexible Per-CPU Data
Internal » SuperCore » RTEMS Per CPU Information

Flexible Per-CPU Data. More...

## Files
file | percpudata.h
| Definition of custom per-CPU items.

## Macros
#define | PER_CPU_DATA_ITEM_DECLARE(type, item) RTEMS_LINKER_RWSET_ITEM_DECLARE( _Per_CPU_Data, type, item )
| Declares a per-CPU item of the specified type.
#define | PER_CPU_DATA_ITEM(type, item) RTEMS_LINKER_RWSET_ITEM( _Per_CPU_Data, type, item )
| Defines a per-CPU item of the specified type.
#define | PER_CPU_DATA_OFFSET(item)
| Returns the offset of the per-CPU item to the begin of the per-CPU data area.
#define | PER_CPU_DATA_GET_BY_OFFSET(cpu, type, offset)
| Returns a pointer of the specified type to the per-CPU item at the specified offset for the specified processor.
#define | PER_CPU_DATA_GET(cpu, type, item) &_Linker_set__Per_CPU_Data_##item, (void) cpu
| Returns a pointer of the specified type to the specified per-CPU item for the specified processor.

## Functions
| RTEMS_LINKER_RWSET_DECLARE (_Per_CPU_Data, char)

## Detailed Description

Flexible Per-CPU Data.

Provides the definition of custom per-CPU items. The items are collected in a special linker set. During system initialization the content of the linker set is duplicated for all secondary processors using memory allocated from the workspace. The begin and end of the per-CPU data area is cache line aligned (CPU_CACHE_LINE_BYTES).

## Macro Definition Documentation

## ◆ PER_CPU_DATA_GET

#define PER_CPU_DATA_GET | ( |  | cpu,
|  |  | type,
|  |  | item
| ) |  | &_Linker_set__Per_CPU_Data_##item, (void) cpu

Returns a pointer of the specified type to the specified per-CPU item for the specified processor.

Parameters

  cpu | The processor of the item.
  type | The type of the item.
  item | The designator of the item.

## ◆ PER_CPU_DATA_GET_BY_OFFSET

#define PER_CPU_DATA_GET_BY_OFFSET | ( |  | cpu,
|  |  | type,
|  |  | offset
| ) |  |

Value:
(type *) ( (uintptr_t) RTEMS_LINKER_SET_BEGIN( _Per_CPU_Data ) + offset ), \
(void) cpu

Returns a pointer of the specified type to the per-CPU item at the specified offset for the specified processor.

Parameters

  cpu | The processor of the item.
  type | The type of the item.
  offset | The offset of the item.

## ◆ PER_CPU_DATA_ITEM

#define PER_CPU_DATA_ITEM | ( |  | type,
|  |  | item
| ) |  | RTEMS_LINKER_RWSET_ITEM( _Per_CPU_Data, type, item )

Defines a per-CPU item of the specified type.

Parameters

  type | The type of the item.
  item | The designator of the item.

## ◆ PER_CPU_DATA_ITEM_DECLARE

#define PER_CPU_DATA_ITEM_DECLARE | ( |  | type,
|  |  | item
| ) |  | RTEMS_LINKER_RWSET_ITEM_DECLARE( _Per_CPU_Data, type, item )

Declares a per-CPU item of the specified type.

Items declared with this macro have external linkage.

Parameters

  type | The type of the item.
  item | The designator of the item.

## ◆ PER_CPU_DATA_OFFSET

#define PER_CPU_DATA_OFFSET | ( |  | item | ) |

Value:
( (uintptr_t) &_Linker_set__Per_CPU_Data_##item \
- (uintptr_t) RTEMS_LINKER_SET_BEGIN( _Per_CPU_Data ) )

Returns the offset of the per-CPU item to the begin of the per-CPU data area.

Parameters

  item | The designator of the item.