2 #include "libtest_misc_internal.h"
8 /****************************************************************************/
9 void *libtest_misc_aligned_malloc( lfds710_pal_uint_t size, lfds710_pal_uint_t align_in_bytes )
18 // TRD : size can be any value in its range
19 // TRD : align_in_bytes can be any value in its range
21 /* TRD : helper function to provide aligned allocations
25 original_memory = memory = libtest_pal_malloc( size + sizeof(void *) + align_in_bytes );
29 memory = (void **) memory + 1;
30 offset = align_in_bytes - (lfds710_pal_uint_t) memory % align_in_bytes;
31 memory = (char unsigned *) memory + offset;
32 *( (void **) memory - 1 ) = original_memory;
42 /****************************************************************************/
43 void libtest_misc_aligned_free( void *memory )
45 LFDS710_PAL_ASSERT( memory != NULL );
47 // TRD : the "void *" stored above memory points to the root of the allocation
48 libtest_pal_free( *( (void **) memory - 1 ) );