Changeset 83ca9f0a in rtems


Ignore:
Timestamp:
Aug 2, 2018, 12:52:12 PM (12 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
42f9963d
Parents:
27bbc05
git-author:
Sebastian Huber <sebastian.huber@…> (08/02/18 12:52:12)
git-committer:
Sebastian Huber <sebastian.huber@…> (08/02/18 13:33:01)
Message:

rtems: Relax partition buffer area alignment

The partition buffer area alignment required by rtems_partition_create()
was too strict since it was checked via _Addresses_Is_aligned() which
uses CPU_ALIGNMENT. The CPU_ALIGNMENT must take long double and vector
data type alignment requirements into account. For the partition
maintenance only pointer alignment is required (Chain_Node, which
consists of two pointers). The user should ensure that its partition
buffer area is suitable for the items it wants to manage. The user
should not be burdened to provide buffers with the maximum architecture
alignment, e.g. why need a 16 byte aligned buffer if you want to manage
items with 4 byte integers only?

Update #3482.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/rtems/src/partcreate.c

    r27bbc05 r83ca9f0a  
    8080    return RTEMS_INVALID_SIZE;
    8181
    82   if ( !_Addresses_Is_aligned( starting_address ) )
    83      return RTEMS_INVALID_ADDRESS;
     82  if ( !_Partition_Is_buffer_area_aligned( starting_address ) )
     83    return RTEMS_INVALID_ADDRESS;
    8484
    8585#if defined(RTEMS_MULTIPROCESSING)
Note: See TracChangeset for help on using the changeset viewer.