1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2016-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in
13  * all copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21  * DEALINGS IN THE SOFTWARE.
22  */
23 
24 //
25 // No include guards - this file is included multiple times, each time with a
26 // different definition for RS_ENTRY
27 //
28 // Some of those definitions of RS_ENTRY may depend on declarations in various
29 // other header files. Include "resource_list_required_includes.h" to pull them
30 // in.
31 //
32 
33 //
34 // Table describing all RsResource subclasses.
35 //
36 // Internal Class - there is a RM internal class representing all classes
37 // exported to RM clients. The internal name of the class should be similar to
38 // the symbolic name used by clients. If there is ambiguity between RM internal
39 // classes, e.g.: between the PMU engine (OBJPMU) and the exported class, it's
40 // recommended to use Api as the suffix to disambiguate; for example, OBJPMU
41 // (the engine) vs PmuApi (the per-client api object). It's also recommended to
42 // avoid using Object, Resource, etc as those terms don't improve clarity.
43 // If there is no ambiguity, there is no need to add the Api suffix; for example,
44 // Channel is preferred over ChannelApi (there is no other Channel object in
45 // RM).
46 //
47 // Multi-Instance - NV_TRUE if there can be multiple instances of this object's
48 // *internal* class id under a parent.
49 //
50 // This list should eventually replace the similar lists in nvapi.c and
51 // rmctrl.c. The number of fields in the table should be kept minimal, just
52 // enough to create the object, with as much of the detail being specified
53 // within the class itself.
54 //
55 // In the future we should consider switching to a registration approach or
56 // generating with NVOC and/or annotating the class definition.
57 //
58 // RS-TODO: Rename classes that have 'Object' in their names
59 //
60 
61 
62 
63 RS_ENTRY(
64     /* External Class         */ NV01_ROOT,
65     /* Internal Class         */ RmClientResource,
66     /* Multi-Instance         */ NV_FALSE,
67     /* Parents                */ RS_ROOT_OBJECT,
68     /* Alloc Param Info       */ RS_OPTIONAL(NvHandle),
69     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
70     /* Flags                  */ RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_ALLOC,
71     /* Required Access Rights */ RS_ACCESS_NONE
72 )
73 RS_ENTRY(
74     /* External Class         */ NV01_ROOT_NON_PRIV,
75     /* Internal Class         */ RmClientResource,
76     /* Multi-Instance         */ NV_FALSE,
77     /* Parents                */ RS_ROOT_OBJECT,
78     /* Alloc Param Info       */ RS_OPTIONAL(NvHandle),
79     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
80     /* Flags                  */ RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_ALLOC,
81     /* Required Access Rights */ RS_ACCESS_NONE
82 )
83 RS_ENTRY(
84     /* External Class         */ NV01_ROOT_CLIENT,
85     /* Internal Class         */ RmClientResource,
86     /* Multi-Instance         */ NV_FALSE,
87     /* Parents                */ RS_ROOT_OBJECT,
88     /* Alloc Param Info       */ RS_OPTIONAL(NvHandle),
89     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
90     /* Flags                  */ RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_ALLOC,
91     /* Required Access Rights */ RS_ACCESS_NONE
92 )
93 RS_ENTRY(
94     /* External Class         */ MPS_COMPUTE,
95     /* Internal Class         */ MpsApi,
96     /* Multi-Instance         */ NV_FALSE,
97     /* Parents                */ RS_LIST(classId(RmClientResource)),
98     /* Alloc Param Info       */ RS_NONE,
99     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
100     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED,
101     /* Required Access Rights */ RS_ACCESS_NONE
102 )
103 RS_ENTRY(
104     /* External Class         */ FABRIC_MANAGER_SESSION,
105     /* Internal Class         */ FmSessionApi,
106     /* Multi-Instance         */ NV_FALSE,
107     /* Parents                */ RS_LIST(classId(RmClientResource)),
108     /* Alloc Param Info       */ RS_REQUIRED(NV000F_ALLOCATION_PARAMETERS),
109     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
110     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
111     /* Required Access Rights */ RS_ACCESS_NONE
112 )
113 RS_ENTRY(
114     /* External Class         */ NV_IMEX_SESSION,
115     /* Internal Class         */ ImexSessionApi,
116     /* Multi-Instance         */ NV_FALSE,
117     /* Parents                */ RS_LIST(classId(RmClientResource)),
118     /* Alloc Param Info       */ RS_REQUIRED(NV00F1_ALLOCATION_PARAMETERS),
119     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
120     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
121     /* Required Access Rights */ RS_ACCESS_NONE
122 )
123 RS_ENTRY(
124     /* External Class         */ NV0020_GPU_MANAGEMENT,
125     /* Internal Class         */ GpuManagementApi,
126     /* Multi-Instance         */ NV_FALSE,
127     /* Parents                */ RS_LIST(classId(RmClientResource)),
128     /* Alloc Param Info       */ RS_OPTIONAL(NvHandle),
129     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
130     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
131     /* Required Access Rights */ RS_ACCESS_NONE
132 )
133 RS_ENTRY(
134     /* External Class         */ NV_EVENT_BUFFER,
135     /* Internal Class         */ EventBuffer,
136     /* Multi-Instance         */ NV_TRUE,
137     /* Parents                */ RS_LIST(classId(RmClientResource)),
138     /* Alloc Param Info       */ RS_REQUIRED(NV_EVENT_BUFFER_ALLOC_PARAMETERS),
139     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
140     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
141     /* Required Access Rights */ RS_ACCESS_NONE
142 )
143 RS_ENTRY(
144     /* External Class         */ NV_SEMAPHORE_SURFACE,
145     /* Internal Class         */ SemaphoreSurface,
146     /* Multi-Instance         */ NV_TRUE,
147     /* Parents                */ RS_LIST(classId(Subdevice)),
148     /* Alloc Param Info       */ RS_REQUIRED(NV_SEMAPHORE_SURFACE_ALLOC_PARAMETERS),
149     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
150     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
151     /* Required Access Rights */ RS_ACCESS_NONE
152 )
153 RS_ENTRY(
154     /* External Class         */ NV50_P2P,
155     /* Internal Class         */ P2PApi,
156     /* Multi-Instance         */ NV_TRUE,
157     /* Parents                */ RS_LIST(classId(RmClientResource)),
158     /* Alloc Param Info       */ RS_REQUIRED(NV503B_ALLOC_PARAMETERS),
159     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
160     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
161     /* Required Access Rights */ RS_ACCESS_NONE
162 )
163 RS_ENTRY(
164     /* External Class         */ NV0060_SYNC_GPU_BOOST,
165     /* Internal Class         */ SyncGpuBoost,
166     /* Multi-Instance         */ NV_TRUE,
167     /* Parents                */ RS_LIST(classId(RmClientResource)),
168     /* Alloc Param Info       */ RS_REQUIRED(NV0060_ALLOC_PARAMETERS),
169     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
170     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED,
171     /* Required Access Rights */ RS_ACCESS_NONE
172 )
173 RS_ENTRY(
174     /* External Class         */ NV01_DEVICE_0,
175     /* Internal Class         */ Device,
176     /* Multi-Instance         */ NV_TRUE,
177     /* Parents                */ RS_LIST(classId(RmClientResource)),
178     /* Alloc Param Info       */ RS_OPTIONAL(NV0080_ALLOC_PARAMETERS),
179     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
180     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
181     /* Required Access Rights */ RS_ACCESS_NONE
182 )
183 RS_ENTRY(
184     /* External Class         */ GT200_DEBUGGER,
185     /* Internal Class         */ KernelSMDebuggerSession,
186     /* Multi-Instance         */ NV_TRUE,
187     /* Parents                */ RS_LIST(classId(Device)),
188     /* Alloc Param Info       */ RS_REQUIRED(NV83DE_ALLOC_PARAMETERS),
189     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
190     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
191     /* Required Access Rights */ RS_ACCESS_NONE
192 )
193 RS_ENTRY(
194     /* External Class         */ NV30_GSYNC,
195     /* Internal Class         */ GSyncApi,
196     /* Multi-Instance         */ NV_TRUE,
197     /* Parents                */ RS_LIST(classId(RmClientResource)),
198     /* Alloc Param Info       */ RS_REQUIRED(NV30F1_ALLOC_PARAMETERS),
199     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
200     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
201     /* Required Access Rights */ RS_ACCESS_NONE
202 )
203 RS_ENTRY(
204     /* External Class         */ GF100_PROFILER,
205     /* Internal Class         */ Profiler,
206     /* Multi-Instance         */ NV_TRUE,
207     /* Parents                */ RS_LIST(classId(Subdevice), classId(KernelChannel), classId(KernelChannelGroupApi)),
208     /* Alloc Param Info       */ RS_NONE,
209     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
210     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM,
211     /* Required Access Rights */ RS_ACCESS_NONE
212 )
213 RS_ENTRY(
214     /* External Class         */ MAXWELL_PROFILER_DEVICE,
215     /* Internal Class         */ ProfilerDev,
216     /* Multi-Instance         */ NV_FALSE,
217     /* Parents                */ RS_LIST(classId(Subdevice)),
218     /* Alloc Param Info       */ RS_REQUIRED(NVB2CC_ALLOC_PARAMETERS),
219     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
220     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
221     /* Required Access Rights */ RS_ACCESS_NONE
222 )
223 RS_ENTRY(
224     /* External Class         */ G84_PERFBUFFER,
225     /* Internal Class         */ PerfBuffer,
226     /* Multi-Instance         */ NV_TRUE,
227     /* Parents                */ RS_LIST(classId(Device)),
228     /* Alloc Param Info       */ RS_NONE,
229     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
230     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
231     /* Required Access Rights */ RS_ACCESS_NONE
232 )
233 RS_ENTRY(
234     /* External Class         */ KEPLER_DEVICE_VGPU,
235     /* Internal Class         */ VgpuApi,
236     /* Multi-Instance         */ NV_TRUE,
237     /* Parents                */ RS_LIST(classId(Device)),
238     /* Alloc Param Info       */ RS_NONE,
239     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
240     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
241     /* Required Access Rights */ RS_ACCESS_NONE
242 )
243 RS_ENTRY(
244     /* External Class         */ GF100_HDACODEC,
245     /* Internal Class         */ Hdacodec,
246     /* Multi-Instance         */ NV_FALSE,
247     /* Parents                */ RS_LIST(classId(Device)),
248     /* Alloc Param Info       */ RS_NONE,
249     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
250     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ALLOC_RPC_TO_ALL,
251     /* Required Access Rights */ RS_ACCESS_NONE
252 )
253     /* Channels can have a CHANNEL_GROUP, a DEVICE, or a CONTEXT_SHARE (starting in Volta) as parents */
254     /* RS-TODO: Update channel parent list when CONTEXT_SHARE is added */
255 RS_ENTRY(
256     /* External Class         */ GF100_CHANNEL_GPFIFO,
257     /* Internal Class         */ KernelChannel,
258     /* Multi-Instance         */ NV_TRUE,
259     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
260     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
261     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
262     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
263     /* Required Access Rights */ RS_ACCESS_NONE
264 )
265 RS_ENTRY(
266     /* External Class         */ KEPLER_CHANNEL_GPFIFO_A,
267     /* Internal Class         */ KernelChannel,
268     /* Multi-Instance         */ NV_TRUE,
269     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
270     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
271     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
272     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
273     /* Required Access Rights */ RS_ACCESS_NONE
274 )
275 RS_ENTRY(
276     /* External Class         */ KEPLER_CHANNEL_GPFIFO_B,
277     /* Internal Class         */ KernelChannel,
278     /* Multi-Instance         */ NV_TRUE,
279     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
280     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
281     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
282     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
283     /* Required Access Rights */ RS_ACCESS_NONE
284 )
285 RS_ENTRY(
286     /* External Class         */ MAXWELL_CHANNEL_GPFIFO_A,
287     /* Internal Class         */ KernelChannel,
288     /* Multi-Instance         */ NV_TRUE,
289     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
290     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
291     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
292     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
293     /* Required Access Rights */ RS_ACCESS_NONE
294 )
295 RS_ENTRY(
296     /* External Class         */ PASCAL_CHANNEL_GPFIFO_A,
297     /* Internal Class         */ KernelChannel,
298     /* Multi-Instance         */ NV_TRUE,
299     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
300     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
301     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
302     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
303     /* Required Access Rights */ RS_ACCESS_NONE
304 )
305 RS_ENTRY(
306     /* External Class         */ VOLTA_CHANNEL_GPFIFO_A,
307     /* Internal Class         */ KernelChannel,
308     /* Multi-Instance         */ NV_TRUE,
309     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
310     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
311     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
312     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
313     /* Required Access Rights */ RS_ACCESS_NONE
314 )
315 RS_ENTRY(
316     /* External Class         */ TURING_CHANNEL_GPFIFO_A,
317     /* Internal Class         */ KernelChannel,
318     /* Multi-Instance         */ NV_TRUE,
319     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
320     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
321     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
322     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
323     /* Required Access Rights */ RS_ACCESS_NONE
324 )
325 RS_ENTRY(
326     /* External Class         */ AMPERE_CHANNEL_GPFIFO_A,
327     /* Internal Class         */ KernelChannel,
328     /* Multi-Instance         */ NV_TRUE,
329     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
330     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
331     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
332     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
333     /* Required Access Rights */ RS_ACCESS_NONE
334 )
335 RS_ENTRY(
336     /* External Class         */ HOPPER_CHANNEL_GPFIFO_A,
337     /* Internal Class         */ KernelChannel,
338     /* Multi-Instance         */ NV_TRUE,
339     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
340     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_ALLOC_PARAMS),
341     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
342     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
343     /* Required Access Rights */ RS_ACCESS_NONE
344 )
345 RS_ENTRY(
346     /* External Class         */ UVM_CHANNEL_RETAINER,
347     /* Internal Class         */ UvmChannelRetainer,
348     /* Multi-Instance         */ NV_TRUE,
349     /* Parents                */ RS_LIST(classId(Device), classId(KernelChannelGroupApi)),
350     /* Alloc Param Info       */ RS_REQUIRED(NV_UVM_CHANNEL_RETAINER_ALLOC_PARAMS),
351     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
352     /* Flags                  */ RS_FLAGS_ALLOC_KERNEL_PRIVILEGED | RS_FLAGS_ALLOC_ALL_VGPU_PLUGINS | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
353     /* Required Access Rights */ RS_ACCESS_NONE
354 )
355 RS_ENTRY(
356     /* External Class         */ FERMI_CONTEXT_SHARE_A,
357     /* Internal Class         */ KernelCtxShareApi,
358     /* Multi-Instance         */ NV_TRUE,
359     /* Parents                */ RS_LIST(classId(KernelChannelGroupApi)),
360     /* Alloc Param Info       */ RS_REQUIRED(NV_CTXSHARE_ALLOCATION_PARAMETERS),
361     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
362     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
363     /* Required Access Rights */ RS_ACCESS_NONE
364 )
365 RS_ENTRY(
366     /* External Class         */ KERNEL_GRAPHICS_CONTEXT,
367     /* Internal Class         */ KernelGraphicsContext,
368     /* Multi-Instance         */ NV_TRUE,
369     /* Parents                */ RS_LIST(classId(KernelChannelGroupApi), classId(KernelChannel)),
370     /* Alloc Param Info       */ RS_NONE,
371     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
372     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_INTERNAL_ONLY,
373     /* Required Access Rights */ RS_ACCESS_NONE
374 )
375 RS_ENTRY(
376     /* External Class         */ NV20_SUBDEVICE_0,
377     /* Internal Class         */ Subdevice,
378     /* Multi-Instance         */ NV_TRUE,
379     /* Parents                */ RS_LIST(classId(Device)),
380     /* Alloc Param Info       */ RS_OPTIONAL(NV2080_ALLOC_PARAMETERS),
381     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
382     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
383     /* Required Access Rights */ RS_ACCESS_NONE
384 )
385 RS_ENTRY(
386     /* External Class         */ NV2081_BINAPI,
387     /* Internal Class         */ BinaryApi,
388     /* Multi-Instance         */ NV_TRUE,
389     /* Parents                */ RS_LIST(classId(Subdevice)),
390     /* Alloc Param Info       */ RS_OPTIONAL(NV2081_ALLOC_PARAMETERS),
391     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
392     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK |
393                                  RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM |
394                                  RS_FLAGS_ALLOC_RPC_TO_VGPU_HOST,
395     /* Required Access Rights */ RS_ACCESS_NONE
396 )
397 RS_ENTRY(
398     /* External Class         */ NV2082_BINAPI_PRIVILEGED,
399     /* Internal Class         */ BinaryApiPrivileged,
400     /* Multi-Instance         */ NV_TRUE,
401     /* Parents                */ RS_LIST(classId(Subdevice)),
402     /* Alloc Param Info       */ RS_OPTIONAL(NV2082_ALLOC_PARAMETERS),
403     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
404     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK |
405                                  RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM |
406                                  RS_FLAGS_ALLOC_RPC_TO_VGPU_HOST | RS_FLAGS_ALLOC_GSP_PLUGIN_FOR_VGPU_GSP,
407     /* Required Access Rights */ RS_ACCESS_NONE
408 )
409 RS_ENTRY(
410     /* External Class         */ KEPLER_CHANNEL_GROUP_A,
411     /* Internal Class         */ KernelChannelGroupApi,
412     /* Multi-Instance         */ NV_TRUE,
413     /* Parents                */ RS_LIST(classId(Device)),
414     /* Alloc Param Info       */ RS_REQUIRED(NV_CHANNEL_GROUP_ALLOCATION_PARAMETERS),
415     /* Resource Free Priority */ RS_FREE_PRIORITY_HIGH,
416     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
417     /* Required Access Rights */ RS_ACCESS_NONE
418 )
419 RS_ENTRY(
420     /* External Class         */ NV01_MEMORY_LOCAL_PRIVILEGED,
421     /* Internal Class         */ RegisterMemory,
422     /* Multi-Instance         */ NV_TRUE,
423     /* Parents                */ RS_LIST(classId(Device)),
424     /* Alloc Param Info       */ RS_NONE,
425     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
426     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
427     /* Required Access Rights */ RS_ACCESS_NONE
428 )
429 RS_ENTRY(
430     /* External Class         */ NV01_MEMORY_LOCAL_USER,
431     /* Internal Class         */ VideoMemory,
432     /* Multi-Instance         */ NV_TRUE,
433     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
434     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_ALLOCATION_PARAMS),
435     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
436     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
437     /* Required Access Rights */ RS_ACCESS_NONE
438 )
439 RS_ENTRY(
440     /* External Class         */ NV_MEMORY_EXTENDED_USER,
441     /* Internal Class         */ ExtendedGpuMemory,
442     /* Multi-Instance         */ NV_TRUE,
443     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
444     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_ALLOCATION_PARAMS),
445     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
446     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
447     /* Required Access Rights */ RS_ACCESS_NONE
448 )
449 RS_ENTRY(
450     /* External Class         */ NV01_MEMORY_LOCAL_PHYSICAL,
451     /* Internal Class         */ PhysicalMemory,
452     /* Multi-Instance         */ NV_TRUE,
453     /* Parents                */ RS_LIST(classId(Device)),
454     /* Alloc Param Info       */ RS_REQUIRED(NV_PHYSICAL_MEMORY_ALLOCATION_PARAMS),
455     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
456     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_SRIOV | RS_FLAGS_ACQUIRE_GPUS_LOCK,
457     /* Required Access Rights */ RS_ACCESS_NONE
458 )
459 RS_ENTRY(
460     /* External Class         */ NV50_MEMORY_VIRTUAL,
461     /* Internal Class         */ VirtualMemory,
462     /* Multi-Instance         */ NV_TRUE,
463     /* Parents                */ RS_LIST(classId(Device)),
464     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_ALLOCATION_PARAMS),
465     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
466     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
467     /* Required Access Rights */ RS_ACCESS_NONE
468 )
469 RS_ENTRY(
470     /* External Class         */ NV01_MEMORY_SYSTEM,
471     /* Internal Class         */ SystemMemory,
472     /* Multi-Instance         */ NV_TRUE,
473     /* Parents                */ RS_LIST(classId(Device)),
474     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_ALLOCATION_PARAMS),
475     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
476     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
477     /* Required Access Rights */ RS_ACCESS_NONE
478 )
479 RS_ENTRY(
480     /* External Class         */ NV01_MEMORY_VIRTUAL,
481     /* Internal Class         */ VirtualMemoryRange,
482     /* Multi-Instance         */ NV_TRUE,
483     /* Parents                */ RS_LIST(classId(Device)),
484     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_VIRTUAL_ALLOCATION_PARAMS),
485     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
486     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
487     /* Required Access Rights */ RS_ACCESS_NONE
488 )
489 RS_ENTRY(
490     /* External Class         */ NV_MEMORY_MAPPER,
491     /* Internal Class         */ MemoryMapper,
492     /* Multi-Instance         */ NV_TRUE,
493     /* Parents                */ RS_LIST(classId(Subdevice)),
494     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_MAPPER_ALLOCATION_PARAMS),
495     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
496     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
497     /* Required Access Rights */ RS_ACCESS_NONE
498 )
499 RS_ENTRY(
500     /* External Class         */ NV01_MEMORY_SYSTEM_OS_DESCRIPTOR,
501     /* Internal Class         */ OsDescMemory,
502     /* Multi-Instance         */ NV_TRUE,
503     /* Parents                */ RS_LIST(classId(Device)),
504     /* Alloc Param Info       */ RS_REQUIRED(NV_OS_DESC_MEMORY_ALLOCATION_PARAMS),
505     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
506     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
507     /* Required Access Rights */ RS_ACCESS_NONE
508 )
509 RS_ENTRY(
510     /* External Class         */ NV01_MEMORY_DEVICELESS,
511     /* Internal Class         */ NoDeviceMemory,
512     /* Multi-Instance         */ NV_TRUE,
513     /* Parents                */ RS_LIST(classId(RmClientResource)),
514     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_ALLOCATION_PARAMS),
515     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
516     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED,
517     /* Required Access Rights */ RS_ACCESS_NONE
518 )
519 RS_ENTRY(
520     /* External Class         */ NV01_MEMORY_FRAMEBUFFER_CONSOLE,
521     /* Internal Class         */ ConsoleMemory,
522     /* Multi-Instance         */ NV_TRUE,
523     /* Parents                */ RS_LIST(classId(Device)),
524     /* Alloc Param Info       */ RS_NONE,
525     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
526     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
527     /* Required Access Rights */ RS_ACCESS_NONE
528 )
529 RS_ENTRY(
530     /* External Class         */ NV01_MEMORY_HW_RESOURCES,
531     /* Internal Class         */ MemoryHwResources,
532     /* Multi-Instance         */ NV_TRUE,
533     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
534     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_HW_RESOURCES_ALLOCATION_PARAMS),
535     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
536     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK,
537     /* Required Access Rights */ RS_ACCESS_NONE
538 )
539 RS_ENTRY(
540     /* External Class         */ NV01_MEMORY_LIST_SYSTEM,
541     /* Internal Class         */ MemoryList,
542     /* Multi-Instance         */ NV_TRUE,
543     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
544     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_LIST_ALLOCATION_PARAMS),
545     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
546     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
547     /* Required Access Rights */ RS_ACCESS_NONE
548 )
549 RS_ENTRY(
550     /* External Class         */ NV01_MEMORY_LIST_FBMEM,
551     /* Internal Class         */ MemoryList,
552     /* Multi-Instance         */ NV_TRUE,
553     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
554     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_LIST_ALLOCATION_PARAMS),
555     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
556     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_SRIOV | RS_FLAGS_ACQUIRE_GPUS_LOCK,
557     /* Required Access Rights */ RS_ACCESS_NONE
558 )
559 RS_ENTRY(
560     /* External Class         */ NV01_MEMORY_LIST_OBJECT,
561     /* Internal Class         */ MemoryList,
562     /* Multi-Instance         */ NV_TRUE,
563     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
564     /* Alloc Param Info       */ RS_REQUIRED(NV_MEMORY_LIST_ALLOCATION_PARAMS),
565     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
566     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_SRIOV | RS_FLAGS_ACQUIRE_GPUS_LOCK,
567     /* Required Access Rights */ RS_ACCESS_NONE
568 )
569 RS_ENTRY(
570     /* External Class         */ NV01_MEMORY_FLA,
571     /* Internal Class         */ FlaMemory,
572     /* Multi-Instance         */ NV_TRUE,
573     /* Parents                */ RS_LIST(classId(Device)),
574     /* Alloc Param Info       */ RS_REQUIRED(NV_FLA_MEMORY_ALLOCATION_PARAMS),
575     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
576     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
577     /* Required Access Rights */ RS_ACCESS_NONE
578 )
579 RS_ENTRY(
580     /* External Class         */ NV_MEMORY_EXPORT,
581     /* Internal Class         */ MemoryExport,
582     /* Multi-Instance         */ NV_TRUE,
583     /* Parents                */ RS_LIST(classId(RmClientResource)),
584     /* Alloc Param Info       */ RS_REQUIRED(NV00E0_ALLOCATION_PARAMETERS),
585     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
586     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
587     /* Required Access Rights */ RS_ACCESS_NONE
588 )
589 RS_ENTRY(
590     /* External Class         */ NV_MEMORY_FABRIC_IMPORT_V2,
591     /* Internal Class         */ MemoryFabricImportV2,
592     /* Multi-Instance         */ NV_TRUE,
593     /* Parents                */ RS_LIST(classId(RmClientResource)),
594     /* Alloc Param Info       */ RS_REQUIRED(NV00F9_ALLOCATION_PARAMETERS),
595     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
596     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
597     /* Required Access Rights */ RS_ACCESS_NONE
598 )
599 RS_ENTRY(
600     /* External Class         */ NV_MEMORY_FABRIC,
601     /* Internal Class         */ MemoryFabric,
602     /* Multi-Instance         */ NV_TRUE,
603     /* Parents                */ RS_LIST(classId(Subdevice)),
604     /* Alloc Param Info       */ RS_REQUIRED(NV00F8_ALLOCATION_PARAMETERS),
605     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
606     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
607     /* Required Access Rights */ RS_ACCESS_NONE
608 )
609 RS_ENTRY(
610     /* External Class         */ NV_MEMORY_FABRIC_IMPORTED_REF,
611     /* Internal Class         */ MemoryFabricImportedRef,
612     /* Multi-Instance         */ NV_TRUE,
613     /* Parents                */ RS_LIST(classId(RmClientResource)),
614     /* Alloc Param Info       */ RS_REQUIRED(NV00FB_ALLOCATION_PARAMETERS),
615     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
616     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
617     /* Required Access Rights */ RS_ACCESS_NONE
618 )
619 RS_ENTRY(
620     /* External Class         */ FERMI_VASPACE_A,
621     /* Internal Class         */ VaSpaceApi,
622     /* Multi-Instance         */ NV_TRUE,
623     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
624     /* Alloc Param Info       */ RS_REQUIRED(NV_VASPACE_ALLOCATION_PARAMETERS),
625     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
626     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
627     /* Required Access Rights */ RS_ACCESS_NONE
628 )
629 RS_ENTRY(
630     /* External Class         */ NV_MEMORY_MULTICAST_FABRIC,
631     /* Internal Class         */ MemoryMulticastFabric,
632     /* Multi-Instance         */ NV_TRUE,
633     /* Parents                */ RS_LIST(classId(RmClientResource)),
634     /* Alloc Param Info       */ RS_REQUIRED(NV00FD_ALLOCATION_PARAMETERS),
635     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
636     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
637     /* Required Access Rights */ RS_ACCESS_NONE
638 )
639     /* Subdevice Children: */
640 RS_ENTRY(
641     /* External Class         */ NVENC_SW_SESSION,
642     /* Internal Class         */ NvencSession,
643     /* Multi-Instance         */ NV_TRUE,
644     /* Parents                */ RS_LIST(classId(Subdevice)),
645     /* Alloc Param Info       */ RS_REQUIRED(NVA0BC_ALLOC_PARAMETERS),
646     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
647     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
648     /* Required Access Rights */ RS_ACCESS_NONE
649 )
650 RS_ENTRY(
651     /* External Class         */ NVFBC_SW_SESSION,
652     /* Internal Class         */ NvfbcSession,
653     /* Multi-Instance         */ NV_TRUE,
654     /* Parents                */ RS_LIST(classId(Subdevice)),
655     /* Alloc Param Info       */ RS_REQUIRED(NVA0BD_ALLOC_PARAMETERS),
656     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
657     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
658     /* Required Access Rights */ RS_ACCESS_NONE
659 )
660 RS_ENTRY(
661     /* External Class         */ NVA081_VGPU_CONFIG,
662     /* Internal Class         */ VgpuConfigApi,
663     /* Multi-Instance         */ NV_TRUE,
664     /* Parents                */ RS_LIST(classId(Subdevice)),
665     /* Alloc Param Info       */ RS_NONE,
666     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
667     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
668     /* Required Access Rights */ RS_ACCESS_NONE
669 )
670 RS_ENTRY(
671     /* External Class         */ NVA084_KERNEL_HOST_VGPU_DEVICE,
672     /* Internal Class         */ KernelHostVgpuDeviceApi,
673     /* Multi-Instance         */ NV_FALSE,
674     /* Parents                */ RS_LIST(classId(Subdevice)),
675     /* Alloc Param Info       */ RS_REQUIRED(NVA084_ALLOC_PARAMETERS),
676     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
677     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
678     /* Required Access Rights */ RS_ACCESS_NONE
679 )
680 RS_ENTRY(
681     /* External Class         */ NV50_THIRD_PARTY_P2P,
682     /* Internal Class         */ ThirdPartyP2P,
683     /* Multi-Instance         */ NV_FALSE,
684     /* Parents                */ RS_LIST(classId(Subdevice)),
685     /* Alloc Param Info       */ RS_OPTIONAL(NV503C_ALLOC_PARAMETERS),
686     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
687     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
688     /* Required Access Rights */ RS_ACCESS_NONE
689 )
690 RS_ENTRY(
691     /* External Class         */ GF100_SUBDEVICE_MASTER,
692     /* Internal Class         */ GenericEngineApi,
693     /* Multi-Instance         */ NV_TRUE,
694     /* Parents                */ RS_LIST(classId(Subdevice)),
695     /* Alloc Param Info       */ RS_NONE,
696     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
697     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
698     /* Required Access Rights */ RS_ACCESS_NONE
699 )
700 RS_ENTRY(
701     /* External Class         */ GF100_SUBDEVICE_INFOROM,
702     /* Internal Class         */ GenericEngineApi,
703     /* Multi-Instance         */ NV_TRUE,
704     /* Parents                */ RS_LIST(classId(Subdevice)),
705     /* Alloc Param Info       */ RS_NONE,
706     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
707     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM,
708     /* Required Access Rights */ RS_ACCESS_NONE
709 )
710 RS_ENTRY(
711     /* External Class         */ NV01_TIMER,
712     /* Internal Class         */ TimerApi,
713     /* Multi-Instance         */ NV_FALSE,
714     /* Parents                */ RS_LIST(classId(Subdevice)),
715     /* Alloc Param Info       */ RS_NONE,
716     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
717     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
718     /* Required Access Rights */ RS_ACCESS_NONE
719 )
720 RS_ENTRY(
721     /* External Class         */ NV40_I2C,
722     /* Internal Class         */ I2cApi,
723     /* Multi-Instance         */ NV_FALSE,
724     /* Parents                */ RS_LIST(classId(Subdevice)),
725     /* Alloc Param Info       */ RS_NONE,
726     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
727     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM,
728     /* Required Access Rights */ RS_ACCESS_NONE
729 )
730 RS_ENTRY(
731     /* External Class         */ NV20_SUBDEVICE_DIAG,
732     /* Internal Class         */ DiagApi,
733     /* Multi-Instance         */ NV_FALSE,
734     /* Parents                */ RS_LIST(classId(Subdevice)),
735     /* Alloc Param Info       */ RS_NONE,
736     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
737     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
738     /* Required Access Rights */ RS_ACCESS_NONE
739 )
740 RS_ENTRY(
741     /* External Class         */ GF100_ZBC_CLEAR,
742     /* Internal Class         */ ZbcApi,
743     /* Multi-Instance         */ NV_TRUE,
744     /* Parents                */ RS_LIST(classId(Subdevice)),
745     /* Alloc Param Info       */ RS_NONE,
746     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
747     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
748     /* Required Access Rights */ RS_ACCESS_NONE
749 )
750 RS_ENTRY(
751     /* External Class         */ NV40_DEBUG_BUFFER,
752     /* Internal Class         */ DebugBufferApi,
753     /* Multi-Instance         */ NV_TRUE,
754     /* Parents                */ RS_LIST(classId(Subdevice)),
755     /* Alloc Param Info       */ RS_REQUIRED(NV00DB_ALLOCATION_PARAMETERS),
756     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
757     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
758     /* Required Access Rights */ RS_ACCESS_NONE
759 )
760 RS_ENTRY(
761     /* External Class         */ RM_USER_SHARED_DATA,
762     /* Internal Class         */ GpuUserSharedData,
763     /* Multi-Instance         */ NV_TRUE,
764     /* Parents                */ RS_LIST(classId(Subdevice)),
765     /* Alloc Param Info       */ RS_REQUIRED(NV00DE_ALLOC_PARAMETERS),
766     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
767     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK,
768     /* Required Access Rights */ RS_ACCESS_NONE
769 )
770 RS_ENTRY(
771     /* External Class         */ VOLTA_USERMODE_A,
772     /* Internal Class         */ UserModeApi,
773     /* Multi-Instance         */ NV_TRUE,
774     /* Parents                */ RS_LIST(classId(Subdevice)),
775     /* Alloc Param Info       */ RS_NONE,
776     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
777     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
778     /* Required Access Rights */ RS_ACCESS_NONE
779 )
780 RS_ENTRY(
781     /* External Class         */ TURING_USERMODE_A,
782     /* Internal Class         */ UserModeApi,
783     /* Multi-Instance         */ NV_TRUE,
784     /* Parents                */ RS_LIST(classId(Subdevice)),
785     /* Alloc Param Info       */ RS_NONE,
786     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
787     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
788     /* Required Access Rights */ RS_ACCESS_NONE
789 )
790 RS_ENTRY(
791     /* External Class         */ AMPERE_USERMODE_A,
792     /* Internal Class         */ UserModeApi,
793     /* Multi-Instance         */ NV_TRUE,
794     /* Parents                */ RS_LIST(classId(Subdevice)),
795     /* Alloc Param Info       */ RS_NONE,
796     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
797     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
798     /* Required Access Rights */ RS_ACCESS_NONE
799 )
800 RS_ENTRY(
801     /* External Class         */ HOPPER_USERMODE_A,
802     /* Internal Class         */ UserModeApi,
803     /* Multi-Instance         */ NV_TRUE,
804     /* Parents                */ RS_LIST(classId(Subdevice)),
805     /* Alloc Param Info       */ RS_OPTIONAL(NV_HOPPER_USERMODE_A_PARAMS),
806     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
807     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
808     /* Required Access Rights */ RS_ACCESS_NONE
809 )
810 RS_ENTRY(
811     /* External Class         */ NVC371_DISP_SF_USER,
812     /* Internal Class         */ DispSfUser,
813     /* Multi-Instance         */ NV_FALSE,
814     /* Parents                */ RS_LIST(classId(Subdevice)),
815     /* Alloc Param Info       */ RS_NONE,
816     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
817     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
818     /* Required Access Rights */ RS_ACCESS_NONE
819 )
820 RS_ENTRY(
821     /* External Class         */ NVC671_DISP_SF_USER,
822     /* Internal Class         */ DispSfUser,
823     /* Multi-Instance         */ NV_FALSE,
824     /* Parents                */ RS_LIST(classId(Subdevice)),
825     /* Alloc Param Info       */ RS_NONE,
826     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
827     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
828     /* Required Access Rights */ RS_ACCESS_NONE
829 )
830 RS_ENTRY(
831     /* External Class         */ NVC771_DISP_SF_USER,
832     /* Internal Class         */ DispSfUser,
833     /* Multi-Instance         */ NV_FALSE,
834     /* Parents                */ RS_LIST(classId(Subdevice)),
835     /* Alloc Param Info       */ RS_NONE,
836     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
837     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
838     /* Required Access Rights */ RS_ACCESS_NONE
839 )
840 RS_ENTRY(
841     /* External Class         */ MMU_FAULT_BUFFER,
842     /* Internal Class         */ MmuFaultBuffer,
843     /* Multi-Instance         */ NV_FALSE,
844     /* Parents                */ RS_LIST(classId(Subdevice)),
845     /* Alloc Param Info       */ RS_NONE,
846     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
847     /* Flags                  */ RS_FLAGS_ALLOC_KERNEL_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
848     /* Required Access Rights */ RS_ACCESS_NONE
849 )
850 RS_ENTRY(
851     /* External Class         */ ACCESS_COUNTER_NOTIFY_BUFFER,
852     /* Internal Class         */ AccessCounterBuffer,
853     /* Multi-Instance         */ NV_TRUE,
854     /* Parents                */ RS_LIST(classId(Subdevice)),
855     /* Alloc Param Info       */ RS_REQUIRED(NV_ACCESS_COUNTER_NOTIFY_BUFFER_ALLOC_PARAMS),
856     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
857     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
858     /* Required Access Rights */ RS_ACCESS_NONE
859 )
860 RS_ENTRY(
861     /* External Class         */ MMU_VIDMEM_ACCESS_BIT_BUFFER,
862     /* Internal Class         */ VidmemAccessBitBuffer,
863     /* Multi-Instance         */ NV_FALSE,
864     /* Parents                */ RS_LIST(classId(Subdevice)),
865     /* Alloc Param Info       */ RS_REQUIRED(NV_VIDMEM_ACCESS_BIT_ALLOCATION_PARAMS),
866     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
867     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_SRIOV | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_VGPU_GSP | RS_FLAGS_ALLOC_GSP_PLUGIN_FOR_VGPU_GSP | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_PHYS_RM,
868     /* Required Access Rights */ RS_ACCESS_NONE
869 )
870 RS_ENTRY(
871     /* External Class         */ AMPERE_SMC_PARTITION_REF,
872     /* Internal Class         */ GPUInstanceSubscription,
873     /* Multi-Instance         */ NV_FALSE,
874     /* Parents                */ RS_LIST(classId(Subdevice)),
875     /* Alloc Param Info       */ RS_REQUIRED(NVC637_ALLOCATION_PARAMETERS),
876     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
877     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
878     /* Required Access Rights */ RS_ACCESS_NONE
879 )
880 RS_ENTRY(
881     /* External Class         */ AMPERE_SMC_EXEC_PARTITION_REF,
882     /* Internal Class         */ ComputeInstanceSubscription,
883     /* Multi-Instance         */ NV_FALSE,
884     /* Parents                */ RS_LIST(classId(GPUInstanceSubscription)),
885     /* Alloc Param Info       */ RS_REQUIRED(NVC638_ALLOCATION_PARAMETERS),
886     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
887     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
888     /* Required Access Rights */ RS_ACCESS_NONE
889 )
890 RS_ENTRY(
891     /* External Class         */ AMPERE_SMC_CONFIG_SESSION,
892     /* Internal Class         */ MIGConfigSession,
893     /* Multi-Instance         */ NV_FALSE,
894     /* Parents                */ RS_LIST(classId(RmClientResource)),
895     /* Alloc Param Info       */ RS_REQUIRED(NVC639_ALLOCATION_PARAMETERS),
896     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
897     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED,
898     /* Required Access Rights */ RS_ACCESS_NONE
899 )
900 RS_ENTRY(
901     /* External Class         */ AMPERE_SMC_MONITOR_SESSION,
902     /* Internal Class         */ MIGMonitorSession,
903     /* Multi-Instance         */ NV_FALSE,
904     /* Parents                */ RS_LIST(classId(RmClientResource)),
905     /* Alloc Param Info       */ RS_REQUIRED(NVC640_ALLOCATION_PARAMETERS),
906     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
907     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED,
908     /* Required Access Rights */ RS_ACCESS_NONE
909 )
910     /* Display classes: */
911 RS_ENTRY(
912     /* External Class         */ NVC570_DISPLAY,
913     /* Internal Class         */ NvDispApi,
914     /* Multi-Instance         */ NV_FALSE,
915     /* Parents                */ RS_LIST(classId(Device)),
916     /* Alloc Param Info       */ RS_NONE,
917     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
918     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
919     /* Required Access Rights */ RS_ACCESS_NONE
920 )
921 RS_ENTRY(
922     /* External Class         */ NVC670_DISPLAY,
923     /* Internal Class         */ NvDispApi,
924     /* Multi-Instance         */ NV_FALSE,
925     /* Parents                */ RS_LIST(classId(Device)),
926     /* Alloc Param Info       */ RS_NONE,
927     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
928     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
929     /* Required Access Rights */ RS_ACCESS_NONE
930 )
931 RS_ENTRY(
932     /* External Class         */ NVC770_DISPLAY,
933     /* Internal Class         */ NvDispApi,
934     /* Multi-Instance         */ NV_FALSE,
935     /* Parents                */ RS_LIST(classId(Device)),
936     /* Alloc Param Info       */ RS_NONE,
937     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
938     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
939     /* Required Access Rights */ RS_ACCESS_NONE
940 )
941 RS_ENTRY(
942     /* External Class         */ NVC372_DISPLAY_SW,
943     /* Internal Class         */ DispSwObj,
944     /* Multi-Instance         */ NV_TRUE,
945     /* Parents                */ RS_LIST(classId(Device)),
946     /* Alloc Param Info       */ RS_NONE,
947     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
948     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_RPC_TO_ALL,
949     /* Required Access Rights */ RS_ACCESS_NONE
950 )
951 RS_ENTRY(
952     /* External Class         */ NV04_DISPLAY_COMMON,
953     /* Internal Class         */ DispCommon,
954     /* Multi-Instance         */ NV_FALSE,
955     /* Parents                */ RS_LIST(classId(Device)),
956     /* Alloc Param Info       */ RS_NONE,
957     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
958     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK_ON_FREE | RS_FLAGS_ALLOC_RPC_TO_ALL,
959     /* Required Access Rights */ RS_ACCESS_NONE
960 )
961 RS_ENTRY(
962     /* External Class         */ NV9010_VBLANK_CALLBACK,
963     /* Internal Class         */ VblankCallback,
964     /* Multi-Instance         */ NV_TRUE,
965     /* Parents                */ RS_LIST(classId(Device), classId(Subdevice)),
966     /* Alloc Param Info       */ RS_REQUIRED(NV_VBLANK_CALLBACK_ALLOCATION_PARAMETERS),
967     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
968     /* Flags                  */ RS_FLAGS_ALLOC_KERNEL_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
969     /* Required Access Rights */ RS_ACCESS_NONE
970 )
971 RS_ENTRY(
972     /* External Class         */ NV0092_RG_LINE_CALLBACK,
973     /* Internal Class         */ RgLineCallback,
974     /* Multi-Instance         */ NV_TRUE,
975     /* Parents                */ RS_LIST(classId(DispCommon)),
976     /* Alloc Param Info       */ RS_REQUIRED(NV0092_RG_LINE_CALLBACK_ALLOCATION_PARAMETERS),
977     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
978     /* Flags                  */ RS_FLAGS_ALLOC_KERNEL_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
979     /* Required Access Rights */ RS_ACCESS_NONE
980 )
981 RS_ENTRY(
982     /* External Class         */ NVC57A_CURSOR_IMM_CHANNEL_PIO,
983     /* Internal Class         */ DispChannelPio,
984     /* Multi-Instance         */ NV_TRUE,
985     /* Parents                */ RS_LIST(classId(NvDispApi)),
986     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELPIO_ALLOCATION_PARAMETERS),
987     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
988     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
989     /* Required Access Rights */ RS_ACCESS_NONE
990 )
991 RS_ENTRY(
992     /* External Class         */ NVC67A_CURSOR_IMM_CHANNEL_PIO,
993     /* Internal Class         */ DispChannelPio,
994     /* Multi-Instance         */ NV_TRUE,
995     /* Parents                */ RS_LIST(classId(NvDispApi)),
996     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELPIO_ALLOCATION_PARAMETERS),
997     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
998     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
999     /* Required Access Rights */ RS_ACCESS_NONE
1000 )
1001 RS_ENTRY(
1002     /* External Class         */ NVC57B_WINDOW_IMM_CHANNEL_DMA,
1003     /* Internal Class         */ DispChannelDma,
1004     /* Multi-Instance         */ NV_TRUE,
1005     /* Parents                */ RS_LIST(classId(NvDispApi)),
1006     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1007     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1008     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1009     /* Required Access Rights */ RS_ACCESS_NONE
1010 )
1011 RS_ENTRY(
1012     /* External Class         */ NVC57D_CORE_CHANNEL_DMA,
1013     /* Internal Class         */ DispChannelDma,
1014     /* Multi-Instance         */ NV_TRUE,
1015     /* Parents                */ RS_LIST(classId(NvDispApi)),
1016     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1017     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1018     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1019     /* Required Access Rights */ RS_ACCESS_NONE
1020 )
1021 RS_ENTRY(
1022     /* External Class         */ NVC57E_WINDOW_CHANNEL_DMA,
1023     /* Internal Class         */ DispChannelDma,
1024     /* Multi-Instance         */ NV_TRUE,
1025     /* Parents                */ RS_LIST(classId(NvDispApi)),
1026     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1027     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1028     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1029     /* Required Access Rights */ RS_ACCESS_NONE
1030 )
1031 RS_ENTRY(
1032     /* External Class         */ NVC573_DISP_CAPABILITIES,
1033     /* Internal Class         */ DispCapabilities,
1034     /* Multi-Instance         */ NV_FALSE,
1035     /* Parents                */ RS_LIST(classId(NvDispApi)),
1036     /* Alloc Param Info       */ RS_NONE,
1037     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1038     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1039     /* Required Access Rights */ RS_ACCESS_NONE
1040 )
1041 RS_ENTRY(
1042     /* External Class         */ NVC67B_WINDOW_IMM_CHANNEL_DMA,
1043     /* Internal Class         */ DispChannelDma,
1044     /* Multi-Instance         */ NV_TRUE,
1045     /* Parents                */ RS_LIST(classId(NvDispApi)),
1046     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1047     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1048     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1049     /* Required Access Rights */ RS_ACCESS_NONE
1050 )
1051 RS_ENTRY(
1052     /* External Class         */ NVC67D_CORE_CHANNEL_DMA,
1053     /* Internal Class         */ DispChannelDma,
1054     /* Multi-Instance         */ NV_TRUE,
1055     /* Parents                */ RS_LIST(classId(NvDispApi)),
1056     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1057     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1058     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1059     /* Required Access Rights */ RS_ACCESS_NONE
1060 )
1061 RS_ENTRY(
1062     /* External Class         */ NVC77D_CORE_CHANNEL_DMA,
1063     /* Internal Class         */ DispChannelDma,
1064     /* Multi-Instance         */ NV_TRUE,
1065     /* Parents                */ RS_LIST(classId(NvDispApi)),
1066     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1067     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1068     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1069     /* Required Access Rights */ RS_ACCESS_NONE
1070 )
1071 RS_ENTRY(
1072     /* External Class         */ NVC77F_ANY_CHANNEL_DMA,
1073     /* Internal Class         */ DispChannelDma,
1074     /* Multi-Instance         */ NV_TRUE,
1075     /* Parents                */ RS_LIST(classId(NvDispApi)),
1076     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1077     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1078     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1079     /* Required Access Rights */ RS_ACCESS_NONE
1080 )
1081 RS_ENTRY(
1082     /* External Class         */ NVC67E_WINDOW_CHANNEL_DMA,
1083     /* Internal Class         */ DispChannelDma,
1084     /* Multi-Instance         */ NV_TRUE,
1085     /* Parents                */ RS_LIST(classId(NvDispApi)),
1086     /* Alloc Param Info       */ RS_REQUIRED(NV50VAIO_CHANNELDMA_ALLOCATION_PARAMETERS),
1087     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1088     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_RPC_TO_ALL,
1089     /* Required Access Rights */ RS_ACCESS_NONE
1090 )
1091 RS_ENTRY(
1092     /* External Class         */ NVC673_DISP_CAPABILITIES,
1093     /* Internal Class         */ DispCapabilities,
1094     /* Multi-Instance         */ NV_FALSE,
1095     /* Parents                */ RS_LIST(classId(NvDispApi)),
1096     /* Alloc Param Info       */ RS_NONE,
1097     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1098     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1099     /* Required Access Rights */ RS_ACCESS_NONE
1100 )
1101 RS_ENTRY(
1102     /* External Class         */ NVC773_DISP_CAPABILITIES,
1103     /* Internal Class         */ DispCapabilities,
1104     /* Multi-Instance         */ NV_FALSE,
1105     /* Parents                */ RS_LIST(classId(NvDispApi)),
1106     /* Alloc Param Info       */ RS_NONE,
1107     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1108     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1109     /* Required Access Rights */ RS_ACCESS_NONE
1110 )
1111     /* Classes allocated under channel: */
1112 RS_ENTRY(
1113     /* External Class         */ GF100_DISP_SW,
1114     /* Internal Class         */ DispSwObject,
1115     /* Multi-Instance         */ NV_TRUE,
1116     /* Parents                */ RS_LIST(classId(KernelChannel)),
1117     /* Alloc Param Info       */ RS_REQUIRED(NV9072_ALLOCATION_PARAMETERS),
1118     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1119     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPU_GROUP_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_ALLOC_RPC_TO_ALL,
1120     /* Required Access Rights */ RS_ACCESS_NONE
1121 )
1122 RS_ENTRY(
1123     /* External Class         */ GF100_TIMED_SEMAPHORE_SW,
1124     /* Internal Class         */ TimedSemaSwObject,
1125     /* Multi-Instance         */ NV_TRUE,
1126     /* Parents                */ RS_LIST(classId(KernelChannel)),
1127     /* Alloc Param Info       */ RS_NONE,
1128     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1129     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1130     /* Required Access Rights */ RS_ACCESS_NONE
1131 )
1132 RS_ENTRY(
1133     /* External Class         */ NV50_DEFERRED_API_CLASS,
1134     /* Internal Class         */ DeferredApiObject,
1135     /* Multi-Instance         */ NV_TRUE,
1136     /* Parents                */ RS_LIST(classId(KernelChannel)),
1137     /* Alloc Param Info       */ RS_OPTIONAL(NV5080_ALLOC_PARAMS),
1138     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1139     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1140     /* Required Access Rights */ RS_ACCESS_NONE
1141 )
1142 RS_ENTRY(
1143     /* External Class         */ GP100_UVM_SW,
1144     /* Internal Class         */ UvmSwObject,
1145     /* Multi-Instance         */ NV_TRUE,
1146     /* Parents                */ RS_LIST(classId(KernelChannel)),
1147     /* Alloc Param Info       */ RS_NONE,
1148     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1149     /* Flags                  */ RS_FLAGS_ALLOC_PRIVILEGED | RS_FLAGS_ALLOC_CPU_PLUGIN_FOR_SRIOV | RS_FLAGS_ALLOC_GSP_PLUGIN_FOR_VGPU_GSP | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1150     /* Required Access Rights */ RS_ACCESS_NONE
1151 )
1152 RS_ENTRY(
1153     /* External Class         */ NV04_SOFTWARE_TEST,
1154     /* Internal Class         */ SoftwareMethodTest,
1155     /* Multi-Instance         */ NV_TRUE,
1156     /* Parents                */ RS_LIST(classId(KernelChannel)),
1157     /* Alloc Param Info       */ RS_NONE,
1158     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1159     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1160     /* Required Access Rights */ RS_ACCESS_NONE
1161 )
1162 RS_ENTRY(
1163     /* External Class         */ MAXWELL_DMA_COPY_A,
1164     /* Internal Class         */ KernelCeContext,
1165     /* Multi-Instance         */ NV_TRUE,
1166     /* Parents                */ RS_LIST(classId(KernelChannel)),
1167     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1168     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1169     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1170     /* Required Access Rights */ RS_ACCESS_NONE
1171 )
1172 RS_ENTRY(
1173     /* External Class         */ PASCAL_DMA_COPY_A,
1174     /* Internal Class         */ KernelCeContext,
1175     /* Multi-Instance         */ NV_TRUE,
1176     /* Parents                */ RS_LIST(classId(KernelChannel)),
1177     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1178     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1179     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1180     /* Required Access Rights */ RS_ACCESS_NONE
1181 )
1182 RS_ENTRY(
1183     /* External Class         */ TURING_DMA_COPY_A,
1184     /* Internal Class         */ KernelCeContext,
1185     /* Multi-Instance         */ NV_TRUE,
1186     /* Parents                */ RS_LIST(classId(KernelChannel)),
1187     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1188     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1189     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1190     /* Required Access Rights */ RS_ACCESS_NONE
1191 )
1192 RS_ENTRY(
1193     /* External Class         */ AMPERE_DMA_COPY_A,
1194     /* Internal Class         */ KernelCeContext,
1195     /* Multi-Instance         */ NV_TRUE,
1196     /* Parents                */ RS_LIST(classId(KernelChannel)),
1197     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1198     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1199     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1200     /* Required Access Rights */ RS_ACCESS_NONE
1201 )
1202 RS_ENTRY(
1203     /* External Class         */ AMPERE_DMA_COPY_B,
1204     /* Internal Class         */ KernelCeContext,
1205     /* Multi-Instance         */ NV_TRUE,
1206     /* Parents                */ RS_LIST(classId(KernelChannel)),
1207     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1208     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1209     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1210     /* Required Access Rights */ RS_ACCESS_NONE
1211 )
1212 RS_ENTRY(
1213     /* External Class         */ HOPPER_DMA_COPY_A,
1214     /* Internal Class         */ KernelCeContext,
1215     /* Multi-Instance         */ NV_TRUE,
1216     /* Parents                */ RS_LIST(classId(KernelChannel)),
1217     /* Alloc Param Info       */ RS_OPTIONAL(NVB0B5_ALLOCATION_PARAMETERS),
1218     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1219     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1220     /* Required Access Rights */ RS_ACCESS_NONE
1221 )
1222 RS_ENTRY(
1223     /* External Class         */ NVB8B0_VIDEO_DECODER,
1224     /* Internal Class         */ NvdecContext,
1225     /* Multi-Instance         */ NV_TRUE,
1226     /* Parents                */ RS_LIST(classId(KernelChannel)),
1227     /* Alloc Param Info       */ RS_OPTIONAL(NV_BSP_ALLOCATION_PARAMETERS),
1228     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1229     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1230     /* Required Access Rights */ RS_ACCESS_NONE
1231 )
1232 RS_ENTRY(
1233     /* External Class         */ NVC4B0_VIDEO_DECODER,
1234     /* Internal Class         */ NvdecContext,
1235     /* Multi-Instance         */ NV_TRUE,
1236     /* Parents                */ RS_LIST(classId(KernelChannel)),
1237     /* Alloc Param Info       */ RS_OPTIONAL(NV_BSP_ALLOCATION_PARAMETERS),
1238     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1239     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1240     /* Required Access Rights */ RS_ACCESS_NONE
1241 )
1242 RS_ENTRY(
1243     /* External Class         */ NVC6B0_VIDEO_DECODER,
1244     /* Internal Class         */ NvdecContext,
1245     /* Multi-Instance         */ NV_TRUE,
1246     /* Parents                */ RS_LIST(classId(KernelChannel)),
1247     /* Alloc Param Info       */ RS_OPTIONAL(NV_BSP_ALLOCATION_PARAMETERS),
1248     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1249     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1250     /* Required Access Rights */ RS_ACCESS_NONE
1251 )
1252 RS_ENTRY(
1253     /* External Class         */ NVC7B0_VIDEO_DECODER,
1254     /* Internal Class         */ NvdecContext,
1255     /* Multi-Instance         */ NV_TRUE,
1256     /* Parents                */ RS_LIST(classId(KernelChannel)),
1257     /* Alloc Param Info       */ RS_OPTIONAL(NV_BSP_ALLOCATION_PARAMETERS),
1258     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1259     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1260     /* Required Access Rights */ RS_ACCESS_NONE
1261 )
1262 RS_ENTRY(
1263     /* External Class         */ NVC9B0_VIDEO_DECODER,
1264     /* Internal Class         */ NvdecContext,
1265     /* Multi-Instance         */ NV_TRUE,
1266     /* Parents                */ RS_LIST(classId(KernelChannel)),
1267     /* Alloc Param Info       */ RS_OPTIONAL(NV_BSP_ALLOCATION_PARAMETERS),
1268     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1269     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1270     /* Required Access Rights */ RS_ACCESS_NONE
1271 )
1272 RS_ENTRY(
1273     /* External Class         */ NVB8D1_VIDEO_NVJPG,
1274     /* Internal Class         */ NvjpgContext,
1275     /* Multi-Instance         */ NV_TRUE,
1276     /* Parents                */ RS_LIST(classId(KernelChannel)),
1277     /* Alloc Param Info       */ RS_OPTIONAL(NV_NVJPG_ALLOCATION_PARAMETERS),
1278     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1279     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1280     /* Required Access Rights */ RS_ACCESS_NONE
1281 )
1282 RS_ENTRY(
1283     /* External Class         */ NVC4D1_VIDEO_NVJPG,
1284     /* Internal Class         */ NvjpgContext,
1285     /* Multi-Instance         */ NV_TRUE,
1286     /* Parents                */ RS_LIST(classId(KernelChannel)),
1287     /* Alloc Param Info       */ RS_OPTIONAL(NV_NVJPG_ALLOCATION_PARAMETERS),
1288     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1289     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1290     /* Required Access Rights */ RS_ACCESS_NONE
1291 )
1292 RS_ENTRY(
1293     /* External Class         */ NVC9D1_VIDEO_NVJPG,
1294     /* Internal Class         */ NvjpgContext,
1295     /* Multi-Instance         */ NV_TRUE,
1296     /* Parents                */ RS_LIST(classId(KernelChannel)),
1297     /* Alloc Param Info       */ RS_OPTIONAL(NV_NVJPG_ALLOCATION_PARAMETERS),
1298     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1299     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1300     /* Required Access Rights */ RS_ACCESS_NONE
1301 )
1302 RS_ENTRY(
1303     /* External Class         */ NVB8FA_VIDEO_OFA,
1304     /* Internal Class         */ OfaContext,
1305     /* Multi-Instance         */ NV_FALSE,
1306     /* Parents                */ RS_LIST(classId(KernelChannel)),
1307     /* Alloc Param Info       */ RS_OPTIONAL(NV_OFA_ALLOCATION_PARAMETERS),
1308     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1309     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1310     /* Required Access Rights */ RS_ACCESS_NONE
1311 )
1312 RS_ENTRY(
1313     /* External Class         */ NVC6FA_VIDEO_OFA,
1314     /* Internal Class         */ OfaContext,
1315     /* Multi-Instance         */ NV_FALSE,
1316     /* Parents                */ RS_LIST(classId(KernelChannel)),
1317     /* Alloc Param Info       */ RS_OPTIONAL(NV_OFA_ALLOCATION_PARAMETERS),
1318     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1319     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1320     /* Required Access Rights */ RS_ACCESS_NONE
1321 )
1322 RS_ENTRY(
1323     /* External Class         */ NVC7FA_VIDEO_OFA,
1324     /* Internal Class         */ OfaContext,
1325     /* Multi-Instance         */ NV_FALSE,
1326     /* Parents                */ RS_LIST(classId(KernelChannel)),
1327     /* Alloc Param Info       */ RS_OPTIONAL(NV_OFA_ALLOCATION_PARAMETERS),
1328     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1329     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1330     /* Required Access Rights */ RS_ACCESS_NONE
1331 )
1332 RS_ENTRY(
1333     /* External Class         */ NVC9FA_VIDEO_OFA,
1334     /* Internal Class         */ OfaContext,
1335     /* Multi-Instance         */ NV_FALSE,
1336     /* Parents                */ RS_LIST(classId(KernelChannel)),
1337     /* Alloc Param Info       */ RS_OPTIONAL(NV_OFA_ALLOCATION_PARAMETERS),
1338     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1339     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1340     /* Required Access Rights */ RS_ACCESS_NONE
1341 )
1342 RS_ENTRY(
1343     /* External Class         */ NVC4B7_VIDEO_ENCODER,
1344     /* Internal Class         */ MsencContext,
1345     /* Multi-Instance         */ NV_TRUE,
1346     /* Parents                */ RS_LIST(classId(KernelChannel)),
1347     /* Alloc Param Info       */ RS_OPTIONAL(NV_MSENC_ALLOCATION_PARAMETERS),
1348     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1349     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1350     /* Required Access Rights */ RS_ACCESS_NONE
1351 )
1352 RS_ENTRY(
1353     /* External Class         */ NVB4B7_VIDEO_ENCODER,
1354     /* Internal Class         */ MsencContext,
1355     /* Multi-Instance         */ NV_TRUE,
1356     /* Parents                */ RS_LIST(classId(KernelChannel)),
1357     /* Alloc Param Info       */ RS_OPTIONAL(NV_MSENC_ALLOCATION_PARAMETERS),
1358     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1359     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1360     /* Required Access Rights */ RS_ACCESS_NONE
1361 )
1362 RS_ENTRY(
1363     /* External Class         */ NVC7B7_VIDEO_ENCODER,
1364     /* Internal Class         */ MsencContext,
1365     /* Multi-Instance         */ NV_TRUE,
1366     /* Parents                */ RS_LIST(classId(KernelChannel)),
1367     /* Alloc Param Info       */ RS_OPTIONAL(NV_MSENC_ALLOCATION_PARAMETERS),
1368     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1369     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1370     /* Required Access Rights */ RS_ACCESS_NONE
1371 )
1372 RS_ENTRY(
1373     /* External Class         */ NVC9B7_VIDEO_ENCODER,
1374     /* Internal Class         */ MsencContext,
1375     /* Multi-Instance         */ NV_TRUE,
1376     /* Parents                */ RS_LIST(classId(KernelChannel)),
1377     /* Alloc Param Info       */ RS_OPTIONAL(NV_MSENC_ALLOCATION_PARAMETERS),
1378     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1379     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1380     /* Required Access Rights */ RS_ACCESS_NONE
1381 )
1382 RS_ENTRY(
1383     /* External Class         */ HOPPER_SEC2_WORK_LAUNCH_A,
1384     /* Internal Class         */ Sec2Context,
1385     /* Multi-Instance         */ NV_TRUE,
1386     /* Parents                */ RS_LIST(classId(KernelChannel)),
1387     /* Alloc Param Info       */ RS_NONE,
1388     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1389     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON,
1390     /* Required Access Rights */ RS_ACCESS_NONE
1391 )
1392 RS_ENTRY(
1393     /* External Class         */ AMPERE_A,
1394     /* Internal Class         */ KernelGraphicsObject,
1395     /* Multi-Instance         */ NV_TRUE,
1396     /* Parents                */ RS_LIST(classId(KernelChannel)),
1397     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1398     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1399     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1400     /* Required Access Rights */ RS_ACCESS_NONE
1401 )
1402 RS_ENTRY(
1403     /* External Class         */ AMPERE_COMPUTE_A,
1404     /* Internal Class         */ KernelGraphicsObject,
1405     /* Multi-Instance         */ NV_TRUE,
1406     /* Parents                */ RS_LIST(classId(KernelChannel)),
1407     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1408     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1409     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1410     /* Required Access Rights */ RS_ACCESS_NONE
1411 )
1412 RS_ENTRY(
1413     /* External Class         */ AMPERE_B,
1414     /* Internal Class         */ KernelGraphicsObject,
1415     /* Multi-Instance         */ NV_TRUE,
1416     /* Parents                */ RS_LIST(classId(KernelChannel)),
1417     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1418     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1419     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1420     /* Required Access Rights */ RS_ACCESS_NONE
1421 )
1422 RS_ENTRY(
1423     /* External Class         */ AMPERE_COMPUTE_B,
1424     /* Internal Class         */ KernelGraphicsObject,
1425     /* Multi-Instance         */ NV_TRUE,
1426     /* Parents                */ RS_LIST(classId(KernelChannel)),
1427     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1428     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1429     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1430     /* Required Access Rights */ RS_ACCESS_NONE
1431 )
1432 RS_ENTRY(
1433     /* External Class         */ ADA_A,
1434     /* Internal Class         */ KernelGraphicsObject,
1435     /* Multi-Instance         */ NV_TRUE,
1436     /* Parents                */ RS_LIST(classId(KernelChannel)),
1437     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1438     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1439     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1440     /* Required Access Rights */ RS_ACCESS_NONE
1441 )
1442 RS_ENTRY(
1443     /* External Class         */ ADA_COMPUTE_A,
1444     /* Internal Class         */ KernelGraphicsObject,
1445     /* Multi-Instance         */ NV_TRUE,
1446     /* Parents                */ RS_LIST(classId(KernelChannel)),
1447     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1448     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1449     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1450     /* Required Access Rights */ RS_ACCESS_NONE
1451 )
1452 RS_ENTRY(
1453     /* External Class         */ HOPPER_A,
1454     /* Internal Class         */ KernelGraphicsObject,
1455     /* Multi-Instance         */ NV_TRUE,
1456     /* Parents                */ RS_LIST(classId(KernelChannel)),
1457     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1458     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1459     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1460     /* Required Access Rights */ RS_ACCESS_NONE
1461 )
1462 RS_ENTRY(
1463     /* External Class         */ HOPPER_COMPUTE_A,
1464     /* Internal Class         */ KernelGraphicsObject,
1465     /* Multi-Instance         */ NV_TRUE,
1466     /* Parents                */ RS_LIST(classId(KernelChannel)),
1467     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1468     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1469     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1470     /* Required Access Rights */ RS_ACCESS_NONE
1471 )
1472 RS_ENTRY(
1473     /* External Class         */ FERMI_TWOD_A,
1474     /* Internal Class         */ KernelGraphicsObject,
1475     /* Multi-Instance         */ NV_TRUE,
1476     /* Parents                */ RS_LIST(classId(KernelChannel)),
1477     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1478     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1479     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1480     /* Required Access Rights */ RS_ACCESS_NONE
1481 )
1482 RS_ENTRY(
1483     /* External Class         */ KEPLER_INLINE_TO_MEMORY_B,
1484     /* Internal Class         */ KernelGraphicsObject,
1485     /* Multi-Instance         */ NV_TRUE,
1486     /* Parents                */ RS_LIST(classId(KernelChannel)),
1487     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1488     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1489     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1490     /* Required Access Rights */ RS_ACCESS_NONE
1491 )
1492 RS_ENTRY(
1493     /* External Class         */ TURING_A,
1494     /* Internal Class         */ KernelGraphicsObject,
1495     /* Multi-Instance         */ NV_TRUE,
1496     /* Parents                */ RS_LIST(classId(KernelChannel)),
1497     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1498     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1499     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1500     /* Required Access Rights */ RS_ACCESS_NONE
1501 )
1502 RS_ENTRY(
1503     /* External Class         */ TURING_COMPUTE_A,
1504     /* Internal Class         */ KernelGraphicsObject,
1505     /* Multi-Instance         */ NV_TRUE,
1506     /* Parents                */ RS_LIST(classId(KernelChannel)),
1507     /* Alloc Param Info       */ RS_OPTIONAL(NV_GR_ALLOCATION_PARAMETERS),
1508     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1509     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_CHANNEL_DESCENDANT_COMMON | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC,
1510     /* Required Access Rights */ RS_ACCESS_NONE
1511 )
1512 RS_ENTRY(
1513     /* External Class         */ NV01_CONTEXT_DMA,
1514     /* Internal Class         */ ContextDma,
1515     /* Multi-Instance         */ NV_TRUE,
1516     /* Parents                */ RS_ANY_PARENT,
1517     /* Alloc Param Info       */ RS_REQUIRED(NV_CONTEXT_DMA_ALLOCATION_PARAMS),
1518     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1519     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1520     /* Required Access Rights */ RS_ACCESS_NONE
1521 )
1522 RS_ENTRY(
1523     /* External Class         */ NV01_EVENT,
1524     /* Internal Class         */ Event,
1525     /* Multi-Instance         */ NV_TRUE,
1526     /* Parents                */ RS_ANY_PARENT,
1527     /* Alloc Param Info       */ RS_REQUIRED(NV0005_ALLOC_PARAMETERS),
1528     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1529     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
1530     /* Required Access Rights */ RS_ACCESS_NONE
1531 )
1532 RS_ENTRY(
1533     /* External Class         */ NV01_EVENT_OS_EVENT,
1534     /* Internal Class         */ Event,
1535     /* Multi-Instance         */ NV_TRUE,
1536     /* Parents                */ RS_ANY_PARENT,
1537     /* Alloc Param Info       */ RS_REQUIRED(NV0005_ALLOC_PARAMETERS),
1538     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1539     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
1540     /* Required Access Rights */ RS_ACCESS_NONE
1541 )
1542 RS_ENTRY(
1543     /* External Class         */ NV01_EVENT_KERNEL_CALLBACK,
1544     /* Internal Class         */ Event,
1545     /* Multi-Instance         */ NV_TRUE,
1546     /* Parents                */ RS_ANY_PARENT,
1547     /* Alloc Param Info       */ RS_REQUIRED(NV0005_ALLOC_PARAMETERS),
1548     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1549     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
1550     /* Required Access Rights */ RS_ACCESS_NONE
1551 )
1552 RS_ENTRY(
1553     /* External Class         */ NV01_EVENT_KERNEL_CALLBACK_EX,
1554     /* Internal Class         */ Event,
1555     /* Multi-Instance         */ NV_TRUE,
1556     /* Parents                */ RS_ANY_PARENT,
1557     /* Alloc Param Info       */ RS_REQUIRED(NV0005_ALLOC_PARAMETERS),
1558     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1559     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ACQUIRE_RO_API_LOCK_ON_ALLOC | RS_FLAGS_DUAL_CLIENT_LOCK,
1560     /* Required Access Rights */ RS_ACCESS_NONE
1561 )
1562 RS_ENTRY(
1563     /* External Class         */ NV_CONFIDENTIAL_COMPUTE,
1564     /* Internal Class         */ ConfidentialComputeApi,
1565     /* Multi-Instance         */ NV_TRUE,
1566     /* Parents                */ RS_LIST(classId(RmClientResource)),
1567     /* Alloc Param Info       */ RS_OPTIONAL(NV_CONFIDENTIAL_COMPUTE_ALLOC_PARAMS),
1568     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1569     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1570     /* Required Access Rights */ RS_ACCESS_NONE
1571 )
1572 RS_ENTRY(
1573     /* External Class         */ NV_COUNTER_COLLECTION_UNIT,
1574     /* Internal Class         */ KernelCcuApi,
1575     /* Multi-Instance         */ NV_FALSE,
1576     /* Parents                */ RS_LIST(classId(Subdevice)),
1577     /* Alloc Param Info       */ RS_NONE,
1578     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1579     /* Flags                  */ RS_FLAGS_ALLOC_NON_PRIVILEGED | RS_FLAGS_ACQUIRE_GPUS_LOCK,
1580     /* Required Access Rights */ RS_ACCESS_NONE
1581 )
1582 #if RMCFG_CLASS_NV_CE_UTILS && (defined(DEBUG) || defined(DEVELOP))
1583 RS_ENTRY(
1584     /* External Class         */ NV_CE_UTILS,
1585     /* Internal Class         */ CeUtilsApi,
1586     /* Multi-Instance         */ NV_TRUE,
1587     /* Parents                */ RS_LIST(classId(Subdevice)),
1588     /* Alloc Param Info       */ RS_REQUIRED(NV0050_ALLOCATION_PARAMETERS),
1589     /* Resource Free Priority */ RS_FREE_PRIORITY_DEFAULT,
1590     /* Flags                  */ RS_FLAGS_ACQUIRE_GPUS_LOCK | RS_FLAGS_ALLOC_PRIVILEGED,
1591     /* Required Access Rights */ RS_ACCESS_NONE
1592 )
1593 #endif
1594 
1595 // Undefine the entry macro to simplify call sites
1596 #undef RS_ENTRY
1597