forked from Imagelibrary/rtems
posix: 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:
@@ -30,7 +30,7 @@
|
||||
#include <rtems/rtems/semimpl.h>
|
||||
|
||||
#ifdef RTEMS_POSIX_API
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
#include <rtems/posix/cond.h>
|
||||
#include <rtems/posix/mqueueimpl.h>
|
||||
#include <rtems/posix/muteximpl.h>
|
||||
|
||||
@@ -45,6 +45,7 @@ include_rtems_posix_HEADERS += include/rtems/posix/threadsup.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/time.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/timer.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/barrier.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/barrierimpl.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/rwlock.h
|
||||
include_rtems_posix_HEADERS += include/rtems/posix/spinlock.h
|
||||
|
||||
@@ -53,7 +54,6 @@ include_rtems_posix_HEADERS += inline/rtems/posix/key.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/pthread.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/priority.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/timer.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/barrier.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/rwlock.inl
|
||||
include_rtems_posix_HEADERS += inline/rtems/posix/spinlock.inl
|
||||
|
||||
|
||||
@@ -25,6 +25,13 @@
|
||||
#ifndef _RTEMS_POSIX_BARRIER_H
|
||||
#define _RTEMS_POSIX_BARRIER_H
|
||||
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/score/corebarrier.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup POSIXBarrier POSIX Barriers
|
||||
*
|
||||
@@ -36,13 +43,6 @@
|
||||
*/
|
||||
/**@{**/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/score/corebarrier.h>
|
||||
|
||||
/**
|
||||
* This type defines the control block used to manage each barrier.
|
||||
*/
|
||||
@@ -54,44 +54,11 @@ typedef struct {
|
||||
CORE_barrier_Control Barrier;
|
||||
} POSIX_Barrier_Control;
|
||||
|
||||
/**
|
||||
* The following defines the information control block used to manage
|
||||
* this class of objects.
|
||||
*/
|
||||
|
||||
POSIX_EXTERN Objects_Information _POSIX_Barrier_Information;
|
||||
|
||||
/**
|
||||
* @brief POSIX barrier manager initialization.
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
|
||||
void _POSIX_Barrier_Manager_initialization(void);
|
||||
|
||||
/**
|
||||
* @brief POSIX translate barrier return code.
|
||||
*
|
||||
* This routine translates SuperCore Barrier status codes into the
|
||||
* corresponding POSIX ones.
|
||||
*
|
||||
* @param[in] the_barrier_status is the SuperCore status.
|
||||
*
|
||||
* @return the corresponding POSIX status
|
||||
*/
|
||||
int _POSIX_Barrier_Translate_core_barrier_return_code(
|
||||
CORE_barrier_Status the_barrier_status
|
||||
);
|
||||
|
||||
#ifndef __RTEMS_APPLICATION__
|
||||
#include <rtems/posix/barrier.inl>
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -16,15 +16,46 @@
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_POSIX_BARRIER_H
|
||||
# error "Never use <rtems/posix/barrier.inl> directly; include <rtems/posix/barrier.h> instead."
|
||||
#endif
|
||||
#ifndef _RTEMS_POSIX_BARRIERIMPL_H
|
||||
#define _RTEMS_POSIX_BARRIERIMPL_H
|
||||
|
||||
#ifndef _RTEMS_POSIX_BARRIER_INL
|
||||
#define _RTEMS_POSIX_BARRIER_INL
|
||||
#include <rtems/posix/barrier.h>
|
||||
|
||||
#include <pthread.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The following defines the information control block used to manage
|
||||
* this class of objects.
|
||||
*/
|
||||
|
||||
POSIX_EXTERN Objects_Information _POSIX_Barrier_Information;
|
||||
|
||||
/**
|
||||
* @brief POSIX barrier manager initialization.
|
||||
*
|
||||
* This routine performs the initialization necessary for this manager.
|
||||
*/
|
||||
|
||||
void _POSIX_Barrier_Manager_initialization(void);
|
||||
|
||||
/**
|
||||
* @brief POSIX translate barrier return code.
|
||||
*
|
||||
* This routine translates SuperCore Barrier status codes into the
|
||||
* corresponding POSIX ones.
|
||||
*
|
||||
* @param[in] the_barrier_status is the SuperCore status.
|
||||
*
|
||||
* @return the corresponding POSIX status
|
||||
*/
|
||||
int _POSIX_Barrier_Translate_core_barrier_return_code(
|
||||
CORE_barrier_Status the_barrier_status
|
||||
);
|
||||
|
||||
/**
|
||||
* @brief Allocate a barrier control block.
|
||||
*
|
||||
@@ -92,5 +123,9 @@ RTEMS_INLINE_ROUTINE bool _POSIX_Barrier_Is_null (
|
||||
return ( the_barrier == NULL );
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -124,6 +124,10 @@ $(PROJECT_INCLUDE)/rtems/posix/barrier.h: include/rtems/posix/barrier.h $(PROJEC
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/barrier.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/barrier.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/barrierimpl.h: include/rtems/posix/barrierimpl.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/barrierimpl.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/barrierimpl.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/rwlock.h: include/rtems/posix/rwlock.h $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/rwlock.h
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/rwlock.h
|
||||
@@ -152,10 +156,6 @@ $(PROJECT_INCLUDE)/rtems/posix/timer.inl: inline/rtems/posix/timer.inl $(PROJECT
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/timer.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/barrier.inl: inline/rtems/posix/barrier.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/barrier.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/barrier.inl
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/posix/rwlock.inl: inline/rtems/posix/rwlock.inl $(PROJECT_INCLUDE)/rtems/posix/$(dirstamp)
|
||||
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/posix/rwlock.inl
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/posix/rwlock.inl
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
|
||||
/**
|
||||
* @brief _POSIX_Barrier_Manager_initialization
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
|
||||
/**
|
||||
* This directive allows a thread to delete a barrier specified by
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
|
||||
/*
|
||||
* pthread_barrier_init
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
|
||||
/*
|
||||
* _POSIX_Barrier_Translate_core_barrier_return_code
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <errno.h>
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
|
||||
/**
|
||||
* This directive allows a thread to wait at a barrier.
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <mqueue.h>
|
||||
#include <rtems/config.h>
|
||||
#include <rtems/score/object.h>
|
||||
#include <rtems/posix/barrier.h>
|
||||
#include <rtems/posix/barrierimpl.h>
|
||||
#include <rtems/posix/cond.h>
|
||||
#include <rtems/posix/config.h>
|
||||
#include <rtems/posix/key.h>
|
||||
|
||||
Reference in New Issue
Block a user