source: rtems/cpukit/sapi/src/getconfigmax.c @ c344e58

5
Last change on this file since c344e58 was 0f5b2c09, checked in by Sebastian Huber <sebastian.huber@…>, on 12/10/18 at 11:51:33

rtems: Use object information to get config max

Use functions instead of macros. Add missing
rtems_configuration_get_maximum_*() functions.

Update #3621.

  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright (C) 2018 embedded brains GmbH
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25 * POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifdef HAVE_CONFIG_H
29#include "config.h"
30#endif
31
32#include <rtems/config.h>
33#include <rtems/extensionimpl.h>
34#include <rtems/rtems/barrierimpl.h>
35#include <rtems/rtems/dpmemimpl.h>
36#include <rtems/rtems/messageimpl.h>
37#include <rtems/rtems/partimpl.h>
38#include <rtems/rtems/ratemonimpl.h>
39#include <rtems/rtems/regionimpl.h>
40#include <rtems/rtems/semimpl.h>
41#include <rtems/rtems/tasksimpl.h>
42#include <rtems/rtems/timerimpl.h>
43#include <rtems/score/objectimpl.h>
44
45static uint32_t get_config_max( const Objects_Information *info )
46{
47        if ( _Objects_Is_auto_extend( info ) ) {
48                return info->objects_per_block | RTEMS_UNLIMITED_OBJECTS;
49        }
50
51        return _Objects_Get_maximum_index( info );
52}
53
54uint32_t rtems_configuration_get_maximum_barriers( void )
55{
56        return get_config_max( &_Barrier_Information );
57}
58
59uint32_t rtems_configuration_get_maximum_extensions( void )
60{
61        return get_config_max( &_Extension_Information );
62}
63
64uint32_t rtems_configuration_get_maximum_message_queues( void )
65{
66        return get_config_max( &_Message_queue_Information );
67}
68
69uint32_t rtems_configuration_get_maximum_partitions( void )
70{
71        return get_config_max( &_Partition_Information );
72}
73
74uint32_t rtems_configuration_get_maximum_periods( void )
75{
76        return get_config_max( &_Rate_monotonic_Information );
77}
78
79uint32_t rtems_configuration_get_maximum_ports( void )
80{
81        return get_config_max( &_Dual_ported_memory_Information );
82}
83
84uint32_t rtems_configuration_get_maximum_regions( void )
85{
86        return get_config_max( &_Region_Information );
87}
88
89uint32_t rtems_configuration_get_maximum_semaphores( void )
90{
91        return get_config_max( &_Semaphore_Information );
92}
93
94uint32_t rtems_configuration_get_maximum_timers( void )
95{
96        return get_config_max( &_Timer_Information );
97}
98
99uint32_t rtems_configuration_get_maximum_tasks( void )
100{
101        return get_config_max( &_RTEMS_tasks_Information.Objects );
102}
Note: See TracBrowser for help on using the repository browser.