Files
m241Neelima/vxworks-6.9/target/h/base/b_pthread_once_t.h
T
2026-07-30 11:19:44 +05:30

90 lines
2.7 KiB
C

/* b_pthread_once_t.h - base type pthread_once_t definition header */
/*
* Copyright (c) 2006-2007, 2010-2011 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use of this software
* may be licensed only pursuant to the terms of an applicable Wind River
* license agreement.
*/
/*
modification history
--------------------
01i,26jan11,pad To abide by the POSIX namespace rules include types/vxWind.h
instead of types/vxTypesOld.h to get the definition of
_Vx_SEM_ID.
01h,29jul10,pad Moved extern C statement after include statements.
01g,16aug07,jpb Re-introduce onceMutex field in pthread_once_t structure
01f,09aug07,pad Fixed declaration of the pthread_once_t type when
_POSIX_C_SOURCE is defined. Used the new _Vx_BOOL type
instead of _Bool (different size, defect 100623).
01e,18jul07,jpb Added field to pthread_once_t.
01d,13mar06,mil Moved inclusion of b_BOOL.h to non-POSIX block.
01c,01mar06,pes Added cancellation indicator in POSIX version of
pthrad_once_t struct.
01b,27feb06,v_r Added cancellation indicator in control variable (for
SPR#117700 fix).
01a,16feb06,pes Created.
*/
#ifndef __INCb_pthread_once_th
#define __INCb_pthread_once_th
#ifndef _DEFINED_pthread_once_t
#define _DEFINED_pthread_once_t
#include <types/vxWind.h>
#include <base/b_BOOL.h>
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) && \
!defined(_POSIX_AEP_RT_CONTROLLER_C_SOURCE)
/*
* This structure's content should not be referenced directly. Use the
* PTHREAD_ONCE_INIT macro instead.
*/
typedef struct {
BOOL onceInitialized; /* TRUE if initialized once */
BOOL onceDone; /* TRUE if init func returned */
TASK_ID onceMyTid; /* ID of task calling the init func */
SEM_ID onceMutex; /* TRUE if canceled during init rtn */
BOOL onceCanceled; /* TRUE if init func returned or canceled */
} pthread_once_t;
#else /* _POSIX_xxx_SOURCE */
#undef onceInitialized
#undef onceDone
#undef onceMyTid
#undef onceMutex
#undef onceCanceled
#undef onceInitFlag
/*
* This structure's content should not be referenced directly. Use the
* PTHREAD_ONCE_INIT macro instead.
*/
typedef struct {
_Vx_BOOL onceInitialized; /* TRUE if initialized once */
_Vx_BOOL onceDone; /* TRUE if init func returned */
_Vx_TASK_ID onceMyTid; /* ID of task calling the init func */
_Vx_SEM_ID onceMutex; /* TRUE if canceled during init rtn */
_Vx_BOOL onceCanceled; /* TRUE if init func returned or canceled */
} pthread_once_t;
#endif /* _POSIX_xxx_SOURCE */
#endif /* _DEFINED_pthread_once_t */
#ifdef __cplusplus
}
#endif
#endif /* __INCb_pthread_once_th */