Changeset ed8b00e6 in rtems


Ignore:
Timestamp:
Dec 14, 2015, 2:02:45 PM (4 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
cbaac1f7
Parents:
ae85b066
git-author:
Sebastian Huber <sebastian.huber@…> (12/14/15 14:02:45)
git-committer:
Sebastian Huber <sebastian.huber@…> (02/03/16 09:00:52)
Message:

Optional Classic Message Queue initialization

Update #2408.

Files:
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • cpukit/rtems/Makefile.am

    rae85b066 red8b00e6  
    185185librtems_a_SOURCES += src/msgqtranslatereturncode.c
    186186librtems_a_SOURCES += src/msgqurgent.c
    187 librtems_a_SOURCES += src/msgdata.c
    188187
    189188## SEMAPHORE_C_FILES
  • cpukit/rtems/include/rtems/rtems/messageimpl.h

    rae85b066 red8b00e6  
    3434
    3535/**
    36  *  This constant is defined to extern most of the time when using
    37  *  this header file.  However by defining it to nothing, the data
    38  *  declared in this header file can be instantiated.  This is done
    39  *  in a single per manager file.
    40  */
    41 #ifndef RTEMS_MESSAGE_EXTERN
    42 #define RTEMS_MESSAGE_EXTERN extern
    43 #endif
    44 
    45 /**
    4636 *  The following enumerated type details the modes in which a message
    4737 *  may be submitted to a message queue.  The message may be posted
     
    6555 *  manage this class of objects.
    6656 */
    67 RTEMS_MESSAGE_EXTERN Objects_Information  _Message_queue_Information;
    68 
    69 /**
    70  *  @brief Message Queue Manager Initialization
    71  *
    72  *  This routine performs the initialization necessary for this manager.
    73  */
    74 void _Message_queue_Manager_initialization(void);
     57extern Objects_Information _Message_queue_Information;
    7558
    7659/**
  • cpukit/rtems/src/msg.c

    rae85b066 red8b00e6  
    2121#include <rtems/system.h>
    2222#include <rtems/config.h>
    23 #include <rtems/score/chain.h>
    24 #include <rtems/score/isr.h>
    25 #include <rtems/score/coremsgimpl.h>
    26 #include <rtems/score/thread.h>
    27 #include <rtems/score/wkspace.h>
     23#include <rtems/sysinit.h>
    2824#include <rtems/rtems/status.h>
    2925#include <rtems/rtems/attrimpl.h>
     
    3228#include <rtems/rtems/support.h>
    3329
    34 void _Message_queue_Manager_initialization(void)
     30Objects_Information _Message_queue_Information;
     31
     32static void _Message_queue_Manager_initialization(void)
    3533{
    3634  _Objects_Initialize_information(
     
    6462
    6563}
     64
     65RTEMS_SYSINIT_ITEM(
     66  _Message_queue_Manager_initialization,
     67  RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE,
     68  RTEMS_SYSINIT_ORDER_MIDDLE
     69);
  • cpukit/sapi/src/rtemsapi.c

    rae85b066 red8b00e6  
    3030#include <rtems/rtems/clock.h>
    3131#include <rtems/rtems/dpmemimpl.h>
    32 #include <rtems/rtems/messageimpl.h>
    3332#include <rtems/rtems/partimpl.h>
    3433#include <rtems/rtems/ratemonimpl.h>
     
    3837void _RTEMS_API_Initialize(void)
    3938{
    40   _Message_queue_Manager_initialization();
    4139  _Semaphore_Manager_initialization();
    4240  _Partition_Manager_initialization();
  • cpukit/score/include/rtems/sysinit.h

    rae85b066 red8b00e6  
    3636#define RTEMS_SYSINIT_CLASSIC_SIGNAL             000342
    3737#define RTEMS_SYSINIT_CLASSIC_EVENT              000343
     38#define RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE      000344
    3839#define RTEMS_SYSINIT_IDLE_THREADS               000380
    3940#define RTEMS_SYSINIT_BSP_LIBC                   000400
  • testsuites/sptests/spsysinit01/init.c

    rae85b066 red8b00e6  
    2626
    2727#include <rtems/extensionimpl.h>
     28#include <rtems/rtems/messageimpl.h>
    2829#include <rtems/rtems/tasksimpl.h>
    2930#include <rtems/rtems/timerimpl.h>
     
    5455  CLASSIC_EVENT_PRE,
    5556  CLASSIC_EVENT_POST,
     57  CLASSIC_MESSAGE_QUEUE_PRE,
     58  CLASSIC_MESSAGE_QUEUE_POST,
    5659  IDLE_THREADS_PRE,
    5760  IDLE_THREADS_POST,
     
    205208}
    206209
     210FIRST(RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE)
     211{
     212  assert(_Message_queue_Information.maximum == 0);
     213  next_step(CLASSIC_MESSAGE_QUEUE_PRE);
     214}
     215
     216LAST(RTEMS_SYSINIT_CLASSIC_MESSAGE_QUEUE)
     217{
     218  assert(_Message_queue_Information.maximum != 0);
     219  next_step(CLASSIC_MESSAGE_QUEUE_POST);
     220}
     221
    207222FIRST(RTEMS_SYSINIT_IDLE_THREADS)
    208223{
     
    290305#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
    291306
     307#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 1
     308
    292309#define CONFIGURE_MAXIMUM_TASKS 1
    293310
Note: See TracChangeset for help on using the changeset viewer.