![]() |
|
|||
File indexing completed on 2025-05-11 08:24:44
0001 /* SPDX-License-Identifier: BSD-2-Clause */ 0002 0003 /* system.h 0004 * 0005 * This include file contains information that is included in every 0006 * function in the test set. 0007 * 0008 * COPYRIGHT (c) 1989-2009. 0009 * On-Line Applications Research Corporation (OAR). 0010 * 0011 * Redistribution and use in source and binary forms, with or without 0012 * modification, are permitted provided that the following conditions 0013 * are met: 0014 * 1. Redistributions of source code must retain the above copyright 0015 * notice, this list of conditions and the following disclaimer. 0016 * 2. Redistributions in binary form must reproduce the above copyright 0017 * notice, this list of conditions and the following disclaimer in the 0018 * documentation and/or other materials provided with the distribution. 0019 * 0020 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 0021 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0022 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 0023 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 0024 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 0025 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 0026 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 0027 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 0028 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 0029 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 0030 * POSSIBILITY OF SUCH DAMAGE. 0031 */ 0032 0033 #include <tmacros.h> 0034 0035 /* functions */ 0036 0037 rtems_task Init( 0038 rtems_task_argument argument 0039 ); 0040 0041 void Fill_buffer( 0042 char source[], 0043 long *buffer 0044 ); 0045 0046 void Put_buffer( 0047 void *buffer 0048 ); 0049 0050 rtems_task Task_1( 0051 rtems_task_argument argument 0052 ); 0053 0054 rtems_task Task_2( 0055 rtems_task_argument argument 0056 ); 0057 0058 rtems_task Task_3( 0059 rtems_task_argument argument 0060 ); 0061 0062 /* global variables */ 0063 0064 TEST_EXTERN rtems_id Task_id[ 4 ]; /* array of task ids */ 0065 TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */ 0066 0067 TEST_EXTERN rtems_id Queue_id[ 4 ]; /* array of queue ids */ 0068 TEST_EXTERN rtems_name Queue_name[ 4 ]; /* array of queue names */ 0069 0070 /* test configuration */ 0071 0072 #define MESSAGE_SIZE (sizeof(long) * 4) /* must be multiple of sizeof(long) */ 0073 0074 /* configuration information */ 0075 0076 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER 0077 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER 0078 0079 #define CONFIGURE_MAXIMUM_TASKS 4 0080 #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 10 0081 #define CONFIGURE_TICKS_PER_TIMESLICE 100 0082 0083 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION 0084 0085 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE 0086 0087 /* 0088 * Created in init.c: 0089 * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600) 0090 * Q2 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) (160) 0091 * Q3 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600) 0092 * 0093 * Q1 and Q2 deleted in task1.c. 0094 * 0095 * Q1 recreated in task1.c: 0096 * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) (2000) 0097 * 0098 * Q1 deleted again in task1.c. 0099 * 0100 * Q1 repeatedly created and deleted for 2 messages of 1-1030 bytes 0101 * in length. Account for peak usage: 0102 * Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 2, 1030 ) (2060) 0103 * 0104 * Because each message requires memory for the message plus two 0105 * pointers to place the buffer on lists, it is easier to just 0106 * allocate memory for all the message queues. But we can safely 0107 * ignore Q2 and the last instance of Q1 since enough memory is 0108 * free when the third instance of Q1 is created. 0109 */ 0110 #define CONFIGURE_MESSAGE_BUFFER_MEMORY \ 0111 /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \ 0112 /* Q2 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) + \ 0113 /* Q3 is statically allocated */ \ 0114 /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) + \ 0115 /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 2, 1030 ) 0116 0117 #define CONFIGURE_EXTRA_TASK_STACKS (3 * RTEMS_MINIMUM_STACK_SIZE) 0118 0119 #include <rtems/confdefs.h> 0120 0121 /* end of include file */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |