make vxAtomic64Or available for pthreads_vxworks.c (#11)

Reviewed-on: http://13.234.246.121:3000/Neominds/ossl35vx69/pulls/11
Co-authored-by: siddhant <siddhant.singh@neominds.in>
Co-committed-by: siddhant <siddhant.singh@neominds.in>
This commit is contained in:
2026-07-30 19:33:23 +05:30
committed by neelimap
parent bc87b3aad4
commit 3b04bd29e4
+34 -34
View File
@@ -184,6 +184,40 @@ INCLUDE FILES: vxAtomicLib.h
#include <private/kernelLibP.h>
#include <tool/common/private/toolMacrosP.h>
/*******************************************************************************
*
* vxAtomic64Or - atomically perform a bitwise OR on a 64-bit memory location
*
* This routine atomically performs a bitwise OR operation of <*target> and
* <value>, placing the result in <*target>. Various CPU architectures may
* impose restrictions with regards to the alignment and cache attributes of
* the atomic64_t type.
*
* This routine can be used from both task and interrupt level.
*
* RETURNS: Contents of <*target> before the atomic operation
*
* ERRNO: N/A
*
* SEE ALSO: vxAtomicLib, vxAtomic64And(), vxAtomic64Or_inline()
*/
atomic64Val_t vxAtomic64Or
(
atomic64_t * target, /* memory location to OR */
atomic64Val_t value /* OR with this value */
)
{
atomic64Val_t oldValue;
int lockKey;
lockKey = KERNEL_INT_CPU_LOCK ();
oldValue = *(volatile atomic64_t *)target;
*(volatile atomic64_t *)target = oldValue | value;
KERNEL_INT_CPU_UNLOCK (lockKey);
return (oldValue);
}
#ifndef _WRS_CONFIG_SMP
#ifdef _WRS_PORTABLE_vxAtomicLib
@@ -731,40 +765,6 @@ atomic64Val_t vxAtomic64Dec
return (vxAtomic64Sub (target, 1LL));
}
/*******************************************************************************
*
* vxAtomic64Or - atomically perform a bitwise OR on a 64-bit memory location
*
* This routine atomically performs a bitwise OR operation of <*target> and
* <value>, placing the result in <*target>. Various CPU architectures may
* impose restrictions with regards to the alignment and cache attributes of
* the atomic64_t type.
*
* This routine can be used from both task and interrupt level.
*
* RETURNS: Contents of <*target> before the atomic operation
*
* ERRNO: N/A
*
* SEE ALSO: vxAtomicLib, vxAtomic64And(), vxAtomic64Or_inline()
*/
atomic64Val_t vxAtomic64Or
(
atomic64_t * target, /* memory location to OR */
atomic64Val_t value /* OR with this value */
)
{
atomic64Val_t oldValue;
int lockKey;
lockKey = KERNEL_INT_CPU_LOCK ();
oldValue = *(volatile atomic64_t *)target;
*(volatile atomic64_t *)target = oldValue | value;
KERNEL_INT_CPU_UNLOCK (lockKey);
return (oldValue);
}
/*******************************************************************************
*
* vxAtomic64Xor - atomically perform a bitwise XOR on a 64-bit memory location