1 #define NVOC_KERNEL_SCHED_MGR_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_sched_mgr_nvoc.h"
9
10 #ifdef DEBUG
11 char __nvoc_class_id_uniqueness_check_0xea0970 = 1;
12 #endif
13
14 extern const struct NVOC_CLASS_DEF __nvoc_class_def_KernelSchedMgr;
15
16 extern const struct NVOC_CLASS_DEF __nvoc_class_def_Object;
17
18 void __nvoc_init_KernelSchedMgr(KernelSchedMgr*);
19 void __nvoc_init_funcTable_KernelSchedMgr(KernelSchedMgr*);
20 NV_STATUS __nvoc_ctor_KernelSchedMgr(KernelSchedMgr*);
21 void __nvoc_init_dataField_KernelSchedMgr(KernelSchedMgr*);
22 void __nvoc_dtor_KernelSchedMgr(KernelSchedMgr*);
23 extern const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelSchedMgr;
24
25 static const struct NVOC_RTTI __nvoc_rtti_KernelSchedMgr_KernelSchedMgr = {
26 /*pClassDef=*/ &__nvoc_class_def_KernelSchedMgr,
27 /*dtor=*/ (NVOC_DYNAMIC_DTOR) &__nvoc_dtor_KernelSchedMgr,
28 /*offset=*/ 0,
29 };
30
31 static const struct NVOC_RTTI __nvoc_rtti_KernelSchedMgr_Object = {
32 /*pClassDef=*/ &__nvoc_class_def_Object,
33 /*dtor=*/ &__nvoc_destructFromBase,
34 /*offset=*/ NV_OFFSETOF(KernelSchedMgr, __nvoc_base_Object),
35 };
36
37 static const struct NVOC_CASTINFO __nvoc_castinfo_KernelSchedMgr = {
38 /*numRelatives=*/ 2,
39 /*relatives=*/ {
40 &__nvoc_rtti_KernelSchedMgr_KernelSchedMgr,
41 &__nvoc_rtti_KernelSchedMgr_Object,
42 },
43 };
44
45 const struct NVOC_CLASS_DEF __nvoc_class_def_KernelSchedMgr =
46 {
47 /*classInfo=*/ {
48 /*size=*/ sizeof(KernelSchedMgr),
49 /*classId=*/ classId(KernelSchedMgr),
50 /*providerId=*/ &__nvoc_rtti_provider,
51 #if NV_PRINTF_STRINGS_ALLOWED
52 /*name=*/ "KernelSchedMgr",
53 #endif
54 },
55 /*objCreatefn=*/ (NVOC_DYNAMIC_OBJ_CREATE) &__nvoc_objCreateDynamic_KernelSchedMgr,
56 /*pCastInfo=*/ &__nvoc_castinfo_KernelSchedMgr,
57 /*pExportInfo=*/ &__nvoc_export_info_KernelSchedMgr
58 };
59
60 const struct NVOC_EXPORT_INFO __nvoc_export_info_KernelSchedMgr =
61 {
62 /*numEntries=*/ 0,
63 /*pExportEntries=*/ 0
64 };
65
66 void __nvoc_dtor_Object(Object*);
__nvoc_dtor_KernelSchedMgr(KernelSchedMgr * pThis)67 void __nvoc_dtor_KernelSchedMgr(KernelSchedMgr *pThis) {
68 __nvoc_dtor_Object(&pThis->__nvoc_base_Object);
69 PORT_UNREFERENCED_VARIABLE(pThis);
70 }
71
__nvoc_init_dataField_KernelSchedMgr(KernelSchedMgr * pThis)72 void __nvoc_init_dataField_KernelSchedMgr(KernelSchedMgr *pThis) {
73 PORT_UNREFERENCED_VARIABLE(pThis);
74
75 pThis->bIsSchedSwEnabled = ((NvBool)(0 != 0));
76 }
77
78 NV_STATUS __nvoc_ctor_Object(Object* );
__nvoc_ctor_KernelSchedMgr(KernelSchedMgr * pThis)79 NV_STATUS __nvoc_ctor_KernelSchedMgr(KernelSchedMgr *pThis) {
80 NV_STATUS status = NV_OK;
81 status = __nvoc_ctor_Object(&pThis->__nvoc_base_Object);
82 if (status != NV_OK) goto __nvoc_ctor_KernelSchedMgr_fail_Object;
83 __nvoc_init_dataField_KernelSchedMgr(pThis);
84 goto __nvoc_ctor_KernelSchedMgr_exit; // Success
85
86 __nvoc_ctor_KernelSchedMgr_fail_Object:
87 __nvoc_ctor_KernelSchedMgr_exit:
88
89 return status;
90 }
91
__nvoc_init_funcTable_KernelSchedMgr_1(KernelSchedMgr * pThis)92 static void __nvoc_init_funcTable_KernelSchedMgr_1(KernelSchedMgr *pThis) {
93 PORT_UNREFERENCED_VARIABLE(pThis);
94 }
95
__nvoc_init_funcTable_KernelSchedMgr(KernelSchedMgr * pThis)96 void __nvoc_init_funcTable_KernelSchedMgr(KernelSchedMgr *pThis) {
97 __nvoc_init_funcTable_KernelSchedMgr_1(pThis);
98 }
99
100 void __nvoc_init_Object(Object*);
__nvoc_init_KernelSchedMgr(KernelSchedMgr * pThis)101 void __nvoc_init_KernelSchedMgr(KernelSchedMgr *pThis) {
102 pThis->__nvoc_pbase_KernelSchedMgr = pThis;
103 pThis->__nvoc_pbase_Object = &pThis->__nvoc_base_Object;
104 __nvoc_init_Object(&pThis->__nvoc_base_Object);
105 __nvoc_init_funcTable_KernelSchedMgr(pThis);
106 }
107
__nvoc_objCreate_KernelSchedMgr(KernelSchedMgr ** ppThis,Dynamic * pParent,NvU32 createFlags)108 NV_STATUS __nvoc_objCreate_KernelSchedMgr(KernelSchedMgr **ppThis, Dynamic *pParent, NvU32 createFlags)
109 {
110 NV_STATUS status;
111 Object *pParentObj = NULL;
112 KernelSchedMgr *pThis;
113
114 // Assign `pThis`, allocating memory unless suppressed by flag.
115 status = __nvoc_handleObjCreateMemAlloc(createFlags, sizeof(KernelSchedMgr), (void**)&pThis, (void**)ppThis);
116 if (status != NV_OK)
117 return status;
118
119 // Zero is the initial value for everything.
120 portMemSet(pThis, 0, sizeof(KernelSchedMgr));
121
122 // Initialize runtime type information.
123 __nvoc_initRtti(staticCast(pThis, Dynamic), &__nvoc_class_def_KernelSchedMgr);
124
125 pThis->__nvoc_base_Object.createFlags = createFlags;
126
127 // Link the child into the parent if there is one unless flagged not to do so.
128 if (pParent != NULL && !(createFlags & NVOC_OBJ_CREATE_FLAGS_PARENT_HALSPEC_ONLY))
129 {
130 pParentObj = dynamicCast(pParent, Object);
131 objAddChild(pParentObj, &pThis->__nvoc_base_Object);
132 }
133 else
134 {
135 pThis->__nvoc_base_Object.pParent = NULL;
136 }
137
138 __nvoc_init_KernelSchedMgr(pThis);
139 status = __nvoc_ctor_KernelSchedMgr(pThis);
140 if (status != NV_OK) goto __nvoc_objCreate_KernelSchedMgr_cleanup;
141
142 // Assignment has no effect if NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT is set.
143 *ppThis = pThis;
144
145 return NV_OK;
146
147 __nvoc_objCreate_KernelSchedMgr_cleanup:
148
149 // Unlink the child from the parent if it was linked above.
150 if (pParentObj != NULL)
151 objRemoveChild(pParentObj, &pThis->__nvoc_base_Object);
152
153 // Do not call destructors here since the constructor already called them.
154 if (createFlags & NVOC_OBJ_CREATE_FLAGS_IN_PLACE_CONSTRUCT)
155 portMemSet(pThis, 0, sizeof(KernelSchedMgr));
156 else
157 {
158 portMemFree(pThis);
159 *ppThis = NULL;
160 }
161
162 // coverity[leaked_storage:FALSE]
163 return status;
164 }
165
__nvoc_objCreateDynamic_KernelSchedMgr(KernelSchedMgr ** ppThis,Dynamic * pParent,NvU32 createFlags,va_list args)166 NV_STATUS __nvoc_objCreateDynamic_KernelSchedMgr(KernelSchedMgr **ppThis, Dynamic *pParent, NvU32 createFlags, va_list args) {
167 NV_STATUS status;
168
169 status = __nvoc_objCreate_KernelSchedMgr(ppThis, pParent, createFlags);
170
171 return status;
172 }
173
174