Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #endif
- #include <sys/param.h>
- #include <stdio.h>
- #include <inttypes.h>
- #include <rtems.h>
- #include <rtems/libcsupport.h>
- #include <rtems/score/schedulersmpimpl.h>
- #include <rtems/score/smpbarrier.h>
- #include <rtems/score/smplock.h>
- #include "tmacros.h"
- const char rtems_test_name[] = "SMPPESTI 8";
- #define CPU_COUNT 3
- #define MRSP_COUNT 4
- static int flag;
- typedef struct
- {
- rtems_id main_task_id;
- rtems_id scheduler_ids[CPU_COUNT];
- rtems_id mrsp_id;
- rtems_id task_id[3];
- } test_context;
- static test_context test_instance;
- static void Init(rtems_task_argument arg)
- {
- TEST_BEGIN();
- test_context *ctx = &test_instance;
- uint32_t cpu_count = rtems_get_processor_count();
- rtems_status_code sc = rtems_semaphore_create(
- rtems_build_name('M', 'R', 'S', 'P'),
- 1,
- RTEMS_MULTIPROCESSOR_RESOURCE_SHARING | RTEMS_BINARY_SEMAPHORE,
- 9,
- &ctx->mrsp_id);
- rtems_test_assert(sc == RTEMS_SUCCESSFUL);
- printf("TASKS PRIORITY = 4\n");
- printf("RESOURCE PRIORITY = 9\n");
- printf("OBTAINING THE RESOURCE\n");
- sc = rtems_semaphore_obtain(ctx->mrsp_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
- printf("EXPECTED RESULT = 19 (INVALID PRIORITY).\nOBTAINED = %d\n", sc);
- rtems_test_assert(sc == 19);
- TEST_END();
- rtems_test_exit(0);
- }
- #define CONFIGURE_MICROSECONDS_PER_TICK 1000
- #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
- #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
- #define CONFIGURE_MAXIMUM_TASKS 1
- #define CONFIGURE_MAXIMUM_SEMAPHORES 1
- #define CONFIGURE_MAXIMUM_MRSP_SEMAPHORES 1
- #define CONFIGURE_MAXIMUM_PROCESSORS CPU_COUNT
- #define CONFIGURE_INIT_TASK_NAME rtems_build_name('M', 'A', 'I', 'N')
- #define CONFIGURE_INIT_TASK_PRIORITY 4
- #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
- #define CONFIGURE_INIT
- #include <rtems/confdefs.h>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement