File indexing completed on 2025-05-11 08:24:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifdef HAVE_CONFIG_H
0030 #include "config.h"
0031 #endif
0032
0033 #include <rtems.h>
0034 #include <tmacros.h>
0035
0036 #include <rtems/score/percpu.h>
0037
0038 const char rtems_test_name[] = "SPSTKALLOC 4";
0039
0040 static int thread_stacks_count = 0;
0041
0042 static rtems_task Init(
0043 rtems_task_argument ignored
0044 )
0045 {
0046 rtems_print_printer_fprintf_putc(&rtems_test_printer);
0047 TEST_BEGIN();
0048 rtems_test_assert(thread_stacks_count == 1);
0049 TEST_END();
0050 rtems_test_exit( 0 );
0051 }
0052
0053 static uint8_t stack_memory[RTEMS_MINIMUM_STACK_SIZE * 4];
0054
0055 static int stack_offset_next;
0056
0057 static void *allocate_helper(size_t size)
0058 {
0059 size_t next;
0060 void *alloc;
0061
0062 next = stack_offset_next + size;
0063 rtems_test_assert( next < sizeof(stack_memory) );
0064
0065 alloc = &stack_memory[stack_offset_next];
0066 stack_offset_next = next;
0067 return alloc;
0068 }
0069
0070 static void *thread_stacks_allocate_for_idle(
0071 uint32_t cpu,
0072 size_t *stack_size
0073 )
0074 {
0075 rtems_test_assert(thread_stacks_count == 0);
0076 thread_stacks_count++;
0077 return allocate_helper(*stack_size);
0078 }
0079
0080
0081
0082
0083
0084
0085 #define CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE thread_stacks_allocate_for_idle
0086
0087
0088
0089 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0090 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0091
0092 #define CONFIGURE_MAXIMUM_TASKS 1
0093
0094 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0095
0096 #define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_FLOATING_POINT
0097
0098 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0099
0100 #define CONFIGURE_INIT
0101 #include <rtems/confdefs.h>