1 #define NVOC_SYNCGPUBOOST_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_syncgpuboost_nvoc.h"
9 
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0xc7e30b = 1;
12 #endif
13 
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_SyncGpuBoost;
15 
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17 
18 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RsResource;
19 
20 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResourceCommon;
21 
22 extern const struct NVOC_CLASS_DEF __nvoc_class_def_RmResource;
23 
24 void __nvoc_init_SyncGpuBoost(SyncGpuBoost*);
25 void __nvoc_init_funcTable_SyncGpuBoost(SyncGpuBoost*);
26 NV_STATUS __nvoc_ctor_SyncGpuBoost(SyncGpuBoost*, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
27 void __nvoc_init_dataField_SyncGpuBoost(SyncGpuBoost*);
28 void __nvoc_dtor_SyncGpuBoost(SyncGpuBoost*);
29 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_SyncGpuBoost;
30 
31 static const struct NVOC_RTTI __nvoc_rtti_SyncGpuBoost_SyncGpuBoost = {
32     /*pClassDef=*/          &__nvoc_class_def_SyncGpuBoost,
33     /*dtor=*/               (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_SyncGpuBoost,
34     /*offset=*/             0,
35 };
36 
37 static const struct NVOC_RTTI __nvoc_rtti_SyncGpuBoost_Object = {
38     /*pClassDef=*/          &__nvoc_class_def_Object,
39     /*dtor=*/               &__nvoc_destructFromBase,
40     /*offset=*/             NV_OFFSETOF(SyncGpuBoost, __nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
41 };
42 
43 static const struct NVOC_RTTI __nvoc_rtti_SyncGpuBoost_RsResource = {
44     /*pClassDef=*/          &__nvoc_class_def_RsResource,
45     /*dtor=*/               &__nvoc_destructFromBase,
46     /*offset=*/             NV_OFFSETOF(SyncGpuBoost, __nvoc_base_RmResource.__nvoc_base_RsResource),
47 };
48 
49 static const struct NVOC_RTTI __nvoc_rtti_SyncGpuBoost_RmResourceCommon = {
50     /*pClassDef=*/          &__nvoc_class_def_RmResourceCommon,
51     /*dtor=*/               &__nvoc_destructFromBase,
52     /*offset=*/             NV_OFFSETOF(SyncGpuBoost, __nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
53 };
54 
55 static const struct NVOC_RTTI __nvoc_rtti_SyncGpuBoost_RmResource = {
56     /*pClassDef=*/          &__nvoc_class_def_RmResource,
57     /*dtor=*/               &__nvoc_destructFromBase,
58     /*offset=*/             NV_OFFSETOF(SyncGpuBoost, __nvoc_base_RmResource),
59 };
60 
61 static const struct NVOC_CASTINFO __nvoc_castinfo_SyncGpuBoost = {
62     /*numRelatives=*/       5,
63     /*relatives=*/ {
64         &__nvoc_rtti_SyncGpuBoost_SyncGpuBoost,
65         &__nvoc_rtti_SyncGpuBoost_RmResource,
66         &__nvoc_rtti_SyncGpuBoost_RmResourceCommon,
67         &__nvoc_rtti_SyncGpuBoost_RsResource,
68         &__nvoc_rtti_SyncGpuBoost_Object,
69     },
70 };
71 
72 const struct NVOC_CLASS_DEF __nvoc_class_def_SyncGpuBoost =
73 {
74     /*classInfo=*/ {
75         /*size=*/               sizeof(SyncGpuBoost),
76         /*classId=*/            classId(SyncGpuBoost),
77         /*providerId=*/         &__nvoc_rtti_provider,
78 #if NV_PRINTF_STRINGS_ALLOWED
79         /*name=*/               "SyncGpuBoost",
80 #endif
81     },
82     /*objCreatefn=*/        (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_SyncGpuBoost,
83     /*pCastInfo=*/          &__nvoc_castinfo_SyncGpuBoost,
84     /*pExportInfo=*/        &__nvoc_export_info_SyncGpuBoost
85 };
86 
__nvoc_thunk_RmResource_syncgpuboostShareCallback(struct SyncGpuBoost * pResource,struct RsClient * pInvokingClient,struct RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)87 static NvBool __nvoc_thunk_RmResource_syncgpuboostShareCallback(struct SyncGpuBoost *pResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
88     return rmresShareCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pInvokingClient, pParentRef, pSharePolicy);
89 }
90 
__nvoc_thunk_RmResource_syncgpuboostCheckMemInterUnmap(struct SyncGpuBoost * pRmResource,NvBool bSubdeviceHandleProvided)91 static NV_STATUS __nvoc_thunk_RmResource_syncgpuboostCheckMemInterUnmap(struct SyncGpuBoost *pRmResource, NvBool bSubdeviceHandleProvided) {
92     return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), bSubdeviceHandleProvided);
93 }
94 
__nvoc_thunk_RsResource_syncgpuboostControl(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)95 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostControl(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
96     return resControl((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pCallContext, pParams);
97 }
98 
__nvoc_thunk_RmResource_syncgpuboostGetMemInterMapParams(struct SyncGpuBoost * pRmResource,RMRES_MEM_INTER_MAP_PARAMS * pParams)99 static NV_STATUS __nvoc_thunk_RmResource_syncgpuboostGetMemInterMapParams(struct SyncGpuBoost *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
100     return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pParams);
101 }
102 
__nvoc_thunk_RmResource_syncgpuboostGetMemoryMappingDescriptor(struct SyncGpuBoost * pRmResource,struct MEMORY_DESCRIPTOR ** ppMemDesc)103 static NV_STATUS __nvoc_thunk_RmResource_syncgpuboostGetMemoryMappingDescriptor(struct SyncGpuBoost *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
104     return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), ppMemDesc);
105 }
106 
__nvoc_thunk_RsResource_syncgpuboostGetRefCount(struct SyncGpuBoost * pResource)107 static NvU32 __nvoc_thunk_RsResource_syncgpuboostGetRefCount(struct SyncGpuBoost *pResource) {
108     return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset));
109 }
110 
__nvoc_thunk_RsResource_syncgpuboostControlFilter(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)111 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostControlFilter(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
112     return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pCallContext, pParams);
113 }
114 
__nvoc_thunk_RsResource_syncgpuboostAddAdditionalDependants(struct RsClient * pClient,struct SyncGpuBoost * pResource,RsResourceRef * pReference)115 static void __nvoc_thunk_RsResource_syncgpuboostAddAdditionalDependants(struct RsClient *pClient, struct SyncGpuBoost *pResource, RsResourceRef *pReference) {
116     resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pReference);
117 }
118 
__nvoc_thunk_RmResource_syncgpuboostControlSerialization_Prologue(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)119 static NV_STATUS __nvoc_thunk_RmResource_syncgpuboostControlSerialization_Prologue(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
120     return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pCallContext, pParams);
121 }
122 
__nvoc_thunk_RmResource_syncgpuboostControl_Prologue(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)123 static NV_STATUS __nvoc_thunk_RmResource_syncgpuboostControl_Prologue(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
124     return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pCallContext, pParams);
125 }
126 
__nvoc_thunk_RsResource_syncgpuboostCanCopy(struct SyncGpuBoost * pResource)127 static NvBool __nvoc_thunk_RsResource_syncgpuboostCanCopy(struct SyncGpuBoost *pResource) {
128     return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset));
129 }
130 
__nvoc_thunk_RsResource_syncgpuboostUnmap(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,RsCpuMapping * pCpuMapping)131 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostUnmap(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, RsCpuMapping *pCpuMapping) {
132     return resUnmap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pCallContext, pCpuMapping);
133 }
134 
__nvoc_thunk_RsResource_syncgpuboostIsPartialUnmapSupported(struct SyncGpuBoost * pResource)135 static NvBool __nvoc_thunk_RsResource_syncgpuboostIsPartialUnmapSupported(struct SyncGpuBoost *pResource) {
136     return resIsPartialUnmapSupported((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset));
137 }
138 
__nvoc_thunk_RsResource_syncgpuboostPreDestruct(struct SyncGpuBoost * pResource)139 static void __nvoc_thunk_RsResource_syncgpuboostPreDestruct(struct SyncGpuBoost *pResource) {
140     resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset));
141 }
142 
__nvoc_thunk_RsResource_syncgpuboostMapTo(struct SyncGpuBoost * pResource,RS_RES_MAP_TO_PARAMS * pParams)143 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostMapTo(struct SyncGpuBoost *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
144     return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pParams);
145 }
146 
__nvoc_thunk_RsResource_syncgpuboostIsDuplicate(struct SyncGpuBoost * pResource,NvHandle hMemory,NvBool * pDuplicate)147 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostIsDuplicate(struct SyncGpuBoost *pResource, NvHandle hMemory, NvBool *pDuplicate) {
148     return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), hMemory, pDuplicate);
149 }
150 
__nvoc_thunk_RmResource_syncgpuboostControlSerialization_Epilogue(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)151 static void __nvoc_thunk_RmResource_syncgpuboostControlSerialization_Epilogue(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
152     rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pCallContext, pParams);
153 }
154 
__nvoc_thunk_RmResource_syncgpuboostControl_Epilogue(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)155 static void __nvoc_thunk_RmResource_syncgpuboostControl_Epilogue(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
156     rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pCallContext, pParams);
157 }
158 
__nvoc_thunk_RsResource_syncgpuboostUnmapFrom(struct SyncGpuBoost * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)159 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostUnmapFrom(struct SyncGpuBoost *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
160     return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pParams);
161 }
162 
__nvoc_thunk_RsResource_syncgpuboostMap(struct SyncGpuBoost * pResource,struct CALL_CONTEXT * pCallContext,RS_CPU_MAP_PARAMS * pParams,RsCpuMapping * pCpuMapping)163 static NV_STATUS __nvoc_thunk_RsResource_syncgpuboostMap(struct SyncGpuBoost *pResource, struct CALL_CONTEXT *pCallContext, RS_CPU_MAP_PARAMS *pParams, RsCpuMapping *pCpuMapping) {
164     return resMap((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RsResource.offset), pCallContext, pParams, pCpuMapping);
165 }
166 
__nvoc_thunk_RmResource_syncgpuboostAccessCallback(struct SyncGpuBoost * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)167 static NvBool __nvoc_thunk_RmResource_syncgpuboostAccessCallback(struct SyncGpuBoost *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
168     return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_SyncGpuBoost_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
169 }
170 
171 const struct NVOC_EXPORT_INFO __nvoc_export_info_SyncGpuBoost =
172 {
173     /*numEntries=*/     0,
174     /*pExportEntries=*/  0
175 };
176 
177 void __nvoc_dtor_RmResource(RmResource*);
__nvoc_dtor_SyncGpuBoost(SyncGpuBoost * pThis)178 void __nvoc_dtor_SyncGpuBoost(SyncGpuBoost *pThis) {
179     __nvoc_syncgpuboostDestruct(pThis);
180     __nvoc_dtor_RmResource(&pThis->__nvoc_base_RmResource);
181     PORT_UNREFERENCED_VARIABLE(pThis);
182 }
183 
__nvoc_init_dataField_SyncGpuBoost(SyncGpuBoost * pThis)184 void __nvoc_init_dataField_SyncGpuBoost(SyncGpuBoost *pThis) {
185     PORT_UNREFERENCED_VARIABLE(pThis);
186 }
187 
188 NV_STATUS __nvoc_ctor_RmResource(RmResource* , struct CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
__nvoc_ctor_SyncGpuBoost(SyncGpuBoost * pThis,struct CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)189 NV_STATUS __nvoc_ctor_SyncGpuBoost(SyncGpuBoost *pThis, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
190     NV_STATUS status = NV_OK;
191     status = __nvoc_ctor_RmResource(&pThis->__nvoc_base_RmResource, arg_pCallContext, arg_pParams);
192     if (status != NV_OK) goto __nvoc_ctor_SyncGpuBoost_fail_RmResource;
193     __nvoc_init_dataField_SyncGpuBoost(pThis);
194 
195     status = __nvoc_syncgpuboostConstruct(pThis, arg_pCallContext, arg_pParams);
196     if (status != NV_OK) goto __nvoc_ctor_SyncGpuBoost_fail__init;
197     goto __nvoc_ctor_SyncGpuBoost_exit; // Success
198 
199 __nvoc_ctor_SyncGpuBoost_fail__init:
200     __nvoc_dtor_RmResource(&pThis->__nvoc_base_RmResource);
201 __nvoc_ctor_SyncGpuBoost_fail_RmResource:
202 __nvoc_ctor_SyncGpuBoost_exit:
203 
204     return status;
205 }
206 
__nvoc_init_funcTable_SyncGpuBoost_1(SyncGpuBoost * pThis)207 static void __nvoc_init_funcTable_SyncGpuBoost_1(SyncGpuBoost *pThis) {
208     PORT_UNREFERENCED_VARIABLE(pThis);
209 
210     pThis->__syncgpuboostShareCallback__ = &__nvoc_thunk_RmResource_syncgpuboostShareCallback;
211 
212     pThis->__syncgpuboostCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_syncgpuboostCheckMemInterUnmap;
213 
214     pThis->__syncgpuboostControl__ = &__nvoc_thunk_RsResource_syncgpuboostControl;
215 
216     pThis->__syncgpuboostGetMemInterMapParams__ = &__nvoc_thunk_RmResource_syncgpuboostGetMemInterMapParams;
217 
218     pThis->__syncgpuboostGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_syncgpuboostGetMemoryMappingDescriptor;
219 
220     pThis->__syncgpuboostGetRefCount__ = &__nvoc_thunk_RsResource_syncgpuboostGetRefCount;
221 
222     pThis->__syncgpuboostControlFilter__ = &__nvoc_thunk_RsResource_syncgpuboostControlFilter;
223 
224     pThis->__syncgpuboostAddAdditionalDependants__ = &__nvoc_thunk_RsResource_syncgpuboostAddAdditionalDependants;
225 
226     pThis->__syncgpuboostControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_syncgpuboostControlSerialization_Prologue;
227 
228     pThis->__syncgpuboostControl_Prologue__ = &__nvoc_thunk_RmResource_syncgpuboostControl_Prologue;
229 
230     pThis->__syncgpuboostCanCopy__ = &__nvoc_thunk_RsResource_syncgpuboostCanCopy;
231 
232     pThis->__syncgpuboostUnmap__ = &__nvoc_thunk_RsResource_syncgpuboostUnmap;
233 
234     pThis->__syncgpuboostIsPartialUnmapSupported__ = &__nvoc_thunk_RsResource_syncgpuboostIsPartialUnmapSupported;
235 
236     pThis->__syncgpuboostPreDestruct__ = &__nvoc_thunk_RsResource_syncgpuboostPreDestruct;
237 
238     pThis->__syncgpuboostMapTo__ = &__nvoc_thunk_RsResource_syncgpuboostMapTo;
239 
240     pThis->__syncgpuboostIsDuplicate__ = &__nvoc_thunk_RsResource_syncgpuboostIsDuplicate;
241 
242     pThis->__syncgpuboostControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_syncgpuboostControlSerialization_Epilogue;
243 
244     pThis->__syncgpuboostControl_Epilogue__ = &__nvoc_thunk_RmResource_syncgpuboostControl_Epilogue;
245 
246     pThis->__syncgpuboostUnmapFrom__ = &__nvoc_thunk_RsResource_syncgpuboostUnmapFrom;
247 
248     pThis->__syncgpuboostMap__ = &__nvoc_thunk_RsResource_syncgpuboostMap;
249 
250     pThis->__syncgpuboostAccessCallback__ = &__nvoc_thunk_RmResource_syncgpuboostAccessCallback;
251 }
252 
__nvoc_init_funcTable_SyncGpuBoost(SyncGpuBoost * pThis)253 void __nvoc_init_funcTable_SyncGpuBoost(SyncGpuBoost *pThis) {
254     __nvoc_init_funcTable_SyncGpuBoost_1(pThis);
255 }
256 
257 void __nvoc_init_RmResource(RmResource*);
__nvoc_init_SyncGpuBoost(SyncGpuBoost * pThis)258 void __nvoc_init_SyncGpuBoost(SyncGpuBoost *pThis) {
259     pThis->__nvoc_pbase_SyncGpuBoost = pThis;
260     pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
261     pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource;
262     pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
263     pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_RmResource;
264     __nvoc_init_RmResource(&pThis->__nvoc_base_RmResource);
265     __nvoc_init_funcTable_SyncGpuBoost(pThis);
266 }
267 
__nvoc_objCreate_SyncGpuBoost(SyncGpuBoost ** ppThis,Dynamic * pParent,NvU32 createFlags,struct CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)268 NV_STATUS __nvoc_objCreate_SyncGpuBoost(SyncGpuBoost **ppThis, Dynamic *pParent, NvU32 createFlags, struct CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
269 {
270     NV_STATUS status;
271     Object *pParentObj = NULL;
272     SyncGpuBoost *pThis;
273 
274     // Assign `pThis`, allocating memory unless suppressed by flag.
275     status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(SyncGpuBoost), (void**)&pThis, (void**)ppThis);
276     if (status != NV_OK)
277         return status;
278 
279     // Zero is the initial value for everything.
280     portMemSet(pThis, 0, sizeof(SyncGpuBoost));
281 
282     // Initialize runtime type information.
283     __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_SyncGpuBoost);
284 
285     pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
286 
287     // Link the child into the parent if there is one unless flagged not to do so.
288     if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
289     {
290         pParentObj = dynamicCast(pParent, Object);
291         objAddChild(pParentObj, &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
292     }
293     else
294     {
295         pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
296     }
297 
298     __nvoc_init_SyncGpuBoost(pThis);
299     status = __nvoc_ctor_SyncGpuBoost(pThis, arg_pCallContext, arg_pParams);
300     if (status != NV_OK) goto __nvoc_objCreate_SyncGpuBoost_cleanup;
301 
302     // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
303     *ppThis = pThis;
304 
305     return NV_OK;
306 
307 __nvoc_objCreate_SyncGpuBoost_cleanup:
308 
309     // Unlink the child from the parent if it was linked above.
310     if (pParentObj != NULL)
311         objRemoveChild(pParentObj, &pThis->__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
312 
313     // Do not call destructors here since the constructor already called them.
314     if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
315         portMemSet(pThis, 0, sizeof(SyncGpuBoost));
316     else
317     {
318         portMemFree(pThis);
319         *ppThis = NULL;
320     }
321 
322     // coverity[leaked_storage:FALSE]
323     return status;
324 }
325 
__nvoc_objCreateDynamic_SyncGpuBoost(SyncGpuBoost ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)326 NV_STATUS __nvoc_objCreateDynamic_SyncGpuBoost(SyncGpuBoost **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
327     NV_STATUS status;
328     struct CALL_CONTEXT * arg_pCallContext = va_arg(args, struct CALL_CONTEXT *);
329     struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
330 
331     status = __nvoc_objCreate_SyncGpuBoost(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
332 
333     return status;
334 }
335 
336