mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-21 16:44:32 +08:00
rtems: Create barrier implementation header
Move implementation specific parts of barrier.h and barrier.inl into new header file barrierimpl.h. The barrier.h contains now only the application visible API.
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include <rtems/score/wkspace.h>
|
||||
#include <rtems/score/protectedheap.h>
|
||||
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#include <rtems/rtems/messageimpl.h>
|
||||
#include <rtems/rtems/semimpl.h>
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/libio_.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
|
||||
#include "pipe.h"
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ include_rtems_rtems_HEADERS =
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/asr.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/attr.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/barrier.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/barrierimpl.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/cache.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/clock.h
|
||||
include_rtems_rtems_HEADERS += include/rtems/rtems/config.h
|
||||
@@ -61,7 +62,6 @@ endif
|
||||
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/asr.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/attr.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/barrier.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/dpmem.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/event.inl
|
||||
include_rtems_rtems_HEADERS += inline/rtems/rtems/eventset.inl
|
||||
|
||||
@@ -29,6 +29,16 @@
|
||||
#ifndef _RTEMS_RTEMS_BARRIER_H
|
||||
#define _RTEMS_RTEMS_BARRIER_H
|
||||
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/score/corebarrier.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup ClassicBarrier Barriers
|
||||
*
|
||||
@@ -39,31 +49,6 @@
|
||||
*/
|
||||
/**@{*/
|
||||
|
||||
/**
|
||||
* @brief Instantiate Barrier Data
|
||||
*
|
||||
* Barrier Manager -- Instantiate Data
|
||||
*
|
||||
* This constant is defined to extern most of the time when using
|
||||
* this header file. However by defining it to nothing, the data
|
||||
* declared in this header file can be instantiated. This is done
|
||||
* in a single per manager file.
|
||||
*/
|
||||
#ifndef RTEMS_BARRIER_EXTERN
|
||||
#define RTEMS_BARRIER_EXTERN extern
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/rtems/types.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/score/corebarrier.h>
|
||||
|
||||
/**
|
||||
* This type defines the control block used to manage each barrier.
|
||||
*/
|
||||
@@ -76,19 +61,6 @@ typedef struct {
|
||||
CORE_barrier_Control Barrier;
|
||||
} Barrier_Control;
|
||||
|
||||
/**
|
||||
* The following defines the information control block used to manage
|
||||
* this class of objects.
|
||||
*/
|
||||
RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information;
|
||||
|
||||
/**
|
||||
* @brief _Barrier_Manager_initialization
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
void _Barrier_Manager_initialization(void);
|
||||
|
||||
/**
|
||||
* @brief RTEMS Create Barrier
|
||||
*
|
||||
@@ -191,29 +163,11 @@ rtems_status_code rtems_barrier_release(
|
||||
uint32_t *released
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Translate SuperCore Barrier Status Code to RTEMS Status Code
|
||||
*
|
||||
* This function returns a RTEMS status code based on the barrier
|
||||
* status code specified.
|
||||
*
|
||||
* @param[in] the_status is the SuperCore Barrier status to translate.
|
||||
*
|
||||
* @retval a status code indicating success or the reason for failure.
|
||||
*/
|
||||
rtems_status_code _Barrier_Translate_core_barrier_return_code (
|
||||
CORE_barrier_Status the_status
|
||||
);
|
||||
|
||||
#ifndef __RTEMS_APPLICATION__
|
||||
#include <rtems/rtems/barrier.inl>
|
||||
#endif
|
||||
/**@}*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/**@}*/
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
+55
-6
@@ -19,18 +19,50 @@
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_RTEMS_BARRIER_H
|
||||
# error "Never use <rtems/rtems/barrier.inl> directly; include <rtems/rtems/barrier.h> instead."
|
||||
#ifndef _RTEMS_RTEMS_BARRIERIMPL_H
|
||||
#define _RTEMS_RTEMS_BARRIERIMPL_H
|
||||
|
||||
#include <rtems/rtems/barrier.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef _RTEMS_RTEMS_BARRIER_INL
|
||||
#define _RTEMS_RTEMS_BARRIER_INL
|
||||
|
||||
/**
|
||||
* @addtogroup ClassicBarrier
|
||||
* @defgroup ClassicBarrierImpl Classic Barrier Implementation
|
||||
*
|
||||
* @ingroup ClassicBarrier
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Instantiate Barrier Data
|
||||
*
|
||||
* Barrier Manager -- Instantiate Data
|
||||
*
|
||||
* This constant is defined to extern most of the time when using
|
||||
* this header file. However by defining it to nothing, the data
|
||||
* declared in this header file can be instantiated. This is done
|
||||
* in a single per manager file.
|
||||
*/
|
||||
#ifndef RTEMS_BARRIER_EXTERN
|
||||
#define RTEMS_BARRIER_EXTERN extern
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The following defines the information control block used to manage
|
||||
* this class of objects.
|
||||
*/
|
||||
RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information;
|
||||
|
||||
/**
|
||||
* @brief _Barrier_Manager_initialization
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
void _Barrier_Manager_initialization(void);
|
||||
|
||||
/**
|
||||
* @brief _Barrier_Allocate
|
||||
*
|
||||
@@ -86,8 +118,25 @@ RTEMS_INLINE_ROUTINE bool _Barrier_Is_null (
|
||||
{
|
||||
return ( the_barrier == NULL );
|
||||
}
|
||||
/**
|
||||
* @brief Translate SuperCore Barrier Status Code to RTEMS Status Code
|
||||
*
|
||||
* This function returns a RTEMS status code based on the barrier
|
||||
* status code specified.
|
||||
*
|
||||
* @param[in] the_status is the SuperCore Barrier status to translate.
|
||||
*
|
||||
* @retval a status code indicating success or the reason for failure.
|
||||
*/
|
||||
rtems_status_code _Barrier_Translate_core_barrier_return_code (
|
||||
CORE_barrier_Status the_status
|
||||
);
|
||||
|
||||
/**@}*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -39,6 +39,10 @@ $(PROJECT_INCLUDE)/rtems/rtems/barrier.h: include/rtems/rtems/barrier.h $(PROJEC
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h: include/rtems/rtems/barrierimpl.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrierimpl.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/cache.h: include/rtems/rtems/cache.h $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/cache.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/cache.h
|
||||
@@ -189,10 +193,6 @@ $(PROJECT_INCLUDE)/rtems/rtems/attr.inl: inline/rtems/rtems/attr.inl $(PROJECT_I
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/attr.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/attr.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/barrier.inl: inline/rtems/rtems/barrier.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/barrier.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl: inline/rtems/rtems/dpmem.inl $(PROJECT_INCLUDE)/rtems/rtems/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems/dpmem.inl
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#if defined(RTEMS_MULTIPROCESSING)
|
||||
#include <rtems/score/mpci.h>
|
||||
#endif
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <rtems/rtems/attr.h>
|
||||
#include <rtems/score/isr.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
|
||||
/*
|
||||
* rtems_barrier_create
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
#define RTEMS_BARRIER_EXTERN
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#include <rtems/score/states.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/threadq.h>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/rtems/options.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
|
||||
rtems_status_code rtems_barrier_ident(
|
||||
rtems_name name,
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/threadq.h>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
|
||||
rtems_status_code _Barrier_Translate_core_barrier_return_code_[] = {
|
||||
RTEMS_SUCCESSFUL, /* CORE_BARRIER_STATUS_SUCCESSFUL */
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/rtems/support.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/threadq.h>
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <rtems/rtems/rtemsapi.h>
|
||||
|
||||
#include <rtems/rtems/intr.h>
|
||||
#include <rtems/rtems/barrier.h>
|
||||
#include <rtems/rtems/barrierimpl.h>
|
||||
#include <rtems/rtems/clock.h>
|
||||
#include <rtems/rtems/tasks.h>
|
||||
#include <rtems/rtems/dpmem.h>
|
||||
|
||||
Reference in New Issue
Block a user