OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [sapi/] [include/] [confdefs.h] - Blame information for rev 30

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*  confdefs.h
2
 *
3
 *  This include file contains the configuration table template that will
4
 *  be instantiated by an application based on the setting of a number
5
 *  of macros.  The macros are documented in the Configuring a System
6
 *  chapter of the Classic API User's Guide
7
 *
8
 *  The model is to estimate the memory required for each configured item
9
 *  and sum those estimates.  The estimate can be too high or too low for
10
 *  a variety of reasons:
11
 *
12
 *  Reasons estimate is too high:
13
 *    + FP contexts (not all tasks are FP)
14
 *
15
 *  Reasons estimate is too low:
16
 *    + stacks greater than minimum size
17
 *    + messages
18
 *    + application must account for device driver resources
19
 *    + application must account for add-on library resource requirements
20
 *
21
 *  NOTE:  Eventually this may be able to take into account some of
22
 *         the above.  This procedure has evolved from just enough to
23
 *         support the RTEMS Test Suites into something that can be
24
 *         used remarkably reliably by most applications.
25
 *  COPYRIGHT (c) 1989-1999.
26
 *  On-Line Applications Research Corporation (OAR).
27
 *
28
 *  The license and distribution terms for this file may be
29
 *  found in the file LICENSE in this distribution or at
30
 *  http://www.OARcorp.com/rtems/license.html.
31
 *
32
 *  $Id: confdefs.h,v 1.2 2001-09-27 11:59:19 chris Exp $
33
 */
34
 
35
#ifndef __CONFIGURATION_TEMPLATE_h
36
#define __CONFIGURATION_TEMPLATE_h
37
 
38
#ifdef __cplusplus
39
extern "C" {
40
#endif
41
 
42
extern rtems_initialization_tasks_table Initialization_tasks[];
43
extern rtems_driver_address_table       Device_drivers[];
44
extern rtems_configuration_table        Configuration;
45
extern rtems_multiprocessing_table      Multiprocessing_configuration;
46
#ifdef RTEMS_POSIX_API
47
extern posix_api_configuration_table    Configuration_POSIX_API;
48
#endif
49
#ifdef RTEMS_ITRON_API
50
extern itron_api_configuration_table    Configuration_ITRON_API;
51
#endif
52
 
53
/*
54
 *  RTEMS C Library and Newlib support
55
 *
56
 *  NOTE:  This ends up defining these even when newlib is not used.
57
 */
58
 
59
#define CONFIGURE_NEWLIB_EXTENSION 1
60
#define CONFIGURE_MALLOC_REGION 1
61
 
62
/*
63
 *  File descriptors managed by libio
64
 */
65
 
66
#ifndef CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
67
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 3
68
#endif
69
 
70
#define CONFIGURE_LIBIO_SEMAPHORES \
71
  (CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS + 1)
72
 
73
#ifdef CONFIGURE_INIT
74
unsigned32 rtems_libio_number_iops = CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS;
75
#endif
76
 
77
/*
78
 *  Termios resources
79
 */
80
 
81
#ifdef CONFIGURE_TERMIOS_DISABLED
82
#define CONFIGURE_TERMIOS_SEMAPHORES 0
83
#else
84
 
85
#ifndef CONFIGURE_NUMBER_OF_TERMIOS_PORTS
86
#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 1
87
#endif
88
 
89
#define CONFIGURE_TERMIOS_SEMAPHORES \
90
  ((CONFIGURE_NUMBER_OF_TERMIOS_PORTS * 4) + 1)
91
#endif
92
 
93
/*
94
 *  Mount Table Configuration
95
 */
96
 
97
#include <imfs.h>
98
 
99
#ifdef CONFIGURE_INIT
100
 
101
#ifndef CONFIGURE_HAS_OWN_MOUNT_TABLE
102
rtems_filesystem_mount_table_t configuration_mount_table = {
103
#ifdef CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
104
  &IMFS_ops,
105
#else  /* using miniIMFS as base filesystem */
106
  &miniIMFS_ops,
107
#endif
108
  RTEMS_FILESYSTEM_READ_WRITE,
109
  NULL,
110
  NULL
111
};
112
 
113
rtems_filesystem_mount_table_t
114
    *rtems_filesystem_mount_table = &configuration_mount_table;
115
int rtems_filesystem_mount_table_size = 1;
116
#endif
117
 
118
#endif
119
 
120
 
121
/*
122
 *  Stack Checker Requirements
123
 *
124
 *  NOTE: This does not automatically enable reporting at program exit.
125
 */
126
 
127
#ifdef STACK_CHECKER_ON
128
#define CONFIGURE_STACK_CHECKER_EXTENSION 1
129
#else
130
#define CONFIGURE_STACK_CHECKER_EXTENSION 0
131
#endif
132
 
133
/*
134
 *  Interrupt Stack Space
135
 *
136
 *  NOTE: There is currently no way for the application to override
137
 *        the interrupt stack size set by the BSP.
138
 */
139
 
140
#if (CPU_ALLOCATE_INTERRUPT_STACK == 0)
141
#undef CONFIGURE_INTERRUPT_STACK_MEMORY
142
#define CONFIGURE_INTERRUPT_STACK_MEMORY 0
143
#else
144
  #ifndef CONFIGURE_INTERRUPT_STACK_MEMORY
145
  #define CONFIGURE_INTERRUPT_STACK_MEMORY RTEMS_MINIMUM_STACK_SIZE
146
  #endif
147
#endif
148
 
149
/*
150
 *  Default User Initialization Task Table.  This table guarantees that
151
 *  one user initialization table is defined.
152
 */
153
 
154
#ifdef CONFIGURE_RTEMS_INIT_TASKS_TABLE
155
 
156
#ifdef CONFIGURE_HAS_OWN_INIT_TASK_TABLE
157
 
158
/*
159
 *  The user is defining their own table information and setting the
160
 *  appropriate variables.
161
 */
162
 
163
#else
164
 
165
#ifndef CONFIGURE_INIT_TASK_NAME
166
#define CONFIGURE_INIT_TASK_NAME          rtems_build_name( 'U', 'I', '1', ' ' )
167
#endif
168
 
169
#ifndef CONFIGURE_INIT_TASK_STACK_SIZE
170
#define CONFIGURE_INIT_TASK_STACK_SIZE    RTEMS_MINIMUM_STACK_SIZE 
171
#endif
172
 
173
#ifndef CONFIGURE_INIT_TASK_PRIORITY
174
#define CONFIGURE_INIT_TASK_PRIORITY      1
175
#endif
176
 
177
#ifndef CONFIGURE_INIT_TASK_ATTRIBUTES
178
#define CONFIGURE_INIT_TASK_ATTRIBUTES    RTEMS_DEFAULT_ATTRIBUTES 
179
#endif
180
 
181
#ifndef CONFIGURE_INIT_TASK_ENTRY_POINT
182
#define CONFIGURE_INIT_TASK_ENTRY_POINT   Init 
183
#endif
184
 
185
#ifndef CONFIGURE_INIT_TASK_INITIAL_MODES
186
#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_NO_PREEMPT 
187
#endif
188
 
189
#ifndef CONFIGURE_INIT_TASK_ARGUMENTS
190
#define CONFIGURE_INIT_TASK_ARGUMENTS     0 
191
#endif
192
 
193
#ifdef CONFIGURE_INIT
194
rtems_initialization_tasks_table Initialization_tasks[] = {
195
  { CONFIGURE_INIT_TASK_NAME,
196
    CONFIGURE_INIT_TASK_STACK_SIZE,
197
    CONFIGURE_INIT_TASK_PRIORITY,
198
    CONFIGURE_INIT_TASK_ATTRIBUTES,
199
    CONFIGURE_INIT_TASK_ENTRY_POINT,
200
    CONFIGURE_INIT_TASK_INITIAL_MODES,
201
    CONFIGURE_INIT_TASK_ARGUMENTS
202
  }
203
};
204
#endif
205
 
206
#define CONFIGURE_INIT_TASK_TABLE Initialization_tasks
207
 
208
#define CONFIGURE_INIT_TASK_TABLE_SIZE \
209
  sizeof(CONFIGURE_INIT_TASK_TABLE) / sizeof(rtems_initialization_tasks_table)
210
 
211
#endif    /* CONFIGURE_HAS_OWN_INIT_TASK_TABLE */
212
 
213
#else     /* CONFIGURE_RTEMS_INIT_TASKS_TABLE */
214
 
215
#define CONFIGURE_INIT_TASK_TABLE      NULL
216
#define CONFIGURE_INIT_TASK_TABLE_SIZE 0
217
 
218
#endif
219
 
220
/*
221
 *  Map obsolete names to current ones
222
 *
223
 *  NOTE: These should be obsoleted in a future release.
224
 */
225
 
226
#ifdef CONFIGURE_TEST_NEEDS_TIMER_DRIVER
227
#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
228
#endif
229
#ifdef CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
230
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
231
#endif 
232
#ifdef CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
233
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
234
#endif 
235
#ifdef CONFIGURE_TEST_NEEDS_RTC_DRIVER
236
#define CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
237
#endif 
238
#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER
239
#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
240
#endif
241
 
242
 
243
/*
244
 *  Default Device Driver Table.  Each driver needed by the test is explicitly
245
 *  choosen by that test.  There is always a null driver entry.
246
 */
247
 
248
#define NULL_DRIVER_TABLE_ENTRY \
249
 { NULL, NULL, NULL, NULL, NULL, NULL }
250
 
251
#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
252
#include <console.h>
253
#endif
254
 
255
#ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
256
#include <clockdrv.h>
257
#endif
258
 
259
#ifdef CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
260
#include <timerdrv.h>
261
#endif
262
 
263
#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
264
#include <stubdrv.h>
265
#endif
266
 
267
#ifndef CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
268
 
269
#ifdef CONFIGURE_INIT
270
rtems_driver_address_table Device_drivers[] = {
271
#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
272
  CONSOLE_DRIVER_TABLE_ENTRY,
273
#endif
274
#ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
275
  CLOCK_DRIVER_TABLE_ENTRY,
276
#endif
277
#ifdef CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
278
  STUB_DRIVER_TABLE_ENTRY,
279
#endif
280
  NULL_DRIVER_TABLE_ENTRY
281
};
282
#endif
283
 
284
#endif  /* CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE */
285
 
286
/*
287
 *  Default the number of devices per device driver.  This value may be
288
 *  overridden by the user.
289
 */
290
 
291
#ifndef CONFIGURE_MAXIMUM_DEVICES
292
#define CONFIGURE_MAXIMUM_DEVICES   20
293
#endif
294
 
295
/*
296
 *  Default Multiprocessing Configuration Table.  The defaults are
297
 *  appropriate for most of the RTEMS Multiprocessor Test Suite.  Each
298
 *  value may be overridden within each test to customize the environment.
299
 */
300
 
301
#ifdef CONFIGURE_MP_APPLICATION
302
#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
303
 
304
#ifndef CONFIGURE_MP_NODE_NUMBER
305
#define CONFIGURE_MP_NODE_NUMBER                NODE_NUMBER
306
#endif
307
 
308
#ifndef CONFIGURE_MP_MAXIMUM_NODES
309
#define CONFIGURE_MP_MAXIMUM_NODES              2
310
#endif
311
 
312
#ifndef CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
313
#define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS     32
314
#endif
315
 
316
#ifndef CONFIGURE_MP_MAXIMUM_PROXIES
317
#define CONFIGURE_MP_MAXIMUM_PROXIES            32
318
#endif
319
 
320
#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
321
#include <mpci.h>
322
#define CONFIGURE_MP_MPCI_TABLE_POINTER         &MPCI_table
323
#endif
324
 
325
#ifdef CONFIGURE_INIT
326
rtems_multiprocessing_table Multiprocessing_configuration = {
327
  CONFIGURE_MP_NODE_NUMBER,              /* local node number */
328
  CONFIGURE_MP_MAXIMUM_NODES,            /* maximum # nodes in system */
329
  CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS,   /* maximum # global objects */
330
  CONFIGURE_MP_MAXIMUM_PROXIES,          /* maximum # proxies */
331
  CONFIGURE_MP_MPCI_TABLE_POINTER        /* pointer to MPCI config table */
332
};
333
#endif
334
 
335
#define CONFIGURE_MULTIPROCESSING_TABLE    &Multiprocessing_configuration
336
 
337
#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
338
 
339
#else
340
 
341
#define CONFIGURE_MULTIPROCESSING_TABLE    NULL
342
 
343
#endif /* CONFIGURE_MP_APPLICATION */
344
 
345
/*
346
 *  Default Configuration Table.
347
 */
348
 
349
#ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
350
 
351
#ifndef CONFIGURE_EXECUTIVE_RAM_WORK_AREA
352
#define CONFIGURE_EXECUTIVE_RAM_WORK_AREA     NULL
353
#endif
354
 
355
#ifndef CONFIGURE_MAXIMUM_TASKS
356
#define CONFIGURE_MAXIMUM_TASKS               0
357
#endif
358
 
359
#ifndef CONFIGURE_MAXIMUM_TIMERS
360
#define CONFIGURE_MAXIMUM_TIMERS              0
361
#endif
362
 
363
#ifndef CONFIGURE_MAXIMUM_SEMAPHORES
364
#define CONFIGURE_MAXIMUM_SEMAPHORES          0
365
#endif
366
 
367
#ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
368
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES      0
369
#endif
370
 
371
#ifndef CONFIGURE_MAXIMUM_PARTITIONS
372
#define CONFIGURE_MAXIMUM_PARTITIONS          0
373
#endif
374
 
375
#ifndef CONFIGURE_MAXIMUM_REGIONS
376
#define CONFIGURE_MAXIMUM_REGIONS             0
377
#endif
378
 
379
#ifndef CONFIGURE_MAXIMUM_PORTS
380
#define CONFIGURE_MAXIMUM_PORTS               0
381
#endif
382
 
383
#ifndef CONFIGURE_MAXIMUM_PERIODS
384
#define CONFIGURE_MAXIMUM_PERIODS             0
385
#endif
386
 
387
#ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
388
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS     0
389
#endif
390
 
391
#ifndef CONFIGURE_MICROSECONDS_PER_TICK 
392
#define CONFIGURE_MICROSECONDS_PER_TICK RTEMS_MILLISECONDS_TO_MICROSECONDS(10)
393
#endif
394
 
395
#ifndef CONFIGURE_TICKS_PER_TIMESLICE
396
#define CONFIGURE_TICKS_PER_TIMESLICE        50
397
#endif
398
 
399
/*
400
 *  Initial Extension Set
401
 */
402
 
403
#ifdef CONFIGURE_INIT
404
#ifdef STACK_CHECKER_ON
405
#include <rtems/stackchk.h>
406
#endif
407
 
408
rtems_extensions_table Configuration_Initial_Extensions[] = {
409
#ifdef CONFIGURE_INITIAL_EXTENSIONS
410
    CONFIGURE_INITIAL_EXTENSIONS,
411
#endif
412
#ifdef STACK_CHECKER_ON
413
    STACK_CHECKER_EXTENSION,
414
#endif
415
    { NULL, NULL, NULL, NULL, NULL, NULL, NULL }
416
};
417
 
418
#define CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS \
419
  ((sizeof(Configuration_Initial_Extensions) / \
420
    sizeof(rtems_extensions_table)) - 1)
421
 
422
#endif
423
 
424
/*
425
 *  POSIX API Configuration Parameters
426
 */
427
 
428
#ifdef RTEMS_POSIX_API
429
 
430
#include <sys/types.h>
431
#include <sys/siginfo.h>
432
#include <mqueue.h>
433
#include <rtems/posix/cond.h>
434
#include <rtems/posix/mqueue.h>
435
#include <rtems/posix/mutex.h>
436
#include <rtems/posix/key.h>
437
#include <rtems/posix/psignal.h>
438
#include <rtems/posix/semaphore.h>
439
#include <rtems/posix/threadsup.h>
440
 
441
#ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
442
#define CONFIGURE_MAXIMUM_POSIX_THREADS      0
443
#endif
444
 
445
#ifndef CONFIGURE_MAXIMUM_POSIX_MUTEXES
446
#define CONFIGURE_MAXIMUM_POSIX_MUTEXES      0
447
#endif
448
 
449
#ifndef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
450
#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES  0
451
#endif
452
 
453
#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
454
#define CONFIGURE_MAXIMUM_POSIX_KEYS         0
455
#endif
456
 
457
#ifndef CONFIGURE_MAXIMUM_POSIX_TIMERS
458
#define CONFIGURE_MAXIMUM_POSIX_TIMERS 0
459
#endif
460
 
461
#ifndef CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
462
#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 0
463
#endif
464
 
465
#ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
466
#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES 0
467
#endif
468
 
469
#ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
470
#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 0
471
#endif
472
 
473
#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE
474
 
475
#ifdef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
476
 
477
/*
478
 *  The user is defining their own table information and setting the
479
 *  appropriate variables for the POSIX Initialization Thread Table.
480
 */
481
 
482
#else
483
 
484
#ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
485
#define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT   POSIX_Init 
486
#endif
487
 
488
#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
489
#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE    (RTEMS_MINIMUM_STACK_SIZE * 2)
490
#endif
491
 
492
#ifdef CONFIGURE_INIT
493
posix_initialization_threads_table POSIX_Initialization_threads[] = {
494
  { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, \
495
      CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE }
496
};
497
#endif
498
 
499
#define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME POSIX_Initialization_threads
500
 
501
#define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE \
502
  sizeof(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) / \
503
      sizeof(posix_initialization_threads_table)
504
 
505
#endif    /* CONFIGURE_POSIX_HAS_OWN_INIT_TASK_TABLE */
506
 
507
#else     /* CONFIGURE_POSIX_INIT_THREAD_TABLE */
508
 
509
#define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME NULL
510
#define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE 0
511
 
512
#endif
513
 
514
#define CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API \
515
  ( \
516
    sizeof (POSIX_API_Control) + \
517
   (sizeof (void *) * (CONFIGURE_GNAT_KEYS + CONFIGURE_MAXIMUM_POSIX_KEYS)) \
518
  )
519
 
520
#define CONFIGURE_MEMORY_FOR_POSIX_MUTEXES(_mutexes) \
521
  ((_mutexes) * \
522
   ( sizeof(POSIX_Mutex_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
523
 
524
#define CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES(_condition_variables) \
525
  ((_condition_variables) * \
526
   ( sizeof(POSIX_Condition_variables_Control) + \
527
        CONFIGURE_OBJECT_TABLE_STUFF ) )
528
 
529
#define CONFIGURE_MEMORY_FOR_POSIX_KEYS(_keys) \
530
  ((_keys) * \
531
   ( sizeof(POSIX_Keys_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
532
 
533
#define CONFIGURE_MEMORY_FOR_POSIX_TIMERS(_timers) \
534
  ((_timers) * \
535
   ( 0 ) )
536
 
537
#define CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS(_queued_signals) \
538
  ((_queued_signals) * \
539
   ( sizeof(POSIX_signals_Siginfo_node) + CONFIGURE_OBJECT_TABLE_STUFF ) )
540
 
541
#define CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES(_message_queues) \
542
  ((_message_queues) * \
543
   ( sizeof( POSIX_Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
544
#define CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES(_semaphores) \
545
  ((_semaphores) * \
546
   ( sizeof( POSIX_Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
547
 
548
 
549
#define CONFIGURE_MEMORY_FOR_POSIX \
550
  ( \
551
    CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ) + \
552
    CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( \
553
        CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ) + \
554
    CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ) + \
555
    CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( \
556
        CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) + \
557
    CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES( \
558
        CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ) + \
559
    CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( \
560
        CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ) + \
561
    (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE) \
562
   )
563
 
564
 
565
#else
566
 
567
#define CONFIGURE_MAXIMUM_POSIX_THREADS         0
568
#define CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API 0
569
#define CONFIGURE_MEMORY_FOR_POSIX              0
570
 
571
 
572
#endif    /* RTEMS_POSIX_API */
573
 
574
#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
575
#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE    0
576
#endif
577
 
578
/*
579
 *  ITRON API Configuration Parameters
580
 */
581
 
582
#ifdef RTEMS_ITRON_API
583
 
584
#include <itron.h>
585
#include <rtems/itron/config.h>
586
#include <rtems/itron/eventflags.h>
587
#include <rtems/itron/fmempool.h>
588
#include <rtems/itron/mbox.h>
589
#include <rtems/itron/msgbuffer.h>
590
#include <rtems/itron/port.h>
591
#include <rtems/itron/semaphore.h>
592
#include <rtems/itron/task.h>
593
#include <rtems/itron/vmempool.h>
594
 
595
#ifndef CONFIGURE_MAXIMUM_ITRON_TASKS
596
#define CONFIGURE_MAXIMUM_ITRON_TASKS      0
597
#endif
598
 
599
#ifndef CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
600
#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES   0
601
#endif
602
 
603
#ifndef CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS
604
#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS   0
605
#endif
606
 
607
#ifndef CONFIGURE_MAXIMUM_ITRON_MAILBOXES
608
#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES   0
609
#endif
610
 
611
#ifndef CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS
612
#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS   0
613
#endif
614
 
615
#ifndef CONFIGURE_MAXIMUM_ITRON_PORTS
616
#define CONFIGURE_MAXIMUM_ITRON_PORTS   0
617
#endif
618
 
619
#ifndef CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS
620
#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS   0
621
#endif
622
 
623
#ifndef CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS
624
#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS   0
625
#endif
626
 
627
#ifdef CONFIGURE_ITRON_INIT_TASK_TABLE
628
 
629
#ifdef CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE
630
 
631
/*
632
 *  The user is defining their own table information and setting the
633
 *  appropriate variables for the ITRON Initialization Task Table.
634
 */
635
 
636
#else
637
 
638
#ifndef CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT
639
#define CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT   ITRON_Init
640
#endif
641
 
642
#ifndef CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES
643
#define CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES    TA_HLNG
644
#endif
645
 
646
#ifndef CONFIGURE_ITRON_INIT_TASK_PRIORITY
647
#define CONFIGURE_ITRON_INIT_TASK_PRIORITY      1
648
#endif
649
 
650
#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZE
651
#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE    RTEMS_MINIMUM_STACK_SIZE
652
#endif
653
 
654
#ifdef CONFIGURE_INIT
655
itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
656
  { 1,                                    /* ID */
657
    { (VP) 0,                                /* exinfo */
658
      CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES,  /* task attributes */
659
      CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT, /* task start address */
660
      CONFIGURE_ITRON_INIT_TASK_PRIORITY,    /* initial task priority */
661
      CONFIGURE_ITRON_INIT_TASK_STACK_SIZE   /* stack size */
662
    }
663
  }
664
};
665
#endif
666
 
667
#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME ITRON_Initialization_tasks
668
 
669
#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE \
670
  sizeof(CONFIGURE_ITRON_INIT_TASK_TABLE_NAME) / \
671
      sizeof(itron_initialization_tasks_table)
672
 
673
#endif    /* CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE */
674
 
675
#else     /* CONFIGURE_ITRON_INIT_TASK_TABLE */
676
 
677
#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME NULL
678
#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE 0
679
 
680
#endif
681
 
682
#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API \
683
  ( \
684
    sizeof (ITRON_API_Control) \
685
  )
686
 
687
#define CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES(_semaphores) \
688
  ((_semaphores) * \
689
   ( sizeof(ITRON_Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
690
 
691
#define CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS(_eventflags) \
692
  ((_eventflags) * \
693
   ( sizeof(ITRON_Eventflags_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
694
 
695
#define CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES(_mailboxes) \
696
  ((_mailboxes) * \
697
   ( sizeof(ITRON_Mailbox_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
698
 
699
#define CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(_message_buffers) \
700
  ((_message_buffers) * \
701
   ( sizeof(ITRON_Message_buffer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
702
 
703
#define CONFIGURE_MEMORY_FOR_ITRON_PORTS(_ports) \
704
  ((_ports) * \
705
   ( sizeof(ITRON_Port_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
706
 
707
#define CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS(_memory_pools) \
708
  ((_memory_pools) * \
709
   (sizeof(ITRON_Variable_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF))
710
 
711
#define CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS(_fixed_memory_pools) \
712
  ((_fixed_memory_pools) * \
713
   ( sizeof(ITRON_Fixed_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
714
 
715
#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZES
716
#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZES (RTEMS_MINIMUM_STACK_SIZE * 2)
717
#endif
718
 
719
 
720
#define CONFIGURE_MEMORY_FOR_ITRON \
721
  ( \
722
    CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \
723
        CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \
724
    CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( \
725
        CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \
726
    CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( \
727
        CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \
728
    CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS( \
729
        CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \
730
    CONFIGURE_MEMORY_FOR_ITRON_PORTS( \
731
        CONFIGURE_MAXIMUM_ITRON_PORTS ) + \
732
    CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS( \
733
        CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \
734
    CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS( \
735
        CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \
736
    CONFIGURE_ITRON_INIT_TASK_STACK_SIZES \
737
   )
738
 
739
 
740
#else
741
 
742
#define CONFIGURE_MAXIMUM_ITRON_TASKS               0
743
#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES          0
744
#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS          0
745
#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES           0
746
#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS     0
747
#define CONFIGURE_MAXIMUM_ITRON_PORTS               0
748
#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS        0
749
#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS  0
750
#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API     0
751
#define CONFIGURE_MEMORY_FOR_ITRON                  0
752
 
753
#endif    /* RTEMS_ITRON_API */
754
 
755
 
756
/*
757
 *  Calculate the RAM size based on the maximum number of objects configured.
758
 */
759
 
760
#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
761
 
762
#define CONFIGURE_OBJECT_TABLE_STUFF \
763
  ( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) )
764
 
765
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \
766
  (((_tasks) + 1 ) * \
767
   ((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \
768
      STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
769
      CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \
770
      CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API + \
771
      CONFIGURE_OBJECT_TABLE_STUFF)) \
772
  )
773
 
774
#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
775
  ((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
776
 
777
#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
778
  ((_semaphores) * \
779
   ( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
780
 
781
#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
782
  ( (_queues) * \
783
    ( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
784
 
785
#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
786
  ( (_partitions) * \
787
    ( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
788
 
789
#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
790
  ( (_regions) * \
791
    ( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
792
 
793
#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \
794
  ( (_ports) * \
795
    ( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
796
 
797
#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
798
  ( (_periods) * \
799
    ( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
800
 
801
#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
802
  ( (_extensions) * \
803
    ( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
804
 
805
#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \
806
  (((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) )
807
 
808
#ifdef CONFIGURE_MP_APPLICATION
809
 
810
#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
811
 
812
#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \
813
  ( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) )  )
814
 
815
#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \
816
  ((_global_objects)  * ( sizeof(Objects_MP_Control) )  )
817
 
818
#define CONFIGURE_MEMORY_FOR_MP \
819
  ( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
820
    CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) + \
821
    CONFIGURE_MEMORY_FOR_TASKS(1) \
822
  )
823
 
824
#endif  /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
825
 
826
#else
827
 
828
#define CONFIGURE_MEMORY_FOR_MP  0
829
 
830
#endif
831
 
832
#ifndef CONFIGURE_MEMORY_OVERHEAD
833
#define CONFIGURE_MEMORY_OVERHEAD 0
834
#endif
835
 
836
#ifndef CONFIGURE_EXTRA_TASK_STACKS
837
#define CONFIGURE_EXTRA_TASK_STACKS 0
838
#endif
839
 
840
#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \
841
  ( CONFIGURE_MEMORY_FOR_TASKS(1) +    /* IDLE */ \
842
    (256 * 12) +                       /* Ready chains */ \
843
    256        +                       /* name/ptr table overhead */ \
844
    CONFIGURE_INTERRUPT_STACK_MEMORY   /* interrupt stack */ \
845
  )
846
 
847
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
848
(( CONFIGURE_MEMORY_FOR_POSIX + \
849
   CONFIGURE_MEMORY_FOR_ITRON + \
850
   CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS + \
851
      CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + \
852
      CONFIGURE_MAXIMUM_ITRON_TASKS ) + \
853
   CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
854
   CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES + \
855
     CONFIGURE_LIBIO_SEMAPHORES + CONFIGURE_TERMIOS_SEMAPHORES) + \
856
   CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \
857
   CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \
858
   CONFIGURE_MEMORY_FOR_REGIONS( \
859
      CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION ) + \
860
   CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \
861
   CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \
862
   CONFIGURE_MEMORY_FOR_USER_EXTENSIONS( \
863
      CONFIGURE_MAXIMUM_USER_EXTENSIONS + CONFIGURE_NEWLIB_EXTENSION + \
864
      CONFIGURE_STACK_CHECKER_EXTENSION ) + \
865
   CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \
866
   CONFIGURE_MEMORY_FOR_MP + \
867
   CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD + \
868
   (((CONFIGURE_MEMORY_OVERHEAD)+1) * 1024) + \
869
   (CONFIGURE_EXTRA_TASK_STACKS) + (CONFIGURE_ADA_TASKS_STACK) \
870
) & 0xfffffc00)
871
#endif
872
 
873
#ifdef CONFIGURE_GNAT_RTEMS
874
#define CONFIGURE_GNAT_MUTEXES 10
875
#define CONFIGURE_GNAT_KEYS    1
876
 
877
/* 20 are required to run all tests in the ACVC */
878
#ifndef CONFIGURE_MAXIMUM_ADA_TASKS
879
#define CONFIGURE_MAXIMUM_ADA_TASKS  20
880
#endif
881
 
882
/* This is the number of non-Ada tasks which invoked Ada code. */
883
#ifndef CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
884
#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS 0
885
#endif
886
 
887
/* Ada tasks are allocated twice the minimum stack space */
888
#define CONFIGURE_ADA_TASKS_STACK \
889
  (CONFIGURE_MAXIMUM_ADA_TASKS * (RTEMS_MINIMUM_STACK_SIZE + (6 * 1024)))
890
 
891
#else
892
#define CONFIGURE_GNAT_MUTEXES           0
893
#define CONFIGURE_GNAT_KEYS              0
894
#define CONFIGURE_MAXIMUM_ADA_TASKS      0
895
#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS 0
896
#define CONFIGURE_ADA_TASKS_STACK        0
897
#endif
898
 
899
 
900
#ifdef CONFIGURE_INIT
901
 
902
rtems_api_configuration_table Configuration_RTEMS_API = {
903
  CONFIGURE_MAXIMUM_TASKS,
904
  CONFIGURE_MAXIMUM_TIMERS,
905
  CONFIGURE_MAXIMUM_SEMAPHORES + CONFIGURE_LIBIO_SEMAPHORES +
906
    CONFIGURE_TERMIOS_SEMAPHORES,
907
  CONFIGURE_MAXIMUM_MESSAGE_QUEUES,
908
  CONFIGURE_MAXIMUM_PARTITIONS,
909
  CONFIGURE_MAXIMUM_REGIONS + CONFIGURE_MALLOC_REGION,
910
  CONFIGURE_MAXIMUM_PORTS,
911
  CONFIGURE_MAXIMUM_PERIODS,
912
  CONFIGURE_INIT_TASK_TABLE_SIZE,
913
  CONFIGURE_INIT_TASK_TABLE
914
};
915
 
916
#ifdef RTEMS_POSIX_API
917
posix_api_configuration_table Configuration_POSIX_API = {
918
  CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS,
919
  CONFIGURE_MAXIMUM_POSIX_MUTEXES + CONFIGURE_GNAT_MUTEXES +
920
    CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
921
  CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES +
922
    CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS,
923
  CONFIGURE_MAXIMUM_POSIX_KEYS + CONFIGURE_GNAT_KEYS,
924
  CONFIGURE_MAXIMUM_POSIX_TIMERS,
925
  CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS,
926
  CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES,
927
  CONFIGURE_MAXIMUM_POSIX_SEMAPHORES,
928
  CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE,
929
  CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME
930
};
931
#endif
932
 
933
#ifdef RTEMS_ITRON_API
934
itron_api_configuration_table Configuration_ITRON_API = {
935
  CONFIGURE_MAXIMUM_ITRON_TASKS,
936
  CONFIGURE_MAXIMUM_ITRON_SEMAPHORES,
937
  CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS,
938
  CONFIGURE_MAXIMUM_ITRON_MAILBOXES,
939
  CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS,
940
  CONFIGURE_MAXIMUM_ITRON_PORTS,
941
  CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS,
942
  CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS,
943
  CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE,
944
  CONFIGURE_ITRON_INIT_TASK_TABLE_NAME
945
};
946
#endif
947
 
948
rtems_configuration_table Configuration = {
949
  CONFIGURE_EXECUTIVE_RAM_WORK_AREA,
950
  CONFIGURE_EXECUTIVE_RAM_SIZE,
951
  CONFIGURE_MAXIMUM_USER_EXTENSIONS + CONFIGURE_NEWLIB_EXTENSION +
952
      CONFIGURE_STACK_CHECKER_EXTENSION,
953
  CONFIGURE_MICROSECONDS_PER_TICK,
954
  CONFIGURE_TICKS_PER_TIMESLICE,
955
  CONFIGURE_MAXIMUM_DEVICES,
956
  sizeof (Device_drivers)/
957
    sizeof(rtems_driver_address_table),      /* number of device drivers */
958
  Device_drivers,                            /* pointer to driver table */
959
  CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS,    /* number of initial extensions */
960
  Configuration_Initial_Extensions,          /* pointer to initial extensions */
961
  CONFIGURE_MULTIPROCESSING_TABLE,           /* pointer to MP config table */
962
  &Configuration_RTEMS_API,                  /* pointer to RTEMS API config */
963
#ifdef RTEMS_POSIX_API
964
  &Configuration_POSIX_API,                  /* pointer to POSIX API config */
965
#else
966
  NULL,                                      /* pointer to POSIX API config */
967
#endif
968
#ifdef RTEMS_ITRON_API
969
  &Configuration_ITRON_API                   /* pointer to ITRON API config */
970
#else
971
  NULL                                       /* pointer to ITRON API config */
972
#endif
973
};
974
#endif
975
 
976
#endif /* CONFIGURE_HAS_OWN_CONFIGURATION_TABLE */
977
 
978
#ifdef __cplusplus
979
}
980
#endif
981
 
982
/*
983
 *  Some warnings and error checking
984
 */
985
 
986
/*
987
 *  Make sure a task/thread of some sort is configured
988
 */
989
 
990
#if (CONFIGURE_MAXIMUM_TASKS == 0) && \
991
    (CONFIGURE_MAXIMUM_POSIX_THREADS == 0) && \
992
    (CONFIGURE_MAXIMUM_ADA_TASKS == 0) &&  \
993
    (CONFIGURE_MAXIMUM_ITRON_TASKS == 0)
994
#error "CONFIGURATION ERROR: No tasks or threads configured!!
995
#endif
996
 
997
/*
998
 *  Make sure at least one of the initialization task/thread
999
 *  tables was defined.
1000
 */
1001
 
1002
#if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) && \
1003
    !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) && \
1004
    !defined(CONFIGURE_ITRON_INIT_TASK_TABLE)
1005
#error "CONFIGURATION ERROR: No initialization tasks or threads configured!!
1006
#endif
1007
 
1008
#endif
1009
/* end of include file */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.