File indexing completed on 2025-05-11 08:24:42
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 <timesys.h>
0034 #include <pthread.h>
0035 #include <sched.h>
0036 #include <rtems/btimer.h>
0037 #include "test_support.h"
0038
0039 const char rtems_test_name[] = "PSXTMTHREAD 04";
0040
0041
0042 void benchmark_pthread_setschedparam(void);
0043 void benchmark_pthread_getschedparam(void);
0044 void *POSIX_Init(void *argument);
0045
0046 void benchmark_pthread_getschedparam(void)
0047 {
0048 uint32_t end_time;
0049 int status;
0050 int policy;
0051 struct sched_param param;
0052
0053 benchmark_timer_initialize();
0054 status = pthread_getschedparam( pthread_self(), &policy, ¶m );
0055 end_time = benchmark_timer_read();
0056 rtems_test_assert( status == 0 );
0057
0058 put_time(
0059 "pthread_getschedparam: only case",
0060 end_time,
0061 1,
0062 0,
0063 0
0064 );
0065
0066 }
0067
0068 void benchmark_pthread_setschedparam(void)
0069 {
0070 uint32_t end_time;
0071 int status;
0072 int policy;
0073 struct sched_param param;
0074
0075 status = pthread_getschedparam( pthread_self(), &policy, ¶m );
0076 rtems_test_assert( status == 0 );
0077
0078
0079 param.sched_priority = 5;
0080 benchmark_timer_initialize();
0081 status = pthread_setschedparam( pthread_self(), policy, ¶m );
0082 end_time = benchmark_timer_read();
0083 rtems_test_assert( status == 0 );
0084
0085 put_time(
0086 "pthread_setschedparam: no thread switch",
0087 end_time,
0088 1,
0089 0,
0090 0
0091 );
0092 }
0093
0094 void *POSIX_Init(
0095 void *argument
0096 )
0097 {
0098
0099 TEST_BEGIN();
0100
0101 benchmark_pthread_getschedparam();
0102 benchmark_pthread_setschedparam();
0103
0104 TEST_END();
0105 rtems_test_exit(0);
0106 }
0107
0108
0109
0110 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0111 #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
0112
0113 #define CONFIGURE_MAXIMUM_POSIX_THREADS 1
0114 #define CONFIGURE_POSIX_INIT_THREAD_TABLE
0115
0116 #define CONFIGURE_INIT
0117
0118 #include <rtems/confdefs.h>
0119