1 #define NVOC_RS_CLIENT_H_PRIVATE_ACCESS_ALLOWED
2 #include "nvoc/runtime.h"
3 #include "nvoc/rtti.h"
4 #include "nvtypes.h"
5 #include "nvport/nvport.h"
6 #include "nvport/inline/util_valist.h"
7 #include "utils/nvassert.h"
8 #include "g_rs_client_nvoc.h"
9
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0x8f87e5 = 1;
12 #endif
13
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsClient;
15
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17
18 void __nvoc_init_RsClient(RsClient*);
19 void __nvoc_init_funcTable_RsClient(RsClient*);
20 NV_STATUS __nvoc_ctor_RsClient(RsClient*, struct PORT_MEM_ALLOCATOR * arg_pAllocator, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
21 void __nvoc_init_dataField_RsClient(RsClient*);
22 void __nvoc_dtor_RsClient(RsClient*);
23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_RsClient;
24
25 static const struct NVOC_RTTI __nvoc_rtti_RsClient_RsClient = {
26 /*pClassDef=*/ &__nvoc_class_def_RsClient,
27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_RsClient,
28 /*offset=*/ 0,
29 };
30
31 static const struct NVOC_RTTI __nvoc_rtti_RsClient_Object = {
32 /*pClassDef=*/ &__nvoc_class_def_Object,
33 /*dtor=*/ &__nvoc_destructFromBase,
34 /*offset=*/ NV_OFFSETOF(RsClient, __nvoc_base_Object),
35 };
36
37 static const struct NVOC_CASTINFO __nvoc_castinfo_RsClient = {
38 /*numRelatives=*/ 2,
39 /*relatives=*/ {
40 &__nvoc_rtti_RsClient_RsClient,
41 &__nvoc_rtti_RsClient_Object,
42 },
43 };
44
45 const struct NVOC_CLASS_DEF __nvoc_class_def_RsClient =
46 {
47 /*classInfo=*/ {
48 /*size=*/ sizeof(RsClient),
49 /*classId=*/ classId(RsClient),
50 /*providerId=*/ &__nvoc_rtti_provider,
51 #if NV_PRINTF_STRINGS_ALLOWED
52 /*name=*/ "RsClient",
53 #endif
54 },
55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_RsClient,
56 /*pCastInfo=*/ &__nvoc_castinfo_RsClient,
57 /*pExportInfo=*/ &__nvoc_export_info_RsClient
58 };
59
60 const struct NVOC_EXPORT_INFO __nvoc_export_info_RsClient =
61 {
62 /*numEntries=*/ 0,
63 /*pExportEntries=*/ 0
64 };
65
66 void __nvoc_dtor_Object(Object*);
__nvoc_dtor_RsClient(RsClient * pThis)67 void __nvoc_dtor_RsClient(RsClient *pThis) {
68 __nvoc_clientDestruct(pThis);
69 __nvoc_dtor_Object(&pThis->__nvoc_base_Object);
70 PORT_UNREFERENCED_VARIABLE(pThis);
71 }
72
__nvoc_init_dataField_RsClient(RsClient * pThis)73 void __nvoc_init_dataField_RsClient(RsClient *pThis) {
74 PORT_UNREFERENCED_VARIABLE(pThis);
75 }
76
77 NV_STATUS __nvoc_ctor_Object(Object* );
__nvoc_ctor_RsClient(RsClient * pThis,struct PORT_MEM_ALLOCATOR * arg_pAllocator,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)78 NV_STATUS __nvoc_ctor_RsClient(RsClient *pThis, struct PORT_MEM_ALLOCATOR * arg_pAllocator, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
79 NV_STATUS status = NV_OK;
80 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object);
81 if (status != NV_OK) goto __nvoc_ctor_RsClient_fail_Object;
82 __nvoc_init_dataField_RsClient(pThis);
83
84 status = __nvoc_clientConstruct(pThis, arg_pAllocator, arg_pParams);
85 if (status != NV_OK) goto __nvoc_ctor_RsClient_fail__init;
86 goto __nvoc_ctor_RsClient_exit; // Success
87
88 __nvoc_ctor_RsClient_fail__init:
89 __nvoc_dtor_Object(&pThis->__nvoc_base_Object);
90 __nvoc_ctor_RsClient_fail_Object:
91 __nvoc_ctor_RsClient_exit:
92
93 return status;
94 }
95
__nvoc_init_funcTable_RsClient_1(RsClient * pThis)96 static void __nvoc_init_funcTable_RsClient_1(RsClient *pThis) {
97 PORT_UNREFERENCED_VARIABLE(pThis);
98
99 pThis->__clientValidate__ = &clientValidate_IMPL;
100
101 pThis->__clientGetCachedPrivilege__ = &clientGetCachedPrivilege_IMPL;
102
103 pThis->__clientIsAdmin__ = &clientIsAdmin_IMPL;
104
105 pThis->__clientFreeResource__ = &clientFreeResource_IMPL;
106
107 pThis->__clientDestructResourceRef__ = &clientDestructResourceRef_IMPL;
108
109 pThis->__clientUnmapMemory__ = &clientUnmapMemory_IMPL;
110
111 pThis->__clientInterMap__ = &clientInterMap_IMPL;
112
113 pThis->__clientInterUnmap__ = &clientInterUnmap_IMPL;
114
115 pThis->__clientValidateNewResourceHandle__ = &clientValidateNewResourceHandle_IMPL;
116
117 pThis->__clientPostProcessPendingFreeList__ = &clientPostProcessPendingFreeList_IMPL;
118
119 pThis->__clientShareResource__ = &clientShareResource_IMPL;
120 }
121
__nvoc_init_funcTable_RsClient(RsClient * pThis)122 void __nvoc_init_funcTable_RsClient(RsClient *pThis) {
123 __nvoc_init_funcTable_RsClient_1(pThis);
124 }
125
126 void __nvoc_init_Object(Object*);
__nvoc_init_RsClient(RsClient * pThis)127 void __nvoc_init_RsClient(RsClient *pThis) {
128 pThis->__nvoc_pbase_RsClient = pThis;
129 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object;
130 __nvoc_init_Object(&pThis->__nvoc_base_Object);
131 __nvoc_init_funcTable_RsClient(pThis);
132 }
133
__nvoc_objCreate_RsClient(RsClient ** ppThis,Dynamic * pParent,NvU32 createFlags,struct PORT_MEM_ALLOCATOR * arg_pAllocator,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)134 NV_STATUS __nvoc_objCreate_RsClient(RsClient **ppThis, Dynamic *pParent, NvU32 createFlags, struct PORT_MEM_ALLOCATOR * arg_pAllocator, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
135 {
136 NV_STATUS status;
137 Object *pParentObj = NULL;
138 RsClient *pThis;
139
140 // Assign `pThis`, allocating memory unless suppressed by flag.
141 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(RsClient), (void**)&pThis, (void**)ppThis);
142 if (status != NV_OK)
143 return status;
144
145 // Zero is the initial value for everything.
146 portMemSet(pThis, 0, sizeof(RsClient));
147
148 // Initialize runtime type information.
149 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_RsClient);
150
151 pThis->__nvoc_base_Object.createFlags = createFlags;
152
153 // Link the child into the parent if there is one unless flagged not to do so.
154 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
155 {
156 pParentObj = dynamicCast(pParent, Object);
157 objAddChild(pParentObj, &pThis->__nvoc_base_Object);
158 }
159 else
160 {
161 pThis->__nvoc_base_Object.pParent = NULL;
162 }
163
164 __nvoc_init_RsClient(pThis);
165 status = __nvoc_ctor_RsClient(pThis, arg_pAllocator, arg_pParams);
166 if (status != NV_OK) goto __nvoc_objCreate_RsClient_cleanup;
167
168 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
169 *ppThis = pThis;
170
171 return NV_OK;
172
173 __nvoc_objCreate_RsClient_cleanup:
174
175 // Unlink the child from the parent if it was linked above.
176 if (pParentObj != NULL)
177 objRemoveChild(pParentObj, &pThis->__nvoc_base_Object);
178
179 // Do not call destructors here since the constructor already called them.
180 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
181 portMemSet(pThis, 0, sizeof(RsClient));
182 else
183 {
184 portMemFree(pThis);
185 *ppThis = NULL;
186 }
187
188 // coverity[leaked_storage:FALSE]
189 return status;
190 }
191
__nvoc_objCreateDynamic_RsClient(RsClient ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)192 NV_STATUS __nvoc_objCreateDynamic_RsClient(RsClient **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
193 NV_STATUS status;
194 struct PORT_MEM_ALLOCATOR * arg_pAllocator = va_arg(args, struct PORT_MEM_ALLOCATOR *);
195 struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
196
197 status = __nvoc_objCreate_RsClient(ppThis, pParent, createFlags, arg_pAllocator, arg_pParams);
198
199 return status;
200 }
201
202 #ifdef DEBUG
203 char __nvoc_class_id_uniqueness_check_0x083442 = 1;
204 #endif
205
206 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsClientResource;
207
208 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
209
210 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
211
212 void __nvoc_init_RsClientResource(RsClientResource*);
213 void __nvoc_init_funcTable_RsClientResource(RsClientResource*);
214 NV_STATUS __nvoc_ctor_RsClientResource(RsClientResource*, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
215 void __nvoc_init_dataField_RsClientResource(RsClientResource*);
216 void __nvoc_dtor_RsClientResource(RsClientResource*);
217 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_RsClientResource;
218
219 static const struct NVOC_RTTI __nvoc_rtti_RsClientResource_RsClientResource = {
220 /*pClassDef=*/ &__nvoc_class_def_RsClientResource,
221 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_RsClientResource,
222 /*offset=*/ 0,
223 };
224
225 static const struct NVOC_RTTI __nvoc_rtti_RsClientResource_Object = {
226 /*pClassDef=*/ &__nvoc_class_def_Object,
227 /*dtor=*/ &__nvoc_destructFromBase,
228 /*offset=*/ NV_OFFSETOF(RsClientResource, __nvoc_base_RsResource.__nvoc_base_Object),
229 };
230
231 static const struct NVOC_RTTI __nvoc_rtti_RsClientResource_RsResource = {
232 /*pClassDef=*/ &__nvoc_class_def_RsResource,
233 /*dtor=*/ &__nvoc_destructFromBase,
234 /*offset=*/ NV_OFFSETOF(RsClientResource, __nvoc_base_RsResource),
235 };
236
237 static const struct NVOC_CASTINFO __nvoc_castinfo_RsClientResource = {
238 /*numRelatives=*/ 3,
239 /*relatives=*/ {
240 &__nvoc_rtti_RsClientResource_RsClientResource,
241 &__nvoc_rtti_RsClientResource_RsResource,
242 &__nvoc_rtti_RsClientResource_Object,
243 },
244 };
245
246 const struct NVOC_CLASS_DEF __nvoc_class_def_RsClientResource =
247 {
248 /*classInfo=*/ {
249 /*size=*/ sizeof(RsClientResource),
250 /*classId=*/ classId(RsClientResource),
251 /*providerId=*/ &__nvoc_rtti_provider,
252 #if NV_PRINTF_STRINGS_ALLOWED
253 /*name=*/ "RsClientResource",
254 #endif
255 },
256 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_RsClientResource,
257 /*pCastInfo=*/ &__nvoc_castinfo_RsClientResource,
258 /*pExportInfo=*/ &__nvoc_export_info_RsClientResource
259 };
260
__nvoc_thunk_RsResource_clientresShareCallback(struct RsClientResource * pResource,struct RsClient * pInvokingClient,RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)261 static NvBool __nvoc_thunk_RsResource_clientresShareCallback(struct RsClientResource *pResource, struct RsClient *pInvokingClient, RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
262 return resShareCallback((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pInvokingClient, pParentRef, pSharePolicy);
263 }
264
__nvoc_thunk_RsResource_clientresControl(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)265 static NV_STATUS __nvoc_thunk_RsResource_clientresControl(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
266 return resControl((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
267 }
268
__nvoc_thunk_RsResource_clientresUnmap(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,RsCpuMapping * pCpuMapping)269 static NV_STATUS __nvoc_thunk_RsResource_clientresUnmap(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
270 return resUnmap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pCpuMapping);
271 }
272
__nvoc_thunk_RsResource_clientresMapTo(struct RsClientResource * pResource,RS_RES_MAP_TO_PARAMS * pParams)273 static NV_STATUS __nvoc_thunk_RsResource_clientresMapTo(struct RsClientResource *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
274 return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pParams);
275 }
276
__nvoc_thunk_RsResource_clientresGetRefCount(struct RsClientResource * pResource)277 static NvU32 __nvoc_thunk_RsResource_clientresGetRefCount(struct RsClientResource *pResource) {
278 return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset));
279 }
280
__nvoc_thunk_RsResource_clientresControlFilter(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)281 static NV_STATUS __nvoc_thunk_RsResource_clientresControlFilter(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
282 return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
283 }
284
__nvoc_thunk_RsResource_clientresAddAdditionalDependants(struct RsClient * pClient,struct RsClientResource * pResource,RsResourceRef * pReference)285 static void __nvoc_thunk_RsResource_clientresAddAdditionalDependants(struct RsClient *pClient, struct RsClientResource *pResource, RsResourceRef *pReference) {
286 resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pReference);
287 }
288
__nvoc_thunk_RsResource_clientresControlSerialization_Prologue(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)289 static NV_STATUS __nvoc_thunk_RsResource_clientresControlSerialization_Prologue(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
290 return resControlSerialization_Prologue((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
291 }
292
__nvoc_thunk_RsResource_clientresCanCopy(struct RsClientResource * pResource)293 static NvBool __nvoc_thunk_RsResource_clientresCanCopy(struct RsClientResource *pResource) {
294 return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset));
295 }
296
__nvoc_thunk_RsResource_clientresControl_Prologue(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)297 static NV_STATUS __nvoc_thunk_RsResource_clientresControl_Prologue(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
298 return resControl_Prologue((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
299 }
300
__nvoc_thunk_RsResource_clientresIsPartialUnmapSupported(struct RsClientResource * pResource)301 static NvBool __nvoc_thunk_RsResource_clientresIsPartialUnmapSupported(struct RsClientResource *pResource) {
302 return resIsPartialUnmapSupported((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset));
303 }
304
__nvoc_thunk_RsResource_clientresPreDestruct(struct RsClientResource * pResource)305 static void __nvoc_thunk_RsResource_clientresPreDestruct(struct RsClientResource *pResource) {
306 resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset));
307 }
308
__nvoc_thunk_RsResource_clientresUnmapFrom(struct RsClientResource * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)309 static NV_STATUS __nvoc_thunk_RsResource_clientresUnmapFrom(struct RsClientResource *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
310 return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pParams);
311 }
312
__nvoc_thunk_RsResource_clientresIsDuplicate(struct RsClientResource * pResource,NvHandle hMemory,NvBool * pDuplicate)313 static NV_STATUS __nvoc_thunk_RsResource_clientresIsDuplicate(struct RsClientResource *pResource, NvHandle hMemory, NvBool *pDuplicate) {
314 return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), hMemory, pDuplicate);
315 }
316
__nvoc_thunk_RsResource_clientresControlSerialization_Epilogue(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)317 static void __nvoc_thunk_RsResource_clientresControlSerialization_Epilogue(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
318 resControlSerialization_Epilogue((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
319 }
320
__nvoc_thunk_RsResource_clientresControl_Epilogue(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)321 static void __nvoc_thunk_RsResource_clientresControl_Epilogue(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
322 resControl_Epilogue((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams);
323 }
324
__nvoc_thunk_RsResource_clientresMap(struct RsClientResource * pResource,struct CALL_CONTEXT * pCallContext,RS_CPU_MAP_PARAMS * pParams,RsCpuMapping * pCpuMapping)325 static NV_STATUS __nvoc_thunk_RsResource_clientresMap(struct RsClientResource *pResource, struct CALL_CONTEXT *pCallContext, RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
326 return resMap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pCallContext, pParams, pCpuMapping);
327 }
328
__nvoc_thunk_RsResource_clientresAccessCallback(struct RsClientResource * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)329 static NvBool __nvoc_thunk_RsResource_clientresAccessCallback(struct RsClientResource *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
330 return resAccessCallback((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_RsClientResource_RsResource.offset), pInvokingClient, pAllocParams, accessRight);
331 }
332
333 const struct NVOC_EXPORT_INFO __nvoc_export_info_RsClientResource =
334 {
335 /*numEntries=*/ 0,
336 /*pExportEntries=*/ 0
337 };
338
339 void __nvoc_dtor_RsResource(RsResource*);
__nvoc_dtor_RsClientResource(RsClientResource * pThis)340 void __nvoc_dtor_RsClientResource(RsClientResource *pThis) {
341 __nvoc_clientresDestruct(pThis);
342 __nvoc_dtor_RsResource(&pThis->__nvoc_base_RsResource);
343 PORT_UNREFERENCED_VARIABLE(pThis);
344 }
345
__nvoc_init_dataField_RsClientResource(RsClientResource * pThis)346 void __nvoc_init_dataField_RsClientResource(RsClientResource *pThis) {
347 PORT_UNREFERENCED_VARIABLE(pThis);
348 }
349
350 NV_STATUS __nvoc_ctor_RsResource(RsResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
__nvoc_ctor_RsClientResource(RsClientResource * pThis,struct CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)351 NV_STATUS __nvoc_ctor_RsClientResource(RsClientResource *pThis, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
352 NV_STATUS status = NV_OK;
353 status = __nvoc_ctor_RsResource(&pThis->__nvoc_base_RsResource, arg_pCallContext, arg_pParams);
354 if (status != NV_OK) goto __nvoc_ctor_RsClientResource_fail_RsResource;
355 __nvoc_init_dataField_RsClientResource(pThis);
356
357 status = __nvoc_clientresConstruct(pThis, arg_pCallContext, arg_pParams);
358 if (status != NV_OK) goto __nvoc_ctor_RsClientResource_fail__init;
359 goto __nvoc_ctor_RsClientResource_exit; // Success
360
361 __nvoc_ctor_RsClientResource_fail__init:
362 __nvoc_dtor_RsResource(&pThis->__nvoc_base_RsResource);
363 __nvoc_ctor_RsClientResource_fail_RsResource:
364 __nvoc_ctor_RsClientResource_exit:
365
366 return status;
367 }
368
__nvoc_init_funcTable_RsClientResource_1(RsClientResource * pThis)369 static void __nvoc_init_funcTable_RsClientResource_1(RsClientResource *pThis) {
370 PORT_UNREFERENCED_VARIABLE(pThis);
371
372 pThis->__clientresShareCallback__ = &__nvoc_thunk_RsResource_clientresShareCallback;
373
374 pThis->__clientresControl__ = &__nvoc_thunk_RsResource_clientresControl;
375
376 pThis->__clientresUnmap__ = &__nvoc_thunk_RsResource_clientresUnmap;
377
378 pThis->__clientresMapTo__ = &__nvoc_thunk_RsResource_clientresMapTo;
379
380 pThis->__clientresGetRefCount__ = &__nvoc_thunk_RsResource_clientresGetRefCount;
381
382 pThis->__clientresControlFilter__ = &__nvoc_thunk_RsResource_clientresControlFilter;
383
384 pThis->__clientresAddAdditionalDependants__ = &__nvoc_thunk_RsResource_clientresAddAdditionalDependants;
385
386 pThis->__clientresControlSerialization_Prologue__ = &__nvoc_thunk_RsResource_clientresControlSerialization_Prologue;
387
388 pThis->__clientresCanCopy__ = &__nvoc_thunk_RsResource_clientresCanCopy;
389
390 pThis->__clientresControl_Prologue__ = &__nvoc_thunk_RsResource_clientresControl_Prologue;
391
392 pThis->__clientresIsPartialUnmapSupported__ = &__nvoc_thunk_RsResource_clientresIsPartialUnmapSupported;
393
394 pThis->__clientresPreDestruct__ = &__nvoc_thunk_RsResource_clientresPreDestruct;
395
396 pThis->__clientresUnmapFrom__ = &__nvoc_thunk_RsResource_clientresUnmapFrom;
397
398 pThis->__clientresIsDuplicate__ = &__nvoc_thunk_RsResource_clientresIsDuplicate;
399
400 pThis->__clientresControlSerialization_Epilogue__ = &__nvoc_thunk_RsResource_clientresControlSerialization_Epilogue;
401
402 pThis->__clientresControl_Epilogue__ = &__nvoc_thunk_RsResource_clientresControl_Epilogue;
403
404 pThis->__clientresMap__ = &__nvoc_thunk_RsResource_clientresMap;
405
406 pThis->__clientresAccessCallback__ = &__nvoc_thunk_RsResource_clientresAccessCallback;
407 }
408
__nvoc_init_funcTable_RsClientResource(RsClientResource * pThis)409 void __nvoc_init_funcTable_RsClientResource(RsClientResource *pThis) {
410 __nvoc_init_funcTable_RsClientResource_1(pThis);
411 }
412
413 void __nvoc_init_RsResource(RsResource*);
__nvoc_init_RsClientResource(RsClientResource * pThis)414 void __nvoc_init_RsClientResource(RsClientResource *pThis) {
415 pThis->__nvoc_pbase_RsClientResource = pThis;
416 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_RsResource.__nvoc_base_Object;
417 pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_RsResource;
418 __nvoc_init_RsResource(&pThis->__nvoc_base_RsResource);
419 __nvoc_init_funcTable_RsClientResource(pThis);
420 }
421
__nvoc_objCreate_RsClientResource(RsClientResource ** ppThis,Dynamic * pParent,NvU32 createFlags,struct CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)422 NV_STATUS __nvoc_objCreate_RsClientResource(RsClientResource **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
423 {
424 NV_STATUS status;
425 Object *pParentObj = NULL;
426 RsClientResource *pThis;
427
428 // Assign `pThis`, allocating memory unless suppressed by flag.
429 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(RsClientResource), (void**)&pThis, (void**)ppThis);
430 if (status != NV_OK)
431 return status;
432
433 // Zero is the initial value for everything.
434 portMemSet(pThis, 0, sizeof(RsClientResource));
435
436 // Initialize runtime type information.
437 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_RsClientResource);
438
439 pThis->__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
440
441 // Link the child into the parent if there is one unless flagged not to do so.
442 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
443 {
444 pParentObj = dynamicCast(pParent, Object);
445 objAddChild(pParentObj, &pThis->__nvoc_base_RsResource.__nvoc_base_Object);
446 }
447 else
448 {
449 pThis->__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
450 }
451
452 __nvoc_init_RsClientResource(pThis);
453 status = __nvoc_ctor_RsClientResource(pThis, arg_pCallContext, arg_pParams);
454 if (status != NV_OK) goto __nvoc_objCreate_RsClientResource_cleanup;
455
456 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
457 *ppThis = pThis;
458
459 return NV_OK;
460
461 __nvoc_objCreate_RsClientResource_cleanup:
462
463 // Unlink the child from the parent if it was linked above.
464 if (pParentObj != NULL)
465 objRemoveChild(pParentObj, &pThis->__nvoc_base_RsResource.__nvoc_base_Object);
466
467 // Do not call destructors here since the constructor already called them.
468 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
469 portMemSet(pThis, 0, sizeof(RsClientResource));
470 else
471 {
472 portMemFree(pThis);
473 *ppThis = NULL;
474 }
475
476 // coverity[leaked_storage:FALSE]
477 return status;
478 }
479
__nvoc_objCreateDynamic_RsClientResource(RsClientResource ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)480 NV_STATUS __nvoc_objCreateDynamic_RsClientResource(RsClientResource **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
481 NV_STATUS status;
482 struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
483 struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
484
485 status = __nvoc_objCreate_RsClientResource(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
486
487 return status;
488 }
489
490