1 #define NVOC_VIDMEM_ACCESS_BIT_BUFFER_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_vidmem_access_bit_buffer_nvoc.h"
9
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0xebb6da = 1;
12 #endif
13
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_VidmemAccessBitBuffer;
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 extern const struct NVOC_CLASS_DEF __nvoc_class_def_GpuResource;
25
26 extern const struct NVOC_CLASS_DEF __nvoc_class_def_INotifier;
27
28 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Notifier;
29
30 void __nvoc_init_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* );
31 void __nvoc_init_funcTable_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* );
32 NV_STATUS __nvoc_ctor_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* , CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams);
33 void __nvoc_init_dataField_VidmemAccessBitBuffer(VidmemAccessBitBuffer*, RmHalspecOwner* );
34 void __nvoc_dtor_VidmemAccessBitBuffer(VidmemAccessBitBuffer*);
35 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_VidmemAccessBitBuffer;
36
37 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_VidmemAccessBitBuffer = {
38 /*pClassDef=*/ &__nvoc_class_def_VidmemAccessBitBuffer,
39 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_VidmemAccessBitBuffer,
40 /*offset=*/ 0,
41 };
42
43 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_Object = {
44 /*pClassDef=*/ &__nvoc_class_def_Object,
45 /*dtor=*/ &__nvoc_destructFromBase,
46 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object),
47 };
48
49 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RsResource = {
50 /*pClassDef=*/ &__nvoc_class_def_RsResource,
51 /*dtor=*/ &__nvoc_destructFromBase,
52 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource),
53 };
54
55 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RmResourceCommon = {
56 /*pClassDef=*/ &__nvoc_class_def_RmResourceCommon,
57 /*dtor=*/ &__nvoc_destructFromBase,
58 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon),
59 };
60
61 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_RmResource = {
62 /*pClassDef=*/ &__nvoc_class_def_RmResource,
63 /*dtor=*/ &__nvoc_destructFromBase,
64 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource.__nvoc_base_RmResource),
65 };
66
67 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_GpuResource = {
68 /*pClassDef=*/ &__nvoc_class_def_GpuResource,
69 /*dtor=*/ &__nvoc_destructFromBase,
70 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_GpuResource),
71 };
72
73 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_INotifier = {
74 /*pClassDef=*/ &__nvoc_class_def_INotifier,
75 /*dtor=*/ &__nvoc_destructFromBase,
76 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_Notifier.__nvoc_base_INotifier),
77 };
78
79 static const struct NVOC_RTTI __nvoc_rtti_VidmemAccessBitBuffer_Notifier = {
80 /*pClassDef=*/ &__nvoc_class_def_Notifier,
81 /*dtor=*/ &__nvoc_destructFromBase,
82 /*offset=*/ NV_OFFSETOF(VidmemAccessBitBuffer, __nvoc_base_Notifier),
83 };
84
85 static const struct NVOC_CASTINFO __nvoc_castinfo_VidmemAccessBitBuffer = {
86 /*numRelatives=*/ 8,
87 /*relatives=*/ {
88 &__nvoc_rtti_VidmemAccessBitBuffer_VidmemAccessBitBuffer,
89 &__nvoc_rtti_VidmemAccessBitBuffer_Notifier,
90 &__nvoc_rtti_VidmemAccessBitBuffer_INotifier,
91 &__nvoc_rtti_VidmemAccessBitBuffer_GpuResource,
92 &__nvoc_rtti_VidmemAccessBitBuffer_RmResource,
93 &__nvoc_rtti_VidmemAccessBitBuffer_RmResourceCommon,
94 &__nvoc_rtti_VidmemAccessBitBuffer_RsResource,
95 &__nvoc_rtti_VidmemAccessBitBuffer_Object,
96 },
97 };
98
99 const struct NVOC_CLASS_DEF __nvoc_class_def_VidmemAccessBitBuffer =
100 {
101 /*classInfo=*/ {
102 /*size=*/ sizeof(VidmemAccessBitBuffer),
103 /*classId=*/ classId(VidmemAccessBitBuffer),
104 /*providerId=*/ &__nvoc_rtti_provider,
105 #if NV_PRINTF_STRINGS_ALLOWED
106 /*name=*/ "VidmemAccessBitBuffer",
107 #endif
108 },
109 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_VidmemAccessBitBuffer,
110 /*pCastInfo=*/ &__nvoc_castinfo_VidmemAccessBitBuffer,
111 /*pExportInfo=*/ &__nvoc_export_info_VidmemAccessBitBuffer
112 };
113
__nvoc_thunk_GpuResource_vidmemAccessBitBufShareCallback(struct VidmemAccessBitBuffer * pGpuResource,struct RsClient * pInvokingClient,struct RsResourceRef * pParentRef,RS_SHARE_POLICY * pSharePolicy)114 static NvBool __nvoc_thunk_GpuResource_vidmemAccessBitBufShareCallback(struct VidmemAccessBitBuffer *pGpuResource, struct RsClient *pInvokingClient, struct RsResourceRef *pParentRef, RS_SHARE_POLICY *pSharePolicy) {
115 return gpuresShareCallback((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pInvokingClient, pParentRef, pSharePolicy);
116 }
117
__nvoc_thunk_RmResource_vidmemAccessBitBufCheckMemInterUnmap(struct VidmemAccessBitBuffer * pRmResource,NvBool bSubdeviceHandleProvided)118 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufCheckMemInterUnmap(struct VidmemAccessBitBuffer *pRmResource, NvBool bSubdeviceHandleProvided) {
119 return rmresCheckMemInterUnmap((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), bSubdeviceHandleProvided);
120 }
121
__nvoc_thunk_Notifier_vidmemAccessBitBufGetOrAllocNotifShare(struct VidmemAccessBitBuffer * pNotifier,NvHandle hNotifierClient,NvHandle hNotifierResource,struct NotifShare ** ppNotifShare)122 static NV_STATUS __nvoc_thunk_Notifier_vidmemAccessBitBufGetOrAllocNotifShare(struct VidmemAccessBitBuffer *pNotifier, NvHandle hNotifierClient, NvHandle hNotifierResource, struct NotifShare **ppNotifShare) {
123 return notifyGetOrAllocNotifShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), hNotifierClient, hNotifierResource, ppNotifShare);
124 }
125
__nvoc_thunk_RsResource_vidmemAccessBitBufMapTo(struct VidmemAccessBitBuffer * pResource,RS_RES_MAP_TO_PARAMS * pParams)126 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufMapTo(struct VidmemAccessBitBuffer *pResource, RS_RES_MAP_TO_PARAMS *pParams) {
127 return resMapTo((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pParams);
128 }
129
__nvoc_thunk_GpuResource_vidmemAccessBitBufGetMapAddrSpace(struct VidmemAccessBitBuffer * pGpuResource,struct CALL_CONTEXT * pCallContext,NvU32 mapFlags,NV_ADDRESS_SPACE * pAddrSpace)130 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufGetMapAddrSpace(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, NvU32 mapFlags, NV_ADDRESS_SPACE *pAddrSpace) {
131 return gpuresGetMapAddrSpace((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, mapFlags, pAddrSpace);
132 }
133
__nvoc_thunk_Notifier_vidmemAccessBitBufSetNotificationShare(struct VidmemAccessBitBuffer * pNotifier,struct NotifShare * pNotifShare)134 static void __nvoc_thunk_Notifier_vidmemAccessBitBufSetNotificationShare(struct VidmemAccessBitBuffer *pNotifier, struct NotifShare *pNotifShare) {
135 notifySetNotificationShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), pNotifShare);
136 }
137
__nvoc_thunk_RsResource_vidmemAccessBitBufGetRefCount(struct VidmemAccessBitBuffer * pResource)138 static NvU32 __nvoc_thunk_RsResource_vidmemAccessBitBufGetRefCount(struct VidmemAccessBitBuffer *pResource) {
139 return resGetRefCount((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset));
140 }
141
__nvoc_thunk_RsResource_vidmemAccessBitBufAddAdditionalDependants(struct RsClient * pClient,struct VidmemAccessBitBuffer * pResource,RsResourceRef * pReference)142 static void __nvoc_thunk_RsResource_vidmemAccessBitBufAddAdditionalDependants(struct RsClient *pClient, struct VidmemAccessBitBuffer *pResource, RsResourceRef *pReference) {
143 resAddAdditionalDependants(pClient, (struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pReference);
144 }
145
__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Prologue(struct VidmemAccessBitBuffer * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)146 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufControl_Prologue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
147 return rmresControl_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams);
148 }
149
__nvoc_thunk_GpuResource_vidmemAccessBitBufGetRegBaseOffsetAndSize(struct VidmemAccessBitBuffer * pGpuResource,struct OBJGPU * pGpu,NvU32 * pOffset,NvU32 * pSize)150 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufGetRegBaseOffsetAndSize(struct VidmemAccessBitBuffer *pGpuResource, struct OBJGPU *pGpu, NvU32 *pOffset, NvU32 *pSize) {
151 return gpuresGetRegBaseOffsetAndSize((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pGpu, pOffset, pSize);
152 }
153
__nvoc_thunk_GpuResource_vidmemAccessBitBufInternalControlForward(struct VidmemAccessBitBuffer * pGpuResource,NvU32 command,void * pParams,NvU32 size)154 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufInternalControlForward(struct VidmemAccessBitBuffer *pGpuResource, NvU32 command, void *pParams, NvU32 size) {
155 return gpuresInternalControlForward((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), command, pParams, size);
156 }
157
__nvoc_thunk_RsResource_vidmemAccessBitBufUnmapFrom(struct VidmemAccessBitBuffer * pResource,RS_RES_UNMAP_FROM_PARAMS * pParams)158 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufUnmapFrom(struct VidmemAccessBitBuffer *pResource, RS_RES_UNMAP_FROM_PARAMS *pParams) {
159 return resUnmapFrom((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pParams);
160 }
161
__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Epilogue(struct VidmemAccessBitBuffer * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)162 static void __nvoc_thunk_RmResource_vidmemAccessBitBufControl_Epilogue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
163 rmresControl_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams);
164 }
165
__nvoc_thunk_GpuResource_vidmemAccessBitBufGetInternalObjectHandle(struct VidmemAccessBitBuffer * pGpuResource)166 static NvHandle __nvoc_thunk_GpuResource_vidmemAccessBitBufGetInternalObjectHandle(struct VidmemAccessBitBuffer *pGpuResource) {
167 return gpuresGetInternalObjectHandle((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset));
168 }
169
__nvoc_thunk_GpuResource_vidmemAccessBitBufControl(struct VidmemAccessBitBuffer * pGpuResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)170 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufControl(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
171 return gpuresControl((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pParams);
172 }
173
__nvoc_thunk_GpuResource_vidmemAccessBitBufUnmap(struct VidmemAccessBitBuffer * pGpuResource,struct CALL_CONTEXT * pCallContext,struct RsCpuMapping * pCpuMapping)174 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufUnmap(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RsCpuMapping *pCpuMapping) {
175 return gpuresUnmap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pCpuMapping);
176 }
177
__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemInterMapParams(struct VidmemAccessBitBuffer * pRmResource,RMRES_MEM_INTER_MAP_PARAMS * pParams)178 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufGetMemInterMapParams(struct VidmemAccessBitBuffer *pRmResource, RMRES_MEM_INTER_MAP_PARAMS *pParams) {
179 return rmresGetMemInterMapParams((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pParams);
180 }
181
__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemoryMappingDescriptor(struct VidmemAccessBitBuffer * pRmResource,struct MEMORY_DESCRIPTOR ** ppMemDesc)182 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufGetMemoryMappingDescriptor(struct VidmemAccessBitBuffer *pRmResource, struct MEMORY_DESCRIPTOR **ppMemDesc) {
183 return rmresGetMemoryMappingDescriptor((struct RmResource *)(((unsigned char *)pRmResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), ppMemDesc);
184 }
185
__nvoc_thunk_RsResource_vidmemAccessBitBufControlFilter(struct VidmemAccessBitBuffer * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)186 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufControlFilter(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
187 return resControlFilter((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), pCallContext, pParams);
188 }
189
__nvoc_thunk_Notifier_vidmemAccessBitBufUnregisterEvent(struct VidmemAccessBitBuffer * pNotifier,NvHandle hNotifierClient,NvHandle hNotifierResource,NvHandle hEventClient,NvHandle hEvent)190 static NV_STATUS __nvoc_thunk_Notifier_vidmemAccessBitBufUnregisterEvent(struct VidmemAccessBitBuffer *pNotifier, NvHandle hNotifierClient, NvHandle hNotifierResource, NvHandle hEventClient, NvHandle hEvent) {
191 return notifyUnregisterEvent((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset), hNotifierClient, hNotifierResource, hEventClient, hEvent);
192 }
193
__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Prologue(struct VidmemAccessBitBuffer * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)194 static NV_STATUS __nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Prologue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
195 return rmresControlSerialization_Prologue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams);
196 }
197
__nvoc_thunk_RsResource_vidmemAccessBitBufCanCopy(struct VidmemAccessBitBuffer * pResource)198 static NvBool __nvoc_thunk_RsResource_vidmemAccessBitBufCanCopy(struct VidmemAccessBitBuffer *pResource) {
199 return resCanCopy((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset));
200 }
201
__nvoc_thunk_RsResource_vidmemAccessBitBufIsPartialUnmapSupported(struct VidmemAccessBitBuffer * pResource)202 static NvBool __nvoc_thunk_RsResource_vidmemAccessBitBufIsPartialUnmapSupported(struct VidmemAccessBitBuffer *pResource) {
203 return resIsPartialUnmapSupported((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset));
204 }
205
__nvoc_thunk_RsResource_vidmemAccessBitBufPreDestruct(struct VidmemAccessBitBuffer * pResource)206 static void __nvoc_thunk_RsResource_vidmemAccessBitBufPreDestruct(struct VidmemAccessBitBuffer *pResource) {
207 resPreDestruct((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset));
208 }
209
__nvoc_thunk_RsResource_vidmemAccessBitBufIsDuplicate(struct VidmemAccessBitBuffer * pResource,NvHandle hMemory,NvBool * pDuplicate)210 static NV_STATUS __nvoc_thunk_RsResource_vidmemAccessBitBufIsDuplicate(struct VidmemAccessBitBuffer *pResource, NvHandle hMemory, NvBool *pDuplicate) {
211 return resIsDuplicate((struct RsResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RsResource.offset), hMemory, pDuplicate);
212 }
213
__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Epilogue(struct VidmemAccessBitBuffer * pResource,struct CALL_CONTEXT * pCallContext,struct RS_RES_CONTROL_PARAMS_INTERNAL * pParams)214 static void __nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Epilogue(struct VidmemAccessBitBuffer *pResource, struct CALL_CONTEXT *pCallContext, struct RS_RES_CONTROL_PARAMS_INTERNAL *pParams) {
215 rmresControlSerialization_Epilogue((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pCallContext, pParams);
216 }
217
__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationListPtr(struct VidmemAccessBitBuffer * pNotifier)218 static PEVENTNOTIFICATION *__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationListPtr(struct VidmemAccessBitBuffer *pNotifier) {
219 return notifyGetNotificationListPtr((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset));
220 }
221
__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationShare(struct VidmemAccessBitBuffer * pNotifier)222 static struct NotifShare *__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationShare(struct VidmemAccessBitBuffer *pNotifier) {
223 return notifyGetNotificationShare((struct Notifier *)(((unsigned char *)pNotifier) + __nvoc_rtti_VidmemAccessBitBuffer_Notifier.offset));
224 }
225
__nvoc_thunk_GpuResource_vidmemAccessBitBufMap(struct VidmemAccessBitBuffer * pGpuResource,struct CALL_CONTEXT * pCallContext,struct RS_CPU_MAP_PARAMS * pParams,struct RsCpuMapping * pCpuMapping)226 static NV_STATUS __nvoc_thunk_GpuResource_vidmemAccessBitBufMap(struct VidmemAccessBitBuffer *pGpuResource, struct CALL_CONTEXT *pCallContext, struct RS_CPU_MAP_PARAMS *pParams, struct RsCpuMapping *pCpuMapping) {
227 return gpuresMap((struct GpuResource *)(((unsigned char *)pGpuResource) + __nvoc_rtti_VidmemAccessBitBuffer_GpuResource.offset), pCallContext, pParams, pCpuMapping);
228 }
229
__nvoc_thunk_RmResource_vidmemAccessBitBufAccessCallback(struct VidmemAccessBitBuffer * pResource,struct RsClient * pInvokingClient,void * pAllocParams,RsAccessRight accessRight)230 static NvBool __nvoc_thunk_RmResource_vidmemAccessBitBufAccessCallback(struct VidmemAccessBitBuffer *pResource, struct RsClient *pInvokingClient, void *pAllocParams, RsAccessRight accessRight) {
231 return rmresAccessCallback((struct RmResource *)(((unsigned char *)pResource) + __nvoc_rtti_VidmemAccessBitBuffer_RmResource.offset), pInvokingClient, pAllocParams, accessRight);
232 }
233
234 #if !defined(NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG)
235 #define NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(x) (0)
236 #endif
237
238 static const struct NVOC_EXPORTED_METHOD_DEF __nvoc_exported_method_def_VidmemAccessBitBuffer[] =
239 {
240 { /* [0] */
241 #if NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u)
242 /*pFunc=*/ (void (*)(void)) NULL,
243 #else
244 /*pFunc=*/ (void (*)(void)) vidmemAccessBitBufCtrlCmdVidmemAccessBitDump_IMPL,
245 #endif // NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u)
246 /*flags=*/ 0x160200u,
247 /*accessRight=*/0x0u,
248 /*methodId=*/ 0xc7630103u,
249 /*paramSize=*/ sizeof(NVC763_CTRL_VIDMEM_ACCESS_BIT_BUFFER_DUMP_PARAMS),
250 /*pClassInfo=*/ &(__nvoc_class_def_VidmemAccessBitBuffer.classInfo),
251 #if NV_PRINTF_STRINGS_ALLOWED
252 /*func=*/ "vidmemAccessBitBufCtrlCmdVidmemAccessBitDump"
253 #endif
254 },
255
256 };
257
258 const struct NVOC_EXPORT_INFO __nvoc_export_info_VidmemAccessBitBuffer =
259 {
260 /*numEntries=*/ 1,
261 /*pExportEntries=*/ __nvoc_exported_method_def_VidmemAccessBitBuffer
262 };
263
264 void __nvoc_dtor_GpuResource(GpuResource*);
265 void __nvoc_dtor_Notifier(Notifier*);
__nvoc_dtor_VidmemAccessBitBuffer(VidmemAccessBitBuffer * pThis)266 void __nvoc_dtor_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis) {
267 __nvoc_vidmemAccessBitBufDestruct(pThis);
268 __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
269 __nvoc_dtor_Notifier(&pThis->__nvoc_base_Notifier);
270 PORT_UNREFERENCED_VARIABLE(pThis);
271 }
272
__nvoc_init_dataField_VidmemAccessBitBuffer(VidmemAccessBitBuffer * pThis,RmHalspecOwner * pRmhalspecowner)273 void __nvoc_init_dataField_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) {
274 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
275 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
276 PORT_UNREFERENCED_VARIABLE(pThis);
277 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
278 PORT_UNREFERENCED_VARIABLE(rmVariantHal);
279 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
280 }
281
282 NV_STATUS __nvoc_ctor_GpuResource(GpuResource* , CALL_CONTEXT *, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
283 NV_STATUS __nvoc_ctor_Notifier(Notifier* , CALL_CONTEXT *);
__nvoc_ctor_VidmemAccessBitBuffer(VidmemAccessBitBuffer * pThis,RmHalspecOwner * pRmhalspecowner,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)284 NV_STATUS __nvoc_ctor_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams) {
285 NV_STATUS status = NV_OK;
286 status = __nvoc_ctor_GpuResource(&pThis->__nvoc_base_GpuResource, arg_pCallContext, arg_pParams);
287 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail_GpuResource;
288 status = __nvoc_ctor_Notifier(&pThis->__nvoc_base_Notifier, arg_pCallContext);
289 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail_Notifier;
290 __nvoc_init_dataField_VidmemAccessBitBuffer(pThis, pRmhalspecowner);
291
292 status = __nvoc_vidmemAccessBitBufConstruct(pThis, arg_pCallContext, arg_pParams);
293 if (status != NV_OK) goto __nvoc_ctor_VidmemAccessBitBuffer_fail__init;
294 goto __nvoc_ctor_VidmemAccessBitBuffer_exit; // Success
295
296 __nvoc_ctor_VidmemAccessBitBuffer_fail__init:
297 __nvoc_dtor_Notifier(&pThis->__nvoc_base_Notifier);
298 __nvoc_ctor_VidmemAccessBitBuffer_fail_Notifier:
299 __nvoc_dtor_GpuResource(&pThis->__nvoc_base_GpuResource);
300 __nvoc_ctor_VidmemAccessBitBuffer_fail_GpuResource:
301 __nvoc_ctor_VidmemAccessBitBuffer_exit:
302
303 return status;
304 }
305
__nvoc_init_funcTable_VidmemAccessBitBuffer_1(VidmemAccessBitBuffer * pThis,RmHalspecOwner * pRmhalspecowner)306 static void __nvoc_init_funcTable_VidmemAccessBitBuffer_1(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) {
307 RmVariantHal *rmVariantHal = &pRmhalspecowner->rmVariantHal;
308 const unsigned long rmVariantHal_HalVarIdx = (unsigned long)rmVariantHal->__nvoc_HalVarIdx;
309 PORT_UNREFERENCED_VARIABLE(pThis);
310 PORT_UNREFERENCED_VARIABLE(pRmhalspecowner);
311 PORT_UNREFERENCED_VARIABLE(rmVariantHal);
312 PORT_UNREFERENCED_VARIABLE(rmVariantHal_HalVarIdx);
313
314 #if !NVOC_EXPORTED_METHOD_DISABLED_BY_FLAG(0x160200u)
315 pThis->__vidmemAccessBitBufCtrlCmdVidmemAccessBitDump__ = &vidmemAccessBitBufCtrlCmdVidmemAccessBitDump_IMPL;
316 #endif
317
318 pThis->__vidmemAccessBitBufShareCallback__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufShareCallback;
319
320 pThis->__vidmemAccessBitBufCheckMemInterUnmap__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufCheckMemInterUnmap;
321
322 pThis->__vidmemAccessBitBufGetOrAllocNotifShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetOrAllocNotifShare;
323
324 pThis->__vidmemAccessBitBufMapTo__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufMapTo;
325
326 pThis->__vidmemAccessBitBufGetMapAddrSpace__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetMapAddrSpace;
327
328 pThis->__vidmemAccessBitBufSetNotificationShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufSetNotificationShare;
329
330 pThis->__vidmemAccessBitBufGetRefCount__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufGetRefCount;
331
332 pThis->__vidmemAccessBitBufAddAdditionalDependants__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufAddAdditionalDependants;
333
334 pThis->__vidmemAccessBitBufControl_Prologue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Prologue;
335
336 pThis->__vidmemAccessBitBufGetRegBaseOffsetAndSize__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetRegBaseOffsetAndSize;
337
338 pThis->__vidmemAccessBitBufInternalControlForward__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufInternalControlForward;
339
340 pThis->__vidmemAccessBitBufUnmapFrom__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufUnmapFrom;
341
342 pThis->__vidmemAccessBitBufControl_Epilogue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControl_Epilogue;
343
344 pThis->__vidmemAccessBitBufGetInternalObjectHandle__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufGetInternalObjectHandle;
345
346 pThis->__vidmemAccessBitBufControl__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufControl;
347
348 pThis->__vidmemAccessBitBufUnmap__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufUnmap;
349
350 pThis->__vidmemAccessBitBufGetMemInterMapParams__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemInterMapParams;
351
352 pThis->__vidmemAccessBitBufGetMemoryMappingDescriptor__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufGetMemoryMappingDescriptor;
353
354 pThis->__vidmemAccessBitBufControlFilter__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufControlFilter;
355
356 pThis->__vidmemAccessBitBufUnregisterEvent__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufUnregisterEvent;
357
358 pThis->__vidmemAccessBitBufControlSerialization_Prologue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Prologue;
359
360 pThis->__vidmemAccessBitBufCanCopy__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufCanCopy;
361
362 pThis->__vidmemAccessBitBufIsPartialUnmapSupported__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufIsPartialUnmapSupported;
363
364 pThis->__vidmemAccessBitBufPreDestruct__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufPreDestruct;
365
366 pThis->__vidmemAccessBitBufIsDuplicate__ = &__nvoc_thunk_RsResource_vidmemAccessBitBufIsDuplicate;
367
368 pThis->__vidmemAccessBitBufControlSerialization_Epilogue__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufControlSerialization_Epilogue;
369
370 pThis->__vidmemAccessBitBufGetNotificationListPtr__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationListPtr;
371
372 pThis->__vidmemAccessBitBufGetNotificationShare__ = &__nvoc_thunk_Notifier_vidmemAccessBitBufGetNotificationShare;
373
374 pThis->__vidmemAccessBitBufMap__ = &__nvoc_thunk_GpuResource_vidmemAccessBitBufMap;
375
376 pThis->__vidmemAccessBitBufAccessCallback__ = &__nvoc_thunk_RmResource_vidmemAccessBitBufAccessCallback;
377 }
378
__nvoc_init_funcTable_VidmemAccessBitBuffer(VidmemAccessBitBuffer * pThis,RmHalspecOwner * pRmhalspecowner)379 void __nvoc_init_funcTable_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) {
380 __nvoc_init_funcTable_VidmemAccessBitBuffer_1(pThis, pRmhalspecowner);
381 }
382
383 void __nvoc_init_GpuResource(GpuResource*);
384 void __nvoc_init_Notifier(Notifier*);
__nvoc_init_VidmemAccessBitBuffer(VidmemAccessBitBuffer * pThis,RmHalspecOwner * pRmhalspecowner)385 void __nvoc_init_VidmemAccessBitBuffer(VidmemAccessBitBuffer *pThis, RmHalspecOwner *pRmhalspecowner) {
386 pThis->__nvoc_pbase_VidmemAccessBitBuffer = pThis;
387 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object;
388 pThis->__nvoc_pbase_RsResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource;
389 pThis->__nvoc_pbase_RmResourceCommon = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RmResourceCommon;
390 pThis->__nvoc_pbase_RmResource = &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource;
391 pThis->__nvoc_pbase_GpuResource = &pThis->__nvoc_base_GpuResource;
392 pThis->__nvoc_pbase_INotifier = &pThis->__nvoc_base_Notifier.__nvoc_base_INotifier;
393 pThis->__nvoc_pbase_Notifier = &pThis->__nvoc_base_Notifier;
394 __nvoc_init_GpuResource(&pThis->__nvoc_base_GpuResource);
395 __nvoc_init_Notifier(&pThis->__nvoc_base_Notifier);
396 __nvoc_init_funcTable_VidmemAccessBitBuffer(pThis, pRmhalspecowner);
397 }
398
__nvoc_objCreate_VidmemAccessBitBuffer(VidmemAccessBitBuffer ** ppThis,Dynamic * pParent,NvU32 createFlags,CALL_CONTEXT * arg_pCallContext,struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)399 NV_STATUS __nvoc_objCreate_VidmemAccessBitBuffer(VidmemAccessBitBuffer **ppThis, Dynamic *pParent, NvU32 createFlags, CALL_CONTEXT * arg_pCallContext, struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams)
400 {
401 NV_STATUS status;
402 Object *pParentObj = NULL;
403 VidmemAccessBitBuffer *pThis;
404 RmHalspecOwner *pRmhalspecowner;
405
406 // Assign `pThis`, allocating memory unless suppressed by flag.
407 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(VidmemAccessBitBuffer), (void**)&pThis, (void**)ppThis);
408 if (status != NV_OK)
409 return status;
410
411 // Zero is the initial value for everything.
412 portMemSet(pThis, 0, sizeof(VidmemAccessBitBuffer));
413
414 // Initialize runtime type information.
415 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_VidmemAccessBitBuffer);
416
417 pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.createFlags = createFlags;
418
419 // pParent must be a valid object that derives from a halspec owner class.
420 NV_ASSERT_OR_RETURN(pParent != NULL, NV_ERR_INVALID_ARGUMENT);
421
422 // Link the child into the parent unless flagged not to do so.
423 if (!(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
424 {
425 pParentObj = dynamicCast(pParent, Object);
426 objAddChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
427 }
428 else
429 {
430 pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object.pParent = NULL;
431 }
432
433 if ((pRmhalspecowner = dynamicCast(pParent, RmHalspecOwner)) == NULL)
434 pRmhalspecowner = objFindAncestorOfType(RmHalspecOwner, pParent);
435 NV_ASSERT_OR_RETURN(pRmhalspecowner != NULL, NV_ERR_INVALID_ARGUMENT);
436
437 __nvoc_init_VidmemAccessBitBuffer(pThis, pRmhalspecowner);
438 status = __nvoc_ctor_VidmemAccessBitBuffer(pThis, pRmhalspecowner, arg_pCallContext, arg_pParams);
439 if (status != NV_OK) goto __nvoc_objCreate_VidmemAccessBitBuffer_cleanup;
440
441 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
442 *ppThis = pThis;
443
444 return NV_OK;
445
446 __nvoc_objCreate_VidmemAccessBitBuffer_cleanup:
447
448 // Unlink the child from the parent if it was linked above.
449 if (pParentObj != NULL)
450 objRemoveChild(pParentObj, &pThis->__nvoc_base_GpuResource.__nvoc_base_RmResource.__nvoc_base_RsResource.__nvoc_base_Object);
451
452 // Do not call destructors here since the constructor already called them.
453 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
454 portMemSet(pThis, 0, sizeof(VidmemAccessBitBuffer));
455 else
456 {
457 portMemFree(pThis);
458 *ppThis = NULL;
459 }
460
461 // coverity[leaked_storage:FALSE]
462 return status;
463 }
464
__nvoc_objCreateDynamic_VidmemAccessBitBuffer(VidmemAccessBitBuffer ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)465 NV_STATUS __nvoc_objCreateDynamic_VidmemAccessBitBuffer(VidmemAccessBitBuffer **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
466 NV_STATUS status;
467 CALL_CONTEXT * arg_pCallContext = va_arg(args, CALL_CONTEXT *);
468 struct RS_RES_ALLOC_PARAMS_INTERNAL * arg_pParams = va_arg(args, struct RS_RES_ALLOC_PARAMS_INTERNAL *);
469
470 status = __nvoc_objCreate_VidmemAccessBitBuffer(ppThis, pParent, createFlags, arg_pCallContext, arg_pParams);
471
472 return status;
473 }
474
475