source: rtems/cpukit/posix/include/rtems/posix/config.h @ ba776282

5
Last change on this file since ba776282 was ba776282, checked in by Gedare Bloom <gedare@…>, on 08/12/16 at 19:25:10

posix: shared memory support

Add POSIX shared memory manager (Shm). Includes a hook-based
approach for the backing memory storage that defaults to the
Workspace, and a test is provided using the heap. A test is
also provided for the basic use of mmap'ing a shared memory
object. This test currently fails at the mmap stage due to
no support for mmap.

  • Property mode set to 100644
File size: 4.0 KB
Line 
1/**
2 * @file
3 *
4 * @brief User Defined Configuration Parameters Specific For The POSIX API
5 *
6 * This include file contains the table of user defined configuration
7 * parameters specific for the POSIX API.
8 */
9
10/*
11 *  COPYRIGHT (c) 1989-2014.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.rtems.org/license/LICENSE.
17 */
18
19#ifndef _RTEMS_POSIX_CONFIG_H
20#define _RTEMS_POSIX_CONFIG_H
21
22#include <stdint.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/**
29 *  @defgroup ClassicConfig Configuration
30 *
31 *  @ingroup ClassicRTEMS
32 *
33 *  This encapsulates functionality related to the application's configuration
34 *  of the Classic API including the maximum number of each class of objects.
35 */
36/**@{*/
37
38/**
39 *  For now, we are only allowing the user to specify the entry point
40 *  and stack size for POSIX initialization threads.
41 */
42typedef struct {
43  /** This is the entry point for a POSIX initialization thread. */
44  void       *(*thread_entry)(void *);
45  /** This is the stack size for a POSIX initialization thread. */
46  int       stack_size;
47} posix_initialization_threads_table;
48
49/**
50 *  The following records define the POSIX Configuration Table.
51 *  The information contained in this table is required in all
52 *  RTEMS systems which include POSIX threads support, whether
53 *  single or multiprocessor.  This table primarily defines the
54 *  following:
55 *
56 *     + required number of each object type
57 */
58typedef struct {
59  /**
60   * This field contains the maximum number of POSIX API
61   * threads which are configured for this application.
62   */
63  uint32_t                            maximum_threads;
64
65  /**
66   * This field contains the maximum number of POSIX API
67   * mutexes which are configured for this application.
68   */
69  uint32_t                            maximum_mutexes;
70
71  /**
72   * This field contains the maximum number of POSIX API
73   * condition variables which are configured for this application.
74   */
75  uint32_t                            maximum_condition_variables;
76
77  /**
78   * This field contains the maximum number of POSIX API
79   * timers which are configured for this application.
80   */
81  uint32_t                            maximum_timers;
82
83  /**
84   * This field contains the maximum number of POSIX API
85   * queued signals which are configured for this application.
86   */
87  uint32_t                            maximum_queued_signals;
88
89  /**
90   * This field contains the maximum number of POSIX API
91   * message queues which are configured for this application.
92   */
93  uint32_t                            maximum_message_queues;
94
95  /**
96   * This field contains the maximum number of POSIX API
97   * semaphores which are configured for this application.
98   */
99  uint32_t                            maximum_semaphores;
100
101  /**
102   * This field contains the maximum number of POSIX API
103   * barriers which are configured for this application.
104   */
105  uint32_t                            maximum_barriers;
106
107  /**
108   * This field contains the maximum number of POSIX API
109   * read/write locks which are configured for this application.
110   */
111  uint32_t                            maximum_rwlocks;
112
113  /**
114   * Maximum configured number of POSIX Shared memory objects.
115   */
116  uint32_t                            maximum_shms;
117
118  /**
119   * This field contains the number of POSIX API Initialization
120   * threads listed in @a User_initialization_thread_table.
121   */
122  uint32_t                            number_of_initialization_threads;
123
124  /**
125   * This field contains the list of POSIX API Initialization threads.
126   */
127  posix_initialization_threads_table *User_initialization_threads_table;
128} posix_api_configuration_table;
129
130/**
131 * @brief POSIX API configuration table.
132 *
133 * This is the POSIX API Configuration Table expected to be generated
134 * by confdefs.h.
135 */
136extern posix_api_configuration_table Configuration_POSIX_API;
137
138/**@}*/
139#ifdef __cplusplus
140}
141#endif
142
143#endif
144/* end of include file */
Note: See TracBrowser for help on using the repository browser.