Changeset 352c9b2 in rtems


Ignore:
Timestamp:
11/09/99 22:07:23 (24 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
ad502d18
Parents:
1007c3c
Message:

This patch adds the basic framework for the ITRON 3.0 API implementation
for RTEMS.

Files:
205 added
28 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/Makefile.am

    r1007c3c r352c9b2  
    1010endif
    1111
    12 SUBDIRS = score rtems $(POSIX_SUBDIRS) sapi wrapup
     12if HAS_ITRON
     13ITRON_SUBDIRS = itron
     14endif
     15
     16SUBDIRS = score rtems $(POSIX_SUBDIRS) $(ITRON_SUBDIRS) sapi wrapup
    1317
    1418include $(top_srcdir)/../../../automake/subdirs.am
  • c/src/exec/configure.in

    r1007c3c r352c9b2  
    1414RTEMS_ENABLE_MULTIPROCESSING
    1515RTEMS_ENABLE_POSIX
     16RTEMS_ENABLE_ITRON
    1617RTEMS_ENABLE_INLINES
    1718RTEMS_ENABLE_GCC28
     
    3536RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
    3637RTEMS_CHECK_POSIX_API(RTEMS_BSP)
     38RTEMS_CHECK_ITRON_API(RTEMS_BSP)
    3739
    3840# If RTEMS macros are enabled, then use them.  Otherwise, use inlines.
     
    4244    # The problem is that there is currently no code in posix/macros :)
    4345    AC_MSG_ERROR(Macros are not implemented for the POSIX API)
     46  fi
     47  if test "$HAS_ITRON_API" = "yes"; then
     48    # The problem is that there is currently no code in itron/macros :)
     49    AC_MSG_ERROR(Macros are not implemented for the ITRON API)
    4450  fi
    4551else
     
    5258
    5359AM_CONDITIONAL(HAS_POSIX,test "$HAS_POSIX_API" = "yes")
     60AM_CONDITIONAL(HAS_ITRON,test "$HAS_ITRON_API" = "yes")
    5461
    5562if test "$HAS_POSIX_API" = "yes"; then
    56 cfg_subdirs="posix"
     63  cfg_subdirs="posix"
     64fi
     65if test "$HAS_ITRON_API" = "yes"; then
     66  cfg_subdirs="$cfg_subdirs itron"
    5767fi
    5868AC_CONFIG_SUBDIRS($cfg_subdirs)
     
    101111wrapup/Makefile
    102112wrapup/rtems/Makefile
     113wrapup/itron/Makefile
    103114wrapup/posix/Makefile
    104115)
  • c/src/exec/posix/Makefile.am

    r1007c3c r352c9b2  
    66ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
    77
    8 SUBDIRS = include inline macros optman src
     8SUBDIRS = include inline macros src
    99
    1010include $(top_srcdir)/../../../../automake/subdirs.am
  • c/src/exec/posix/configure.in

    r1007c3c r352c9b2  
    1414
    1515RTEMS_ENABLE_MULTIPROCESSING
     16RTEMS_ENABLE_POSIX
    1617RTEMS_ENABLE_POSIX
    1718RTEMS_ENABLE_INLINES
  • c/src/exec/sapi/include/confdefs.h

    r1007c3c r352c9b2  
    3030extern posix_api_configuration_table    Configuration_POSIX_API;
    3131#endif
     32#ifdef RTEMS_ITRON_API
     33extern itron_api_configuration_table    Configuration_ITRON_API;
     34#endif
    3235
    3336/*
     
    508511#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE    0
    509512#endif
     513
     514/*
     515 *  ITRON API Configuration Parameters
     516 */
     517
     518#ifdef RTEMS_ITRON_API
     519
     520#include <itron.h>
     521#include <rtems/itron/config.h>
     522#include <rtems/itron/eventflags.h>
     523#include <rtems/itron/fmempool.h>
     524#include <rtems/itron/mbox.h>
     525#include <rtems/itron/msgbuffer.h>
     526#include <rtems/itron/port.h>
     527#include <rtems/itron/semaphore.h>
     528#include <rtems/itron/task.h>
     529#include <rtems/itron/vmempool.h>
     530
     531#ifndef CONFIGURE_MAXIMUM_ITRON_TASKS
     532#define CONFIGURE_MAXIMUM_ITRON_TASKS      10
     533#endif
     534
     535#ifndef CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
     536#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES   0
     537#endif
     538
     539#ifndef CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS
     540#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS   0
     541#endif
     542
     543#ifndef CONFIGURE_MAXIMUM_ITRON_MAILBOXES
     544#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES   0
     545#endif
     546
     547#ifndef CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS
     548#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS   0
     549#endif
     550
     551#ifndef CONFIGURE_MAXIMUM_ITRON_PORTS
     552#define CONFIGURE_MAXIMUM_ITRON_PORTS   0
     553#endif
     554
     555#ifndef CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS
     556#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS   0
     557#endif
     558
     559#ifndef CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS
     560#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS   0
     561#endif
     562
     563#ifdef CONFIGURE_ITRON_INIT_TASK_TABLE
     564
     565#ifdef CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE
     566
     567/*
     568 *  The user is defining their own table information and setting the
     569 *  appropriate variables.
     570 */
     571
     572#else
     573
     574#ifndef CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT
     575#define CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT   ITRON_Init
     576#endif
     577
     578#ifndef CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES
     579#define CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES    TA_HLNG
     580#endif
     581
     582#ifndef CONFIGURE_ITRON_INIT_TASK_PRIORITY
     583#define CONFIGURE_ITRON_INIT_TASK_PRIORITY      1
     584#endif
     585
     586#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZE
     587#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE    RTEMS_MINIMUM_STACK_SIZE
     588#endif
     589
     590#ifdef CONFIGURE_INIT
     591itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
     592  { 1,                                    /* ID */
     593    { (VP) 0,                                /* exinfo */
     594      CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES,  /* task attributes */
     595      CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT, /* task start address */
     596      CONFIGURE_ITRON_INIT_TASK_PRIORITY,    /* initial task priority */
     597      CONFIGURE_ITRON_INIT_TASK_STACK_SIZE   /* stack size */
     598    }
     599  }
     600};
     601#endif
     602
     603#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME ITRON_Initialization_tasks
     604
     605#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE \
     606  sizeof(CONFIGURE_ITRON_INIT_TASK_TABLE_NAME) / \
     607      sizeof(itron_initialization_tasks_table)
     608
     609#endif    /* CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE */
     610
     611#else     /* CONFIGURE_ITRON_INIT_TASK_TABLE */
     612
     613#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME NULL
     614#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE 0
     615
     616#endif
     617
     618#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API \
     619  ( \
     620    sizeof (ITRON_API_Control) \
     621  )
     622
     623#define CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES(_semaphores) \
     624  ((_semaphores) * \
     625   ( sizeof(ITRON_Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     626
     627#define CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS(_eventflags) \
     628  ((_eventflags) * \
     629   ( sizeof(ITRON_Eventflags_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     630
     631#define CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES(_mailboxes) \
     632  ((_mailboxes) * \
     633   ( sizeof(ITRON_Mailbox_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     634
     635#define CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(_message_buffers) \
     636  ((_message_buffers) * \
     637   ( sizeof(ITRON_Message_buffer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     638
     639#define CONFIGURE_MEMORY_FOR_ITRON_PORTS(_ports) \
     640  ((_ports) * \
     641   ( sizeof(ITRON_Port_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     642
     643#define CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS(_memory_pools) \
     644  ((_memory_pools) * \
     645   (sizeof(ITRON_Variable_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF))
     646
     647#define CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS(_fixed_memory_pools) \
     648  ((_fixed_memory_pools) * \
     649   ( sizeof(ITRON_Fixed_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     650
     651#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZES
     652#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZES (RTEMS_MINIMUM_STACK_SIZE * 2)
     653#endif
     654
     655
     656#define CONFIGURE_MEMORY_FOR_ITRON \
     657  ( \
     658    CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \
     659        CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \
     660    CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( \
     661        CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \
     662    CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( \
     663        CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \
     664    CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS( \
     665        CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \
     666    CONFIGURE_MEMORY_FOR_ITRON_PORTS( \
     667        CONFIGURE_MAXIMUM_ITRON_PORTS ) + \
     668    CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS( \
     669        CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \
     670    CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS( \
     671        CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \
     672    CONFIGURE_ITRON_INIT_TASK_STACK_SIZES \
     673   )
     674
     675
     676#else
     677
     678#define CONFIGURE_MAXIMUM_ITRON_TASKS               0
     679#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES          0
     680#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS          0
     681#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES           0
     682#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS     0
     683#define CONFIGURE_MAXIMUM_ITRON_PORTS               0
     684#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS        0
     685#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS  0
     686#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API     0
     687#define CONFIGURE_MEMORY_FOR_ITRON                  0
     688
     689#endif    /* RTEMS_ITRON_API */
     690
    510691
    511692/*
     
    539720      STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
    540721      CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \
     722      CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API + \
    541723      CONFIGURE_OBJECT_TABLE_STUFF)) \
    542724  )
     
    617799#define CONFIGURE_EXECUTIVE_RAM_SIZE \
    618800(( CONFIGURE_MEMORY_FOR_POSIX + \
     801   CONFIGURE_MEMORY_FOR_ITRON + \
    619802   CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS + \
    620       CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS ) + \
     803      CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + \
     804      CONFIGURE_MAXIMUM_ITRON_TASKS ) + \
    621805   CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
    622806   CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES + \
     
    698882#endif
    699883
     884#ifdef RTEMS_ITRON_API
     885itron_api_configuration_table Configuration_ITRON_API = {
     886  CONFIGURE_MAXIMUM_ITRON_TASKS,
     887  CONFIGURE_MAXIMUM_ITRON_SEMAPHORES,
     888  CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS,
     889  CONFIGURE_MAXIMUM_ITRON_MAILBOXES,
     890  CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS,
     891  CONFIGURE_MAXIMUM_ITRON_PORTS,
     892  CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS,
     893  CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS,
     894  CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE,
     895  CONFIGURE_ITRON_INIT_TASK_TABLE_NAME
     896};
     897#endif
     898
    700899rtems_configuration_table Configuration = {
    701900  CONFIGURE_EXECUTIVE_RAM_WORK_AREA,
     
    714913  &Configuration_RTEMS_API,                  /* pointer to RTEMS API config */
    715914#ifdef RTEMS_POSIX_API
    716   &Configuration_POSIX_API                   /* pointer to POSIX API config */
    717 #else
    718   NULL                                       /* pointer to POSIX API config */
     915  &Configuration_POSIX_API,                  /* pointer to POSIX API config */
     916#else
     917  NULL,                                      /* pointer to POSIX API config */
     918#endif
     919#ifdef RTEMS_ITRON_API
     920  &Configuration_ITRON_API                   /* pointer to ITRON API config */
     921#else
     922  NULL                                       /* pointer to ITRON API config */
    719923#endif
    720924};
  • c/src/exec/sapi/include/rtems/config.h

    r1007c3c r352c9b2  
    2626 *  or RTEMS APIs to bounded only by the memory of the work-space.
    2727 *
    28  *  Use the macro to define the resource unlimited before placing in the configuration
    29  *  table.
     28 *  Use the macro to define the resource unlimited before placing in
     29 *  the configuration table.
    3030 */
    3131
     
    3838/*
    3939 *  This is kind of kludgy but it allows targets to totally ignore the
    40  *  POSIX API safely.
     40 *  optional APIs like POSIX and ITRON safely.
    4141 */
    4242
     
    4444#include <rtems/posix/config.h>
    4545#else
     46typedef void *posix_api_configuration_table;
     47#endif
    4648
    47 typedef void *posix_api_configuration_table;
     49#ifdef RTEMS_ITRON_API
     50#include <itron.h>
     51#include <rtems/itron/config.h>
     52#else
     53typedef void *itron_api_configuration_table;
    4854#endif
    4955
     
    107113  rtems_api_configuration_table    *RTEMS_api_configuration;
    108114  posix_api_configuration_table    *POSIX_api_configuration;
     115  itron_api_configuration_table    *ITRON_api_configuration;
    109116} rtems_configuration_table;
    110117
     
    166173        (_Configuration_Table->POSIX_api_configuration)
    167174
     175#define rtems_configuration_get_itron_api_configuration() \
     176        (_Configuration_Table->ITRON_api_configuration)
     177
    168178#ifdef __cplusplus
    169179}
  • c/src/exec/sapi/src/Makefile.in

    r1007c3c r352c9b2  
    1414VPATH = @srcdir@
    1515
    16 C_PIECES = debug entrytable extension fatal exinit io posixapi rtemsapi
     16C_PIECES = debug entrytable extension fatal exinit io \
     17    itronapi posixapi rtemsapi
    1718C_FILES = $(C_PIECES:%=%.c)
    1819C_O_FILES = $(C_PIECES:%=${ARCH}/%.o)
  • c/src/exec/sapi/src/exinit.c

    r1007c3c r352c9b2  
    5353#include <rtems/posix/posixapi.h>
    5454#endif
     55#ifdef RTEMS_ITRON_API
     56#include <rtems/itron/itronapi.h>
     57#endif
     58
    5559
    5660/*PAGE
     
    210214#ifdef RTEMS_POSIX_API
    211215  _POSIX_API_Initialize( configuration_table );
     216#endif
     217
     218#ifdef RTEMS_ITRON_API
     219  _ITRON_API_Initialize( configuration_table );
    212220#endif
    213221
  • c/src/exec/score/cpu/configure.in

    r1007c3c r352c9b2  
    1414RTEMS_ENABLE_MULTIPROCESSING
    1515RTEMS_ENABLE_POSIX
     16RTEMS_ENABLE_ITRON
    1617RTEMS_ENABLE_INLINES
    1718RTEMS_ENABLE_LIBCDIR
     
    3637RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
    3738RTEMS_CHECK_POSIX_API(RTEMS_BSP)
     39RTEMS_CHECK_ITRON_API(RTEMS_BSP)
    3840
    3941RTEMS_CHECK_SYSV_UNIX
     
    4345
    4446AM_CONDITIONAL(HAS_POSIX,test "$HAS_POSIX_API" = "yes")
     47AM_CONDITIONAL(HAS_ITRON,test "$HAS_ITRON_API" = "yes")
    4548
    4649# Try to explicitly list a Makefile here
  • c/src/exec/score/include/rtems/score/Makefile.in

    r1007c3c r352c9b2  
    9494        echo "#define RTEMS_POSIX_API 1"        >>$@; \
    9595        fi
     96        echo "SHOULD BE HAS_ITRON_API not RTEMS_HAS_ITRON_API XXX "
     97        @if test "$(RTEMS_HAS_ITRON_API)" = "yes"; then \
     98        echo "#define RTEMS_ITRON_API 1"        >>$@; \
     99        fi
    96100        @if test "$(RTEMS_USE_NEWLIB)" = "yes"; then    \
    97101        echo "#define RTEMS_NEWLIB 1"           >>$@;   \
  • c/src/exec/score/include/rtems/score/interr.h

    r1007c3c r352c9b2  
    3131  INTERNAL_ERROR_CORE,
    3232  INTERNAL_ERROR_RTEMS_API,
    33   INTERNAL_ERROR_POSIX_API
     33  INTERNAL_ERROR_POSIX_API,
     34  INTERNAL_ERROR_ITRON_API
    3435} Internal_errors_Source;
    3536
  • c/src/exec/score/include/rtems/score/object.h

    r1007c3c r352c9b2  
    8787
    8888typedef enum {
    89   OBJECTS_NO_CLASS                  =  0,
    90   OBJECTS_INTERNAL_THREADS          =  1,
    91   OBJECTS_RTEMS_TASKS               =  2,
    92   OBJECTS_POSIX_THREADS             =  3,
    93   OBJECTS_RTEMS_TIMERS              =  4,
    94   OBJECTS_RTEMS_SEMAPHORES          =  5,
    95   OBJECTS_RTEMS_MESSAGE_QUEUES      =  6,
    96   OBJECTS_RTEMS_PARTITIONS          =  7,
    97   OBJECTS_RTEMS_REGIONS             =  8,
    98   OBJECTS_RTEMS_PORTS               =  9,
    99   OBJECTS_RTEMS_PERIODS             = 10,
    100   OBJECTS_RTEMS_EXTENSIONS          = 11,
    101   OBJECTS_POSIX_KEYS                = 12,
    102   OBJECTS_POSIX_INTERRUPTS          = 13,
    103   OBJECTS_POSIX_MESSAGE_QUEUES      = 14,
    104   OBJECTS_POSIX_MUTEXES             = 15,
    105   OBJECTS_POSIX_SEMAPHORES          = 16,
    106   OBJECTS_POSIX_CONDITION_VARIABLES = 17
     89  OBJECTS_NO_CLASS                    =  0,
     90  OBJECTS_INTERNAL_THREADS            =  1,
     91  OBJECTS_RTEMS_TASKS                 =  2,
     92  OBJECTS_POSIX_THREADS               =  3,
     93  OBJECTS_ITRON_TASKS                 =  4,
     94  OBJECTS_RTEMS_TIMERS                =  5,
     95  OBJECTS_RTEMS_SEMAPHORES            =  6,
     96  OBJECTS_RTEMS_MESSAGE_QUEUES        =  7,
     97  OBJECTS_RTEMS_PARTITIONS            =  8,
     98  OBJECTS_RTEMS_REGIONS               =  9,
     99  OBJECTS_RTEMS_PORTS                 = 10,
     100  OBJECTS_RTEMS_PERIODS               = 11,
     101  OBJECTS_RTEMS_EXTENSIONS            = 12,
     102  OBJECTS_POSIX_KEYS                  = 13,
     103  OBJECTS_POSIX_INTERRUPTS            = 14,
     104  OBJECTS_POSIX_MESSAGE_QUEUES        = 15,
     105  OBJECTS_POSIX_MUTEXES               = 16,
     106  OBJECTS_POSIX_SEMAPHORES            = 17,
     107  OBJECTS_POSIX_CONDITION_VARIABLES   = 18,
     108  OBJECTS_ITRON_EVENTFLAGS            = 19,
     109  OBJECTS_ITRON_MAILBOXES             = 20,
     110  OBJECTS_ITRON_MESSAGE_BUFFERS       = 21,
     111  OBJECTS_ITRON_PORTS                 = 22,
     112  OBJECTS_ITRON_SEMAPHORES            = 23,
     113  OBJECTS_ITRON_VARIABLE_MEMORY_POOLS = 24,
     114  OBJECTS_ITRON_FIXED_MEMORY_POOLS    = 25
    107115} Objects_Classes;
    108116 
    109117#define OBJECTS_CLASSES_FIRST               OBJECTS_NO_CLASS
    110 #define OBJECTS_CLASSES_LAST                OBJECTS_POSIX_CONDITION_VARIABLES
     118#define OBJECTS_CLASSES_LAST                OBJECTS_ITRON_FIXED_MEMORY_POOLS
    111119#define OBJECTS_CLASSES_FIRST_THREAD_CLASS  OBJECTS_INTERNAL_THREADS
    112 #define OBJECTS_CLASSES_LAST_THREAD_CLASS   OBJECTS_POSIX_THREADS
     120#define OBJECTS_CLASSES_LAST_THREAD_CLASS   OBJECTS_ITRON_TASKS
    113121
    114122/*
     
    285293);
    286294
     295/*
     296 *  _Objects_Allocate_by_index
     297 *
     298 *  DESCRIPTION:
     299 *
     300 *  This function allocates the object control block
     301 *  specified by the index from the inactive chain of
     302 *  free object control blocks.
     303 */
     304
     305Objects_Control *_Objects_Allocate_by_index(
     306  Objects_Information *information,
     307  unsigned32           index,
     308  unsigned32           sizeof_control
     309);
     310
    287311/*PAGE
    288312 *
  • c/src/exec/score/include/rtems/score/thread.h

    r1007c3c r352c9b2  
    167167typedef enum {
    168168  THREAD_API_RTEMS,
    169   THREAD_API_POSIX
     169  THREAD_API_POSIX,
     170  THREAD_API_ITRON
    170171}  Thread_APIs;
    171172
    172173#define THREAD_API_FIRST THREAD_API_RTEMS
    173 #define THREAD_API_LAST  THREAD_API_POSIX
     174#define THREAD_API_LAST  THREAD_API_ITRON
    174175
    175176struct Thread_Control_struct {
  • c/src/exec/score/include/rtems/system.h

    r1007c3c r352c9b2  
    6868#undef  POSIX_EXTERN
    6969#define POSIX_EXTERN  extern
     70#endif
     71
     72#ifdef ITRON_API_INIT
     73#undef  ITRON_EXTERN
     74#define ITRON_EXTERN
     75#else
     76#undef  ITRON_EXTERN
     77#define ITRON_EXTERN  extern
    7078#endif
    7179
  • c/src/exec/wrapup/Makefile.am

    r1007c3c r352c9b2  
    99endif
    1010
    11 SUBDIRS = rtems $(POSIX_DIRS)
     11if HAS_ITRON
     12ITRON_DIRS = itron
     13endif
     14
     15SUBDIRS = rtems $(POSIX_DIRS) $(ITRON_DIRS)
    1216
    1317include $(top_srcdir)/../../../automake/subdirs.am
  • c/src/exec/wrapup/posix/Makefile.in

    r1007c3c r352c9b2  
    1414VPATH = @srcdir@
    1515
    16 #
    17 #  This is really temporary until posix is more an integral part of the tree.
    18 #
    19 #CPU_OBJS=$(wildcard ../../score/cpu/$(RTEMS_CPU)/$(ARCH)/*.rel)
    20 #CORE_OBJS=$(wildcard ../../score/src/$(ARCH)/*.o)
    21 #SAPI_OBJS=$(wildcard ../../sapi/src/$(ARCH)/*.o)
    2216POSIX_OBJS = $(wildcard ../../posix/src/$(ARCH)/*.o)
    2317
  • c/src/tests/configure.in

    r1007c3c r352c9b2  
    1515RTEMS_ENABLE_MULTIPROCESSING
    1616RTEMS_ENABLE_POSIX
     17RTEMS_ENABLE_ITRON
    1718RTEMS_ENABLE_NETWORKING
    1819RTEMS_ENABLE_INLINES
     
    4243RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
    4344RTEMS_CHECK_POSIX_API(RTEMS_BSP)
     45RTEMS_CHECK_ITRON_API(RTEMS_BSP)
    4446
    4547if test "$tests_enabled" = "yes"; then
     48  # do functionality tests first, then performance tests
    4649  cfg_subdirs="libtests sptests"
    4750  if test "$HAS_MP" = "yes"; then
     
    5154    cfg_subdirs="$cfg_subdirs psxtests"
    5255  fi
     56  if test "$HAS_ITRON_API" = "yes"; then
     57    cfg_subdirs="$cfg_subdirs itrontests tmitrontests"
     58  fi
     59  # Now do performance tests
    5360  cfg_subdirs="$cfg_subdirs tmtests"
     61  if test "$HAS_ITRON_API" = "yes"; then
     62    cfg_subdirs="$cfg_subdirs tmitrontests"
     63  fi
    5464fi
    5565
  • c/src/tests/samples/configure.in

    r1007c3c r352c9b2  
    1515RTEMS_ENABLE_MULTIPROCESSING
    1616RTEMS_ENABLE_POSIX
     17RTEMS_ENABLE_ITRON
    1718RTEMS_ENABLE_NETWORKING
    1819RTEMS_ENABLE_INLINES
  • cpukit/Makefile.am

    r1007c3c r352c9b2  
    1010endif
    1111
    12 SUBDIRS = score rtems $(POSIX_SUBDIRS) sapi wrapup
     12if HAS_ITRON
     13ITRON_SUBDIRS = itron
     14endif
     15
     16SUBDIRS = score rtems $(POSIX_SUBDIRS) $(ITRON_SUBDIRS) sapi wrapup
    1317
    1418include $(top_srcdir)/../../../automake/subdirs.am
  • cpukit/posix/Makefile.am

    r1007c3c r352c9b2  
    66ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
    77
    8 SUBDIRS = include inline macros optman src
     8SUBDIRS = include inline macros src
    99
    1010include $(top_srcdir)/../../../../automake/subdirs.am
  • cpukit/sapi/include/confdefs.h

    r1007c3c r352c9b2  
    3030extern posix_api_configuration_table    Configuration_POSIX_API;
    3131#endif
     32#ifdef RTEMS_ITRON_API
     33extern itron_api_configuration_table    Configuration_ITRON_API;
     34#endif
    3235
    3336/*
     
    508511#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE    0
    509512#endif
     513
     514/*
     515 *  ITRON API Configuration Parameters
     516 */
     517
     518#ifdef RTEMS_ITRON_API
     519
     520#include <itron.h>
     521#include <rtems/itron/config.h>
     522#include <rtems/itron/eventflags.h>
     523#include <rtems/itron/fmempool.h>
     524#include <rtems/itron/mbox.h>
     525#include <rtems/itron/msgbuffer.h>
     526#include <rtems/itron/port.h>
     527#include <rtems/itron/semaphore.h>
     528#include <rtems/itron/task.h>
     529#include <rtems/itron/vmempool.h>
     530
     531#ifndef CONFIGURE_MAXIMUM_ITRON_TASKS
     532#define CONFIGURE_MAXIMUM_ITRON_TASKS      10
     533#endif
     534
     535#ifndef CONFIGURE_MAXIMUM_ITRON_SEMAPHORES
     536#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES   0
     537#endif
     538
     539#ifndef CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS
     540#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS   0
     541#endif
     542
     543#ifndef CONFIGURE_MAXIMUM_ITRON_MAILBOXES
     544#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES   0
     545#endif
     546
     547#ifndef CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS
     548#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS   0
     549#endif
     550
     551#ifndef CONFIGURE_MAXIMUM_ITRON_PORTS
     552#define CONFIGURE_MAXIMUM_ITRON_PORTS   0
     553#endif
     554
     555#ifndef CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS
     556#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS   0
     557#endif
     558
     559#ifndef CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS
     560#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS   0
     561#endif
     562
     563#ifdef CONFIGURE_ITRON_INIT_TASK_TABLE
     564
     565#ifdef CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE
     566
     567/*
     568 *  The user is defining their own table information and setting the
     569 *  appropriate variables.
     570 */
     571
     572#else
     573
     574#ifndef CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT
     575#define CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT   ITRON_Init
     576#endif
     577
     578#ifndef CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES
     579#define CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES    TA_HLNG
     580#endif
     581
     582#ifndef CONFIGURE_ITRON_INIT_TASK_PRIORITY
     583#define CONFIGURE_ITRON_INIT_TASK_PRIORITY      1
     584#endif
     585
     586#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZE
     587#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZE    RTEMS_MINIMUM_STACK_SIZE
     588#endif
     589
     590#ifdef CONFIGURE_INIT
     591itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
     592  { 1,                                    /* ID */
     593    { (VP) 0,                                /* exinfo */
     594      CONFIGURE_ITRON_INIT_TASK_ATTRIBUTES,  /* task attributes */
     595      CONFIGURE_ITRON_INIT_TASK_ENTRY_POINT, /* task start address */
     596      CONFIGURE_ITRON_INIT_TASK_PRIORITY,    /* initial task priority */
     597      CONFIGURE_ITRON_INIT_TASK_STACK_SIZE   /* stack size */
     598    }
     599  }
     600};
     601#endif
     602
     603#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME ITRON_Initialization_tasks
     604
     605#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE \
     606  sizeof(CONFIGURE_ITRON_INIT_TASK_TABLE_NAME) / \
     607      sizeof(itron_initialization_tasks_table)
     608
     609#endif    /* CONFIGURE_ITRON_HAS_OWN_INIT_TASK_TABLE */
     610
     611#else     /* CONFIGURE_ITRON_INIT_TASK_TABLE */
     612
     613#define CONFIGURE_ITRON_INIT_TASK_TABLE_NAME NULL
     614#define CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE 0
     615
     616#endif
     617
     618#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API \
     619  ( \
     620    sizeof (ITRON_API_Control) \
     621  )
     622
     623#define CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES(_semaphores) \
     624  ((_semaphores) * \
     625   ( sizeof(ITRON_Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     626
     627#define CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS(_eventflags) \
     628  ((_eventflags) * \
     629   ( sizeof(ITRON_Eventflags_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     630
     631#define CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES(_mailboxes) \
     632  ((_mailboxes) * \
     633   ( sizeof(ITRON_Mailbox_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     634
     635#define CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS(_message_buffers) \
     636  ((_message_buffers) * \
     637   ( sizeof(ITRON_Message_buffer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     638
     639#define CONFIGURE_MEMORY_FOR_ITRON_PORTS(_ports) \
     640  ((_ports) * \
     641   ( sizeof(ITRON_Port_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     642
     643#define CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS(_memory_pools) \
     644  ((_memory_pools) * \
     645   (sizeof(ITRON_Variable_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF))
     646
     647#define CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS(_fixed_memory_pools) \
     648  ((_fixed_memory_pools) * \
     649   ( sizeof(ITRON_Fixed_memory_pool_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
     650
     651#ifndef CONFIGURE_ITRON_INIT_TASK_STACK_SIZES
     652#define CONFIGURE_ITRON_INIT_TASK_STACK_SIZES (RTEMS_MINIMUM_STACK_SIZE * 2)
     653#endif
     654
     655
     656#define CONFIGURE_MEMORY_FOR_ITRON \
     657  ( \
     658    CONFIGURE_MEMORY_FOR_ITRON_SEMAPHORES( \
     659        CONFIGURE_MAXIMUM_ITRON_SEMAPHORES ) + \
     660    CONFIGURE_MEMORY_FOR_ITRON_EVENTFLAGS( \
     661        CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS ) + \
     662    CONFIGURE_MEMORY_FOR_ITRON_MAILBOXES( \
     663        CONFIGURE_MAXIMUM_ITRON_MAILBOXES ) + \
     664    CONFIGURE_MEMORY_FOR_ITRON_MESSAGE_BUFFERS( \
     665        CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS ) + \
     666    CONFIGURE_MEMORY_FOR_ITRON_PORTS( \
     667        CONFIGURE_MAXIMUM_ITRON_PORTS ) + \
     668    CONFIGURE_MEMORY_FOR_ITRON_MEMORY_POOLS( \
     669        CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS ) + \
     670    CONFIGURE_MEMORY_FOR_ITRON_FIXED_MEMORY_POOLS( \
     671        CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS ) + \
     672    CONFIGURE_ITRON_INIT_TASK_STACK_SIZES \
     673   )
     674
     675
     676#else
     677
     678#define CONFIGURE_MAXIMUM_ITRON_TASKS               0
     679#define CONFIGURE_MAXIMUM_ITRON_SEMAPHORES          0
     680#define CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS          0
     681#define CONFIGURE_MAXIMUM_ITRON_MAILBOXES           0
     682#define CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS     0
     683#define CONFIGURE_MAXIMUM_ITRON_PORTS               0
     684#define CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS        0
     685#define CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS  0
     686#define CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API     0
     687#define CONFIGURE_MEMORY_FOR_ITRON                  0
     688
     689#endif    /* RTEMS_ITRON_API */
     690
    510691
    511692/*
     
    539720      STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
    540721      CONFIGURE_MEMORY_PER_TASK_FOR_POSIX_API + \
     722      CONFIGURE_MEMORY_PER_TASK_FOR_ITRON_API + \
    541723      CONFIGURE_OBJECT_TABLE_STUFF)) \
    542724  )
     
    617799#define CONFIGURE_EXECUTIVE_RAM_SIZE \
    618800(( CONFIGURE_MEMORY_FOR_POSIX + \
     801   CONFIGURE_MEMORY_FOR_ITRON + \
    619802   CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS + \
    620       CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS ) + \
     803      CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + \
     804      CONFIGURE_MAXIMUM_ITRON_TASKS ) + \
    621805   CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
    622806   CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES + \
     
    698882#endif
    699883
     884#ifdef RTEMS_ITRON_API
     885itron_api_configuration_table Configuration_ITRON_API = {
     886  CONFIGURE_MAXIMUM_ITRON_TASKS,
     887  CONFIGURE_MAXIMUM_ITRON_SEMAPHORES,
     888  CONFIGURE_MAXIMUM_ITRON_EVENTFLAGS,
     889  CONFIGURE_MAXIMUM_ITRON_MAILBOXES,
     890  CONFIGURE_MAXIMUM_ITRON_MESSAGE_BUFFERS,
     891  CONFIGURE_MAXIMUM_ITRON_PORTS,
     892  CONFIGURE_MAXIMUM_ITRON_MEMORY_POOLS,
     893  CONFIGURE_MAXIMUM_ITRON_FIXED_MEMORY_POOLS,
     894  CONFIGURE_ITRON_INIT_TASK_TABLE_SIZE,
     895  CONFIGURE_ITRON_INIT_TASK_TABLE_NAME
     896};
     897#endif
     898
    700899rtems_configuration_table Configuration = {
    701900  CONFIGURE_EXECUTIVE_RAM_WORK_AREA,
     
    714913  &Configuration_RTEMS_API,                  /* pointer to RTEMS API config */
    715914#ifdef RTEMS_POSIX_API
    716   &Configuration_POSIX_API                   /* pointer to POSIX API config */
    717 #else
    718   NULL                                       /* pointer to POSIX API config */
     915  &Configuration_POSIX_API,                  /* pointer to POSIX API config */
     916#else
     917  NULL,                                      /* pointer to POSIX API config */
     918#endif
     919#ifdef RTEMS_ITRON_API
     920  &Configuration_ITRON_API                   /* pointer to ITRON API config */
     921#else
     922  NULL                                       /* pointer to ITRON API config */
    719923#endif
    720924};
  • cpukit/sapi/include/rtems/config.h

    r1007c3c r352c9b2  
    2626 *  or RTEMS APIs to bounded only by the memory of the work-space.
    2727 *
    28  *  Use the macro to define the resource unlimited before placing in the configuration
    29  *  table.
     28 *  Use the macro to define the resource unlimited before placing in
     29 *  the configuration table.
    3030 */
    3131
     
    3838/*
    3939 *  This is kind of kludgy but it allows targets to totally ignore the
    40  *  POSIX API safely.
     40 *  optional APIs like POSIX and ITRON safely.
    4141 */
    4242
     
    4444#include <rtems/posix/config.h>
    4545#else
     46typedef void *posix_api_configuration_table;
     47#endif
    4648
    47 typedef void *posix_api_configuration_table;
     49#ifdef RTEMS_ITRON_API
     50#include <itron.h>
     51#include <rtems/itron/config.h>
     52#else
     53typedef void *itron_api_configuration_table;
    4854#endif
    4955
     
    107113  rtems_api_configuration_table    *RTEMS_api_configuration;
    108114  posix_api_configuration_table    *POSIX_api_configuration;
     115  itron_api_configuration_table    *ITRON_api_configuration;
    109116} rtems_configuration_table;
    110117
     
    166173        (_Configuration_Table->POSIX_api_configuration)
    167174
     175#define rtems_configuration_get_itron_api_configuration() \
     176        (_Configuration_Table->ITRON_api_configuration)
     177
    168178#ifdef __cplusplus
    169179}
  • cpukit/sapi/src/exinit.c

    r1007c3c r352c9b2  
    5353#include <rtems/posix/posixapi.h>
    5454#endif
     55#ifdef RTEMS_ITRON_API
     56#include <rtems/itron/itronapi.h>
     57#endif
     58
    5559
    5660/*PAGE
     
    210214#ifdef RTEMS_POSIX_API
    211215  _POSIX_API_Initialize( configuration_table );
     216#endif
     217
     218#ifdef RTEMS_ITRON_API
     219  _ITRON_API_Initialize( configuration_table );
    212220#endif
    213221
  • cpukit/score/include/rtems/score/interr.h

    r1007c3c r352c9b2  
    3131  INTERNAL_ERROR_CORE,
    3232  INTERNAL_ERROR_RTEMS_API,
    33   INTERNAL_ERROR_POSIX_API
     33  INTERNAL_ERROR_POSIX_API,
     34  INTERNAL_ERROR_ITRON_API
    3435} Internal_errors_Source;
    3536
  • cpukit/score/include/rtems/score/object.h

    r1007c3c r352c9b2  
    8787
    8888typedef enum {
    89   OBJECTS_NO_CLASS                  =  0,
    90   OBJECTS_INTERNAL_THREADS          =  1,
    91   OBJECTS_RTEMS_TASKS               =  2,
    92   OBJECTS_POSIX_THREADS             =  3,
    93   OBJECTS_RTEMS_TIMERS              =  4,
    94   OBJECTS_RTEMS_SEMAPHORES          =  5,
    95   OBJECTS_RTEMS_MESSAGE_QUEUES      =  6,
    96   OBJECTS_RTEMS_PARTITIONS          =  7,
    97   OBJECTS_RTEMS_REGIONS             =  8,
    98   OBJECTS_RTEMS_PORTS               =  9,
    99   OBJECTS_RTEMS_PERIODS             = 10,
    100   OBJECTS_RTEMS_EXTENSIONS          = 11,
    101   OBJECTS_POSIX_KEYS                = 12,
    102   OBJECTS_POSIX_INTERRUPTS          = 13,
    103   OBJECTS_POSIX_MESSAGE_QUEUES      = 14,
    104   OBJECTS_POSIX_MUTEXES             = 15,
    105   OBJECTS_POSIX_SEMAPHORES          = 16,
    106   OBJECTS_POSIX_CONDITION_VARIABLES = 17
     89  OBJECTS_NO_CLASS                    =  0,
     90  OBJECTS_INTERNAL_THREADS            =  1,
     91  OBJECTS_RTEMS_TASKS                 =  2,
     92  OBJECTS_POSIX_THREADS               =  3,
     93  OBJECTS_ITRON_TASKS                 =  4,
     94  OBJECTS_RTEMS_TIMERS                =  5,
     95  OBJECTS_RTEMS_SEMAPHORES            =  6,
     96  OBJECTS_RTEMS_MESSAGE_QUEUES        =  7,
     97  OBJECTS_RTEMS_PARTITIONS            =  8,
     98  OBJECTS_RTEMS_REGIONS               =  9,
     99  OBJECTS_RTEMS_PORTS                 = 10,
     100  OBJECTS_RTEMS_PERIODS               = 11,
     101  OBJECTS_RTEMS_EXTENSIONS            = 12,
     102  OBJECTS_POSIX_KEYS                  = 13,
     103  OBJECTS_POSIX_INTERRUPTS            = 14,
     104  OBJECTS_POSIX_MESSAGE_QUEUES        = 15,
     105  OBJECTS_POSIX_MUTEXES               = 16,
     106  OBJECTS_POSIX_SEMAPHORES            = 17,
     107  OBJECTS_POSIX_CONDITION_VARIABLES   = 18,
     108  OBJECTS_ITRON_EVENTFLAGS            = 19,
     109  OBJECTS_ITRON_MAILBOXES             = 20,
     110  OBJECTS_ITRON_MESSAGE_BUFFERS       = 21,
     111  OBJECTS_ITRON_PORTS                 = 22,
     112  OBJECTS_ITRON_SEMAPHORES            = 23,
     113  OBJECTS_ITRON_VARIABLE_MEMORY_POOLS = 24,
     114  OBJECTS_ITRON_FIXED_MEMORY_POOLS    = 25
    107115} Objects_Classes;
    108116 
    109117#define OBJECTS_CLASSES_FIRST               OBJECTS_NO_CLASS
    110 #define OBJECTS_CLASSES_LAST                OBJECTS_POSIX_CONDITION_VARIABLES
     118#define OBJECTS_CLASSES_LAST                OBJECTS_ITRON_FIXED_MEMORY_POOLS
    111119#define OBJECTS_CLASSES_FIRST_THREAD_CLASS  OBJECTS_INTERNAL_THREADS
    112 #define OBJECTS_CLASSES_LAST_THREAD_CLASS   OBJECTS_POSIX_THREADS
     120#define OBJECTS_CLASSES_LAST_THREAD_CLASS   OBJECTS_ITRON_TASKS
    113121
    114122/*
     
    285293);
    286294
     295/*
     296 *  _Objects_Allocate_by_index
     297 *
     298 *  DESCRIPTION:
     299 *
     300 *  This function allocates the object control block
     301 *  specified by the index from the inactive chain of
     302 *  free object control blocks.
     303 */
     304
     305Objects_Control *_Objects_Allocate_by_index(
     306  Objects_Information *information,
     307  unsigned32           index,
     308  unsigned32           sizeof_control
     309);
     310
    287311/*PAGE
    288312 *
  • cpukit/score/include/rtems/score/thread.h

    r1007c3c r352c9b2  
    167167typedef enum {
    168168  THREAD_API_RTEMS,
    169   THREAD_API_POSIX
     169  THREAD_API_POSIX,
     170  THREAD_API_ITRON
    170171}  Thread_APIs;
    171172
    172173#define THREAD_API_FIRST THREAD_API_RTEMS
    173 #define THREAD_API_LAST  THREAD_API_POSIX
     174#define THREAD_API_LAST  THREAD_API_ITRON
    174175
    175176struct Thread_Control_struct {
  • cpukit/score/include/rtems/system.h

    r1007c3c r352c9b2  
    6868#undef  POSIX_EXTERN
    6969#define POSIX_EXTERN  extern
     70#endif
     71
     72#ifdef ITRON_API_INIT
     73#undef  ITRON_EXTERN
     74#define ITRON_EXTERN
     75#else
     76#undef  ITRON_EXTERN
     77#define ITRON_EXTERN  extern
    7078#endif
    7179
  • cpukit/wrapup/Makefile.am

    r1007c3c r352c9b2  
    99endif
    1010
    11 SUBDIRS = rtems $(POSIX_DIRS)
     11if HAS_ITRON
     12ITRON_DIRS = itron
     13endif
     14
     15SUBDIRS = rtems $(POSIX_DIRS) $(ITRON_DIRS)
    1216
    1317include $(top_srcdir)/../../../automake/subdirs.am
Note: See TracChangeset for help on using the changeset viewer.