Files
nv-xconfig/nvidia-xconfig-580.00/nvidia-cfg.h
svcmobrel-release 86b65e6824 Updating prebuilts and/or headers
069ad68dd61a879f00fb30d35a10180d5951ddb0 - nvidia-xconfig-580.00/Makefile
4cc77b90af91e615a64ae04893fdffa7939db84c - nvidia-xconfig-580.00/COPYING
e67b6dba2eb0dfcee7213598cd0c45b46c12fa88 - nvidia-xconfig-580.00/option_table.h
647e7896275a1113ec99352d573823a05001f57e - nvidia-xconfig-580.00/lscf.c
1e39095238886dfc6a69f7ec750e10c05a93e7d1 - nvidia-xconfig-580.00/nvidia-xconfig.1.m4
a5ad539267b73169480e7898b284823639c4db3a - nvidia-xconfig-580.00/tree.c
89c18e4a9734816026726377e96eb9ccd4fff018 - nvidia-xconfig-580.00/nvidia-xconfig.c
8ce5587db4b7482d207f347415f10c3562e3bb6d - nvidia-xconfig-580.00/options.c
0f390dff6644fa2454a96d5aa9ff5478e88b20ed - nvidia-xconfig-580.00/nvidia-cfg.h
071d03a0ec013e39290d8bf08f1a57565f8580e4 - nvidia-xconfig-580.00/nvidia-xconfig.h
bfa37f78ba458f14a1865bbf3f67eb84987a7e1c - nvidia-xconfig-580.00/extract_edids.c
d37da5a118e0418b267a48d05fd144611316b42c - nvidia-xconfig-580.00/gen-manpage-opts.c
41bcac41393c9a465c30c07cf1ab386647a16687 - nvidia-xconfig-580.00/util.c
9b0c02164398be2795fea7cb13c9e1b062d24bfb - nvidia-xconfig-580.00/query_gpu_info.c
c946eefad99cec9366d8abbd4e45c5d138d3b7be - nvidia-xconfig-580.00/make_usable.c
a45c13d9f89e79eb41b014104b01fa8b1d5029ae - nvidia-xconfig-580.00/multiple_screens.c
c7b8d8ca0f7c9dcc2cdca4f8e77d1122c71892ef - nvidia-xconfig-580.00/XF86Config-parser/Read.c
a9bc06f33bf525c2b08be2dc3cd64a59c4c7946d - nvidia-xconfig-580.00/XF86Config-parser/Configint.h
2022a4a3c2a1b23a67ae74f50a3849f5f3a45e4b - nvidia-xconfig-580.00/XF86Config-parser/Keyboard.c
83b0a8efd6a508db54995688ab353591bdb242a2 - nvidia-xconfig-580.00/XF86Config-parser/Flags.c
e67d630ef396ab7d34524c333f3a77fc42ba8fc6 - nvidia-xconfig-580.00/XF86Config-parser/configProcs.h
f3d611bdbddfa64675a0810ef81dada57e224bcd - nvidia-xconfig-580.00/XF86Config-parser/Extensions.c
5ffb2caa5077a2e6ec1c5ece807e71503fb2fbce - nvidia-xconfig-580.00/XF86Config-parser/Module.c
7344be997921dec57959691e986763ee686888d5 - nvidia-xconfig-580.00/XF86Config-parser/Device.c
33211ca0a10f50e2c87b9e8feef6c1ab381b57a1 - nvidia-xconfig-580.00/XF86Config-parser/DRI.c
953b945f3b117d6fb44f1f738af17b6380a9ec72 - nvidia-xconfig-580.00/XF86Config-parser/Monitor.c
6c210ad0eaee1db3fec48ff01746cb054b4f9aaa - nvidia-xconfig-580.00/XF86Config-parser/Video.c
4407207cf890539dc604cff5b834c994b307729a - nvidia-xconfig-580.00/XF86Config-parser/Write.c
de1c758e29f217e1a99e4c076d54ac84bce98b18 - nvidia-xconfig-580.00/XF86Config-parser/Screen.c
c66a0a141e25e31b568fb9df41f17d7fb9e6d3b9 - nvidia-xconfig-580.00/XF86Config-parser/xf86Parser.h
9cbc29da282aa957f28b7fc83caf1e3b19ee2a52 - nvidia-xconfig-580.00/XF86Config-parser/Vendor.c
18711ff932af2202869a30f3b32d6d7fe7811c84 - nvidia-xconfig-580.00/XF86Config-parser/Layout.c
cda3a4ab05bf48ba28af35b5c4c632e968afc7fa - nvidia-xconfig-580.00/XF86Config-parser/Util.c
ec19d673a6a7d1d8f855f2d32d3e8f63046c3625 - nvidia-xconfig-580.00/XF86Config-parser/Files.c
ac878b26ded86a3c502a6a81fc4c4a96162afefb - nvidia-xconfig-580.00/XF86Config-parser/Merge.c
0a274c4bc54b6ae0f6d009e443bda0cb033d66b5 - nvidia-xconfig-580.00/XF86Config-parser/Pointer.c
3f2238c88d737bd329a9bca1ac4b0bcf77bb9ac2 - nvidia-xconfig-580.00/XF86Config-parser/xf86tokens.h
45ceb0129668346ae3e52d81bb6e2f97efadf9d0 - nvidia-xconfig-580.00/XF86Config-parser/Input.c
4d9b03ea3badceb6bdfdf6589e6731140ec44079 - nvidia-xconfig-580.00/XF86Config-parser/Generate.c
04efe162cf6d97882f2bb87f3712d9a65c2320f3 - nvidia-xconfig-580.00/XF86Config-parser/Scan.c
5d55b94375c2055cfa1578e4c7f34c90e63a33f7 - nvidia-xconfig-580.00/common-utils/gen-manpage-opts-helper.c
384e36102dcd08ed4c5de05b5e3b8a7cdb2e257d - nvidia-xconfig-580.00/common-utils/nvgetopt.c
6bc8be0bf82d813c3274145e689f5b10d534910c - nvidia-xconfig-580.00/common-utils/common-utils.h
8db48a58d1654ed69920366bef10f38b789a1a84 - nvidia-xconfig-580.00/common-utils/msg.c
e572cac43202f6c2af1c80b9e3901215126093ed - nvidia-xconfig-580.00/common-utils/nvgetopt.h
205071eacd9a24d07fea6a512fed1e1ce97ebc3a - nvidia-xconfig-580.00/common-utils/common-utils.c
1654638c567bc7f2bd70b54d807b498ab14c1061 - nvidia-xconfig-580.00/common-utils/nvpci-utils.h
8259a24058c714629f9819cc8c830ea9b202bb27 - nvidia-xconfig-580.00/common-utils/gen-manpage-opts-helper.h
524990f5497f9bbeb3d148b5e7dc8d2267c3163d - nvidia-xconfig-580.00/common-utils/nvpci-utils.c
abb5c1b445d9353f2d2840bda848cd16109710a4 - nvidia-xconfig-580.00/common-utils/msg.h

Change-Id: Ib9886073c5af1500cb5b84295e9497b00ee1e54a
2025-09-19 10:09:40 -07:00

475 lines
14 KiB
C

/*
* nvidia-cfg
*
* Copyright (c) 2004 NVIDIA Corp. All rights reserved.
*
* NOTICE TO USER: The source code is copyrighted under U.S. and
* international laws. NVIDIA, Corp. of Santa Clara, California owns
* the copyright and as design patents pending on the design and
* interface of the NV chips. Users and possessors of this source
* code are hereby granted a nonexclusive, royalty-free copyright
* and design patent license to use this code in individual and
* commercial software.
*
* Any use of this source code must include, in the user documenta-
* tion and internal comments to the code, notices to the end user
* as follows:
*
* Copyright (c) 2004 NVIDIA Corp. NVIDIA design patents pending in
* the U.S. and foreign countries.
*
* NVIDIA CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF
* THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT
* EXPRESS OR IMPLIED WARRANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS
* ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
* FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOURCE CODE.
*
*
* This header file defines the public interface to the
* libnvidia-cfg.so library.
*/
#ifndef __NVIDIA_CFG_H__
#define __NVIDIA_CFG_H__
/*
* NvCfgDevice - data structure containing bus:slot pairs
*
* This is deprecated; please use NvCfgPciDevice instead
*/
typedef struct {
int bus;
int slot;
} NvCfgDevice;
/*
* NvCfgPciDevice - data structure identifying a device on the PCI bus
*/
typedef struct {
int domain;
int bus;
int slot;
int function;
} NvCfgPciDevice;
/*
* NvCfgGSyncDeviceType - type of the GSync device
*/
typedef enum {
NVCFG_TYPE_GSYNC2 = 1,
NVCFG_TYPE_GSYNC3,
NVCFG_TYPE_GSYNC4
} NvCfgGSyncDeviceType;
#define NV_CFG_GSYNC_DEVICE_FIRMWARE_FORMAT_1 1
/*
* NvCfgDisplayDeviceInformation - this data structure contains
* various limits and other useful data parsed from the EDID.
*/
typedef struct {
/*
* The monitor name is the name of the monitor as specified by an
* EDID 1.x Monitor Descriptors, or an EDID 2.x
* Manufacturer/Product ID string.
*/
char monitor_name[64];
/*
* The horiz_sync and vert_refresh ranges are retrieved from an
* EDID 1.x Monitor Descriptor, or an EDID 2.x Range Limit.
*/
unsigned int min_horiz_sync; /* in Hz */
unsigned int max_horiz_sync; /* in Hz */
unsigned int min_vert_refresh; /* in Hz */
unsigned int max_vert_refresh; /* in Hz */
unsigned int max_pixel_clock; /* in kHz */
/*
* The max xres, yres, and refresh, if not 0, are taken from the
* largest mode in the EDID.
*/
unsigned int max_xres; /* in pixels */
unsigned int max_yres; /* in pixels */
unsigned int max_refresh; /* in Hz */
/*
* the preferred xres, yres, and refresh, if not 0, are the values
* specified by the EDID as the preferred timing mode of the
* display device.
*/
unsigned int preferred_xres; /* in pixels */
unsigned int preferred_yres; /* in pixels */
unsigned int preferred_refresh; /* in Hz */
/*
* the physical width and height, if not 0, are the physical
* dimensions of the display device.
*/
unsigned int physical_width; /* in mm */
unsigned int physical_height; /* in mm */
} NvCfgDisplayDeviceInformation;
/*
* NvCfgDeviceHandle - this is an opaque handle identifying a
* connection to an NVIDIA VGA adapter.
*/
typedef void * NvCfgDeviceHandle;
/*
* NvCfgGSyncHandle - this is an opaque handle identifying a
* GSync device.
*/
typedef void * NvCfgGSyncHandle;
/*
* NvCfg Boolean values
*/
typedef enum {
NVCFG_TRUE = 1,
NVCFG_FALSE = 0,
} NvCfgBool;
/*
* nvCfgGetDevices() - retrieve an array of NvCfgDevice's indicating
* what PCI devices are present on the system. On success, NVCFG_TRUE
* will be returned, n will contain the number of NVIDIA PCI VGA
* adapters present in the system, and devs will be an allocated array
* containing the bus address of each NVIDIA PCI VGA adapter. When
* the caller is done, it should free the devs array. On failure,
* NVCFG_FALSE will be returned.
*
* This is deprecated; please use nvCfgGetPciDevices() instead.
*/
NvCfgBool nvCfgGetDevices(int *n, NvCfgDevice **devs);
/*
* nvCfgGetPciDevices() - retrieve an array of NvCfgPciDevice's
* indicating what PCI devices are present on the system. On success,
* NVCFG_TRUE will be returned, n will contain the number of NVIDIA
* PCI graphics devices present in the system, and devs will be an
* allocated array containing the PCI domain:bus:slot:function
* address of each NVIDIA PCI graphics device. When the caller is
* done, it should free the devs array. On failure, NVCFG_FALSE will
* be returned.
*/
NvCfgBool nvCfgGetPciDevices(int *n, NvCfgPciDevice **devs);
/*
* nvCfgOpenDevice() - open a connection to the NVIDIA device
* identified by the bus:slot PCI address. On success, NVCFG_TRUE
* will be returned and handle be assigned. On failure, NVCFG_FALSE
* will be returned.
*
* This is deprecated; please use nvCfgOpenPciDevice() instead.
*/
NvCfgBool nvCfgOpenDevice(int bus, int slot, NvCfgDeviceHandle *handle);
/*
* nvCfgAttachPciDevice() - open a limited, display-less connection to
* the NVIDIA device identified by the domain:bus:slot:function PCI
* address. On success, NVCFG_TRUE will be returned and handle will be
* assigned. On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgAttachPciDevice(int domain, int bus, int device, int function,
NvCfgDeviceHandle *handle);
/*
* nvCfgOpenPciDevice() - open a connection to the NVIDIA device
* identified by the domain:bus:slot:function PCI address. On
* success, NVCFG_TRUE will be returned and handle will be assigned.
* On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgOpenPciDevice(int domain, int bus, int device, int function,
NvCfgDeviceHandle *handle);
/*
* nvCfgOpenAllPciDevices() - open a connection to each NVIDIA device
* in the system. On success, NVCFG_TRUE will be returned, n will be
* assigned the number of NVIDIA devices in the system, and handles
* will be assigned with an allocated array of NvCfgDeviceHandles;
* each element in the array is a handle to one of the NVIDIA devices
* in the system. The caller should free the handles array when no
* longer needed. On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgOpenAllPciDevices(int *n, NvCfgDeviceHandle **handles);
/*
* nvCfgDetachDevice() - close the previously opened limited, display-less
* connection to an NVIDIA device created by nvCfgAttachPciDevice().
*/
NvCfgBool nvCfgDetachDevice(NvCfgDeviceHandle handle);
/*
* nvCfgCloseDevice() - close the previously opened connection to an
* NVIDIA device created by nvCfgOpenPciDevice().
*/
NvCfgBool nvCfgCloseDevice(NvCfgDeviceHandle handle);
/*
* nvCfgCloseAllPciDevices() - close all the NVIDIA device connections
* opened by a previous call to nvCfgOpenAllPciDevices().
*/
NvCfgBool nvCfgCloseAllPciDevices(void);
/*
* nvCfgGetNumCRTCs() - return the number of CRTCs (aka "heads")
* present on the specified NVIDIA device. On success, NVCFG_TRUE
* will be returned and crtcs will be assigned. On failure,
* NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetNumCRTCs(NvCfgDeviceHandle handle, int *crtcs);
/*
* nvCfgGetProductName() - return an allocated string containing the
* product name of the specified NVIDIA device. It is the caller's
* responsibility to free the returned string. On success, NVCFG_TRUE
* will be returned and name will be assigned. On failure,
* NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetProductName(NvCfgDeviceHandle handle, char **name);
/*
* nvCfgGetDeviceUUID() - return an allocated string containing the
* global unique identifier of the specified NVIDIA device. It is the caller's
* responsibility to free the returned string. On success, NVCFG_TRUE
* will be returned and uuid will be assigned. On failure,
* NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetDeviceUUID(NvCfgDeviceHandle handle, char **uuid);
/*
* nvCfgGetDisplayDevices() - retrieve a bitmask describing the
* currently connected display devices: this "display device mask" is
* an unsigned 32 bit value that identifies one or more display
* devices. The first 8 bits each identify a CRT, the next 8 bits
* each identify a TV, and the next 8 each identify a DFP. For
* example, 0x1 refers to CRT-0, 0x3 refers to CRT-0 and CRT-1,
* 0x10001 refers to CRT-0 and DFP-0, etc. On success, NVCFG_TRUE
* will be returned and display_device_mask will be assigned. On
* failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetDisplayDevices(NvCfgDeviceHandle handle,
unsigned int *display_device_mask);
/* nvCfgGetSupportedDisplayDevices() - get all supported display devices,
* not only connected ones. Interpretation of display_device_mask
* parameter is the same as for nvCfgGetDisplayDevices() call.
* On success, NVCFG_TRUE will be returned and display_device_mask will be
* assigned. On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetSupportedDisplayDevices(NvCfgDeviceHandle handle,
unsigned int *display_device_mask);
/*
* nvCfgGetEDIDData() - return an allocated byte array containing the
* EDID for the specified display device, if any. On success,
* NVCFG_TRUE will be returned and edidSize and edid will be assigned.
* On failure, NVCFG_FALSE will be returned. It is the caller's
* responsibility to free the allocated EDID.
*/
NvCfgBool nvCfgGetEDIDData(NvCfgDeviceHandle handle,
unsigned int display_device,
int *edidSize, void **edid);
/*
* nvCfgGetEDIDMonitorData() - Initialize the fields in the
* NvCfgDisplayDeviceInformation data structure, using data from the
* EDID. On success, NVCFG_TRUE will be returned and info will be
* assigned. On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgGetEDID(NvCfgDeviceHandle handle,
unsigned int display_device,
NvCfgDisplayDeviceInformation *info);
/*
* nvCfgIsPrimaryDevice() - determines whether the specified NVIDIA
* device is the primary device. On success, NVCFG_TRUE will be
* returned and is_primary_device set to indicate whether the
* device is the primary device. On failure, NVCFG_FALSE will be
* returned.
*/
NvCfgBool nvCfgIsPrimaryDevice(NvCfgDeviceHandle handle,
NvCfgBool *is_primary_device);
/*
* nvCfgGetTeslaSerialNumbers() - returns an allocated array of strings
* containing the serial numbers of all NVIDIA Tesla/QuadroPlex devices
* connected to the host, followed by a NULL character. It is the caller's
* responsibility to free the returned array of strings. On success,
* NVCFG_TRUE will be returned and serials will be assigned. On failure,
* NVCFG_FALSE will be returned.
*
* Note that this function is deprecated and will always return an empty array
* on recent drivers, since QuadroPlex devices are no longer supported.
*/
NvCfgBool nvCfgGetTeslaSerialNumbers(char ***serials);
/*
* nvCfgOpenAllGSyncDevices() - returns an array of NvCfgGSyncHandle's
* indicating what GSync devices are present in the system. On success,
* NVCFG_TRUE will be returned, n will contain the number of GSync devices
* present in the system, and handles will be an allocated array containing
* a handle for each of the GSync devices.The caller should free the
* handles array when no longer needed. On failure, NVCFG_FALSE will be
* returned.
*/
NvCfgBool nvCfgOpenAllGSyncDevices(int *n, NvCfgGSyncHandle **handles);
/*
* nvCfgCloseAllGSyncDevices() - close all the GSync device connections
* opened by a previous call to nvCfgOpenAllGSyncDevices().
*/
NvCfgBool nvCfgCloseAllGSyncDevices(void);
/*
* nvCfgGetGSyncDeviceType() - returns the type of GSync device referenced
* by handle.
*/
NvCfgGSyncDeviceType nvCfgGetGSyncDeviceType(NvCfgGSyncHandle handle);
/*
* nvCfgGetGSyncDeviceFirmwareVersion() - returns the firmware major version of
* the GSync device referenced by handle.
*/
int nvCfgGetGSyncDeviceFirmwareVersion(NvCfgGSyncHandle handle);
/*
* nvCfgGetGSyncDeviceFirmwareMinorVersion() - returns the firmware minor
* version of the GSync device referenced by handle.
*/
int nvCfgGetGSyncDeviceFirmwareMinorVersion(NvCfgGSyncHandle handle);
/*
* nvCfgFlashGSyncDevice() - flashes the GSync device referenced by handle.
* format contains the firmware format, newFirmwareImage contains the
* new firmware image to be flashed, and size contains the size of
* newFirmwareImage. On success, NVCFG_TRUE will be returned.
* On failure, NVCFG_FALSE will be returned.
*/
NvCfgBool nvCfgFlashGSyncDevice(NvCfgGSyncHandle handle, int format,
const unsigned char *newFirmwareImage,
int size);
/*
* nvCfgDumpDisplayPortAuxLog() - dump the DisplayPort AUX channel log to the
* system log. On success, NVCFG_TRUE will be returned. On failure, NVCFG_FALSE
* will be returned.
*/
NvCfgBool nvCfgDumpDisplayPortAuxLog(NvCfgDeviceHandle handle);
/*
* nvCfgEnableUvmPersistence() - Enable UVM Persistence mode.
* On success, zero will be returned. On failure, non zero
* value will be returned.
* This API is for internal use only and will be removed
* in a future release.
*/
unsigned int nvCfgEnableUVMPersistence(NvCfgDeviceHandle handle);
/*
* nvCfgDisableUVMPersistence() - Disable UVM Persistence mode.
* On success, zero will be returned. On failure, non-zero
* value will be returned.
* This API is for internal use only and will be removed
* in a future release.
*/
unsigned int nvCfgDisableUVMPersistence(NvCfgDeviceHandle handle);
#endif /* __NVIDIA_CFG__ */