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

4.115
Last change on this file since b5c9064 was b5c9064, checked in by Zhongwei Yao <ashi08104@…>, on 08/05/13 at 13:20:45

Unlimited objects support for POSIX keys

This patch enables unlimited model in POSIX key manger and have a decent
runtime on POSIX key searching, adding and deleting operations. Memory
overhead is lower than current implementation when the size of key and key
value becomes big.

  • Property mode set to 100644
File size: 2.3 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-2008.
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.com/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 *  XXX
30 *
31 *  The following records define the Configuration Table.  The
32 *  information contained in this table is required in all
33 *  RTEMS systems, whether single or multiprocessor.  This
34 *  table primarily defines the following:
35 *
36 *     + required number of each object type
37 */
38
39/*
40 *  For now, we are only allowing the user to specify the entry point
41 *  and stack size for POSIX initialization threads.
42 */
43
44typedef struct {
45  void       *(*thread_entry)(void *);
46  int       stack_size;
47} posix_initialization_threads_table;
48
49typedef struct {
50  uint32_t                            maximum_threads;
51  uint32_t                            maximum_mutexes;
52  uint32_t                            maximum_condition_variables;
53  uint32_t                            maximum_keys;
54  uint32_t                            maximum_key_value_pairs;
55  uint32_t                            maximum_timers;
56  uint32_t                            maximum_queued_signals;
57  uint32_t                            maximum_message_queues;
58  uint32_t                            maximum_message_queue_descriptors;
59  uint32_t                            maximum_semaphores;
60  uint32_t                            maximum_barriers;
61  uint32_t                            maximum_rwlocks;
62  uint32_t                            maximum_spinlocks;
63  uint32_t                            number_of_initialization_threads;
64  posix_initialization_threads_table *User_initialization_threads_table;
65} posix_api_configuration_table;
66
67/**
68 * @brief POSIX API configuration table.
69 *
70 * This is the POSIX API Configuration Table expected to be generated
71 * by confdefs.h.
72 */
73extern posix_api_configuration_table Configuration_POSIX_API;
74
75#ifdef __cplusplus
76}
77#endif
78
79#endif
80/* end of include file */
Note: See TracBrowser for help on using the repository browser.