summaryrefslogtreecommitdiffstats
path: root/userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h
diff options
context:
space:
mode:
authorArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-13 18:36:21 -0400
committerArthur Hanson Rasmusson <arthur@vgpu.io>2026-09-13 18:36:21 -0400
commit00e54c13c7c9030c4d5f7151467f2d85a3730e29 (patch)
tree17a45239df8d2e4912ff3697ed06e85a10b969de /userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h
downloadopen-iov-00e54c13c7c9030c4d5f7151467f2d85a3730e29.tar.gz
open-iov-00e54c13c7c9030c4d5f7151467f2d85a3730e29.zip
Initial commit: Open-IOV vGPU-IO complete stack
- Firmware decompilation: GSP 570.144W (28.5MB ELF, RV64IMAC), 132 decompiled C files - Kernel modules: nvidia.ko (34MB, OpenRM), open-iov-vfio.ko (2.8MB, VFIO mdev), gsp-vgpu.ko (1.8MB, guest driver) - Userspace: libiov.so/libvgpu.so (76KB), example_vgpu (28KB), rpc_emulator.c - PCI config space emulation (256B with PM, MSI, MSI-X, PCIe caps) - 12 RPC types fully mapped from firmware decompilation - BAR trap, WPR, scheduling, notification, migration emulation - Helper scripts: load_vgpu_stack, create_mdev, launch_qemu_vgpu, test_vgpu_stack, setup_guest_driver, unload_vgpu_stack - Architecture documentation - Wiki: 10 technical documents - Git LFS for large binaries (.ko, .bin, .iso, .img, .o, ghidra repos) - nvidia-open-gpu-kernel-modules as submodule
Diffstat (limited to 'userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h')
-rw-r--r--userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h1280
1 files changed, 1280 insertions, 0 deletions
diff --git a/userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h b/userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h
new file mode 100644
index 0000000..43912a6
--- /dev/null
+++ b/userspace/sdks/nv570/inc/ctrl/ctrl2080/ctrl2080boardobj.h
@@ -0,0 +1,1280 @@
+/*
+ * SPDX-FileCopyrightText: Copyright (c) 2013-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ * SPDX-License-Identifier: MIT
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#pragma once
+
+#include <nvtypes.h>
+
+//
+// This file was generated with FINN, an NVIDIA coding tool.
+// Source file: ctrl/ctrl2080/ctrl2080boardobj.finn
+//
+
+
+
+#include "ctrl/ctrl2080/ctrl2080base.h"
+#include "ctrl/ctrl2080/ctrl2080boardobjgrpclasses.h"
+
+/*!
+ * @brief NV20_SUBDEVICE_XX BOARDOBJ-related control commands and parameters.
+ *
+ * Base structures in RMCTRL equivalent to BOARDOBJ/BOARDOBJGRP in RM. NV2080
+ * structs in this file carry info w.r.t BOARDOBJ/BOARDOBJGRP.
+ */
+
+/*!
+ * @brief Type for representing an index of a BOARDOBJ within a
+ * BOARDOBJGRP. This type can also represent the number of elements
+ * within a BOARDOBJGRP or the number of bits in a BOARDOBJGRPMASK.
+ */
+typedef NvU16 NvBoardObjIdx;
+
+/*!
+ * @brief Type for representing an index into a mask element within a
+ * BOARDOBJGRPMASK to a @ref NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE.
+ */
+typedef NvU16 NvBoardObjMaskIdx;
+
+/*!
+ * @brief Primitive type which a BOARDOBJGRPMASK is composed of.
+ *
+ * For example, a 32 bit mask will have one of these elements and a 256 bit
+ * mask will have eight.
+ */
+typedef NvU32 NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE;
+
+/*!
+ * @brief Min value a single BOARDOBJGRPMASK element can hold.
+ *
+ * @note Must be kept in sync with @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_ELEMENT_MIN NV_U32_MIN
+
+/*!
+ * @brief Max value a single BOARDOBJGRPMASK element can hold.
+ *
+ * @note Must be kept in sync with @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_ELEMENT_MAX NV_U32_MAX
+
+/*!
+ * @brief Number of bits in a the NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE type.
+ *
+ * This exists to eliminate the assumption that 32-bits is the width of
+ * NV2080_CTRL_BOARDOBJGRP_MASK primitive element.
+ *
+ * @note Left shift by 3 (multiply by 8) converts the sizeof in bytes to the
+ * number of bits in our primitive/essential mask type.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_BIT_SIZE 32
+
+/*!
+ * @brief Value for an invalid Board Object index.
+ *
+ * This value should only be used directly for input to and output
+ * from BOARDOBJ and BOARDOBJGRP code.
+ *
+ * @note This define should not be referenced directly in any
+ * implementing object code. Instead, each object should define it's
+ * own IDX_INVALID macro and alias it to whatever size fits their
+ * specific index storage type.
+ * For example, many objects still store indexes as NvU8 (because the
+ * GRPs are either _E32 or _E255) while others store as NvBoardObjIdx
+ * (currently aliased to NvU16), so they should alias to a correct
+ * type.
+ */
+#define NV2080_CTRL_BOARDOBJ_IDX_INVALID NV_U16_MAX
+
+/*!
+ * @brief Value for an invalid Board Object index.
+ *
+ * This value encodes an invalid/unsupported BOARDOBJ index for an
+ * 8-bit value. This should be used within by any legacy appcode
+ * implementing BOARDOBJGRP which stores/encodes indexes as 8-bit
+ * values.
+ *
+ * All new groups should use @ref NV2080_CTRL_BOARDOBJ_IDX_INVALID.
+ *
+ * @note This define should not be referenced directly in any
+ * implementing object code. Instead, each object should define it's
+ * own IDX_INVALID macro and alias it to whatever size fits their
+ * specific index storage type.
+ * For example, many objects still store indexes as NvU8 (because the
+ * GRPs are either _E32 or _E255) while others store as NvU16 (for
+ * GRPs larger than _E255), so they should alias to a correct type.
+ */
+#define NV2080_CTRL_BOARDOBJ_IDX_INVALID_8BIT NV_U8_MAX
+
+/*!
+ * @brief Computes the array index of a NV2080_CTRL_BOARDOBJGRP_MASK element
+ * storing requested bit.
+ *
+ * @note Designed to be used in conjunction with @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_OFFSET.
+ *
+ * @param[in] _bit Index of a bit within a bit mask.
+ *
+ * @return Array index of mask element containing @ref _bit.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_INDEX(_bit) \
+ ((_bit) / NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_BIT_SIZE)
+
+/*!
+ * @brief Computes bit-position within NV2080_CTRL_BOARDOBJGRP_MASK element
+ * corresponding to requested bit.
+ *
+ * @note Designed to be used in conjunction with @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_INDEX.
+ *
+ * @param[in] _bit Index of a bit within a bit mask.
+ *
+ * @return Offset (in bits) within a mask element for @ref _bit.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_OFFSET(_bit) \
+ ((_bit) % NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_BIT_SIZE)
+
+/*!
+ * @brief Computes the size of an array of NV2080_CTRL_BOARDOBJGRP_MASK
+ * elements that can store all mask's bits.
+ *
+ * @param[in] _bits Size of the mask in bits.
+ *
+ * @return Number of array elements needed to store @ref _bits number of bits.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_DATA_SIZE(_bits) \
+ (NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_INDEX((_bits) - 1U) + 1U)
+
+
+/*!
+ * @brief Number of elements that are in the NV2080_CTRL_BOARDOBJGRP_MASK base
+ * class.
+ *
+ * @note "START_SIZE" is used here to represent the size of the mask that
+ * derived classes must build up from. See @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E32, @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E255, @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E512, @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E1024, @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E2048, @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E8192.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_ARRAY_START_SIZE 1U
+
+/*!
+ * @brief Macro used to determine the number of NV2080_CTRL_BOARDOBJGRP_MASK
+ * elements required to extend the base number of elements in a mask,
+ * @ref NV2080_CTRL_BOARDOBJGRP_MASK_ARRAY_START_SIZE.
+ *
+ * @note Used in order to avoid dynamic memory allocation and related
+ * code/data waste as well as two levels of indirection while accessing
+ * the data bits stored in an array of @ref
+ * NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_BIT_SIZE sized words. The
+ * NV2080_CTRL_BOARDOBJGRP_MASK super-class array's size should be
+ * zero and actual data should be completely stored in child's array.
+ * Since most compilers reject structures with zero-sized arrays first
+ * element word was moved to the super-class and remaining array
+ * elements to child class.
+ *
+ * @param[in] _bits Total number of bits to be represented in the
+ * NV2080_CTRL_BOARDOBJGRP_MASK extending mask class.
+ *
+ * @return Number of additional mask elements that must be allocated in order
+ * to extend the NV2080_CTRL_BOARDOBJGRP_MASK base class.
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_ARRAY_EXTENSION_SIZE(_bits) \
+ (NV2080_CTRL_BOARDOBJGRP_MASK_DATA_SIZE(_bits) - \
+ (NV2080_CTRL_BOARDOBJGRP_MASK_ARRAY_START_SIZE))
+
+/*!
+ * @deprecated DO NOT USE! Use a sub-class specific
+ * NV2080_CTRL_BOARDOBJGRP_MASK_E*_BIT_GET variant
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_BIT_GET__DEPRECATED_DO_NOT_USE(_pMask, _bitIdx) \
+ (((_pMask)->pData[NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_INDEX(_bitIdx)]\
+ & NVBIT_TYPE(NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_OFFSET(_bitIdx), \
+ NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE)) != 0U)
+
+/*!
+ * @deprecated DO NOT USE!: Use a sub-class specific
+ * @ref NV2080_CTRL_BOARDOBJGRP_MASK_E*_FOR_EACH_INDEX_TYPED
+ * variant
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_FOR_EACH_INDEX__DEPRECATED_DO_NOT_USE(_maxObjects,_index,_pMask) \
+{ \
+ for ((_index) = 0; (_index) < (_maxObjects); (_index)++) \
+ { \
+ if(!NV2080_CTRL_BOARDOBJGRP_MASK_BIT_GET__DEPRECATED_DO_NOT_USE((_pMask), (_index))) \
+ { \
+ continue; \
+ }
+#define NV2080_CTRL_BOARDOBJGRP_MASK_FOR_EACH_INDEX_END \
+ } \
+}
+
+/*!
+ * @deprecated DO NOT USE! Use type-safe
+ * @ref NV2080_CTRL_BOARDOBJGRP_MASK_E32_FOR_EACH_INDEX
+ * instead
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_E32_FOR_EACH_INDEX__DEPRECATED(_index,_pMask) \
+ NV2080_CTRL_BOARDOBJGRP_MASK_FOR_EACH_INDEX__DEPRECATED_DO_NOT_USE( \
+ NV2080_CTRL_BOARDOBJGRP_E32_MAX_OBJECTS,_index,_pMask)
+
+/*!
+ * @deprecated DO NOT USE! Use type-safe
+ * @ref NV2080_CTRL_BOARDOBJGRP_MASK_E255_FOR_EACH_INDEX
+ * instead
+ */
+#define NV2080_CTRL_BOARDOBJGRP_MASK_E255_FOR_EACH_INDEX__DEPRECATED(_index,_pMask) \
+ NV2080_CTRL_BOARDOBJGRP_MASK_FOR_EACH_INDEX__DEPRECATED_DO_NOT_USE( \
+ NV2080_CTRL_BOARDOBJGRP_E255_MAX_OBJECTS,_index,_pMask)
+
+/*!
+ * @brief Board Object Group Mask base class.
+ *
+ * Used to unify access to all NV2080_CTRL_BOARDOBJGRP_MASK_E** child classes.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK {
+ /*!
+ * @brief Start with a single element array which is enough to represent
+ * NV2080_CTRL_BOARDOBJGRP_MASK_MASK_ELEMENT_BIT_SIZE bits.
+ *
+ * @note Must be the last member of this structure.
+ */
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pData[1] /* 32 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK *PNV2080_CTRL_BOARDOBJGRP_MASK;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 32 bits
+ * indexed between 0..31.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E32 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E32;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E32 *PNV2080_CTRL_BOARDOBJGRP_MASK_E32;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 255 bits
+ * indexed between 0..254.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E255 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+
+ /*!
+ * @brief Continuation of the array of
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE elements representing the
+ * bit-mask.
+ *
+ * @note Must be the second member of the structure.
+ */
+
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pDataE255[7] /* 223 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E255;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E255 *PNV2080_CTRL_BOARDOBJGRP_MASK_E255;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 512 bits
+ * indexed between 0..511.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E512 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+
+ /*!
+ * @brief Continuation of the array of
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE elements representing the
+ * bit-mask.
+ *
+ * @note Must be the second member of the structure.
+ */
+
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pDataE512[15] /* 480 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E512;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E512 *PNV2080_CTRL_BOARDOBJGRP_MASK_E512;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 1024 bits
+ * indexed between 0..1023.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E1024 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+
+ /*!
+ * @brief Continuation of the array of
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE elements representing the
+ * bit-mask.
+ *
+ * @note Must be the second member of the structure.
+ */
+
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pDataE1024[31] /* 992 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E1024;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E1024 *PNV2080_CTRL_BOARDOBJGRP_MASK_E1024;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 2048 bits
+ * indexed between 0..2047.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E2048 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+
+ /*!
+ * @brief Continuation of the array of
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE elements representing the
+ * bit-mask.
+ *
+ * @note Must be the second member of the structure.
+ */
+
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pDataE2048[63] /* 2016 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E2048;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E2048 *PNV2080_CTRL_BOARDOBJGRP_MASK_E2048;
+
+/*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK child class capable of storing 8192 bits
+ * indexed between 0..8191.
+ */
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E8192 {
+ /*!
+ * @brief NV2080_CTRL_BOARDOBJGRP_MASK super-class. Must be the first
+ * member of the structure.
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK super;
+
+ /*!
+ * @brief Continuation of the array of
+ * NV2080_CTRL_BOARDOBJGRP_MASK_PRIMITIVE elements representing the
+ * bit-mask.
+ *
+ * @note Must be the second member of the structure.
+ */
+
+ // FINN PORT: The below field is a bit vector!
+ // In FINN, bit vectors are arrays of bools and each bool becomes 1 bit when used in an array
+ // FINN generates an array of NvU32's on the back end for these bit vectors
+ NvU32 pDataE8192[255] /* 8160 bits */;
+} NV2080_CTRL_BOARDOBJGRP_MASK_E8192;
+typedef struct NV2080_CTRL_BOARDOBJGRP_MASK_E8192 *PNV2080_CTRL_BOARDOBJGRP_MASK_E8192;
+
+/*!
+ * @brief Macro to provide the BOARDOBJ type for a given (UNIT, CLASS, TYPE)
+ * combination.
+ *
+ * @details For arguments (FOO, BAR, BAZ), this macro will return
+ * NV2080_CTRL_FOO_BAR_TYPE_BAZ
+ *
+ * @param[in] _unit The unit.
+ * @param[in] _class The class.
+ * @param[in] _type The type.
+ *
+ * @return BOARDOBJ object type identifier.
+ */
+#define NV2080_CTRL_BOARDOBJ_TYPE(_unit, _class, _type) \
+ NV2080_CTRL_##_unit##_##_class##_TYPE_##_type
+
+
+
+/*!
+ * @brief Base structure which describes a BOARDOBJ CLIENT_INFO in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO {
+ /*!
+ * @brief BOARDOBJ type.
+ *
+ * This should be a unique value within the class that the BOARDOBJ belongs.
+ */
+ NvU8 type;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO;
+
+/*!
+ * @brief Base structure which describes a BOARDOBJ CLIENT_STATUS in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS {
+ /*!
+ * @brief BOARDOBJ type.
+ *
+ * This should be a unique value within the class that the BOARDOBJ belongs.
+ */
+ NvU8 type;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS;
+
+/*!
+ * @brief Base structure which describes a BOARDOBJ CLIENT_CONTROL in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL {
+ /*!
+ * @brief BOARDOBJ type.
+ *
+ * This should be a unique value within the class that the BOARDOBJ belongs.
+ */
+ NvU8 type;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL;
+
+/*!
+ * @brief Base structure which describes a BOARDOBJ CLIENT_READINGS in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS {
+ /*!
+ * @brief BOARDOBJ type.
+ *
+ * This should be a unique value within the class that the BOARDOBJ belongs.
+ */
+ NvU8 type;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS;
+
+/*!
+ * @brief Base structure which describes a CLIENT_INFO BOARDOBJ_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_INTERFACE;
+
+/*!
+ * @brief Base structure which describes a CLIENT_STATUS BOARDOBJ_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_INTERFACE;
+
+/*!
+ * @brief Base structure which describes a CLIENT_CONTROL BOARDOBJ_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_INTERFACE;
+
+/*!
+ * @brief Base structure which describes a CLIENT_READINGS BOARDOBJ_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_INTERFACE;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a BOARDOBJ_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a BOARDOBJ_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a
+ * BOARDOBJ_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_INFO_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a BOARDOBJ_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a BOARDOBJ_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a
+ * BOARDOBJ_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_STATUS_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a BOARDOBJ_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a BOARDOBJ_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a
+ * BOARDOBJ_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_CONTROL_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a BOARDOBJ_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a BOARDOBJ_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a
+ * BOARDOBJ_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJ_CLIENT_READINGS_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * CLIENT_INFO data for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO {
+ /*!
+ * @brief Concrete class type of this BOARDOBJGRP
+ */
+ NvU8 classType;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO;
+
+/*!
+ * CLIENT_INFO SUPER_ALIAS version for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_SUPER_ALIAS {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ NV2080_CTRL_BOARDOBJGRP_MASK objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_SUPER_ALIAS;
+
+/*!
+ * CLIENT_STATUS data for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS {
+ /*!
+ * @brief Concrete class type of this BOARDOBJGRP
+ */
+ NvU8 classType;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS;
+
+/*!
+ * CLIENT_STATUS SUPER_ALIAS version for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_SUPER_ALIAS {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ NV2080_CTRL_BOARDOBJGRP_MASK objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_SUPER_ALIAS;
+
+/*!
+ * CLIENT_CONTROL data for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL {
+ /*!
+ * @brief Concrete class type of this BOARDOBJGRP
+ */
+ NvU8 classType;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL;
+
+/*!
+ * CLIENT_CONTROL SUPER_ALIAS version for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_SUPER_ALIAS {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ NV2080_CTRL_BOARDOBJGRP_MASK objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_SUPER_ALIAS;
+
+/*!
+ * CLIENT_READINGS data for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS {
+ /*!
+ * @brief Concrete class type of this BOARDOBJGRP
+ */
+ NvU8 classType;
+
+ /*!
+ * Whether the CLIENT_READINGS have been initialized.
+ * This should be set to false on any initial call into the API
+ */
+ NvBool bInitialized;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS;
+
+/*!
+ * CLIENT_READINGS SUPER_ALIAS version for @ref BOARDOBJGRP base class
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_SUPER_ALIAS {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ NV2080_CTRL_BOARDOBJGRP_MASK objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_SUPER_ALIAS;
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E32
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E32 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E32 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E32;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E32
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E32 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E32 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E32;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E32
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E32 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E32 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E32;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E32
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E32 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E32 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E32;
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E255
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E255 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E255 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E255;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E255
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E255 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E255 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E255;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E255
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E255 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E255 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E255;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E255
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E255 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E255 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E255;
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E512
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E512 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E512 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E512;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E512
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E512 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E512 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E512;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E512
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E512 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E512 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E512;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E512
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E512 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E512 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E512;
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E1024
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E1024 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E1024 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E1024;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E1024
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E1024 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E1024 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E1024;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E1024
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E1024 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E1024 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E1024;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E1024
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E1024 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E1024 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E1024;
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E2048
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E2048 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E2048 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E2048;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E2048
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E2048 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E2048 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E2048;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E2048
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E2048 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E2048 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E2048;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E2048
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E2048 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E2048 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E2048;
+
+
+/*!
+ * CLIENT_INFO for @ref BOARDOBJGRP_E8192
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E8192 {
+ /*!
+ * Base class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E8192 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_E8192;
+
+/*!
+ * CLIENT_STATUS for @ref BOARDOBJGRP_E8192
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E8192 {
+ /*!
+ * Base class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E8192 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_E8192;
+
+/*!
+ * CLIENT_CONTROL for @ref BOARDOBJGRP_E8192
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E8192 {
+ /*!
+ * Base class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E8192 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_E8192;
+
+/*!
+ * CLIENT_READINGS for @ref BOARDOBJGRP_E8192
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E8192 {
+ /*!
+ * Base class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS super;
+
+ /*!
+ * Mask of valid @ref BOARDOBJ objects within the payload
+ */
+ NV2080_CTRL_BOARDOBJGRP_MASK_E8192 objMask;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_E8192;
+
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a BOARDOBJGRP_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_INTERFACE;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a BOARDOBJGRP_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a BOARDOBJGRP_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_INFO for a
+ * BOARDOBJGRP_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_INFO
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_INFO_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a BOARDOBJGRP_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_INTERFACE;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a BOARDOBJGRP_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a BOARDOBJGRP_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_STATUS for a
+ * BOARDOBJGRP_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_STATUS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_STATUS_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a BOARDOBJGRP_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_INTERFACE;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a BOARDOBJGRP_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a BOARDOBJGRP_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_CONTROL for a
+ * BOARDOBJGRP_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_CONTROL
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_CONTROL_IFACE_MODEL_PMU_INIT_1X;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a BOARDOBJGRP_INTERFACE in RMCTRL.
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_INTERFACE {
+ /*!
+ * @brief Reserved for future use cases.
+ */
+ NvU8 rsvd;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_INTERFACE;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a BOARDOBJGRP_IFACE_MODEL interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_INTERFACE super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a BOARDOBJGRP_IFACE_MODEL_20
+ * interface
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL_20 {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL_20;
+
+/*!
+ * @brief Structure representing CLIENT_READINGS for a
+ * BOARDOBJGRP_IFACE_MODEL_PMU_INIT_1X interface
+ *
+ */
+typedef struct NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL_PMU_INIT_1X {
+ /*!
+ * Super class CLIENT_READINGS
+ */
+ NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL_20 super;
+} NV2080_CTRL_BOARDOBJ_BOARDOBJGRP_CLIENT_READINGS_IFACE_MODEL_PMU_INIT_1X;