mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-24 01:43:07 +08:00
rtembsd: Fix alignment of allocations for 64bit
Alignment on 64bit hardware is strict in comparison to running in an emulator. This resolves an alignment exception when allocating memory on real hardware.
This commit is contained in:
parent
5b50a5181a
commit
0c60fe524e
@ -479,12 +479,13 @@ rtems_bsd_program_alloc(size_t size, void *org_ptr)
|
||||
void *ptr = NULL;
|
||||
size_t size_with_list;
|
||||
size_t size_alligned;
|
||||
size_t alignment = sizeof(void*);
|
||||
|
||||
if (prog_ctrl != NULL) {
|
||||
/* align the end to the next word address */
|
||||
size_alligned = size;
|
||||
if ((size_alligned & 0x3) != 0) {
|
||||
size_alligned = (size_alligned | 0x03) + 1;
|
||||
if ((size_alligned & (alignment - 1)) != 0) {
|
||||
size_alligned = (size_alligned | (alignment - 1)) + 1;
|
||||
}
|
||||
size_with_list = size_alligned +
|
||||
sizeof(struct program_allocmem_item);
|
||||
|
Loading…
x
Reference in New Issue
Block a user