source: rtems/testsuites/sptests/sp13/system.h

Last change on this file was eb57966, checked in by Joel Sherrill <joel@…>, on 03/31/22 at 21:32:14

testsuites/sptests/sp1*: Change license to BSD-2

Updates #3053.

  • Property mode set to 100644
File size: 4.0 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/*  system.h
4 *
5 *  This include file contains information that is included in every
6 *  function in the test set.
7 *
8 *  COPYRIGHT (c) 1989-2009.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 *    notice, this list of conditions and the following disclaimer in the
18 *    documentation and/or other materials provided with the distribution.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#include <tmacros.h>
34
35/* functions */
36
37rtems_task Init(
38  rtems_task_argument argument
39);
40
41void Fill_buffer(
42  char  source[],
43  long *buffer
44);
45
46void Put_buffer(
47  void *buffer
48);
49
50rtems_task Task_1(
51  rtems_task_argument argument
52);
53
54rtems_task Task_2(
55  rtems_task_argument argument
56);
57
58rtems_task Task_3(
59  rtems_task_argument argument
60);
61
62/* global variables */
63
64TEST_EXTERN rtems_id   Task_id[ 4 ];         /* array of task ids */
65TEST_EXTERN rtems_name Task_name[ 4 ];       /* array of task names */
66
67TEST_EXTERN rtems_id   Queue_id[ 4 ];        /* array of queue ids */
68TEST_EXTERN rtems_name Queue_name[ 4 ];      /* array of queue names */
69
70/* test configuration */
71
72#define MESSAGE_SIZE (sizeof(long) * 4)  /* must be multiple of sizeof(long) */
73
74/* configuration information */
75
76#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
77#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
78
79#define CONFIGURE_MAXIMUM_TASKS               4
80#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES     10
81#define CONFIGURE_TICKS_PER_TIMESLICE       100
82
83#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
84
85#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
86
87/*
88 *  Created in init.c:
89 *    Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600)
90 *    Q2 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE )   (160)
91 *    Q3 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) (1600)
92 *
93 *  Q1 and Q2 deleted in task1.c.
94 *
95 *  Q1 recreated in task1.c:
96 *    Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 )           (2000)
97 *
98 *  Q1 deleted again in task1.c.
99 *
100 *  Q1 repeatedly created and deleted for 2 messages of 1-1030 bytes
101 *  in length. Account for peak usage:
102 *    Q1 - CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 2, 1030 )           (2060)
103 *
104 *  Because each message requires memory for the message plus two
105 *  pointers to place the buffer on lists, it is easier to just
106 *  allocate memory for all the message queues. But we can safely
107 *  ignore Q2 and the last instance of Q1 since enough memory is
108 *  free when the third instance of Q1 is created.
109 */
110#define CONFIGURE_MESSAGE_BUFFER_MEMORY \
111   /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, MESSAGE_SIZE ) + \
112   /* Q2 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 10, MESSAGE_SIZE ) + \
113   /* Q3 is statically allocated */ \
114   /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 100, 20 ) + \
115   /* Q1 */ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( 2,  1030 )
116
117#define CONFIGURE_EXTRA_TASK_STACKS         (3 * RTEMS_MINIMUM_STACK_SIZE)
118
119#include <rtems/confdefs.h>
120
121/* end of include file */
Note: See TracBrowser for help on using the repository browser.