PxMemory.h
Go to the documentation of this file.
1 //
2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions
4 // are met:
5 // * Redistributions of source code must retain the above copyright
6 // notice, this list of conditions and the following disclaimer.
7 // * Redistributions in binary form must reproduce the above copyright
8 // notice, this list of conditions and the following disclaimer in the
9 // documentation and/or other materials provided with the distribution.
10 // * Neither the name of NVIDIA CORPORATION nor the names of its
11 // contributors may be used to endorse or promote products derived
12 // from this software without specific prior written permission.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
15 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
18 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22 // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 //
26 // Copyright (c) 2008-2021 NVIDIA Corporation. All rights reserved.
27 // Copyright (c) 2004-2008 AGEIA Technologies, Inc. All rights reserved.
28 // Copyright (c) 2001-2004 NovodeX AG. All rights reserved.
29 
30 #ifndef PXFOUNDATION_PXMEMORY_H
31 #define PXFOUNDATION_PXMEMORY_H
32 
37 #include "foundation/Px.h"
40 
41 #if !PX_DOXYGEN
42 namespace physx
43 {
44 #endif
45 
54 PX_FORCE_INLINE void* PxMemZero(void* dest, PxU32 count)
55 {
56  return physx::intrinsics::memZero(dest, count);
57 }
58 
68 PX_FORCE_INLINE void* PxMemSet(void* dest, PxI32 c, PxU32 count)
69 {
70  return physx::intrinsics::memSet(dest, c, count);
71 }
72 
84 PX_FORCE_INLINE void* PxMemCopy(void* dest, const void* src, PxU32 count)
85 {
86  return physx::intrinsics::memCopy(dest, src, count);
87 }
88 
100 PX_FORCE_INLINE void* PxMemMove(void* dest, const void* src, PxU32 count)
101 {
102  return physx::intrinsics::memMove(dest, src, count);
103 }
104 
105 #if !PX_DOXYGEN
106 } // namespace physx
107 #endif
108 
110 #endif // PXFOUNDATION_PXMEMORY_H
Definition: GuContactBuffer.h:37
#define PX_FORCE_INLINE
Definition: PxPreprocessor.h:351
PX_FORCE_INLINE void * PxMemCopy(void *dest, const void *src, PxU32 count)
Copies the bytes of one memory block to another. The memory blocks must not overlap.
Definition: PxMemory.h:84
PX_FORCE_INLINE void * memCopy(void *dest, const void *src, uint32_t count)
Definition: PxUnixIntrinsics.h:160
PX_FORCE_INLINE void * PxMemMove(void *dest, const void *src, PxU32 count)
Copies the bytes of one memory block to another. The memory blocks can overlap.
Definition: PxMemory.h:100
PX_FORCE_INLINE void * memMove(void *dest, const void *src, uint32_t count)
Definition: PxUnixIntrinsics.h:168
PX_FORCE_INLINE void * memSet(void *dest, int32_t c, uint32_t count)
Definition: PxUnixIntrinsics.h:152
int32_t PxI32
Definition: PxSimpleTypes.h:70
PX_FORCE_INLINE void * memZero(void *dest, uint32_t count)
Definition: PxUnixIntrinsics.h:144
uint32_t PxU32
Definition: Px.h:48
PX_FORCE_INLINE void * PxMemZero(void *dest, PxU32 count)
Sets the bytes of the provided buffer to zero.
Definition: PxMemory.h:54
PX_FORCE_INLINE void * PxMemSet(void *dest, PxI32 c, PxU32 count)
Sets the bytes of the provided buffer to the specified value.
Definition: PxMemory.h:68