RTEMS 6.1-rc6
Loading...
Searching...
No Matches
ts-config.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/*
13 * Copyright (C) 2021 embedded brains GmbH & Co. KG
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 */
36
37#ifndef _TS_CONFIG_H
38#define _TS_CONFIG_H
39
40#include <rtems.h>
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45
52#define TEST_MICROSECONDS_PER_TICK 1000
53
54#define TEST_RUNNER_NAME rtems_build_name( 'R', 'U', 'N', ' ' )
55
56#define TEST_RUNNER_ARGUMENT 123456789
57
58#define TEST_RUNNER_INITIAL_MODES RTEMS_NO_ASR
59
60#define TEST_SCHEDULER_A_NAME rtems_build_name( 'A', ' ', ' ', ' ' )
61
62#define TEST_SCHEDULER_B_NAME rtems_build_name( 'B', ' ', ' ', ' ' )
63
64#define TEST_SCHEDULER_C_NAME rtems_build_name( 'C', ' ', ' ', ' ' )
65
66#define TEST_SCHEDULER_D_NAME rtems_build_name( 'D', ' ', ' ', ' ' )
67
68#if defined( __OPTIMIZE__ ) && !defined( RTEMS_GCOV_COVERAGE )
69#define TEST_BASE_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE
70#else
71#define TEST_BASE_STACK_SIZE ( 4 * RTEMS_MINIMUM_STACK_SIZE )
72#endif
73
74#define TEST_MAXIMUM_TLS_SIZE \
75 RTEMS_ALIGN_UP( 64, RTEMS_TASK_STORAGE_ALIGNMENT )
76
77#define TEST_MINIMUM_STACK_SIZE \
78 ( TEST_BASE_STACK_SIZE + CPU_STACK_ALIGNMENT )
79
80#define TEST_IDLE_STACK_SIZE \
81 ( TEST_BASE_STACK_SIZE + 2 * CPU_STACK_ALIGNMENT )
82
83#define TEST_INTERRUPT_STACK_SIZE \
84 ( TEST_BASE_STACK_SIZE + 4 * CPU_INTERRUPT_STACK_ALIGNMENT )
85
86#define TEST_MAXIMUM_BARRIERS 7
87
88#define TEST_MAXIMUM_MESSAGE_QUEUES 3
89
90#define TEST_MAXIMUM_PARTITIONS 4
91
92#define TEST_MAXIMUM_PERIODS 2
93
94#define TEST_MAXIMUM_SEMAPHORES 7
95
96#define TEST_MAXIMUM_TASKS 32
97
98#define TEST_MAXIMUM_TIMERS 10
99
100#define TEST_MAXIMUM_USER_EXTENSIONS 5
101
102/*
103 * Use at least two so that the CPU time budget decrement in
104 * _Scheduler_default_Tick() does not always result in a zero.
105 */
106#define TEST_TICKS_PER_TIMESLICE 2
107
108void *test_task_stack_allocate( size_t size );
109
110void test_task_stack_deallocate( void *stack );
111
112void *test_idle_task_stack_allocate( uint32_t cpu_index, size_t *size );
113
114extern rtems_task_argument test_runner_argument;
115
116extern rtems_task_priority test_runner_initial_priority;
117
118extern rtems_mode test_runner_initial_modes;
119
122#ifdef __cplusplus
123}
124#endif
125
126#endif /* _TS_CONFIG_H */
uint32_t rtems_mode
This type represents a Classic API task mode set.
Definition: modes.h:174
CPU_Uint32ptr rtems_task_argument
This integer type represents task argument values.
Definition: tasks.h:100
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition: types.h:257
This header file defines the RTEMS Classic API.