# .\RmTestApp_wrap.cpp

[ Module : ResMan_Perl_ModuleNT, Package : ResMan_Perl_Module ]

# Contents

- 1. ResMan SWIG/PERL Modules
  - 1.1. class RmApiCall
  - 1.2. class AllocRootObj
  - 1.3. class AllocDeviceObj
  - 1.4. class AllocChannelDmaObj
  - 1.5. class AllocChannelPioObj
  - 1.6. class AllocContextDmaObj
  - 1.7. class AllocObjectObj
  - 1.8. class AllocEventObj
  - 1.9. class RmFreeObj
- 2. Basic Typedefs
  - 2.1. class NvV64
  - 2.2. class NvU64
  - 2.3. class NvS64
  - 2.4. class NvP64
- 3. NV OS Functions
  - 3.1. Macro/Function Declarations
  - 3.2. local defines here
  - 3.3. NV3 Resource Manager VXDs
  - 3.4. NV4/NV10 Resource Manager VXDs
  - 3.5. NVOS00
    - 3.5.1. class NVOS00_PARAMETERS
  - 3.6. NVOS01
    - 3.6.1. class NVOS01_PARAMETERS
  - 3.7. NVOS02
    - 3.7.1. class NVOS02_PARAMETERS
  - 3.8. NVOS03
    - 3.8.1. class NVOS03_PARAMETERS
  - 3.9. NVOS04
    - 3.9.1. class NVOS04_PARAMETERS
  - 3.10. NVOS05
    - 3.10.1. class NVOS05_PARAMETERS
  - 3.11. NVOS06
    - 3.11.1. class NVOS06_PARAMETERS
  - 3.12. NVOS07
    - 3.12.1. class NVOS07_PARAMETERS
  - 3.13. NVOS08
    - 3.13.1. class NVOS08_PARAMETERS
  - 3.14. NVOS09
    - 3.14.1. class NVOS09_PARAMETERS
  - 3.15. NVOS10
    - 3.15.1. class NVOS10_PARAMETERS
  - 3.16. NVOS11
    - 3.16.1. class NVOS11_PARAMETERS
  - 3.17. NVOS12
    - 3.17.1. class NVOS12_PARAMETERS
  - 3.18. NVOS13
    - 3.18.1. class NVOS13_PARAMETERS
  - 3.19. NVOS14
    - 3.19.1. class NVOS14_PARAMETERS
  - 3.20. NVOS15
    - 3.20.1. class NVOS15_PARAMETERS
  - 3.21. NVOS_CONFIG_GET_EX
    - 3.21.1. class NVOS_CONFIG_GET_EX_PARAMS
  - 3.22. NVOS_CONFIG_SET_EX
    - 3.22.1. class NVOS_CONFIG_SET_EX_PARAMS
  - 3.23. NVOS_I2C_ACCESS_STATUS
    - 3.23.1. class NVOS_I2C_ACCESS_PARAMS
  - 3.24. NVRM_RING0CALLBACK_PARAMS
    - 3.24.1. class NVRM_RING0CALLBACK_PARAMS
- 4. Configuration Definitions
  - 4.1. NV_CFGEX_DESKTOP_POSITION_MONITOR
    - 4.1.1. class NV_CFGEX_GET_DESKTOP_POSITION_MONITOR_PARAMS
    - 4.1.2. class NV_CFGEX_SET_DESKTOP_POSITION_MONITOR_PARAMS
  - 4.2. NV_CFGEX_DESKTOP_POSITION_TV_PARAMS
    - 4.2.1. class NV_CFGEX_DESKTOP_POSITION_TV_PARAMS
  - 4.3. NV_CFGEX_TV_ENCODER_INFO
    - 4.3.1. class NV_CFGEX_TV_ENCODER_PARAMS
    - 4.3.2. class PARAMS_BROOKTREE
    - 4.3.3. class PARAMS_CHRONTEL
  - 4.4. NV_CFGEX_FLATPANEL_INFO
    - 4.4.1. class NV_CFGEX_GET_FLATPANEL_INFO_PARAMS
    - 4.4.2. class NV_CFGEX_SET_FLATPANEL_INFO_PARAMS
  - 4.5. NV_CFGEX_MONITOR_INFO
    - 4.5.1. class NV_CFGEX_GET_MONITOR_INFO_PARAMS
  - 4.6. NV_CFGEX_VIDEO_TV_FORMAT
  - 4.7. NV_CFGEX_REFRESH_INFO/RATE
    - 4.7.1. class NV_CFGEX_GET_REFRESH_INFO_PARAMS
  - 4.8. NV_CFGEX_DISPLAY_TYPE
    - 4.8.1. class NV_CFGEX_GET_DISPLAY_TYPE_PARAMS
    - 4.8.2. class NV_CFGEX_SET_DISPLAY_TYPE_PARAMS
  - 4.9. NV_CFGEX_GET_EDID
    - 4.9.1. class NV_CFGEX_GET_EDID_PARAMS
  - 4.10. NV_CFGEX_GET_SURFACE_PITCH
    - 4.10.1. class NV_CFGEX_GET_SURFACE_PITCH_PARAMS
  - 4.11. NV_CFG_VIDEO_ENCODER_TYPE
  - 4.12. NV_CFG_VIDEO_MONITOR_TYPE
  - 4.13. NV_CFG_VIDEO_OUTPUT_FORMAT
  - 4.14. NV_CFG_PROCESSOR_TYPE
  - 4.15. CRTC RESERVED
  - 4.16. Parameter to ConfigUpdate
  - 4.17. Configuration Manager API
  - 4.18. Device Defines
- 5. NVidia resource manager API
  - 5.1. class _iobuf
- 6. Other Definitions

## 1. ResMan SWIG/PERL Modules

`$ALLOC_CTX_DMA_FLAGS_LOCKED_CACHED = 0x1000`

> [ Constant: int ]
> (DRF_MASK(NVOS03_FLAGS_COHERENCY_CACHED) << DRF_SHIFT(NVOS03_FLAGS_COHERENCY))

`$STATUS_NOTYETCALLED = (0x254)`

> [ Constant: int ]

`freeAllRoots();`

> [ returns bool ]

`cleanUp();`

> [ returns bool ]

`setExtraInfo(x);`

> [ returns void ]

`printInfo(message);`

> [ returns void ]

`AllocRoot(_expectedStatus);`

> [ returns ULONG ]

`AllocDevice(_hClient,_hDevice,_hClass,_expectedStatus);`

> [ returns ULONG ]

`AllocChannelDma(_hClient,_hDevice,_hChannel,_hClass,_hErrorCtx,_hDataCtx,_offset,_expectedStatus);`

> [ returns PVOID ]

`AllocChannelPio(_hClient,_hDevice,_hChannel,_hClass,_hErrorCtx,_flags,_expectedStatus);`

> [ returns PVOID ]

`AllocContextDma(_hClient,_hDma,_hClass,_flags,_base,_limit,_expectedStatus);`

> [ returns void ]

`AllocObject(_hClient,_hChannel,_hObject,_hClass,_expectedStatus);`

> [ returns ULONG ]

`AllocEvent(_hClient,_hParent,_hObject,_hClass,_hIndex,_hEvent,_expectedStatus);`

> [ returns ULONG ]

`RmFree(_hClient,_hParent,_hObject,_expectedStatus);`

> [ returns void ]

### 1.1. class RmApiCall

[ created from class RmApiCall ]

`new();`

> [ Constructor: returns RmApiCall * ]

`DESTROY`

> [ Destructor ]

`$RmApiCall_m_pOutputFile`

> [ Static member : Global : FILE * RmApiCall::m_pOutputFile ]
> hard coded to log.txt ....the log file

`$RmApiCall_m_bExtraInfo`

> [ Static member : Global : int RmApiCall::m_bExtraInfo ]
> an int that when set to 0 or false will cause printExtraInfo to not write to the log file

`$this->{m_ExpectedStatus}`

> [ Member data: returns ULONG ]
> The return status that is expected from the apicall. If expectedStatus does not match the actual returned status an error is reported and logged in log.txt

`beenCalled();`

> [ Member : returns bool ]
> A bool that is true if the apiCall object has already been executed. Checked by call().

`RmApiCall_printInfo(message);`

> [ Static member : returns void ]
> A method that takes a string and writes it to the currently open log file if OUTPUT_TO_FILE is defined or stdout if OUTPUT_TO_STDIO is defined.

`RmApiCall_printError(message);`

> [ Static member : returns void ]
> A method that takes a string and writes it to the currently open log file if OUTPUT_TO_FILE is defined or stdout if OUTPUT_TO_STDIO is defined.

`RmApiCall_printExtraInfo(message);`

> [ Static member : returns void ]
> A method that takes a string and writes it to the currently open log file if OUTPUT_TO_FILE is defined or stdout if OUTPUT_TO_STDIO is defined.

`checkCallStat();`

> [ Member : returns bool ]
> Checks if expected return status matches actual return status and writes error and successes to the own log file. Return true if test is successful, otherwise false. Called by call().

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

### 1.2. class AllocRootObj

[ created from class AllocRootObj ]

`new(_expectedStatus);`

> [ Constructor: returns AllocRootObj * ]
> Allocates a Root Object also known as a Client

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> Return value set by call() - the returned handle of the root instance

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.3. class AllocDeviceObj

[ created from class AllocDeviceObj ]

`new(_hClient,_hDevice,_hClass,_expectedStatus);`

> [ Constructor: returns AllocDeviceObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hDevice}`

> [ Member data: returns ULONG ]
> Device name, A 32bit ID of our choice to track our allocated device. By default set to 0xBAAD0001

`$this->{m_hClass}`

> [ Member data: returns ULONG ]
> The class that describes the type of device (which card in the system) ie. NV01_DEVICE_0 ...NV01_DEVICE_7. By default this is set to NV01_DEVICE_0

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

`getNameBuffer();`

> [ Member : returns char * ]
> Returns the nameBuffer set by call()

### 1.4. class AllocChannelDmaObj

[ created from class AllocChannelDmaObj ]

`new(_hClient,_hDevice,_hChannel,_hClass,_hErrorCtx,_hDataCtx,_offset,_expectedStatus);`

> [ Constructor: returns AllocChannelDmaObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hDevice}`

> [ Member data: returns ULONG ]
> The handle returned from NvAllocDevice

`$this->{m_hChannel}`

> [ Member data: returns ULONG ]
> The unique 32-bit ID you give the channel.

`$this->{m_hClass}`

> [ Member data: returns ULONG ]
> Class of the channel (usually NV04_CHANNEL_DMA)

`$this->{m_hErrorCtx}`

> [ Member data: returns ULONG ]

`$this->{m_hDataCtx}`

> [ Member data: returns ULONG ]

`$this->{m_offset}`

> [ Member data: returns ULONG ]

`$this->{m_ppChannel}`

> [ Member data: returns PVOID ]
> Pointer to a buffer that contains a pointer to channel returned by AllocChannelDma

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.5. class AllocChannelPioObj

[ created from class AllocChannelPioObj ]

`new(_hClient,_hDevice,_hChannel,_hClass,_hErrorCtx,_flags,_expectedStatus);`

> [ Constructor: returns AllocChannelPioObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hDevice}`

> [ Member data: returns ULONG ]
> The handle returned from NvAllocDevice

`$this->{m_hChannel}`

> [ Member data: returns ULONG ]
> The unique 32-bit ID you give the channel.

`$this->{m_hClass}`

> [ Member data: returns ULONG ]
> Class of the channel (usually NV04_CHANNEL_PIO)

`$this->{m_hErrorCtx}`

> [ Member data: returns ULONG ]

`$this->{m_flags}`

> [ Member data: returns ULONG ]

`$this->{m_ppChannel}`

> [ Member data: returns PVOID ]
> Pointer to a buffer that contains a pointer to channel returned by AllocChannelDma

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.6. class AllocContextDmaObj

[ created from class AllocContextDmaObj ]

`new(_hClient,_hDma,_hClass,_flags,_base,_limit,_expectedStatus);`

> [ Constructor: returns AllocContextDmaObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hDma}`

> [ Member data: returns ULONG ]
> The unique 32-bit ID you give the dma context.

`$this->{m_hClass}`

> [ Member data: returns ULONG ]

`$this->{m_flags}`

> [ Member data: returns ULONG ]

`$this->{m_pBase}`

> [ Member data: returns PVOID ]

`$this->{m_limit}`

> [ Member data: returns ULONG ]

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.7. class AllocObjectObj

[ created from class AllocObjectObj ]

`new(_hClient,_hChannel,_hObject,_hClass,_expectedStatus);`

> [ Constructor: returns AllocObjectObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hChannel}`

> [ Member data: returns ULONG ]
> The handle returned from NvAllocChannel

`$this->{m_hObject}`

> [ Member data: returns ULONG ]
> The unique 32-bit ID you give the object.

`$this->{m_hClass}`

> [ Member data: returns ULONG ]

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.8. class AllocEventObj

[ created from class AllocEventObj ]

`new(_hClient,_hParent,_hObject,_hClass,_hIndex,_hEvent,_expectedStatus);`

> [ Constructor: returns AllocEventObj * ]

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hParent}`

> [ Member data: returns ULONG ]

`$this->{m_hObject}`

> [ Member data: returns ULONG ]
> The unique 32-bit ID you give the event.

`$this->{m_hClass}`

> [ Member data: returns ULONG ]

`$this->{m_hIndex}`

> [ Member data: returns ULONG ]

`$this->{m_hEvent}`

> [ Member data: returns PVOID ]

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

### 1.9. class RmFreeObj

[ created from class RmFreeObj ]

`new(_hClient,_hParent,_hObject,_expectedStatus);`

> [ Constructor: returns RmFreeObj * ]
> 23 was chosed at random between 0 and 255 (the range of reserved handle IDs). It is used as a flag to indicate that if only one handle is specified, it should be used for hClient, hParent, and hObject because it is a root handle

`DESTROY`

> [ Destructor ]

`$this->{m_hClient}`

> [ Member data: returns ULONG ]
> A handle to the parent

`$this->{m_hParent}`

> [ Member data: returns ULONG ]

`$this->{m_hObject}`

> [ Member data: returns ULONG ]

`call();`

> [ Member : returns bool ]
> The method that actual makes the object CALL the api function and gets a return status. This can only be called once per object instance. This will be called upon object instantiation if AUTOCALL is defined

`getName();`

> [ Member : returns char * ]
> Returns the actual string name of the derived class.

`getStatusString(_expectedStatus);`

> [ Member : returns char * ]
> Used to change a status HEX code into a string for easy log file reading.

`preCall();`

> [ returns void ]

`postCall(x);`

> [ returns void ]

## 2. Basic Typedefs

### 2.1. class NvV64

[ created from struct NvV64 ]

`$this->{low}`

> [ Member data: returns NvU32 ]

`$this->{high}`

> [ Member data: returns NvU32 ]

### 2.2. class NvU64

[ created from struct NvU64 ]

`$this->{low}`

> [ Member data: returns NvU32 ]

`$this->{high}`

> [ Member data: returns NvU32 ]

### 2.3. class NvS64

[ created from struct NvS64 ]

`$this->{low}`

> [ Member data: returns NvU32 ]

`$this->{high}`

> [ Member data: returns NvS32 ]

### 2.4. class NvP64

[ created from struct NvP64 ]

`$this->{offset}`

> [ Member data: returns NvU32 ]

`$this->{selector}`

> [ Member data: returns NvU16 ]

`$this->{reserved}`

> [ Member data: returns NvU16 ]

## 3. NV OS Functions

module nvos.i

Note: This version of the architecture has been changed to allow the RM to return a client handle that will subsequently used to identify the client. NvAllocRoot() returns the handle. All other functions must specify this client handle.

### 3.1. Macro/Function Declarations

`$NV01_FREE = (0x00000000)`

> [ Constant: int ]
> macro NV01_FREE

`$NV01_ALLOC_ROOT = (0x00000001)`

> [ Constant: int ]
> macro NV01_ALLOC_ROOT

`$NV01_ROOT = (0x00000000)`

> [ Constant: int ]
> valid hClass values.

`$NV01_ROOT_USER = (0x00000041)`

> [ Constant: int ]
> valid hClass values.

`$NV01_ALLOC_MEMORY = (0x00000002)`

> [ Constant: int ]
> macro NV01_ALLOC_MEMORY

`$NV01_ALLOC_CONTEXT_DMA = (0x00000003)`

> [ Constant: int ]
> macro NV01_ALLOC_CONTEXT_DMA

`$NV01_ALLOC_CHANNEL_PIO = (0x00000004)`

> [ Constant: int ]
> macro NV01_ALLOC_CHANNEL_PIO

`$NV01_ALLOC_OBJECT = (0x00000005)`

> [ Constant: int ]
> macro NV01_ALLOC_OBJECT

`$NV01_ALLOC_DEVICE = (0x00000006)`

> [ Constant: int ]
> ***** this has been changed to allow a device name string to be returned macro NV01_ALLOC_DEVICE

`$NV03_ALLOC_CHANNEL_DMA = (0x00000007)`

> [ Constant: int ]
> macro NV03_ALLOC_CHANNEL_DMA

`$NV03_DMA_FLOW_CONTROL = (0x00000008)`

> [ Constant: int ]
> macro NV03_DMA_FLOW_CONTROL

`$NV01_INTERRUPT = (0x00000009)`

> [ Constant: int ]
> macro NV01_INTERRUPT

`$NV01_ALLOC_EVENT = (0x0000000A)`

> [ Constant: int ]
> macro NV01_ALLOC_EVENT

`$NV01_EVENT_KERNEL_CALLBACK = (0x00000078)`

> [ Constant: int ]
> Valid values for hClass in Nv01AllocEvent

`$NV01_EVENT_WIN32_EVENT = (0x00000079)`

> [ Constant: int ]
> Valid values for hClass in Nv01AllocEvent

`$NV01_ARCH_HEAP = (0x0000000B)`

> [ Constant: int ]
> funct NV03_HEAP

`$NV01_CONFIG_VERSION = (0x0000000C)`

> [ Constant: int ]
> function OS0C

`$NV01_CONFIG_GET = (0x0000000D)`

> [ Constant: int ]
> function OS0D

`$NV01_CONFIG_SET = (0x0000000E)`

> [ Constant: int ]
> function OS0E

`$NV01_CONFIG_UPDATE = (0x0000000F)`

> [ Constant: int ]

`$NV04_RING0_CALLBACK = (0x00000010)`

> [ Constant: int ]
> function OS10

`$NV04_CONFIG_GET_EX = (0x00000011)`

> [ Constant: int ]
> function OS17

`$NV04_CONFIG_SET_EX = (0x00000012)`

> [ Constant: int ]
> function OS18

`$NV04_I2C_ACCESS = (0x00000013)`

> [ Constant: int ]
> function OS19

### 3.2. local defines here

`$FILE_DEVICE_NV = 0x00008000`

> [ Constant: int ]

`$NV_IOCTL_FCT_BASE = 0x00000800`

> [ Constant: int ]

### 3.3. NV3 Resource Manager VXDs

Use these defines if you are opening the RM vxd or the minivdd using the CreateFile inetrface.

`$NV3_PRIMARY_MINIVDD = \\\\.\\NV3.VXD`

> [ Constant: char * ]

`$NV3_SECONDARY_MINIVDD = \\\\.\\NV3MINI2.VXD`

> [ Constant: char * ]

`$NV3_RESMAN_VXD = \\\\.\\NV3RM.VXD`

> [ Constant: char * ]

### 3.4. NV4/NV10 Resource Manager VXDs

`$NVX_PRIMARY_MINIVDD = \\\\.\\NVMINI.VXD`

> [ Constant: char * ]

`$NVX_SECONDARY_MINIVDD = \\\\.\\NVMINI2.VXD`

> [ Constant: char * ]

`$NVX_RESMAN_VXD = \\\\.\\NVCORE.VXD`

> [ Constant: char * ]

`$VXDLDR_NV3_RESMAN_VXD_NAME = NV3RM.VXD`

> [ Constant: char * ]
> Use this define for the resman vxd name if you use the VXDLDR_LoadDevice interface.

`$VXDLDR_NVX_RESMAN_VXD_NAME = NVCORE.VXD`

> [ Constant: char * ]
> Use this define for the resman vxd name if you use the VXDLDR_LoadDevice interface.

### 3.5. NVOS00

`$NVOS00_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]
> parameter values

`$NVOS00_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS00_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS00_STATUS_ERROR_BAD_OBJECT_OLD = (0x00000003)`

> [ Constant: int ]

`$NVOS00_STATUS_ERROR_OBJECT_IN_USE = (0x00000004)`

> [ Constant: int ]

`$NVOS00_STATUS_ERROR_OBJECT_HAS_CHILDERN = (0x00000005)`

> [ Constant: int ]

#### 3.5.1. class NVOS00_PARAMETERS

[ created from struct NVOS00_PARAMETERS ]
NT ioctl data structure

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectOld}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.6. NVOS01

`$NVOS01_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS01_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS01_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS01_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS01_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS01_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.6.1. class NVOS01_PARAMETERS

[ created from struct NVOS01_PARAMETERS ]
parameters

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.7. NVOS02

`$NVOS02_FLAGS_PHYSICALITY_CONTIGUOUS = (0x00000000)`

> [ Constant: int ]

`$NVOS02_FLAGS_PHYSICALITY_NONCONTIGUOUS = (0x00000001)`

> [ Constant: int ]

`$NVOS02_FLAGS_LOCATION_PCI = (0x00000000)`

> [ Constant: int ]

`$NVOS02_FLAGS_LOCATION_AGP = (0x00000001)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_UNCACHED = (0x00000000)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_CACHED = (0x00000001)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_WRITE_COMBINE = (0x00000002)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_WRITE_THROUGH = (0x00000003)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_WRITE_PROTECT = (0x00000004)`

> [ Constant: int ]

`$NVOS02_FLAGS_COHERENCY_WRITE_BACK = (0x00000005)`

> [ Constant: int ]

`$NVOS02_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_BAD_FLAGS = (0x00000005)`

> [ Constant: int ]

`$NVOS02_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000006)`

> [ Constant: int ]

#### 3.7.1. class NVOS02_PARAMETERS

[ created from struct NVOS02_PARAMETERS ]
parameters

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{flags}`

> [ Member data: returns NvV32 ]

`$this->{pMemory}`

> [ Member data: returns NvP64 * ]

`$this->{pLimit}`

> [ Member data: returns NvU64 * ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.8. NVOS03

`$NVOS03_FLAGS_ACCESS_READ_WRITE = (0x00000000)`

> [ Constant: int ]

`$NVOS03_FLAGS_ACCESS_READ_ONLY = (0x00000001)`

> [ Constant: int ]

`$NVOS03_FLAGS_ACCESS_WRITE_ONLY = (0x00000002)`

> [ Constant: int ]

`$NVOS03_FLAGS_PHYSICALITY_CONTIGUOUS = (0x00000000)`

> [ Constant: int ]

`$NVOS03_FLAGS_PHYSICALITY_NONCONTIGUOUS = (0x00000001)`

> [ Constant: int ]

`$NVOS03_FLAGS_LOCKED_ALWAYS = (0x00000000)`

> [ Constant: int ]

`$NVOS03_FLAGS_LOCKED_IN_TRANSIT = (0x00000001)`

> [ Constant: int ]

`$NVOS03_FLAGS_COHERENCY_UNCACHED = (0x00000000)`

> [ Constant: int ]

`$NVOS03_FLAGS_COHERENCY_CACHED = (0x00000001)`

> [ Constant: int ]

`$NVOS03_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_FLAGS = (0x00000005)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_BASE = (0x00000006)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_BAD_LIMIT = (0x00000007)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_PROTECTION_FAULT = (0x00000008)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_MULTIPLE_MEMORY_TYPES = (0x00000009)`

> [ Constant: int ]

`$NVOS03_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x0000000A)`

> [ Constant: int ]

#### 3.8.1. class NVOS03_PARAMETERS

[ created from struct NVOS03_PARAMETERS ]
parameters

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{flags}`

> [ Member data: returns NvV32 ]

`$this->{pBase}`

> [ Member data: returns NvP64 * ]

`$this->{limit}`

> [ Member data: returns NvU64 * ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.9. NVOS04

`$NVOS04_FLAGS_FIFO_RUNOUT_IGNORE = (0x00000000)`

> [ Constant: int ]

`$NVOS04_FLAGS_FIFO_RUNOUT_ERROR = (0x00000001)`

> [ Constant: int ]

`$NVOS04_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_BAD_OBJECT_ERROR = (0x00000005)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_BAD_FLAGS = (0x00000006)`

> [ Constant: int ]

`$NVOS04_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000007)`

> [ Constant: int ]

#### 3.9.1. class NVOS04_PARAMETERS

[ created from struct NVOS04_PARAMETERS ]
parameters

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{hObjectError}`

> [ Member data: returns NvV32 ]

`$this->{pChannel}`

> [ Member data: returns NvP64 * ]

`$this->{flags}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.10. NVOS05

`$NVOS05_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS05_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS05_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS05_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS05_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS05_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.10.1. class NVOS05_PARAMETERS

[ created from struct NVOS05_PARAMETERS ]
parameters

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.11. NVOS06

`$NVOS06_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS06_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS06_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS06_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS06_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS06_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.11.1. class NVOS06_PARAMETERS

[ created from struct NVOS06_PARAMETERS ]
parameters

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{szName}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.12. NVOS07

`$NVOS07_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_OBJECT_ERROR = (0x00000005)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_OBJECT_BUFFER = (0x00000006)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_BAD_OFFSET = (0x00000007)`

> [ Constant: int ]

`$NVOS07_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000008)`

> [ Constant: int ]

#### 3.12.1. class NVOS07_PARAMETERS

[ created from struct NVOS07_PARAMETERS ]
parameters

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{hObjectError}`

> [ Member data: returns NvV32 ]

`$this->{hObjectBuffer}`

> [ Member data: returns NvV32 ]

`$this->{offset}`

> [ Member data: returns NvU32 ]

`$this->{pControl}`

> [ Member data: returns NvP64 * ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.13. NVOS08

`$NVOS08_FLAGS_PUT_IGNORE = (0x00000000)`

> [ Constant: int ]

`$NVOS08_FLAGS_PUT_UPDATE = (0x00000001)`

> [ Constant: int ]

`$NVOS08_FLAGS_JUMP_IGNORE = (0x00000000)`

> [ Constant: int ]

`$NVOS08_FLAGS_JUMP_UPDATE = (0x00000001)`

> [ Constant: int ]

`$NVOS08_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS08_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS08_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS08_STATUS_ERROR_BAD_FLAGS = (0x00000003)`

> [ Constant: int ]

`$NVOS08_STATUS_ERROR_BAD_PUT = (0x00000004)`

> [ Constant: int ]

#### 3.13.1. class NVOS08_PARAMETERS

[ created from struct NVOS08_PARAMETERS ]
parameters

`$this->{hChannel}`

> [ Member data: returns NvV32 ]

`$this->{flags}`

> [ Member data: returns NvV32 ]

`$this->{put}`

> [ Member data: returns NvU32 ]

`$this->{get}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.14. NVOS09

`$NVOS09_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS09_STATUS_ERROR_BAD_CLIENT = (0x00000001)`

> [ Constant: int ]

`$NVOS09_STATUS_ERROR_BAD_DEVICE = (0x00000002)`

> [ Constant: int ]

#### 3.14.1. class NVOS09_PARAMETERS

[ created from struct NVOS09_PARAMETERS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.15. NVOS10

`$NVOS10_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_BAD_OBJECT_PARENT = (0x00000002)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_BAD_OBJECT_NEW = (0x00000003)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_BAD_CLASS = (0x00000004)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_BAD_INDEX = (0x00000005)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_BAD_EVENT = (0x00000006)`

> [ Constant: int ]

`$NVOS10_STATUS_ERROR_OBJECT_IN_USE = (0x00000007)`

> [ Constant: int ]

#### 3.15.1. class NVOS10_PARAMETERS

[ created from struct NVOS10_PARAMETERS ]
parameters

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{hObjectNew}`

> [ Member data: returns NvV32 ]

`$this->{hClass}`

> [ Member data: returns NvV32 ]

`$this->{index}`

> [ Member data: returns NvV32 ]

`$this->{hEvent}`

> [ Member data: returns NvU64 * ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.16. NVOS11

`$NVOS11_HEAP_ALLOC_DEPTH_WIDTH_HEIGHT = 1`

> [ Constant: int ]

`$NVOS11_HEAP_ALLOC_SIZE = 2`

> [ Constant: int ]

`$NVOS11_HEAP_FREE = 3`

> [ Constant: int ]

`$NVOS11_HEAP_PURGE = 4`

> [ Constant: int ]

`$NVOS11_HEAP_INFO = 5`

> [ Constant: int ]

`$NVOS11_HEAP_ALLOC_TILED_PITCH_HEIGHT = 6`

> [ Constant: int ]

`$NVOS11_TYPE_IMAGE = 0`

> [ Constant: int ]

`$NVOS11_TYPE_DEPTH = 1`

> [ Constant: int ]

`$NVOS11_TYPE_TEXTURE = 2`

> [ Constant: int ]

`$NVOS11_TYPE_VIDEO_OVERLAY = 3`

> [ Constant: int ]

`$NVOS11_TYPE_FONT = 4`

> [ Constant: int ]

`$NVOS11_TYPE_CURSOR = 5`

> [ Constant: int ]

`$NVOS11_TYPE_DMA = 6`

> [ Constant: int ]

`$NVOS11_TYPE_INSTANCE = 7`

> [ Constant: int ]

`$NVOS11_TYPE_PRIMARY = 8`

> [ Constant: int ]

`$NVOS11_TYPE_IMAGE_TILED = 9`

> [ Constant: int ]

`$NVOS11_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS11_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000001)`

> [ Constant: int ]

`$NVOS11_STATUS_ERROR_INVALID_FUNCTION = (0x00000002)`

> [ Constant: int ]

`$NVOS11_STATUS_ERROR_INVALID_OWNER = (0x00000003)`

> [ Constant: int ]

#### 3.16.1. class NVOS11_PARAMETERS

[ created from struct NVOS11_PARAMETERS ]
Size will return size of largest free block when function is NVOS11_HEAP_INFO. Address will return base address of heap when function is NVOS11_HEAP_INFO.

`$this->{hRoot}`

> [ Member data: returns NvV32 ]

`$this->{hObjectParent}`

> [ Member data: returns NvV32 ]

`$this->{function}`

> [ Member data: returns NvU32 ]

`$this->{owner}`

> [ Member data: returns NvU32 ]

`$this->{type}`

> [ Member data: returns NvU32 ]

`$this->{depth}`

> [ Member data: returns NvU32 ]

`$this->{width}`

> [ Member data: returns NvU32 ]

`$this->{height}`

> [ Member data: returns NvU32 ]

`$this->{pitch}`

> [ Member data: returns NvS32 ]

`$this->{offset}`

> [ Member data: returns NvU32 ]

`$this->{size}`

> [ Member data: returns NvU32 ]

`$this->{address}`

> [ Member data: returns NvU32 ]

`$this->{limit}`

> [ Member data: returns NvU32 ]

`$this->{total}`

> [ Member data: returns NvU32 ]

`$this->{free}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.17. NVOS12

`$NVOS12_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS12_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS12_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS12_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS12_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.17.1. class NVOS12_PARAMETERS

[ created from struct NVOS12_PARAMETERS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{version}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.18. NVOS13

`$NVOS13_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS13_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS13_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS13_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS13_STATUS_ERROR_BAD_INDEX = (0x00000004)`

> [ Constant: int ]

`$NVOS13_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.18.1. class NVOS13_PARAMETERS

[ created from struct NVOS13_PARAMETERS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{index}`

> [ Member data: returns NvV32 ]

`$this->{value}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.19. NVOS14

`$NVOS14_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS14_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS14_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS14_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS14_STATUS_ERROR_BAD_INDEX = (0x00000004)`

> [ Constant: int ]

`$NVOS14_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.19.1. class NVOS14_PARAMETERS

[ created from struct NVOS14_PARAMETERS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{index}`

> [ Member data: returns NvV32 ]

`$this->{oldValue}`

> [ Member data: returns NvV32 ]

`$this->{newValue}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.20. NVOS15

`$NVOS15_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS15_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS15_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS15_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS15_STATUS_ERROR_BAD_FLAGS = (0x00000004)`

> [ Constant: int ]

`$NVOS15_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

#### 3.20.1. class NVOS15_PARAMETERS

[ created from struct NVOS15_PARAMETERS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{flags}`

> [ Member data: returns NvV32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.21. NVOS_CONFIG_GET_EX

`$NVOS_CGE_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_BAD_INDEX = (0x00000004)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

`$NVOS_CGE_STATUS_ERROR_BAD_PARAM_STRUCT = (0x00000006)`

> [ Constant: int ]

#### 3.21.1. class NVOS_CONFIG_GET_EX_PARAMS

[ created from struct NVOS_CONFIG_GET_EX_PARAMS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{index}`

> [ Member data: returns NvV32 ]

`$this->{paramStructPtr}`

> [ Member data: returns NvV32 ]

`$this->{paramSize}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.22. NVOS_CONFIG_SET_EX

`$NVOS_CSE_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_BAD_INDEX = (0x00000004)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000005)`

> [ Constant: int ]

`$NVOS_CSE_STATUS_ERROR_BAD_PARAM_STRUCT = (0x00000006)`

> [ Constant: int ]

#### 3.22.1. class NVOS_CONFIG_SET_EX_PARAMS

[ created from struct NVOS_CONFIG_SET_EX_PARAMS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{index}`

> [ Member data: returns NvV32 ]

`$this->{paramStructPtr}`

> [ Member data: returns NvV32 ]

`$this->{paramSize}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.23. NVOS_I2C_ACCESS_STATUS

`$NVOS_I2C_ACCESS_STATUS_SUCCESS = (0x00000000)`

> [ Constant: int ]

`$NVOS_I2C_ACCESS_STATUS_ERROR_OPERATING_SYSTEM = (0x00000001)`

> [ Constant: int ]

`$NVOS_I2C_ACCESS_STATUS_ERROR_BAD_CLIENT = (0x00000002)`

> [ Constant: int ]

`$NVOS_I2C_ACCESS_STATUS_ERROR_BAD_DEVICE = (0x00000003)`

> [ Constant: int ]

`$NVOS_I2C_ACCESS_STATUS_ERROR_INSUFFICIENT_RESOURCES = (0x00000004)`

> [ Constant: int ]

`$NVOS_I2C_ACCESS_STATUS_ERROR_BAD_PARAM_STRUCT = (0x00000005)`

> [ Constant: int ]

#### 3.23.1. class NVOS_I2C_ACCESS_PARAMS

[ created from struct NVOS_I2C_ACCESS_PARAMS ]
parameters

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{paramStructPtr}`

> [ Member data: returns NvV32 ]

`$this->{paramSize}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

### 3.24. NVRM_RING0CALLBACK_PARAMS

#### 3.24.1. class NVRM_RING0CALLBACK_PARAMS

[ created from struct NVRM_RING0CALLBACK_PARAMS ]

`$this->{hClient}`

> [ Member data: returns NvV32 ]

`$this->{hDevice}`

> [ Member data: returns NvV32 ]

`$this->{functionPtr}`

> [ Member data: returns RING0CALLBACKPROC ]

`$this->{param1}`

> [ Member data: returns NvU32 ]

`$this->{param2}`

> [ Member data: returns NvU32 ]

`$this->{status}`

> [ Member data: returns NvV32 ]

## 4. Configuration Definitions

      module Nvcm.i

    //---------------------------------------------------------------------------
    //
    //  Configuration Defines.
    //
    //---------------------------------------------------------------------------

     Index parameters to ConfigGet/Set.  All other values are reserved.

`$NV_CFG_MANUFACTURER = 1`

>     [ Constant: int  ]

>     NV_CFG_MANUFACTURER - Return the manufacturer of this device

>        0 - NVIDIA Corporation
>       (all other values are reserved)

`$NV_CFG_ARCHITECTURE = 2`

>     [ Constant: int  ]

>     NV_CFG_ARCHITECTURE - Return the architecture of this device

>      0 - NV0
>      1 - NV1, etc

`$NV_CFG_REVISION = 3`

>     [ Constant: int  ]

>     NV_CFG_REVISION - Return the major revision of this device

>      0 - RevA
>      1 - RevB, etc

`$NV_CFG_BIOS_REVISION = 4`

>     [ Constant: int  ]

>     NV_CFG_BIOS_REVISION - Return the current revision of this device's BIOS

>      MMNNRRRR - MM   Major Revision
>                 NN   Minor Revision
>                 RRRR Release Revision

`$NV_CFG_BUS_TYPE = 5`

>     [ Constant: int  ]

>     NV_CFG_BUS_TYPE - Return the bus implementation of this device

>      1 - PCI
>      2 - VL
>      4 - AGP
>      All other values are reserved

`$NV_CFG_CRYSTAL_FREQ = 6`

>     [ Constant: int  ]

>     NV_CFG_CRYSTAL_FREQ - Return the PLL crystal frequency of this device

>      Value returned in Hz

`$NV_CFG_ADDRESS_NVADDR = 9`

>     [ Constant: int  ]

>     NV_CFG_ADDRESS_NVADDR - Return the linear address of (BAR0) of this device

`$NV_CFG_ADDRESS = 10`

>     [ Constant: int  ]

>     NV_CFG_ADDRESS - Return the physical PCI address (BAR0) of this device

`$NV_CFG_IRQ = 11`

>     [ Constant: int  ]

>     NV_CFG_IRQ - Return the PCI IRQ assigned to this device

`$NV_CFG_IO_NEEDED = 12`

>     [ Constant: int  ]

>     NV_CFG_IO_NEEDED - Return the detection flag for chipsets that have broken
>                        PCI snoop mastering.

`$NV_CFG_PCI_ID = 13`

>     [ Constant: int  ]

>     NV_CFG_PCI_ID - Return the PCI Vendor and Device ID assigned to this device

>          DDDDVVVV -  VVVV    PCI Vendor ID
>                      DDDD    PCI Device ID

`$NV_CFG_PROCESSOR_TYPE = 15`

>     [ Constant: int  ]

>     NV_CFG_PROCESSOR_TYPE - Return the functionality of the system processor

>     There are 2 pieces of data passed back, the processor indicator is in
>     the low 8 bits and its bitmask of functionality is in the upper 24

`$NV_CFG_PROCESSOR_SPEED = 16`

>     [ Constant: int  ]

>     NV_CFG_PROCESSOR_SPEED - Return the speed of the processor in MHz

`$NV_CFG_INSTANCE_SIZE = 20`

>     [ Constant: int  ]

>     NV_CFG_INSTANCE_SIZE - Return the size of the instance pool of this device

`$NV_CFG_FIFO_COUNT = 32`

>     [ Constant: int  ]

>     NV_CFG_FIFO_COUNT - Return the number of user fifos allowed in this device

`$NV_CFG_FIFO_USE_COUNT = 33`

>     [ Constant: int  ]

>     NV_CFG_FIFO_USE_COUNT - Return the number of fifos used in this device

`$NV_CFG_RAM_SIZE_MB = 40`

>     [ Constant: int  ]

>     NV_CFG_RAM_SIZE_MB - Return the video memory size (in MB) of this device

`$NV_CFG_RAM_SIZE = 41`

>     [ Constant: int  ]

>     NV_CFG_RAM_SIZE - Return the video memory size (in bytes) of this device

`$NV_CFG_RAM_TYPE = 42`

>     [ Constant: int  ]

>     NV_CFG_RAM_TYPE - Return the video memory type of this device

>      0 - DRAM (EDO/FPM)
>      1 - SGRAM
>      2 - SDRAM
>      All other values are reserved

`$NV_CFG_AGP_PHYS_BASE = 44`

>     [ Constant: int  ]

>     NV_CFG_AGP_PHYS_BASE - Return/Set the current physical GART address

`$NV_CFG_AGP_LINEAR_BASE = 45`

>     [ Constant: int  ]

>     NV_CFG_AGP_LINEAR_BASE - Return/Set the current linear GART address

`$NV_CFG_AGP_LIMIT = 46`

>     [ Constant: int  ]

>     NV_CFG_AGP_LIMIT - Return/Set the current GART size

`$NV_CFG_AGP_LOAD_DUMMY_PAGES = 47`

>     [ Constant: int  ]

`$NV_CFG_SCREEN_WIDTH = 50`

>     [ Constant: int  ]

>     NV_CFG_SCREEN_WIDTH - Return/Set the current display horizontal resolution

>      Value defined in pixels

>     NOTE: Updates to this value will not take affect until NvConfigUpdate().
>     This allows batching with other screen size parameters.

`$NV_CFG_SCREEN_HEIGHT = 51`

>     [ Constant: int  ]

>     NV_CFG_SCREEN_HEIGHT - Return/Set the current display vertical resolution

>      Value defined in pixels

>     NOTE: Updates to this value will not take affect until NvConfigUpdate().
>     This allows batching with other screen size parameters.

`$NV_CFG_PIXEL_DEPTH = 52`

>     [ Constant: int  ]

>     NV_CFG_PIXEL_DEPTH - Return/Set the current display pixel depth

>      Value defined in bits per pixel

>     NOTE: Updates to this value will not take affect until NvConfigUpdate().
>     This allows batching with other screen size parameters.

`$NV_CFG_SCREEN_MAX_WIDTH = 53`

>     [ Constant: int  ]

>     NV_CFG_SCREEN_MAX_WIDTH - Returns the maximum horizontal resolution supported by the display type.

>      Value defined in pixels

`$NV_CFG_SCREEN_MAX_HEIGHT = 54`

>     [ Constant: int  ]

>     NV_CFG_SCREEN_MAX_HEIGHT - Returns the maximum vertical resolution supported by the display type.

>      Value defined in pixels

`$NV_CFG_VIDEO_ENCODER_ID = 57`

>     [ Constant: int  ]

`$NV_CFG_PRIMARY_SURFACE_PITCH = 56`

>     [ Constant: int  ]

>     NV_CFG_PRIMARY_SURFACE_PITCH - Return the display pitch of the primary surface

>      Value defined in bytes

`$NV_CFG_VIDEO_OVERLAY_ALLOWED = 80`

>     [ Constant: int  ]

>     NV_CFG_VIDEO_OVERLAY_ALLOWED - Return the video overlay validity in the current
>          desktop resolution

>      0 - Video Overlay not allowed
>      1 - Video Overlay is allowed
>      All other values are reserved

`$NV_CFG_FRAMEBUFFER_UNDERSCAN_X = 85`

>     [ Constant: int  ]

>     NV_CFG_FRAMEBUFFER_UNDERSCAN - Return/Set the NV3 (RIVA128) TV Underscan resolution

`$NV_CFG_FRAMEBUFFER_UNDERSCAN_Y = 86`

>     [ Constant: int  ]

`$NV_CFG_DAC_INPUT_WIDTH = 110`

>     [ Constant: int  ]

>     NV_CFG_DAC_INPUT_WIDTH - Return the width (in bits) of the current framebuffer bus

    //
    // NV_CFG_DAC_VPLL_*
    // NV_CFG_DAC_MPLL_* - Return the individual components of the memory and video PLL's
    //
    //  The definition of these values is reserved
    //

`$NV_CFG_DAC_VPLL_M = 120`

>     [ Constant: int  ]

`$NV_CFG_DAC_VPLL_N = 121`

>     [ Constant: int  ]

`$NV_CFG_DAC_VPLL_O = 122`

>     [ Constant: int  ]

`$NV_CFG_DAC_VPLL_P = 123`

>     [ Constant: int  ]

`$NV_CFG_DAC_MPLL_M = 130`

>     [ Constant: int  ]

`$NV_CFG_DAC_MPLL_N = 131`

>     [ Constant: int  ]

`$NV_CFG_DAC_MPLL_O = 132`

>     [ Constant: int  ]

`$NV_CFG_DAC_MPLL_P = 133`

>     [ Constant: int  ]

`$NV_CFGEX_ENABLE_TETRIS_TILING = 200`

>     [ Constant: int  ]
>     ************ Enable tiling *******************************

`$NV_CFGEX_DISABLE_TETRIS_TILING = 201`

>     [ Constant: int  ]
>     ************ Disable tiling ******************************

`$NV_CFG_VBLANK_TOGGLE = 212`

>     [ Constant: int  ]

>     NV_CFG_VBLANK_TOGGLE - Return/Set the current value of the vertical sync toggle

>      This value is toggled to zero (0) during every vertical sync.  By setting it to
>      any other value and then monitoring, a client can detect the presence of a
>      vertical sync signal occuring within a defined time period.

`$NV_CFG_VBLANK_COUNTER = 213`

>     [ Constant: int  ]

>     NV_CFG_VBLANK_COUNTER - Return/Set the number of vertical blanks

>      This value is initialized to zero and keeps a running count of the number of
>      vertical blanks since the last reset. Use ConfigSet to reset it to zero.

`$NV_CFG_PRAM_CURRENT_SIZE = 220`

>     [ Constant: int  ]

>     NV_CFG_PRAM_CURRENT_SIZE - Return the currently allocated size of chip

`$NV_CFG_DAC_PIXEL_CLOCK = 250`

>     [ Constant: int  ]

>     NV_CFG_DAC_PIXEL_CLOCK - Return the current video pixel clock (in Hz) for this device

`$NV_CFG_DAC_MEMORY_CLOCK = 251`

>     [ Constant: int  ]

>     NV_CFG_DAC_MEMORY_CLOCK - Return the current memory clock (in Hz) for this device

`$NV_CFG_DAC_GRAPHICS_CLOCK = 253`

>     [ Constant: int  ]

>     NV_CFG_DAC_GRAPHICS_CLOCK - Return the current graphics clock (in Hz) for this device

`$NV_CFG_DAC_PCLK_LIMIT_8BPP = 260`

>     [ Constant: int  ]

>     NV_CFG_DAC_PCLK_LIMIT_8BPP - Return the current 8bpp graphics clock limit (in Hz) for this device

`$NV_CFG_DAC_PCLK_LIMIT_16BPP = 261`

>     [ Constant: int  ]

>     NV_CFG_DAC_PCLK_LIMIT_16BPP - Return the current 16bpp graphics clock limit (in Hz) for this device

`$NV_CFG_DAC_PCLK_LIMIT_32BPP = 262`

>     [ Constant: int  ]

>     NV_CFG_DAC_PCLK_LIMIT_32BPP - Return the current 16bpp graphics clock limit (in Hz) for this device

`$NV_CFG_MAPPING_BUSDEVICEFUNC = 263`

>     [ Constant: int  ]
>     Function added for display driver registry setting storage.
>     This will return the device type or'ed to the busdevicefunc info.

`$NV_CFG_VBLANK_STATUS = 500`

>     [ Constant: int  ]

>     NV_CFG_VBLANK_STATUS - Return the current vertical blank status of this device

>      0 - device is not currently in vertical blank
>      1 - device is currently in vertical blank

`$NV_CFG_GE_STATUS = 501`

>     [ Constant: int  ]

>     NV_CFG_GE_STATUS - Return the current graphics activity state of this device

>      any value other than zero (0) denotes graphics activity is in progress

`$NV_CFG_CURRENT_SCANLINE = 502`

>     [ Constant: int  ]

>     NV_CFG_CURRENT_SCANLINE - Return the current active display scanline of this device

>      The value returned may be greater than the current resolution if the display
>      has moved into the vertical blanking period.

`$NV_CFG_CRTC = 768`

>     [ Constant: int  ]

>     NV_CFG_CRTC_* - Return/Set a CRTC (VGA) register in this device

>      All CRTC registers are accessed by adding the index the base value given here.
>      For example, CR1B is accessed using index (NV_CFG_CRTC+0x1B)

### 4.1. NV_CFGEX_DESKTOP_POSITION_MONITOR

`$NV_CFGEX_GET_DESKTOP_POSITION_MONITOR = 100`

>     [ Constant: int  ]
>     ************ Get the Desktop position for Monitor *************

#### 4.1.1. class NV_CFGEX_GET_DESKTOP_POSITION_MONITOR_PARAMS

    [ created from struct NV_CFGEX_GET_DESKTOP_POSITION_MONITOR_PARAMS ]
    Param Structure

`$this->{GetDefault}`

>     [ Member data: returns unsigned long  ]

`$this->{HBlankStart}`

>     [ Member data: returns unsigned long  ]

`$this->{HBlankEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{VBlankStart}`

>     [ Member data: returns unsigned long  ]

`$this->{VBlankEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{HRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{HRetraceEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceEnd}`

>     [ Member data: returns unsigned long  ]

`$NV_CFGEX_SET_DESKTOP_POSITION_MONITOR = 101`

>     [ Constant: int  ]
>     ************ Set the Desktop position for Monitor *************

#### 4.1.2. class NV_CFGEX_SET_DESKTOP_POSITION_MONITOR_PARAMS

    [ created from struct NV_CFGEX_SET_DESKTOP_POSITION_MONITOR_PARAMS ]
    Param Structure

`$this->{CommitChanges}`

>     [ Member data: returns unsigned long  ]

`$this->{HRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{HRetraceEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceEnd}`

>     [ Member data: returns unsigned long  ]

### 4.2. NV_CFGEX_DESKTOP_POSITION_TV_PARAMS

`$NV_CFGEX_GET_DESKTOP_POSITION_TV = 102`

>     [ Constant: int  ]
>     ************ Desktop position for TV **********

`$NV_CFGEX_COMMIT_DESKTOP_POSITION_TV = 103`

>     [ Constant: int  ]

#### 4.2.1. class NV_CFGEX_DESKTOP_POSITION_TV_PARAMS

    [ created from struct NV_CFGEX_DESKTOP_POSITION_TV_PARAMS ]
    Param Structure
         Encoder_ID = NV_ENCODER_ type
         Default    = get default setting if set, else get current

`$this->{Encoder_ID}`

>     [ Member data: returns unsigned long  ]

`$this->{Default}`

>     [ Member data: returns unsigned char  ]

### 4.3. NV_CFGEX_TV_ENCODER_INFO

`$NV_CFGEX_GET_TV_ENCODER_INFO = 104`

>     [ Constant: int  ]
>     ------- TV Encoder -----------------------------------

`$TV_NOT_CONNECTED = 0`

>     [ Constant: int  ]

`$TV_CONNECTED = 1`

>     [ Constant: int  ]

`$NV_CFGEX_SET_TV_ENCODER_INFO = 105`

>     [ Constant: int  ]

#### 4.3.1. class NV_CFGEX_TV_ENCODER_PARAMS

    [ created from struct NV_CFGEX_TV_ENCODER_PARAMS ]

    am Structure
         EncoderType:
                 0 - None
                 1 - Chrontel 7003
                 2 - Brooktree 868
                 3 - Brooktree 869
                 All other values are reserved
         TVConnected:
                 0 - Not connected
                 1 - Connected
         EncoderID: I2C address of encoder

`$this->{EncoderType}`

>     [ Member data: returns unsigned long  ]

`$this->{EncoderID}`

>     [ Member data: returns unsigned long  ]

`$this->{TVConnected}`

>     [ Member data: returns unsigned long  ]

#### 4.3.2. class PARAMS_BROOKTREE

    [ created from struct PARAMS_BROOKTREE ]

`$this->{HRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{HRetraceEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceStart}`

>     [ Member data: returns unsigned long  ]

`$this->{VRetraceEnd}`

>     [ Member data: returns unsigned long  ]

`$this->{reg0x80}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0x82}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0x92}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0x98}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0x9A}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0xC8}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0xCA}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0xCC}`

>     [ Member data: returns unsigned char  ]

#### 4.3.3. class PARAMS_CHRONTEL

    [ created from struct PARAMS_CHRONTEL ]

`$this->{reg0x01}`

>     [ Member data: returns unsigned char  ]

`$this->{reg0x08}`

>     [ Member data: returns unsigned char  ]
>     Flicker Filter

`$this->{reg0x0A}`

>     [ Member data: returns unsigned char  ]
>     overflow bits for V & H position

`$this->{reg0x0B}`

>     [ Member data: returns unsigned char  ]
>     Horizontal Position

`$this->{reg0x09}`

>     [ Member data: returns unsigned char  ]
>     Vertical Position

`$this->{reg0x11}`

>     [ Member data: returns unsigned char  ]
>     Black Level (Brightness)

### 4.4. NV_CFGEX_FLATPANEL_INFO

`$NV_CFGEX_GET_FLAT_PANEL_INFO = 106`

>     [ Constant: int  ]
>     ************ Flat Panel **********************************

`$NV_CFGEX_GET_FLATPANEL_INFO_NOT_CONNECTED = 0`

>     [ Constant: int  ]

`$NV_CFGEX_GET_FLATPANEL_INFO_CONNECTED = 1`

>     [ Constant: int  ]

`$NV_CFGEX_GET_FLATPANEL_INFO_SCALED = 0`

>     [ Constant: int  ]

`$NV_CFGEX_GET_FLATPANEL_INFO_CENTERED = 1`

>     [ Constant: int  ]

`$NV_CFGEX_GET_FLATPANEL_INFO_NATIVE = 2`

>     [ Constant: int  ]

`$NV_CFGEX_SET_FLAT_PANEL_INFO = 107`

>     [ Constant: int  ]

#### 4.4.1. class NV_CFGEX_GET_FLATPANEL_INFO_PARAMS

    [ created from struct NV_CFGEX_GET_FLATPANEL_INFO_PARAMS ]

    ram structure
    atPanelMode:
          0 - Not Connected
      1 - Centered
      2 - Native
      3 - Scaled mode
    atPanelSizeX:
      Max horizontal resolution.
    atPanelSizeY:
      Max vertical resolution.
    atPanelNativeSupported

`$this->{FlatPanelMode}`

>     [ Member data: returns unsigned long  ]

`$this->{FlatPanelSizeX}`

>     [ Member data: returns unsigned long  ]

`$this->{FlatPanelSizeY}`

>     [ Member data: returns unsigned long  ]

`$this->{FlatPanelConnected}`

>     [ Member data: returns int  ]

`$this->{FlatPanelNativeSupported}`

>     [ Member data: returns int  ]

#### 4.4.2. class NV_CFGEX_SET_FLATPANEL_INFO_PARAMS

    [ created from struct NV_CFGEX_SET_FLATPANEL_INFO_PARAMS ]
    Param structure

`$this->{CommitChanges}`

>     [ Member data: returns unsigned long  ]

`$this->{FlatPanelMode}`

>     [ Member data: returns unsigned long  ]

### 4.5. NV_CFGEX_MONITOR_INFO

`$NV_CFGEX_GET_MONITOR_INFO = 108`

>     [ Constant: int  ]
>     ************ Monitor *************************************

`$NV_CFGEX_GET_MONITOR_INFO_NOT_CONNECTED = 0`

>     [ Constant: int  ]

`$NV_CFGEX_GET_MONITOR_INFO_CONNECTED = 1`

>     [ Constant: int  ]

#### 4.5.1. class NV_CFGEX_GET_MONITOR_INFO_PARAMS

    [ created from struct NV_CFGEX_GET_MONITOR_INFO_PARAMS ]

    ram structure
    nitorConnected:
         0 - Not Connected
         1 - Connected

`$this->{MonitorConnected}`

>     [ Member data: returns unsigned long  ]

### 4.6. NV_CFGEX_VIDEO_TV_FORMAT

`$NV_CFG_VIDEO_TV_FORMAT = 109`

>     [ Constant: int  ]
>     NV_CFG_VIDEO_TV_FORMAT - Return the current TV format

     must be one of the following formats

`$NTSC_M = 0`

>     [ Constant: int  ]

`$NTSC_J = 1`

>     [ Constant: int  ]

`$PAL_M = 2`

>     [ Constant: int  ]

`$PAL_A = 3`

>     [ Constant: int  ]
>     PAL B, D, G, H, I

`$PAL_N = 4`

>     [ Constant: int  ]

`$PAL_NC = 5`

>     [ Constant: int  ]

`$KNOWN_TV_FORMATS = 5`

>     [ Constant: int  ]
>     number of formats we know about + 1

### 4.7. NV_CFGEX_REFRESH_INFO/RATE

`$NV_CFGEX_GET_REFRESH_INFO = 111`

>     [ Constant: int  ]
>     ************ Get the current Windows refresh rate and state (real, default or optimal) *************

     definitions of state flags

`$NV_CFG_REFRESH_FLAG_SPECIFIC = 0x00000000`

>     [ Constant: int  ]
>     use specific value contained in ulRefreshRate

`$NV_CFG_REFRESH_FLAG_ADAPTER_DEFAULT = 0x00000001`

>     [ Constant: int  ]
>     Windows is using "Adapter Default" setting

`$NV_CFG_REFRESH_FLAG_OPTIMAL = 0x00000002`

>     [ Constant: int  ]
>     Windows is using "Optimal" setting

`$NV_CFG_VIDEO_REFRESH_RATE = 170`

>     [ Constant: int  ]

>     NV_CFG_VIDEO_REFRESH_RATE - Return/Set the current display refresh rate (in Hz)

#### 4.7.1. class NV_CFGEX_GET_REFRESH_INFO_PARAMS

    [ created from struct NV_CFGEX_GET_REFRESH_INFO_PARAMS ]
    Param Structure

`$this->{ulRefreshRate}`

>     [ Member data: returns unsigned long  ]

`$this->{ulState}`

>     [ Member data: returns unsigned long  ]

### 4.8. NV_CFGEX_DISPLAY_TYPE

`$NV_CFGEX_GET_DISPLAY_TYPE = 140`

>     [ Constant: int  ]
>     ************ Get the Display Type *************

     definitions of Display Types

`$DISPLAY_TYPE_MONITOR = 0`

>     [ Constant: int  ]

`$DISPLAY_TYPE_TV = 1`

>     [ Constant: int  ]

`$DISPLAY_TYPE_DUALSURFACE = 2`

>     [ Constant: int  ]

`$DISPLAY_TYPE_FLAT_PANEL = 3`

>     [ Constant: int  ]

     definitions of TV types: see NV_CFG_VIDEO_TV_FORMAT

`$NV_CFGEX_SET_DISPLAY_TYPE = 141`

>     [ Constant: int  ]
>     ************ Set the Display Type *************

#### 4.8.1. class NV_CFGEX_GET_DISPLAY_TYPE_PARAMS

    [ created from struct NV_CFGEX_GET_DISPLAY_TYPE_PARAMS ]
    Param Structure

`$this->{Type}`

>     [ Member data: returns unsigned long  ]

`$this->{TVType}`

>     [ Member data: returns unsigned long  ]

#### 4.8.2. class NV_CFGEX_SET_DISPLAY_TYPE_PARAMS

    [ created from struct NV_CFGEX_SET_DISPLAY_TYPE_PARAMS ]
    Param Structure

`$this->{Type}`

>     [ Member data: returns unsigned long  ]

`$this->{TVType}`

>     [ Member data: returns unsigned long  ]

### 4.9. NV_CFGEX_GET_EDID

`$NV_CFGEX_GET_EDID = 210`

>     [ Constant: int  ]
>     ************ Get the monitor EDID ************************

    param structure
        displayType = see NV_CFGEX_GET_DISPLAY_TYPE for legal values
        *bufferLength = in/out

#### 4.9.1. class NV_CFGEX_GET_EDID_PARAMS

    [ created from struct NV_CFGEX_GET_EDID_PARAMS ]

`$this->{displayType}`

>     [ Member data: returns unsigned long  ]

`$this->{edidBuffer}`

>     [ Member data: returns unsigned char * ]

`$this->{bufferLength}`

>     [ Member data: returns unsigned long * ]

### 4.10. NV_CFGEX_GET_SURFACE_PITCH

`$NV_CFGEX_GET_SURFACE_PITCH = 300`

>     [ Constant: int  ]
>     ************ Return Pitch given Width/Depth **************

#### 4.10.1. class NV_CFGEX_GET_SURFACE_PITCH_PARAMS

    [ created from struct NV_CFGEX_GET_SURFACE_PITCH_PARAMS ]
    Param structure
      Width = in (pixels)
      Depth = in (bits per pixel)
      Pitch = out

`$this->{Width}`

>     [ Member data: returns unsigned long  ]

`$this->{Depth}`

>     [ Member data: returns unsigned long  ]

`$this->{Pitch}`

>     [ Member data: returns unsigned long  ]

### 4.11. NV_CFG_VIDEO_ENCODER_TYPE

`$NV_CFG_VIDEO_ENCODER_TYPE = 55`

>     [ Constant: int  ]

>     NV_CFG_VIDEO_ENCODER_TYPE - Return the external video decoder being used by this device

`$TV_ENCODER_BROOKTREE = 0x100`

>     [ Constant: int  ]

`$TV_ENCODER_CHRONTEL = 0x200`

>     [ Constant: int  ]

`$NV_ENCODER_NONE = 0`

>     [ Constant: int  ]

`$NV_ENCODER_BROOKTREE_868 = ((0x100)+1)`

>     [ Constant: int  ]

`$NV_ENCODER_BROOKTREE_869 = ((0x100)+2)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7003 = ((0x200)+3)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7004 = ((0x200)+4)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7005 = ((0x200)+5)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7006 = ((0x200)+6)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7007 = ((0x200)+7)`

>     [ Constant: int  ]

`$NV_ENCODER_CHRONTEL_7008 = ((0x200)+8)`

>     [ Constant: int  ]

### 4.12. NV_CFG_VIDEO_MONITOR_TYPE

`$NV_CFG_VIDEO_MONITOR_TYPE = 79`

>     [ Constant: int  ]

>     NV_CFG_VIDEO_MONITOR_TYPE - Return the monitor type being used by this device

>      0 - VGA
>      2 - NTSC TV
>      3 - PAL TV
>      4 - Flat Panel
>      All other values are reserved

`$MONITOR_TYPE_VGA = 0`

>     [ Constant: int  ]

`$MONITOR_TYPE_NTSC = 2`

>     [ Constant: int  ]

`$MONITOR_TYPE_PAL = 3`

>     [ Constant: int  ]

`$MONITOR_TYPE_FLAT_PANEL = 4`

>     [ Constant: int  ]

### 4.13. NV_CFG_VIDEO_OUTPUT_FORMAT

`$NV_CFG_VIDEO_OUTPUT_FORMAT = 90`

>     [ Constant: int  ]

>     NV_CFG_VIDEO_OUTPUT_FORMAT - Return/Set the NV4/5/10 TV output format (S-Video, Composite, or Auto)
>     0 = Auto, 1 = Composite, 2 = S-Video

`$NV_CFG_VIDEO_OUTPUT_FORMAT_AUTOSELECT = 0x0`

>     [ Constant: int  ]

`$NV_CFG_VIDEO_OUTPUT_FORMAT_FORCE_COMPOSITE = 0x1`

>     [ Constant: int  ]

`$NV_CFG_VIDEO_OUTPUT_FORMAT_FORCE_SVIDEO = 0x2`

>     [ Constant: int  ]

### 4.14. NV_CFG_PROCESSOR_TYPE

    //
    // NV_CFG_PROCESSOR_TYPE - Return the functionality of the system processor
    //
    // There are 2 pieces of data passed back, the processor indicator is in
    // the low 8 bits and its bitmask of functionality is in the upper 24
    //

`$NV_CPU_UNKNOWN = 0x00000000`

>     [ Constant: int  ]
>     Unknown / generic

     ----------Intel--------------

`$NV_CPU_P5 = 0x00000001`

>     [ Constant: int  ]

`$NV_CPU_P55 = 0x00000002`

>     [ Constant: int  ]
>     P55C - MMX

`$NV_CPU_P6 = 0x00000003`

>     [ Constant: int  ]
>     PPro

`$NV_CPU_P2 = 0x00000004`

>     [ Constant: int  ]
>     PentiumII

`$NV_CPU_P2XC = 0x00000005`

>     [ Constant: int  ]
>     Xeon & Celeron

`$NV_CPU_CELA = 0x00000006`

>     [ Constant: int  ]
>     Celeron-A

`$NV_CPU_P3 = 0x00000007`

>     [ Constant: int  ]
>     Pentium-III

     ----------AMD------------

`$NV_CPU_K5 = 0x00000030`

>     [ Constant: int  ]

`$NV_CPU_K6 = 0x00000031`

>     [ Constant: int  ]

`$NV_CPU_K62 = 0x00000032`

>     [ Constant: int  ]
>     K6-2 w/ 3DNow

`$NV_CPU_K63 = 0x00000033`

>     [ Constant: int  ]

`$NV_CPU_K7 = 0x00000034`

>     [ Constant: int  ]

     ---------IDT/Centaur-----------

`$NV_CPU_C6 = 0x00000060`

>     [ Constant: int  ]
>     WinChip C6

`$NV_CPU_C62 = 0x00000061`

>     [ Constant: int  ]
>     WinChip 2 w/ 3DNow

     ------------Cyrix-------------

`$NV_CPU_GX = 0x00000070`

>     [ Constant: int  ]
>     MediaGX

`$NV_CPU_M1 = 0x00000071`

>     [ Constant: int  ]
>     6x86

`$NV_CPU_M2 = 0x00000072`

>     [ Constant: int  ]
>     M2

`$NV_CPU_MGX = 0x00000073`

>     [ Constant: int  ]
>     MediaGX w/ MMX

     ------------Function bits---------

`$NV_CPU_FUNC_MMX = 0x00000100`

>     [ Constant: int  ]
>     supports MMX

`$NV_CPU_FUNC_SSE = 0x00000200`

>     [ Constant: int  ]
>     supports SSE

`$NV_CPU_FUNC_3DNOW = 0x00000400`

>     [ Constant: int  ]
>     supports 3DNow

### 4.15. CRTC RESERVED

    //
    // CRTC RESERVED TO INDEX 832
    //
    //
    // The following values are reserved
    //

`$NV_CFG_SET_JUMP_WRITE_PUT_READ_GET = 833`

>     [ Constant: int  ]

`$NV_STAT_INTERVAL_NSEC_LO = 1000`

>     [ Constant: int  ]

`$NV_STAT_INTERVAL_NSEC_HI = 1001`

>     [ Constant: int  ]

`$NV_STAT_FIFO_EXCEPTIONS = 1003`

>     [ Constant: int  ]

`$NV_STAT_FRAMEBUFFER_EXCEPTIONS = 1004`

>     [ Constant: int  ]

`$NV_STAT_GRAPHICS_EXCEPTIONS = 1005`

>     [ Constant: int  ]

`$NV_STAT_TIMER_EXCEPTIONS = 1006`

>     [ Constant: int  ]

`$NV_STAT_CHIP_EXCEPTIONS = 1050`

>     [ Constant: int  ]

`$NV_STAT_MEM_ALLOCATED = 1100`

>     [ Constant: int  ]

`$NV_STAT_MEM_LOCKED = 1101`

>     [ Constant: int  ]

`$NV_STAT_EXEC_NSEC_LO = 1200`

>     [ Constant: int  ]

`$NV_STAT_EXEC_NSEC_HI = 1201`

>     [ Constant: int  ]

`$NV_STAT_INT_NSEC_LO = 1202`

>     [ Constant: int  ]

`$NV_STAT_INT_NSEC_HI = 1203`

>     [ Constant: int  ]

### 4.16. Parameter to ConfigUpdate

`$NV_CFG_PERMANENT = 1`

>     [ Constant: int  ]

`$NV_CFG_TEMPORARY = 2`

>     [ Constant: int  ]

### 4.17. Configuration Manager API

    //
    //---------------------------------------------------------------------------
    //
    //  Configuration Manager API.
    //
    //---------------------------------------------------------------------------
    //
    //
    // DWORD NvConfigVersion(VOID)
    //
    //  Returns the revision of the ddk (config) interface built into the resource manager.
    //  This is used for version continuity between all the resource manager files,
    //  as well as provides the interface version for people using the config interface.
    //
    //  The format of this is 0xAAAABBCC, where
    //   - 0xAAAA is [nvidia internal]
    //   -   0xBB is the software release revision
    //   -   0xCC is the minor revision
    //
    //
    // DWORD NvConfigGet(DWORD Index, DWORD DeviceHandle)
    //
    //  Given an Index from NVCM.H and a pointer to a specific device (see SDK), return
    //  the current configuration value.  The format of the value is dependent on the
    //  index requested.
    //
    //
    // DWORD NvConfigSet(DWORD Index, DWORD NewValue, DWORD DeviceHandle)
    //
    //  Given an Index from NVCM.H, a pointer to a specific device (see SDK), and a new
    //  value, update the current configuration value.  This call returns the original
    //  value in that configuration index.  In general, most new values do not take affect
    //  until NvConfigUpdate() is called.  This allows multiple values to be batched
    //  together before enabling the change.
    //
    //
    // DWORD NvConfigUpdate(DWORD UpdateFlag, DWORD DeviceHandle)
    //
    //  Given an update flag and pointer to a specific device (see SDK), perform any previously
    //  batched NvConfigSet() calls.  This call returns an error code (0 denotes success).
    //  The only UpdateFlag currently in use is NV_CFG_PERMANENT.
    //

### 4.18. Device Defines

    /////////////////////////////////////////////////////////////////////////////
    //
    // THE FOLLOWING DEFINES AND ENTRY POINTS ARE NVIDIA RESERVED
    //
    //---------------------------------------------------------------------------
    //
    //  Device Defines.
    //
    //---------------------------------------------------------------------------

    //
    // Parameter to DeviceGet.
    //

`$NV_DEV_BASE = 1`

>     [ Constant: int  ]

`$NV_DEV_ALTERNATE = 2`

>     [ Constant: int  ]

`$NV_DEV_BUFFER_0 = 3`

>     [ Constant: int  ]

`$NV_DEV_BUFFER_1 = 4`

>     [ Constant: int  ]

`$NV_DEV_TIMER = 5`

>     [ Constant: int  ]

`$NV_DEV_PFB = 6`

>     [ Constant: int  ]

`$NV_DEV_PGRAPH = 7`

>     [ Constant: int  ]

`$NV_DEV_PRMCIO = 8`

>     [ Constant: int  ]

`$NV_DEV_PRMVIO = 9`

>     [ Constant: int  ]

`$NV_DEV_AGP = 10`

>     [ Constant: int  ]

`$NV_DEV_GAMMA = 11`

>     [ Constant: int  ]

`$NV_DEV_PRAMDAC = 12`

>     [ Constant: int  ]

`$NV_DEV_PCRTC = 13`

>     [ Constant: int  ]

`$NV_DEV_MAX = 13`

>     [ Constant: int  ]

## 5. NVidia resource manager API

      module nvRmApi.i

     *
     * nvRmApi.h
     *
     * NVidia resource manager API header file exported to drivers.
     *
     *

`NvRmOpen();`

>     [ returns HANDLE  ]

`NvRmClose();`

>     [ returns void  ]

`NvRmAllocRoot(phClient);`

>     [ returns ULONG  ]

`NvRmAllocDevice(hClient,hDevice,hClass,szName);`

>     [ returns ULONG  ]

`NvRmAllocContextDma(hClient,hDma,hClass,flags,base,limit);`

>     [ returns ULONG  ]

`NvRmAllocChannelPio(hClient,hDevice,hChannel,hClass,hErrorCtx,ppChannel,flags);`

>     [ returns ULONG  ]

`NvRmAllocChannelDma(hClient,hDevice,hChannel,hClass,hErrorCtx,hDataCtx,offset,ppChannel);`

>     [ returns ULONG  ]

`NvRmAllocMemory(hClient,hParent,hMemory,hClass,flags,ppAddress,pLimit);`

>     [ returns ULONG  ]

`NvRmAllocObject(hClient,hChannel,hObject,hClass);`

>     [ returns ULONG  ]

`NvRmFree(hClient,hParent,hObject);`

>     [ returns ULONG  ]

`Nv3RmGetDmaPushInfo(hClient,hDevice,hChannel,hDmaContext,get);`

>     [ returns ULONG  ]

`NvRmAllocEvent(hClient,hParent,object,hClass,hIndex,hEvent);`

>     [ returns ULONG  ]

`NvRmArchHeap(hClient,hParent,function,owner,type,height,size,pitch,offset,address,limit,free,total);`

>     [ returns ULONG  ]

`NvRmConfigVersion(hClient,hDevice,pVersion);`

>     [ returns ULONG  ]

`NvRmConfigGet(hClient,hDevice,index,pValue);`

>     [ returns ULONG  ]

`NvRmConfigSet(hClient,hDevice,index,newValue,pOldValue);`

>     [ returns ULONG  ]

`NvRmConfigUpdate(hClient,hDevice,flags);`

>     [ returns ULONG  ]

`NvRmInterrupt(hClient,hDevice);`

>     [ returns ULONG  ]

`NvRmRing0Callback(hClient,hDevice,procAddr,param1,param2);`

>     [ returns ULONG  ]

`NvRmConfigSetEx(hClient,hDevice,index,paramStructPtr,ParamSize);`

>     [ returns ULONG  ]

`NvRmConfigGetEx(hClient,hDevice,index,paramStructPtr,ParamSize);`

>     [ returns ULONG  ]

`NvRmI2CAccess(hClient,hDevice,ctrlStructPtr);`

>     [ returns ULONG  ]

### 5.1. class _iobuf

    [ created from struct _iobuf ]

`$this->{_ptr}`

>     [ Member data: returns char * ]

`$this->{_cnt}`

>     [ Member data: returns int  ]

`$this->{_base}`

>     [ Member data: returns char * ]

`$this->{_flag}`

>     [ Member data: returns int  ]

`$this->{_file}`

>     [ Member data: returns int  ]

`$this->{_charbuf}`

>     [ Member data: returns int  ]

`$this->{_bufsiz}`

>     [ Member data: returns int  ]

`$this->{_tmpfname}`

>     [ Member data: returns char * ]

## 6. Other Definitions

      module nv32.i

     Other Definitions

`$NV01_DEVICE_0 = (0x00000080)`

>     [ Constant: int  ]

`$NV080_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_1 = (0x00000081)`

>     [ Constant: int  ]

`$NV081_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_2 = (0x00000082)`

>     [ Constant: int  ]

`$NV082_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_3 = (0x00000083)`

>     [ Constant: int  ]

`$NV083_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_4 = (0x00000084)`

>     [ Constant: int  ]

`$NV084_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_5 = (0x00000085)`

>     [ Constant: int  ]

`$NV085_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_6 = (0x00000086)`

>     [ Constant: int  ]

`$NV086_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV01_DEVICE_7 = (0x00000087)`

>     [ Constant: int  ]

`$NV087_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV3_CHANNEL_PIO = (0x0000006A)`

>     [ Constant: int  ]

`$NV03_CHANNEL_DMA = (0x0000006B)`

>     [ Constant: int  ]

`$NV06B_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV04_CHANNEL_PIO = (0x0000006D)`

>     [ Constant: int  ]

`$NV06D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT = (0x4000)`

>     [ Constant: int  ]

`$NV06D_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT = (0x2000)`

>     [ Constant: int  ]

`$NV06D_NOTIFICATION_STATUS_ERROR_FLOW_CONTROL = (0x0200)`

>     [ Constant: int  ]