DriveWorks SDK Reference

| 0.6.67 Release

DynamicMemory.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2016 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
46 #ifndef DW_CORE_DYNAMIC_MEMORY_H__
47 #define DW_CORE_DYNAMIC_MEMORY_H__
48 
49 #include <dw/core/Config.h>
50 #include <dw/core/Exports.h>
51 #include <dw/core/Status.h>
52 
53 #include <stdio.h>
54 #include <stddef.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
60 
61 typedef void* (*dwDynamicMemoryMallocCallback)(size_t sizeInByte, void* userData);
62 typedef void (*dwDynamicMemoryFreeCallback) (void* addr, void* userData);
63 
76  dwDynamicMemoryFreeCallback freeCallback,
77  void* userData);
78 
90  dwDynamicMemoryFreeCallback* freeCallback,
91  void** userData);
92 
93 
97 typedef enum dwRuntimeMode {
98  DW_MODE_INIT = 0x0000,
99  DW_MODE_RUNTIME = 0x0001,
100  DW_MODE_CLEANUP = 0x0002,
101 } dwRuntimeMode;
102 
103 
117 
125 
136 void* memcpy_opt(void * __restrict destination, const void * __restrict source, size_t num);
137 
138 #ifdef __cplusplus
139 }
140 #endif
141 
142 #endif // DW_CORE_DYNAMIC_MEMORY_H__
DW_API_PUBLIC dwStatus dwDynamicMemory_updateRuntimeMode(dwRuntimeMode newMode)
Switch runtime mode for all Driveworks SDK.
dwRuntimeMode
Context runtime mode.
Definition: DynamicMemory.h:97
void(* dwDynamicMemoryFreeCallback)(void *addr, void *userData)
Definition: DynamicMemory.h:62
Heap memory allocations and deallocations are allowed.
DW_API_PUBLIC void * memcpy_opt(void *__restrict destination, const void *__restrict source, size_t num)
Memory copy of virtual process memory.
NVIDIA DriveWorks API: Core Exports
Heap memory allocations and deallocations are allowed. Default.
Definition: DynamicMemory.h:98
Heap memory allocations are not allowed.
Definition: DynamicMemory.h:99
dwStatus
Status definition.
Definition: Status.h:167
DW_API_PUBLIC dwStatus dwDynamicMemory_getCallbacks(dwDynamicMemoryMallocCallback *mallocCallback, dwDynamicMemoryFreeCallback *freeCallback, void **userData)
Get callbacks and user-defined general pointer previously passed in dwDynamicMemory_initialize.
void *(* dwDynamicMemoryMallocCallback)(size_t sizeInByte, void *userData)
Definition: DynamicMemory.h:61
DW_API_PUBLIC dwStatus dwDynamicMemory_initialize(dwDynamicMemoryMallocCallback mallocCallback, dwDynamicMemoryFreeCallback freeCallback, void *userData)
Initialize dwDynamicMemory with user-defined callback for user space memory allocations.
DW_API_PUBLIC dwStatus dwDynamicMemory_release()
Release dwDynamicMemory.
#define DW_API_PUBLIC
Definition: Exports.h:76
NVIDIA DriveWorks API: Core Status Methods