File indexing completed on 2025-05-11 08:24:46
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 #if !defined(PER_ALLOCATION)
0030 #define PER_ALLOCATION 8000
0031 #endif
0032
0033 #ifdef HAVE_CONFIG_H
0034 #include "config.h"
0035 #endif
0036
0037 #include <tmacros.h>
0038 #include "test_support.h"
0039
0040 const char rtems_test_name[] = "SP 71";
0041
0042
0043 rtems_task Init(rtems_task_argument argument);
0044
0045 rtems_task Init(
0046 rtems_task_argument argument
0047 )
0048 {
0049 rtems_status_code status;
0050 rtems_id id;
0051 long created;
0052
0053 TEST_BEGIN();
0054
0055 created = 0;
0056 do {
0057 status = rtems_port_create(
0058 rtems_build_name( 'P', 'O', 'R', 'T' ),
0059 (void *) 0x1000,
0060 (void *) 0x2000,
0061 1024,
0062 &id
0063 );
0064 if ( status == RTEMS_TOO_MANY )
0065 break;
0066 directive_failed( status, "rtems_task_create" );
0067 created++;
0068 } while (1);
0069
0070 printf(
0071 "%ld ports created using %d per allocation -- need %ld\n",
0072 created,
0073 PER_ALLOCATION,
0074 (long) OBJECTS_ID_FINAL_INDEX
0075 );
0076
0077 if ( (created + PER_ALLOCATION) > OBJECTS_ID_FINAL_INDEX ) {
0078 puts( "Test case hit" );
0079 TEST_END();
0080 } else {
0081 puts( "Test case NOT hit" );
0082 }
0083 rtems_test_exit(0);
0084 }
0085
0086
0087
0088 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0089 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0090
0091 #define CONFIGURE_MAXIMUM_TASKS 1
0092 #define CONFIGURE_MAXIMUM_PORTS rtems_resource_unlimited(PER_ALLOCATION)
0093 #define CONFIGURE_UNIFIED_WORK_AREAS
0094 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0095
0096 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0097
0098 #define CONFIGURE_INIT
0099
0100 #include <rtems/confdefs.h>
0101