1 #define NVOC_KERNEL_VIDEO_ENGINE_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_kernel_video_engine_nvoc.h" 9 10 #ifdef DEBUG 11 char __nvoc_class_id_uniqueness_check_0x9e2f3e = 1; 12 #endif 13 14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelVideoEngine; 15 16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object; 17 18 void __nvoc_init_KernelVideoEngine(KernelVideoEngine*); 19 void __nvoc_init_funcTable_KernelVideoEngine(KernelVideoEngine*); 20 NV_STATUS __nvoc_ctor_KernelVideoEngine(KernelVideoEngine*, struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc); 21 void __nvoc_init_dataField_KernelVideoEngine(KernelVideoEngine*); 22 void __nvoc_dtor_KernelVideoEngine(KernelVideoEngine*); 23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelVideoEngine; 24 25 static const struct NVOC_RTTI __nvoc_rtti_KernelVideoEngine_KernelVideoEngine = { 26 /*pClassDef=*/ &__nvoc_class_def_KernelVideoEngine, 27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelVideoEngine, 28 /*offset=*/ 0, 29 }; 30 31 static const struct NVOC_RTTI __nvoc_rtti_KernelVideoEngine_Object = { 32 /*pClassDef=*/ &__nvoc_class_def_Object, 33 /*dtor=*/ &__nvoc_destructFromBase, 34 /*offset=*/ NV_OFFSETOF(KernelVideoEngine, __nvoc_base_Object), 35 }; 36 37 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelVideoEngine = { 38 /*numRelatives=*/ 2, 39 /*relatives=*/ { 40 &__nvoc_rtti_KernelVideoEngine_KernelVideoEngine, 41 &__nvoc_rtti_KernelVideoEngine_Object, 42 }, 43 }; 44 45 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelVideoEngine = 46 { 47 /*classInfo=*/ { 48 /*size=*/ sizeof(KernelVideoEngine), 49 /*classId=*/ classId(KernelVideoEngine), 50 /*providerId=*/ &__nvoc_rtti_provider, 51 #if NV_PRINTF_STRINGS_ALLOWED 52 /*name=*/ "KernelVideoEngine", 53 #endif 54 }, 55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelVideoEngine, 56 /*pCastInfo=*/ &__nvoc_castinfo_KernelVideoEngine, 57 /*pExportInfo=*/ &__nvoc_export_info_KernelVideoEngine 58 }; 59 60 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelVideoEngine = 61 { 62 /*numEntries=*/ 0, 63 /*pExportEntries=*/ 0 64 }; 65 66 void __nvoc_dtor_Object(Object*); 67 void __nvoc_dtor_KernelVideoEngine(KernelVideoEngine *pThis) { 68 __nvoc_dtor_Object(&pThis->__nvoc_base_Object); 69 PORT_UNREFERENCED_VARIABLE(pThis); 70 } 71 72 void __nvoc_init_dataField_KernelVideoEngine(KernelVideoEngine *pThis) { 73 PORT_UNREFERENCED_VARIABLE(pThis); 74 } 75 76 NV_STATUS __nvoc_ctor_Object(Object* ); 77 NV_STATUS __nvoc_ctor_KernelVideoEngine(KernelVideoEngine *pThis, struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc) { 78 NV_STATUS status = NV_OK; 79 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object); 80 if (status != NV_OK) goto __nvoc_ctor_KernelVideoEngine_fail_Object; 81 __nvoc_init_dataField_KernelVideoEngine(pThis); 82 83 status = __nvoc_kvidengConstruct(pThis, arg_pGpu, arg_physEngDesc); 84 if (status != NV_OK) goto __nvoc_ctor_KernelVideoEngine_fail__init; 85 goto __nvoc_ctor_KernelVideoEngine_exit; // Success 86 87 __nvoc_ctor_KernelVideoEngine_fail__init: 88 __nvoc_dtor_Object(&pThis->__nvoc_base_Object); 89 __nvoc_ctor_KernelVideoEngine_fail_Object: 90 __nvoc_ctor_KernelVideoEngine_exit: 91 92 return status; 93 } 94 95 static void __nvoc_init_funcTable_KernelVideoEngine_1(KernelVideoEngine *pThis) { 96 PORT_UNREFERENCED_VARIABLE(pThis); 97 } 98 99 void __nvoc_init_funcTable_KernelVideoEngine(KernelVideoEngine *pThis) { 100 __nvoc_init_funcTable_KernelVideoEngine_1(pThis); 101 } 102 103 void __nvoc_init_Object(Object*); 104 void __nvoc_init_KernelVideoEngine(KernelVideoEngine *pThis) { 105 pThis->__nvoc_pbase_KernelVideoEngine = pThis; 106 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object; 107 __nvoc_init_Object(&pThis->__nvoc_base_Object); 108 __nvoc_init_funcTable_KernelVideoEngine(pThis); 109 } 110 111 NV_STATUS __nvoc_objCreate_KernelVideoEngine(KernelVideoEngine **ppThis, Dynamic *pParent, NvU32 createFlags, struct OBJGPU * arg_pGpu, ENGDESCRIPTOR arg_physEngDesc) { 112 NV_STATUS status; 113 Object *pParentObj; 114 KernelVideoEngine *pThis; 115 116 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelVideoEngine), (void**)&pThis, (void**)ppThis); 117 if (status != NV_OK) 118 return status; 119 120 portMemSet(pThis, 0, sizeof(KernelVideoEngine)); 121 122 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelVideoEngine); 123 124 pThis->__nvoc_base_Object.createFlags = createFlags; 125 126 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY)) 127 { 128 pParentObj = dynamicCast(pParent, Object); 129 objAddChild(pParentObj, &pThis->__nvoc_base_Object); 130 } 131 else 132 { 133 pThis->__nvoc_base_Object.pParent = NULL; 134 } 135 136 __nvoc_init_KernelVideoEngine(pThis); 137 status = __nvoc_ctor_KernelVideoEngine(pThis, arg_pGpu, arg_physEngDesc); 138 if (status != NV_OK) goto __nvoc_objCreate_KernelVideoEngine_cleanup; 139 140 *ppThis = pThis; 141 142 return NV_OK; 143 144 __nvoc_objCreate_KernelVideoEngine_cleanup: 145 // do not call destructors here since the constructor already called them 146 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT) 147 portMemSet(pThis, 0, sizeof(KernelVideoEngine)); 148 else 149 portMemFree(pThis); 150 151 // coverity[leaked_storage:FALSE] 152 return status; 153 } 154 155 NV_STATUS __nvoc_objCreateDynamic_KernelVideoEngine(KernelVideoEngine **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) { 156 NV_STATUS status; 157 struct OBJGPU * arg_pGpu = va_arg(args, struct OBJGPU *); 158 ENGDESCRIPTOR arg_physEngDesc = va_arg(args, ENGDESCRIPTOR); 159 160 status = __nvoc_objCreate_KernelVideoEngine(ppThis, pParent, createFlags, arg_pGpu, arg_physEngDesc); 161 162 return status; 163 } 164 165