RTEMS: Classic Partition Manager Implementation

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions | Variables
Classic Partition Manager Implementation
Internal » Classic

## Files
file | partdata.h
| Classic Partition Manager Data Structures.
file | partimpl.h
| Classic Partition Manager Implementation.

## Data Structures
struct | Partition_Control

## Macros
#define | PARTITION_INFORMATION_DEFINE(max)
| Macro to define the objects information for the Classic Partition objects.

## Functions
RTEMS_INLINE_ROUTINE void * | _Partition_Allocate_buffer (Partition_Control *the_partition)
| Allocate a buffer from the_partition.
RTEMS_INLINE_ROUTINE void | _Partition_Free_buffer (Partition_Control *the_partition, Chain_Node *the_buffer)
| Frees the_buffer to the_partition.
RTEMS_INLINE_ROUTINE bool | _Partition_Is_buffer_on_boundary (void *the_buffer, Partition_Control *the_partition)
| Checks whether is on a valid buffer boundary for the_partition.
RTEMS_INLINE_ROUTINE bool | _Partition_Is_buffer_valid (Chain_Node *the_buffer, Partition_Control *the_partition)
| Checks whether the_buffer is a valid buffer from the_partition.
RTEMS_INLINE_ROUTINE bool | _Partition_Is_buffer_size_aligned (uint32_t buffer_size)
RTEMS_INLINE_ROUTINE bool | _Partition_Is_buffer_area_aligned (const void *starting_address)
RTEMS_INLINE_ROUTINE Partition_Control * | _Partition_Allocate (void)
| Allocates a partition control block from the inactive chain of free partition control blocks.
RTEMS_INLINE_ROUTINE void | _Partition_Initialize (Partition_Control *the_partition, void *starting_address, uint32_t length, uint32_t buffer_size, rtems_attribute attribute_set)
RTEMS_INLINE_ROUTINE void | _Partition_Destroy (Partition_Control *the_partition)
RTEMS_INLINE_ROUTINE void | _Partition_Free (Partition_Control *the_partition)
| Frees a partition control block to the inactive chain of free partition control blocks.
RTEMS_INLINE_ROUTINE Partition_Control * | _Partition_Get (Objects_Id id, ISR_lock_Context *lock_context)
RTEMS_INLINE_ROUTINE void | _Partition_Acquire_critical (Partition_Control *the_partition, ISR_lock_Context *lock_context)
RTEMS_INLINE_ROUTINE void | _Partition_Release (Partition_Control *the_partition, ISR_lock_Context *lock_context)

## Variables
Objects_Information | _Partition_Information
| The Classic Partition objects information.

## Detailed Description

## Macro Definition Documentation

## ◆ PARTITION_INFORMATION_DEFINE

#define PARTITION_INFORMATION_DEFINE | ( |  | max | ) |

Value:
OBJECTS_INFORMATION_DEFINE( \
_Partition, \
OBJECTS_CLASSIC_API, \
OBJECTS_RTEMS_PARTITIONS, \
Partition_Control, \
max, \
OBJECTS_NO_STRING_NAME, \
_Partition_MP_Send_extract_proxy \
)
OBJECTS_NO_STRING_NAME
#define OBJECTS_NO_STRING_NAME
Constant for the object information string name length to indicate that this object class has no stri...
Definition: objectdata.h:101
OBJECTS_INFORMATION_DEFINE
#define OBJECTS_INFORMATION_DEFINE(name, api, cls, type, max, nl, ex)
Statically initializes an objects information.
Definition: objectdata.h:427
Partition_Control
Definition: partdata.h:37

Macro to define the objects information for the Classic Partition objects.

This macro should only be used by <rtems/confdefs.h>.

Parameters

  max | The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag may be set).

## Function Documentation

## ◆ _Partition_Allocate()

RTEMS_INLINE_ROUTINE Partition_Control * _Partition_Allocate | ( | void |  | ) |

Allocates a partition control block from the inactive chain of free partition control blocks.

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

## ◆ _Partition_Allocate_buffer()

RTEMS_INLINE_ROUTINE void * _Partition_Allocate_buffer | ( | Partition_Control * | the_partition | ) |

Allocate a buffer from the_partition.

This function attempts to allocate a buffer from the_partition. If successful, it returns the address of the allocated buffer. Otherwise, it returns NULL.

## ◆ _Partition_Free()

RTEMS_INLINE_ROUTINE void _Partition_Free | ( | Partition_Control * | the_partition | ) |

Frees a partition control block to the inactive chain of free partition control blocks.

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

## ◆ _Partition_Free_buffer()

RTEMS_INLINE_ROUTINE void _Partition_Free_buffer | ( | Partition_Control * | the_partition,
|  | Chain_Node * | the_buffer
| ) |  |

Frees the_buffer to the_partition.

This routine frees the_buffer to the_partition.

## ◆ _Partition_Is_buffer_on_boundary()

RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_on_boundary | ( | void * | the_buffer,
|  | Partition_Control * | the_partition
| ) |  |

Checks whether is on a valid buffer boundary for the_partition.

This function returns TRUE if the_buffer is on a valid buffer boundary for the_partition, and FALSE otherwise.

## ◆ _Partition_Is_buffer_valid()

RTEMS_INLINE_ROUTINE bool _Partition_Is_buffer_valid | ( | Chain_Node * | the_buffer,
|  | Partition_Control * | the_partition
| ) |  |

Checks whether the_buffer is a valid buffer from the_partition.

This function returns TRUE if the_buffer is a valid buffer from the_partition, otherwise FALSE is returned.