2 /// Copyright (c) 2008 - 2012 Advanced Micro Devices, Inc.
4 /// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
5 /// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
6 /// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
8 /// \file adl_structures.h
9 ///\brief This file contains the structure declarations that are used by the public ADL interfaces for \ALL platforms.\n <b>Included in ADL SDK</b>
11 /// All data structures used in AMD Display Library (ADL) public interfaces should be defined in this header file.
14 #ifndef ADL_STRUCTURES_H_
15 #define ADL_STRUCTURES_H_
17 #include "adl_defines.h"
19 /////////////////////////////////////////////////////////////////////////////////////////////
20 ///\brief Structure containing information about the graphics adapter.
22 /// This structure is used to store various information about the graphics adapter. This
23 /// information can be returned to the user. Alternatively, it can be used to access various driver calls to set
24 /// or fetch various settings upon the user's request.
26 ////////////////////////////////////////////////////////////////////////////////////////////
27 typedef struct AdapterInfo
31 /// Size of the structure.
33 /// The ADL index handle. One GPU may be associated with one or two index handles
35 /// The unique device ID associated with this adapter.
36 char strUDID
[ADL_MAX_PATH
];
37 /// The BUS number associated with this adapter.
39 /// The driver number associated with this adapter.
41 /// The function number.
43 /// The vendor ID associated with this adapter.
46 char strAdapterName
[ADL_MAX_PATH
];
47 /// Display name. For example, "\\Display0" for Windows or ":0:0" for Linux.
48 char strDisplayName
[ADL_MAX_PATH
];
49 /// Present or not; 1 if present and 0 if not present.It the logical adapter is present, the display name such as \\.\Display1 can be found from OS
53 #if defined (_WIN32) || defined (_WIN64)
56 /// Exist or not; 1 is exist and 0 is not present.
58 /// Driver registry path.
59 char strDriverPath
[ADL_MAX_PATH
];
60 /// Driver registry path Ext for.
61 char strDriverPathExt
[ADL_MAX_PATH
];
62 /// PNP string from Windows.
63 char strPNPString
[ADL_MAX_PATH
];
64 /// It is generated from EnumDisplayDevices.
67 #endif /* (_WIN32) || (_WIN64) */
72 /// Internal X screen number from GPUMapInfo (DEPRICATED use XScreenInfo)
74 /// Internal driver index from GPUMapInfo
76 /// \deprecated Internal x config file screen identifier name. Use XScreenInfo instead.
77 char strXScreenConfigName
[ADL_MAX_PATH
];
81 } AdapterInfo
, *LPAdapterInfo
;
83 /////////////////////////////////////////////////////////////////////////////////////////////
84 ///\brief Structure containing information about the Linux X screen information.
86 /// This structure is used to store the current screen number and xorg.conf ID name assoicated with an adapter index.
87 /// This structure is updated during ADL_Main_Control_Refresh or ADL_ScreenInfo_Update.
88 /// Note: This structure should be used in place of iXScreenNum and strXScreenConfigName in AdapterInfo as they will be
91 ////////////////////////////////////////////////////////////////////////////////////////////
93 typedef struct XScreenInfo
95 /// Internal X screen number from GPUMapInfo.
97 /// Internal x config file screen identifier name.
98 char strXScreenConfigName
[ADL_MAX_PATH
];
99 } XScreenInfo
, *LPXScreenInfo
;
103 /////////////////////////////////////////////////////////////////////////////////////////////
104 ///\brief Structure containing information about the ASIC memory.
106 /// This structure is used to store various information about the ASIC memory. This
107 /// information can be returned to the user.
109 ////////////////////////////////////////////////////////////////////////////////////////////
110 typedef struct ADLMemoryInfo
112 /// Memory size in bytes.
113 long long iMemorySize
;
114 /// Memory type in string.
115 char strMemoryType
[ADL_MAX_PATH
];
116 /// Memory bandwidth in Mbytes/s.
117 long long iMemoryBandwidth
;
118 } ADLMemoryInfo
, *LPADLMemoryInfo
;
120 /////////////////////////////////////////////////////////////////////////////////////////////
121 ///\brief Structure containing information about memory required by type
123 /// This structure is returned by ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
124 /// will return the Memory used.
126 ////////////////////////////////////////////////////////////////////////////////////////////
127 typedef struct ADLMemoryRequired
129 long long iMemoryReq
; /// Memory in bytes required
130 int iType
; /// Type of Memory \ref define_adl_validmemoryrequiredfields
131 int iDisplayFeatureValue
; /// Display features \ref define_adl_visiblememoryfeatures that are using this type of memory
132 } ADLMemoryRequired
, *LPADLMemoryRequired
;
134 /////////////////////////////////////////////////////////////////////////////////////////////
135 ///\brief Structure containing information about the features associated with a display
137 /// This structure is a parameter to ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
138 /// will return the Memory used.
140 ////////////////////////////////////////////////////////////////////////////////////////////
141 typedef struct ADLMemoryDisplayFeatures
143 int iDisplayIndex
; /// ADL Display index
144 int iDisplayFeatureValue
; /// features that the display is using \ref define_adl_visiblememoryfeatures
145 } ADLMemoryDisplayFeatures
, *LPADLMemoryDisplayFeatures
;
147 /////////////////////////////////////////////////////////////////////////////////////////////
148 ///\brief Structure containing DDC information.
150 /// This structure is used to store various DDC information that can be returned to the user.
151 /// Note that all fields of type int are actually defined as unsigned int types within the driver.
153 ////////////////////////////////////////////////////////////////////////////////////////////
154 typedef struct ADLDDCInfo
156 /// Size of the structure
158 /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC information fields will be used.
160 /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
161 int ulManufacturerID
;
162 /// Returns the product ID of the display device. Should be zeroed if this information is not available.
164 /// Returns the name of the display device. Should be zeroed if this information is not available.
165 char cDisplayName
[ADL_MAX_DISPLAY_NAME
];
166 /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
167 int ulMaxHResolution
;
168 /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
169 int ulMaxVResolution
;
170 /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
172 /// Returns the display device preferred timing mode's horizontal resolution.
174 /// Returns the display device preferred timing mode's vertical resolution.
176 /// Returns the display device preferred timing mode's refresh rate.
177 int ulPTMRefreshRate
;
178 /// Return EDID flags.
180 } ADLDDCInfo
, *LPADLDDCInfo
;
182 /////////////////////////////////////////////////////////////////////////////////////////////
183 ///\brief Structure containing DDC information.
185 /// This structure is used to store various DDC information that can be returned to the user.
186 /// Note that all fields of type int are actually defined as unsigned int types within the driver.
188 ////////////////////////////////////////////////////////////////////////////////////////////
189 typedef struct ADLDDCInfo2
191 /// Size of the structure
193 /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC
194 /// information fields will be used.
196 /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
197 int ulManufacturerID
;
198 /// Returns the product ID of the display device. Should be zeroed if this information is not available.
200 /// Returns the name of the display device. Should be zeroed if this information is not available.
201 char cDisplayName
[ADL_MAX_DISPLAY_NAME
];
202 /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
203 int ulMaxHResolution
;
204 /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
205 int ulMaxVResolution
;
206 /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
208 /// Returns the display device preferred timing mode's horizontal resolution.
210 /// Returns the display device preferred timing mode's vertical resolution.
212 /// Returns the display device preferred timing mode's refresh rate.
213 int ulPTMRefreshRate
;
214 /// Return EDID flags.
216 // Returns 1 if the display supported packed pixel, 0 otherwise
217 int bPackedPixelSupported
;
218 // Returns the Pixel formats the display supports \ref define_ddcinfo_pixelformats
219 int iPanelPixelFormat
;
220 /// Return EDID serial ID.
222 // Reserved for future use
224 } ADLDDCInfo2
, *LPADLDDCInfo2
;
226 /////////////////////////////////////////////////////////////////////////////////////////////
227 ///\brief Structure containing information controller Gamma settings.
229 /// This structure is used to store the red, green and blue color channel information for the.
230 /// controller gamma setting. This information is returned by ADL, and it can also be used to
231 /// set the controller gamma setting.
233 ////////////////////////////////////////////////////////////////////////////////////////////
234 typedef struct ADLGamma
236 /// Red color channel gamma value.
238 /// Green color channel gamma value.
240 /// Blue color channel gamma value.
242 } ADLGamma
, *LPADLGamma
;
244 /////////////////////////////////////////////////////////////////////////////////////////////
245 ///\brief Structure containing information about component video custom modes.
247 /// This structure is used to store the component video custom mode.
249 ////////////////////////////////////////////////////////////////////////////////////////////
250 typedef struct ADLCustomMode
252 /// Custom mode flags. They are returned by the ADL driver.
254 /// Custom mode width.
256 /// Custom mode height.
258 /// Custom mode base width.
260 /// Custom mode base height.
262 /// Custom mode refresh rate.
264 } ADLCustomMode
, *LPADLCustomMode
;
266 /////////////////////////////////////////////////////////////////////////////////////////////
267 ///\brief Structure containing Clock information for OD5 calls.
269 /// This structure is used to retrieve clock information for OD5 calls.
271 ////////////////////////////////////////////////////////////////////////////////////////////
272 typedef struct ADLGetClocksOUT
274 long ulHighCoreClock
;
275 long ulHighMemoryClock
;
281 long ulActivityPercent
;
282 long ulCurrentCoreClock
;
283 long ulCurrentMemoryClock
;
287 /////////////////////////////////////////////////////////////////////////////////////////////
288 ///\brief Structure containing HDTV information for display calls.
290 /// This structure is used to retrieve HDTV information information for display calls.
292 ////////////////////////////////////////////////////////////////////////////////////////////
293 typedef struct ADLDisplayConfig
295 /// Size of the structure
297 /// HDTV connector type.
298 long ulConnectorType
;
299 /// HDTV capabilities.
301 /// Overridden HDTV capabilities.
302 long ulOverridedDeviceData
;
308 /////////////////////////////////////////////////////////////////////////////////////////////
309 ///\brief Structure containing information about the display device.
311 /// This structure is used to store display device information
312 /// such as display index, type, name, connection status, mapped adapter and controller indexes,
313 /// whether or not multiple VPUs are supported, local display connections or not (through Lasso), etc.
314 /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to set
315 /// or fetch various display device related settings upon the user's request.
317 ////////////////////////////////////////////////////////////////////////////////////////////
318 typedef struct ADLDisplayID
320 /// The logical display index belonging to this adapter.
321 int iDisplayLogicalIndex
;
323 ///\brief The physical display index.
324 /// For example, display index 2 from adapter 2 can be used by current adapter 1.\n
325 /// So current adapter may enumerate this adapter as logical display 7 but the physical display
326 /// index is still 2.
327 int iDisplayPhysicalIndex
;
329 /// The persistent logical adapter index for the display.
330 int iDisplayLogicalAdapterIndex
;
332 ///\brief The persistent physical adapter index for the display.
333 /// It can be the current adapter or a non-local adapter. \n
334 /// If this adapter index is different than the current adapter,
335 /// the Display Non Local flag is set inside DisplayInfoValue.
336 int iDisplayPhysicalAdapterIndex
;
337 } ADLDisplayID
, *LPADLDisplayID
;
339 /////////////////////////////////////////////////////////////////////////////////////////////
340 ///\brief Structure containing information about the display device.
342 /// This structure is used to store various information about the display device. This
343 /// information can be returned to the user, or used to access various driver calls to set
344 /// or fetch various display-device-related settings upon the user's request
346 ////////////////////////////////////////////////////////////////////////////////////////////
347 typedef struct ADLDisplayInfo
349 /// The DisplayID structure
350 ADLDisplayID displayID
;
352 ///\deprecated The controller index to which the display is mapped.\n Will not be used in the future\n
353 int iDisplayControllerIndex
;
355 /// The display's EDID name.
356 char strDisplayName
[ADL_MAX_PATH
];
358 /// The display's manufacturer name.
359 char strDisplayManufacturerName
[ADL_MAX_PATH
];
361 /// The Display type. For example: CRT, TV, CV, DFP.
364 /// The display output type. For example: HDMI, SVIDEO, COMPONMNET VIDEO.
365 int iDisplayOutputType
;
367 /// The connector type for the device.
368 int iDisplayConnector
;
370 ///\brief The bit mask identifies the number of bits ADLDisplayInfo is currently using. \n
371 /// It will be the sum all the bit definitions in ADL_DISPLAY_DISPLAYINFO_xxx.
372 int iDisplayInfoMask
;
374 /// The bit mask identifies the display status. \ref define_displayinfomask
375 int iDisplayInfoValue
;
376 } ADLDisplayInfo
, *LPADLDisplayInfo
;
378 /////////////////////////////////////////////////////////////////////////////////////////////
379 ///\brief Structure containing information about the display port MST device.
381 /// This structure is used to store various MST information about the display port device. This
382 /// information can be returned to the user, or used to access various driver calls to
383 /// fetch various display-device-related settings upon the user's request
385 ////////////////////////////////////////////////////////////////////////////////////////////
386 typedef struct ADLDisplayDPMSTInfo
388 /// The ADLDisplayID structure
389 ADLDisplayID displayID
;
391 /// total bandwidth available on the DP connector
392 int iTotalAvailableBandwidthInMpbs
;
393 /// bandwidth allocated to this display
394 int iAllocatedBandwidthInMbps
;
396 // info from DAL DpMstSinkInfo
397 /// string identifier for the display
398 char strGlobalUniqueIdentifier
[ADL_MAX_PATH
];
400 /// The link count of relative address, rad[0] upto rad[linkCount] are valid
402 /// The physical connector ID, used to identify the physical DP port
403 int iPhysicalConnectorID
;
405 /// Relative address, address scheme starts from source side
406 char rad
[ADL_MAX_RAD_LINK_COUNT
];
407 } ADLDisplayDPMSTInfo
, *LPADLDisplayDPMSTInfo
;
409 /////////////////////////////////////////////////////////////////////////////////////////////
410 ///\brief Structure containing the display mode definition used per controller.
412 /// This structure is used to store the display mode definition used per controller.
414 ////////////////////////////////////////////////////////////////////////////////////////////
415 typedef struct ADLDisplayMode
417 /// Vertical resolution (in pixels).
419 /// Horizontal resolution (in pixels).
424 int iDisplayFrequency
;
427 /////////////////////////////////////////////////////////////////////////////////////////////
428 ///\brief Structure containing detailed timing parameters.
430 /// This structure is used to store the detailed timing parameters.
432 ////////////////////////////////////////////////////////////////////////////////////////////
433 typedef struct ADLDetailedTiming
435 /// Size of the structure.
437 /// Timing flags. \ref define_detailed_timing_flags
439 /// Total width (columns).
443 /// Horizontal sync signal offset.
445 /// Horizontal sync signal width.
447 /// Total height (rows).
449 /// Displayed height.
451 /// Vertical sync signal offset.
453 /// Vertical sync signal width.
455 /// Pixel clock value.
458 short sHOverscanRight
;
460 short sHOverscanLeft
;
462 short sVOverscanBottom
;
469 /////////////////////////////////////////////////////////////////////////////////////////////
470 ///\brief Structure containing display mode information.
472 /// This structure is used to store the display mode information.
474 ////////////////////////////////////////////////////////////////////////////////////////////
475 typedef struct ADLDisplayModeInfo
477 /// Timing standard of the current mode. \ref define_modetiming_standard
479 /// Applicable timing standards for the current mode.
480 int iPossibleStandard
;
481 /// Refresh rate factor.
483 /// Num of pixels in a row.
485 /// Num of pixels in a column.
487 /// Detailed timing parameters.
488 ADLDetailedTiming sDetailedTiming
;
489 } ADLDisplayModeInfo
;
491 /////////////////////////////////////////////////////////////////////////////////////////////
492 /// \brief Structure containing information about display property.
494 /// This structure is used to store the display property for the current adapter.
496 ////////////////////////////////////////////////////////////////////////////////////////////
497 typedef struct ADLDisplayProperty
499 /// Must be set to sizeof the structure
501 /// Must be set to \ref ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE or \ref ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING
503 /// Get or Set \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO or \ref ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE
505 /// Display Property supported? 1: Supported, 0: Not supported
507 /// Display Property current value
509 /// Display Property Default value
511 } ADLDisplayProperty
;
513 /////////////////////////////////////////////////////////////////////////////////////////////
514 ///\brief Structure containing information about Clock.
516 /// This structure is used to store the clock information for the current adapter
517 /// such as core clock and memory clock info.
519 ////////////////////////////////////////////////////////////////////////////////////////////
520 typedef struct ADLClockInfo
522 /// Core clock in 10 KHz.
524 /// Memory clock in 10 KHz.
526 } ADLClockInfo
, *LPADLClockInfo
;
528 /////////////////////////////////////////////////////////////////////////////////////////////
529 ///\brief Structure containing information about I2C.
531 /// This structure is used to store the I2C information for the current adapter.
532 /// This structure is used by the ADL_Display_WriteAndReadI2C() function.
534 ////////////////////////////////////////////////////////////////////////////////////////////
535 typedef struct ADLI2C
537 /// Size of the structure
539 /// Numerical value representing hardware I2C.
541 /// The 7-bit I2C slave device address, shifted one bit to the left.
543 /// The offset of the data from the address.
545 /// Read from or write to slave device. \ref ADL_DL_I2C_ACTIONREAD or \ref ADL_DL_I2C_ACTIONWRITE or \ref ADL_DL_I2C_ACTIONREAD_REPEATEDSTART
547 /// I2C clock speed in KHz.
549 /// A numerical value representing the number of bytes to be sent or received on the I2C bus.
551 /// Address of the characters which are to be sent or received on the I2C bus.
555 /////////////////////////////////////////////////////////////////////////////////////////////
556 ///\brief Structure containing information about EDID data.
558 /// This structure is used to store the information about EDID data for the adapter.
559 /// This structure is used by the ADL_Display_EdidData_Get() and ADL_Display_EdidData_Set() functions.
561 ////////////////////////////////////////////////////////////////////////////////////////////
562 typedef struct ADLDisplayEDIDData
564 /// Size of the structure
568 /// Size of cEDIDData. Set by ADL_Display_EdidData_Get() upon return
570 /// 0, 1 or 2. If set to 3 or above an error ADL_ERR_INVALID_PARAM is generated
573 char cEDIDData
[ADL_MAX_EDIDDATA_SIZE
];
578 /////////////////////////////////////////////////////////////////////////////////////////////
579 ///\brief Structure containing information about input of controller overlay adjustment.
581 /// This structure is used to store the information about input of controller overlay adjustment for the adapter.
582 /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get, ADL_Display_ControllerOverlayAdjustmentData_Get, and
583 /// ADL_Display_ControllerOverlayAdjustmentData_Set() functions.
585 ////////////////////////////////////////////////////////////////////////////////////////////
586 typedef struct ADLControllerOverlayInput
588 /// Should be set to the sizeof the structure
590 ///\ref ADL_DL_CONTROLLER_OVERLAY_ALPHA or \ref ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX
596 } ADLControllerOverlayInput
;
598 /////////////////////////////////////////////////////////////////////////////////////////////
599 ///\brief Structure containing information about overlay adjustment.
601 /// This structure is used to store the information about overlay adjustment for the adapter.
602 /// This structure is used by the ADLControllerOverlayInfo() function.
604 ////////////////////////////////////////////////////////////////////////////////////////////
605 typedef struct ADLAdjustmentinfo
617 /////////////////////////////////////////////////////////////////////////////////////////////
618 ///\brief Structure containing information about controller overlay information.
620 /// This structure is used to store information about controller overlay info for the adapter.
621 /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get() function.
623 ////////////////////////////////////////////////////////////////////////////////////////////
624 typedef struct ADLControllerOverlayInfo
626 /// Should be set to the sizeof the structure
629 ADLAdjustmentinfo sOverlayInfo
;
632 } ADLControllerOverlayInfo
;
634 /////////////////////////////////////////////////////////////////////////////////////////////
635 ///\brief Structure containing GL-Sync module information.
637 /// This structure is used to retrieve GL-Sync module information for
638 /// Workstation Framelock/Genlock.
640 ////////////////////////////////////////////////////////////////////////////////////////////
641 typedef struct ADLGLSyncModuleID
643 /// Unique GL-Sync module ID.
645 /// GL-Sync GPU port index (to be passed into ADLGLSyncGenlockConfig.lSignalSource and ADLGlSyncPortControl.lSignalSource).
647 /// GL-Sync module firmware version of Boot Sector.
648 int iFWBootSectorVersion
;
649 /// GL-Sync module firmware version of User Sector.
650 int iFWUserSectorVersion
;
651 } ADLGLSyncModuleID
, *LPADLGLSyncModuleID
;
653 /////////////////////////////////////////////////////////////////////////////////////////////
654 ///\brief Structure containing GL-Sync ports capabilities.
656 /// This structure is used to retrieve hardware capabilities for the ports of the GL-Sync module
657 /// for Workstation Framelock/Genlock (such as port type and number of associated LEDs).
659 ////////////////////////////////////////////////////////////////////////////////////////////
660 typedef struct ADLGLSyncPortCaps
662 /// Port type. Bitfield of ADL_GLSYNC_PORTTYPE_* \ref define_glsync
664 /// Number of LEDs associated for this port.
666 }ADLGLSyncPortCaps
, *LPADLGLSyncPortCaps
;
668 /////////////////////////////////////////////////////////////////////////////////////////////
669 ///\brief Structure containing GL-Sync Genlock settings.
671 /// This structure is used to get and set genlock settings for the GPU ports of the GL-Sync module
672 /// for Workstation Framelock/Genlock.\n
673 /// \see define_glsync
675 ////////////////////////////////////////////////////////////////////////////////////////////
676 typedef struct ADLGLSyncGenlockConfig
678 /// Specifies what fields in this structure are valid \ref define_glsync
680 /// Delay (ms) generating a sync signal.
682 /// Vector of framelock control bits. Bitfield of ADL_GLSYNC_FRAMELOCKCNTL_* \ref define_glsync
683 int iFramelockCntlVector
;
684 /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
686 /// Use sampled sync signal. A value of 0 specifies no sampling.
688 /// For interlaced sync signals, the value can be ADL_GLSYNC_SYNCFIELD_1 or *_BOTH \ref define_glsync
690 /// The signal edge that should trigger synchronization. ADL_GLSYNC_TRIGGEREDGE_* \ref define_glsync
692 /// Scan rate multiplier applied to the sync signal. ADL_GLSYNC_SCANRATECOEFF_* \ref define_glsync
694 }ADLGLSyncGenlockConfig
, *LPADLGLSyncGenlockConfig
;
696 /////////////////////////////////////////////////////////////////////////////////////////////
697 ///\brief Structure containing GL-Sync port information.
699 /// This structure is used to get status of the GL-Sync ports (BNC or RJ45s)
700 /// for Workstation Framelock/Genlock.
701 /// \see define_glsync
703 ////////////////////////////////////////////////////////////////////////////////////////////
704 typedef struct ADLGlSyncPortInfo
706 /// Type of GL-Sync port (ADL_GLSYNC_PORT_*).
708 /// The number of LEDs for this port. It's also filled within ADLGLSyncPortCaps.
710 /// Port state ADL_GLSYNC_PORTSTATE_* \ref define_glsync
712 /// Scanned frequency for this port (vertical refresh rate in milliHz; 60000 means 60 Hz).
714 /// Used for ADL_GLSYNC_PORT_BNC. It is ADL_GLSYNC_SIGNALTYPE_* \ref define_glsync
716 /// Used for ADL_GLSYNC_PORT_RJ45PORT*. It is GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_*. \ref define_glsync
719 } ADLGlSyncPortInfo
, *LPADLGlSyncPortInfo
;
721 /////////////////////////////////////////////////////////////////////////////////////////////
722 ///\brief Structure containing GL-Sync port control settings.
724 /// This structure is used to configure the GL-Sync ports (RJ45s only)
725 /// for Workstation Framelock/Genlock.
726 /// \see define_glsync
728 ////////////////////////////////////////////////////////////////////////////////////////////
729 typedef struct ADLGlSyncPortControl
731 /// Port to control ADL_GLSYNC_PORT_RJ45PORT1 or ADL_GLSYNC_PORT_RJ45PORT2 \ref define_glsync
733 /// Port control data ADL_GLSYNC_PORTCNTL_* \ref define_glsync
735 /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
737 } ADLGlSyncPortControl
;
739 /////////////////////////////////////////////////////////////////////////////////////////////
740 ///\brief Structure containing GL-Sync mode of a display.
742 /// This structure is used to get and set GL-Sync mode settings for a display connected to
743 /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
744 /// \see define_glsync
746 ////////////////////////////////////////////////////////////////////////////////////////////
747 typedef struct ADLGlSyncMode
749 /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
751 /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
753 /// Index of GL-Sync connector used to genlock the display/controller.
754 int iGLSyncConnectorIndex
;
755 } ADLGlSyncMode
, *LPADLGlSyncMode
;
757 /////////////////////////////////////////////////////////////////////////////////////////////
758 ///\brief Structure containing GL-Sync mode of a display.
760 /// This structure is used to get and set GL-Sync mode settings for a display connected to
761 /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
762 /// \see define_glsync
764 ////////////////////////////////////////////////////////////////////////////////////////////
765 typedef struct ADLGlSyncMode2
767 /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
769 /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
771 /// Index of GL-Sync connector used to genlock the display/controller.
772 int iGLSyncConnectorIndex
;
773 /// Index of the display to which this GLSync applies to.
775 } ADLGlSyncMode2
, *LPADLGlSyncMode2
;
778 /////////////////////////////////////////////////////////////////////////////////////////////
779 ///\brief Structure containing the packet info of a display.
781 /// This structure is used to get and set the packet information of a display.
782 /// This structure is used by ADLDisplayDataPacket.
784 ////////////////////////////////////////////////////////////////////////////////////////////
785 typedef struct ADLInfoPacket
794 /////////////////////////////////////////////////////////////////////////////////////////////
795 ///\brief Structure containing the AVI packet info of a display.
797 /// This structure is used to get and set AVI the packet info of a display.
798 /// This structure is used by ADLDisplayDataPacket.
800 ////////////////////////////////////////////////////////////////////////////////////////////
801 typedef struct ADLAVIInfoPacket
//Valid user defined data/
805 /// byte 5, bit [7:4].
809 // Overdrive clock setting structure definition.
811 /////////////////////////////////////////////////////////////////////////////////////////////
812 ///\brief Structure containing the Overdrive clock setting.
814 /// This structure is used to get the Overdrive clock setting.
815 /// This structure is used by ADLAdapterODClockInfo.
817 ////////////////////////////////////////////////////////////////////////////////////////////
818 typedef struct ADLODClockSetting
834 /////////////////////////////////////////////////////////////////////////////////////////////
835 ///\brief Structure containing the Overdrive clock information.
837 /// This structure is used to get the Overdrive clock information.
838 /// This structure is used by the ADL_Display_ODClockInfo_Get() function.
840 ////////////////////////////////////////////////////////////////////////////////////////////
841 typedef struct ADLAdapterODClockInfo
843 /// Size of the structure
845 /// Flag \ref define_clockinfo_flags
848 ADLODClockSetting sMemoryClock
;
850 ADLODClockSetting sEngineClock
;
851 } ADLAdapterODClockInfo
;
853 /////////////////////////////////////////////////////////////////////////////////////////////
854 ///\brief Structure containing the Overdrive clock configuration.
856 /// This structure is used to set the Overdrive clock configuration.
857 /// This structure is used by the ADL_Display_ODClockConfig_Set() function.
859 ////////////////////////////////////////////////////////////////////////////////////////////
860 typedef struct ADLAdapterODClockConfig
862 /// Size of the structure
864 /// Flag \ref define_clockinfo_flags
870 } ADLAdapterODClockConfig
;
872 /////////////////////////////////////////////////////////////////////////////////////////////
873 ///\brief Structure containing information about current power management related activity.
875 /// This structure is used to store information about current power management related activity.
876 /// This structure (Overdrive 5 interfaces) is used by the ADL_PM_CurrentActivity_Get() function.
878 ////////////////////////////////////////////////////////////////////////////////////////////
879 typedef struct ADLPMActivity
881 /// Must be set to the size of the structure
883 /// Current engine clock.
885 /// Current memory clock.
887 /// Current core voltage.
890 int iActivityPercent
;
891 /// Performance level index.
892 int iCurrentPerformanceLevel
;
893 /// Current PCIE bus speed.
894 int iCurrentBusSpeed
;
895 /// Number of PCIE bus lanes.
896 int iCurrentBusLanes
;
897 /// Maximum number of PCIE bus lanes.
898 int iMaximumBusLanes
;
899 /// Reserved for future purposes.
903 /////////////////////////////////////////////////////////////////////////////////////////////
904 ///\brief Structure containing information about thermal controller.
906 /// This structure is used to store information about thermal controller.
907 /// This structure is used by ADL_PM_ThermalDevices_Enum.
909 ////////////////////////////////////////////////////////////////////////////////////////////
910 typedef struct ADLThermalControllerInfo
912 /// Must be set to the size of the structure
914 /// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
918 /// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
920 } ADLThermalControllerInfo
;
922 /////////////////////////////////////////////////////////////////////////////////////////////
923 ///\brief Structure containing information about thermal controller temperature.
925 /// This structure is used to store information about thermal controller temperature.
926 /// This structure is used by the ADL_PM_Temperature_Get() function.
928 ////////////////////////////////////////////////////////////////////////////////////////////
929 typedef struct ADLTemperature
931 /// Must be set to the size of the structure
933 /// Temperature in millidegrees Celsius.
937 /////////////////////////////////////////////////////////////////////////////////////////////
938 ///\brief Structure containing information about thermal controller fan speed.
940 /// This structure is used to store information about thermal controller fan speed.
941 /// This structure is used by the ADL_PM_FanSpeedInfo_Get() function.
943 ////////////////////////////////////////////////////////////////////////////////////////////
944 typedef struct ADLFanSpeedInfo
946 /// Must be set to the size of the structure
948 /// \ref define_fanctrl
950 /// Minimum possible fan speed value in percents.
952 /// Maximum possible fan speed value in percents.
954 /// Minimum possible fan speed value in RPM.
956 /// Maximum possible fan speed value in RPM.
960 /////////////////////////////////////////////////////////////////////////////////////////////
961 ///\brief Structure containing information about fan speed reported by thermal controller.
963 /// This structure is used to store information about fan speed reported by thermal controller.
964 /// This structure is used by the ADL_Overdrive5_FanSpeed_Get() and ADL_Overdrive5_FanSpeed_Set() functions.
966 ////////////////////////////////////////////////////////////////////////////////////////////
967 typedef struct ADLFanSpeedValue
969 /// Must be set to the size of the structure
971 /// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
975 /// The only flag for now is: \ref ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED
979 ////////////////////////////////////////////////////////////////////////////////////////////
980 ///\brief Structure containing the range of Overdrive parameter.
982 /// This structure is used to store information about the range of Overdrive parameter.
983 /// This structure is used by ADLODParameters.
985 ////////////////////////////////////////////////////////////////////////////////////////////
986 typedef struct ADLODParameterRange
988 /// Minimum parameter value.
990 /// Maximum parameter value.
992 /// Parameter step value.
994 } ADLODParameterRange
;
996 /////////////////////////////////////////////////////////////////////////////////////////////
997 ///\brief Structure containing information about Overdrive parameters.
999 /// This structure is used to store information about Overdrive parameters.
1000 /// This structure is used by the ADL_Overdrive5_ODParameters_Get() function.
1002 ////////////////////////////////////////////////////////////////////////////////////////////
1003 typedef struct ADLODParameters
1005 /// Must be set to the size of the structure
1007 /// Number of standard performance states.
1008 int iNumberOfPerformanceLevels
;
1009 /// Indicates whether the GPU is capable to measure its activity.
1010 int iActivityReportingSupported
;
1011 /// Indicates whether the GPU supports discrete performance levels or performance range.
1012 int iDiscretePerformanceLevels
;
1013 /// Reserved for future use.
1015 /// Engine clock range.
1016 ADLODParameterRange sEngineClock
;
1017 /// Memory clock range.
1018 ADLODParameterRange sMemoryClock
;
1019 /// Core voltage range.
1020 ADLODParameterRange sVddc
;
1023 /////////////////////////////////////////////////////////////////////////////////////////////
1024 ///\brief Structure containing information about Overdrive level.
1026 /// This structure is used to store information about Overdrive level.
1027 /// This structure is used by ADLODPerformanceLevels.
1029 ////////////////////////////////////////////////////////////////////////////////////////////
1030 typedef struct ADLODPerformanceLevel
1038 } ADLODPerformanceLevel
;
1040 /////////////////////////////////////////////////////////////////////////////////////////////
1041 ///\brief Structure containing information about Overdrive performance levels.
1043 /// This structure is used to store information about Overdrive performance levels.
1044 /// This structure is used by the ADL_Overdrive5_ODPerformanceLevels_Get() and ADL_Overdrive5_ODPerformanceLevels_Set() functions.
1046 ////////////////////////////////////////////////////////////////////////////////////////////
1047 typedef struct ADLODPerformanceLevels
1049 /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
1052 /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
1053 ADLODPerformanceLevel aLevels
[1];
1054 } ADLODPerformanceLevels
;
1056 /////////////////////////////////////////////////////////////////////////////////////////////
1057 ///\brief Structure containing information about the proper CrossfireX chains combinations.
1059 /// This structure is used to store information about the CrossfireX chains combination for a particular adapter.
1060 /// This structure is used by the ADL_Adapter_Crossfire_Caps(), ADL_Adapter_Crossfire_Get(), and ADL_Adapter_Crossfire_Set() functions.
1062 ////////////////////////////////////////////////////////////////////////////////////////////
1063 typedef struct ADLCrossfireComb
1065 /// Number of adapters in this combination.
1066 int iNumLinkAdapter
;
1067 /// A list of ADL indexes of the linked adapters in this combination.
1071 /////////////////////////////////////////////////////////////////////////////////////////////
1072 ///\brief Structure containing CrossfireX state and error information.
1074 /// This structure is used to store state and error information about a particular adapter CrossfireX combination.
1075 /// This structure is used by the ADL_Adapter_Crossfire_Get() function.
1077 ////////////////////////////////////////////////////////////////////////////////////////////
1078 typedef struct ADLCrossfireInfo
1080 /// Current error code of this CrossfireX combination.
1082 /// Current \ref define_crossfirestate
1084 /// If CrossfireX is supported by this combination. The value is either \ref ADL_TRUE or \ref ADL_FALSE.
1088 /////////////////////////////////////////////////////////////////////////////////////////////
1089 /// \brief Structure containing information about the BIOS.
1091 /// This structure is used to store various information about the Chipset. This
1092 /// information can be returned to the user.
1094 ////////////////////////////////////////////////////////////////////////////////////////////
1095 typedef struct ADLBiosInfo
1097 char strPartNumber
[ADL_MAX_PATH
]; ///< Part number.
1098 char strVersion
[ADL_MAX_PATH
]; ///< Version number.
1099 char strDate
[ADL_MAX_PATH
]; ///< BIOS date in yyyy/mm/dd hh:mm format.
1100 } ADLBiosInfo
, *LPADLBiosInfo
;
1103 /////////////////////////////////////////////////////////////////////////////////////////////
1104 /// \brief Structure containing information about adapter location.
1106 /// This structure is used to store information about adapter location.
1107 /// This structure is used by ADLMVPUStatus.
1109 ////////////////////////////////////////////////////////////////////////////////////////////
1110 typedef struct ADLAdapterLocation
1112 /// PCI Bus number : 8 bits
1114 /// Device number : 5 bits
1116 /// Function number : 3 bits
1118 } ADLAdapterLocation
,ADLBdf
;
1121 /////////////////////////////////////////////////////////////////////////////////////////////
1122 /// \brief Structure containing information about MultiVPU capabilities.
1124 /// This structure is used to store information about MultiVPU capabilities.
1125 /// This structure is used by the ADL_Display_MVPUCaps_Get() function.
1127 ////////////////////////////////////////////////////////////////////////////////////////////
1128 typedef struct ADLMVPUCaps
1130 /// Must be set to sizeof( ADLMVPUCaps ).
1132 /// Number of adapters.
1134 /// Bits set for all possible MVPU masters. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
1135 int iPossibleMVPUMasters
;
1136 /// Bits set for all possible MVPU slaves. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
1137 int iPossibleMVPUSlaves
;
1138 /// Registry path for each adapter.
1139 char cAdapterPath
[ADL_DL_MAX_MVPU_ADAPTERS
][ADL_DL_MAX_REGISTRY_PATH
];
1142 /////////////////////////////////////////////////////////////////////////////////////////////
1143 /// \brief Structure containing information about MultiVPU status.
1145 /// This structure is used to store information about MultiVPU status.
1146 /// Ths structure is used by the ADL_Display_MVPUStatus_Get() function.
1148 ////////////////////////////////////////////////////////////////////////////////////////////
1149 typedef struct ADLMVPUStatus
1151 /// Must be set to sizeof( ADLMVPUStatus ).
1153 /// Number of active adapters.
1154 int iActiveAdapterCount
;
1157 /// PCI Bus/Device/Function for each active adapter participating in MVPU.
1158 ADLAdapterLocation aAdapterLocation
[ADL_DL_MAX_MVPU_ADAPTERS
];
1161 // Displays Manager structures
1163 ///////////////////////////////////////////////////////////////////////////
1164 /// \brief Structure containing information about the activatable source.
1166 /// This structure is used to store activatable source information
1167 /// This information can be returned to the user.
1169 ////////////////////////////////////////////////////////////////////////////////////////////
1170 typedef struct ADLActivatableSource
1172 /// The Persistent logical Adapter Index.
1174 /// The number of Activatable Sources.
1175 int iNumActivatableSources
;
1176 /// The bit mask identifies the number of bits ActivatableSourceValue is using. (Not currnetly used)
1177 int iActivatableSourceMask
;
1178 /// The bit mask identifies the status. (Not currnetly used)
1179 int iActivatableSourceValue
;
1180 } ADLActivatableSource
, *LPADLActivatableSource
;
1182 /////////////////////////////////////////////////////////////////////////////////////////////
1183 /// \brief Structure containing information about display mode.
1185 /// This structure is used to store the display mode for the current adapter
1186 /// such as X, Y positions, screen resolutions, orientation,
1187 /// color depth, refresh rate, progressive or interlace mode, etc.
1189 ////////////////////////////////////////////////////////////////////////////////////////////
1191 typedef struct ADLMode
1196 ADLDisplayID displayID
;
1197 /// Screen position X coordinate.
1199 /// Screen position Y coordinate.
1201 /// Screen resolution Width.
1203 /// Screen resolution Height.
1205 /// Screen Color Depth. E.g., 16, 32.
1207 /// Screen refresh rate. Could be fractional E.g. 59.97
1209 /// Screen orientation. E.g., 0, 90, 180, 270.
1211 /// Vista mode flag indicating Progressive or Interlaced mode.
1213 /// The bit mask identifying the number of bits this Mode is currently using. It is the sum of all the bit definitions defined in \ref define_displaymode
1215 /// The bit mask identifying the display status. The detailed definition is in \ref define_displaymode
1217 } ADLMode
, *LPADLMode
;
1220 /////////////////////////////////////////////////////////////////////////////////////////////
1221 /// \brief Structure containing information about display target information.
1223 /// This structure is used to store the display target information.
1225 ////////////////////////////////////////////////////////////////////////////////////////////
1226 typedef struct ADLDisplayTarget
1229 ADLDisplayID displayID
;
1231 /// The display map index identify this manner and the desktop surface.
1232 int iDisplayMapIndex
;
1234 /// The bit mask identifies the number of bits DisplayTarget is currently using. It is the sum of all the bit definitions defined in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
1235 int iDisplayTargetMask
;
1237 /// The bit mask identifies the display status. The detailed definition is in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
1238 int iDisplayTargetValue
;
1240 } ADLDisplayTarget
, *LPADLDisplayTarget
;
1243 /////////////////////////////////////////////////////////////////////////////////////////////
1244 ///\brief Structure containing information about the display SLS bezel Mode information.
1246 /// This structure is used to store the display SLS bezel Mode information.
1248 ////////////////////////////////////////////////////////////////////////////////////////////
1249 typedef struct tagADLBezelTransientMode
1261 ADLMode displayMode
;
1263 /// The number of bezel offsets belongs to this map
1264 int iNumBezelOffset
;
1266 /// The first bezel offset array index in the native mode array
1267 int iFirstBezelOffsetArrayIndex
;
1269 /// The bit mask identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
1270 int iSLSBezelTransientModeMask
;
1272 /// The bit mask identifies the display status. The detail definition is defined below.
1273 int iSLSBezelTransientModeValue
;
1275 } ADLBezelTransientMode
, *LPADLBezelTransientMode
;
1278 /////////////////////////////////////////////////////////////////////////////////////////////
1279 /// \brief Structure containing information about the adapter display manner.
1281 /// This structure is used to store adapter display manner information
1282 /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to
1283 /// fetch various display device related display manner settings upon the user's request.
1285 ////////////////////////////////////////////////////////////////////////////////////////////
1286 typedef struct ADLAdapterDisplayCap
1288 /// The Persistent logical Adapter Index.
1290 /// The bit mask identifies the number of bits AdapterDisplayCap is currently using. Sum all the bits defined in ADL_ADAPTER_DISPLAYCAP_XXX
1291 int iAdapterDisplayCapMask
;
1292 /// The bit mask identifies the status. Refer to ADL_ADAPTER_DISPLAYCAP_XXX
1293 int iAdapterDisplayCapValue
;
1294 } ADLAdapterDisplayCap
, *LPADLAdapterDisplayCap
;
1297 /////////////////////////////////////////////////////////////////////////////////////////////
1298 ///\brief Structure containing information about display mapping.
1300 /// This structure is used to store the display mapping data such as display manner.
1301 /// For displays with horizontal or vertical stretch manner,
1302 /// this structure also stores the display order, display row, and column data.
1304 ////////////////////////////////////////////////////////////////////////////////////////////
1305 typedef struct ADLDisplayMap
1307 /// The current display map index. It is the OS desktop index. For example, if the OS index 1 is showing clone mode, the display map will be 1.
1308 int iDisplayMapIndex
;
1310 /// The Display Mode for the current map
1311 ADLMode displayMode
;
1313 /// The number of display targets belongs to this map\n
1314 int iNumDisplayTarget
;
1316 /// The first target array index in the Target array\n
1317 int iFirstDisplayTargetArrayIndex
;
1319 /// The bit mask identifies the number of bits DisplayMap is currently using. It is the sum of all the bit definitions defined in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
1320 int iDisplayMapMask
;
1322 ///The bit mask identifies the display status. The detailed definition is in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
1323 int iDisplayMapValue
;
1325 } ADLDisplayMap
, *LPADLDisplayMap
;
1328 /////////////////////////////////////////////////////////////////////////////////////////////
1329 /// \brief Structure containing information about the display device possible map for one GPU
1331 /// This structure is used to store the display device possible map
1332 /// This information can be returned to the user.
1334 ////////////////////////////////////////////////////////////////////////////////////////////
1335 typedef struct ADLPossibleMap
1337 /// The current PossibleMap index. Each PossibleMap is assigned an index
1339 /// The adapter index identifying the GPU for which to validate these Maps & Targets
1341 /// Number of display Maps for this GPU to be validated
1343 /// The display Maps list to validate
1344 ADLDisplayMap
* displayMap
;
1345 /// the number of display Targets for these display Maps
1346 int iNumDisplayTarget
;
1347 /// The display Targets list for these display Maps to be validated.
1348 ADLDisplayTarget
* displayTarget
;
1349 } ADLPossibleMap
, *LPADLPossibleMap
;
1352 /////////////////////////////////////////////////////////////////////////////////////////////
1353 /// \brief Structure containing information about display possible mapping.
1355 /// This structure is used to store the display possible mapping's controller index for the current display.
1357 ////////////////////////////////////////////////////////////////////////////////////////////
1358 typedef struct ADLPossibleMapping
1360 int iDisplayIndex
; ///< The display index. Each display is assigned an index.
1361 int iDisplayControllerIndex
; ///< The controller index to which display is mapped.
1362 int iDisplayMannerSupported
; ///< The supported display manner.
1363 } ADLPossibleMapping
, *LPADLPossibleMapping
;
1365 /////////////////////////////////////////////////////////////////////////////////////////////
1366 /// \brief Structure containing information about the validated display device possible map result.
1368 /// This structure is used to store the validated display device possible map result
1369 /// This information can be returned to the user.
1371 ////////////////////////////////////////////////////////////////////////////////////////////
1372 typedef struct ADLPossibleMapResult
1374 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1376 // The bit mask identifies the number of bits PossibleMapResult is currently using. It will be the sum all the bit definitions defined in ADL_DISPLAY_POSSIBLEMAPRESULT_VALID.
1377 int iPossibleMapResultMask
;
1378 /// The bit mask identifies the possible map result. The detail definition is defined in ADL_DISPLAY_POSSIBLEMAPRESULT_XXX.
1379 int iPossibleMapResultValue
;
1380 } ADLPossibleMapResult
, *LPADLPossibleMapResult
;
1382 /////////////////////////////////////////////////////////////////////////////////////////////
1383 ///\brief Structure containing information about the display SLS Grid information.
1385 /// This structure is used to store the display SLS Grid information.
1387 ////////////////////////////////////////////////////////////////////////////////////////////
1388 typedef struct ADLSLSGrid
1390 /// The Adapter index.
1399 /// The grid column.
1402 /// The grid bit mask identifies the number of bits DisplayMap is currently using. Sum of all bits defined in ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
1405 /// The grid bit value identifies the display status. Refer to ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
1408 } ADLSLSGrid
, *LPADLSLSGrid
;
1410 /////////////////////////////////////////////////////////////////////////////////////////////
1411 ///\brief Structure containing information about the display SLS Map information.
1413 /// This structure is used to store the display SLS Map information.
1415 ////////////////////////////////////////////////////////////////////////////////////////////
1416 typedef struct ADLSLSMap
1418 /// The Adapter Index
1421 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1424 /// Indicate the current grid
1427 /// OS surface index
1428 int iSurfaceMapIndex
;
1430 /// Screen orientation. E.g., 0, 90, 180, 270
1433 /// The number of display targets belongs to this map
1436 /// The first target array index in the Target array
1437 int iFirstSLSTargetArrayIndex
;
1439 /// The number of native modes belongs to this map
1442 /// The first native mode array index in the native mode array
1443 int iFirstNativeModeArrayIndex
;
1445 /// The number of bezel modes belongs to this map
1448 /// The first bezel mode array index in the native mode array
1449 int iFirstBezelModeArrayIndex
;
1451 /// The number of bezel offsets belongs to this map
1452 int iNumBezelOffset
;
1454 /// The first bezel offset array index in the
1455 int iFirstBezelOffsetArrayIndex
;
1457 /// The bit mask identifies the number of bits DisplayMap is currently using. Sum all the bit definitions defined in ADL_DISPLAY_SLSMAP_XXX.
1460 /// The bit mask identifies the display map status. Refer to ADL_DISPLAY_SLSMAP_XXX
1464 } ADLSLSMap
, *LPADLSLSMap
;
1466 /////////////////////////////////////////////////////////////////////////////////////////////
1467 ///\brief Structure containing information about the display SLS Offset information.
1469 /// This structure is used to store the display SLS Offset information.
1471 ////////////////////////////////////////////////////////////////////////////////////////////
1472 typedef struct ADLSLSOffset
1474 /// The Adapter Index
1477 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1481 ADLDisplayID displayID
;
1483 /// SLS Bezel Mode Index
1484 int iBezelModeIndex
;
1486 /// SLS Bezel Offset X
1489 /// SLS Bezel Offset Y
1492 /// SLS Display Width
1495 /// SLS Display Height
1498 /// The bit mask identifies the number of bits Offset is currently using.
1499 int iBezelOffsetMask
;
1501 /// The bit mask identifies the display status.
1502 int iBezelffsetValue
;
1503 } ADLSLSOffset
, *LPADLSLSOffset
;
1505 /////////////////////////////////////////////////////////////////////////////////////////////
1506 ///\brief Structure containing information about the display SLS Mode information.
1508 /// This structure is used to store the display SLS Mode information.
1510 ////////////////////////////////////////////////////////////////////////////////////////////
1511 typedef struct ADLSLSMode
1513 /// The Adapter Index
1516 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1522 /// The mode for this map.
1523 ADLMode displayMode
;
1525 /// The bit mask identifies the number of bits Mode is currently using.
1526 int iSLSNativeModeMask
;
1528 /// The bit mask identifies the display status.
1529 int iSLSNativeModeValue
;
1530 } ADLSLSMode
, *LPADLSLSMode
;
1535 /////////////////////////////////////////////////////////////////////////////////////////////
1536 ///\brief Structure containing information about the display Possible SLS Map information.
1538 /// This structure is used to store the display Possible SLS Map information.
1540 ////////////////////////////////////////////////////////////////////////////////////////////
1541 typedef struct ADLPossibleSLSMap
1543 /// The current display map index. It is the OS Desktop index.
1544 /// For example, OS Index 1 showing clone mode. The Display Map will be 1.
1547 /// Number of display map to be validated.
1550 /// The display map list for validation
1551 ADLSLSMap
* lpSLSMap
;
1553 /// the number of display map config to be validated.
1556 /// The display target list for validation.
1557 ADLDisplayTarget
* lpDisplayTarget
;
1558 } ADLPossibleSLSMap
, *LPADLPossibleSLSMap
;
1561 /////////////////////////////////////////////////////////////////////////////////////////////
1562 ///\brief Structure containing information about the SLS targets.
1564 /// This structure is used to store the SLS targets information.
1566 ////////////////////////////////////////////////////////////////////////////////////////////
1567 typedef struct ADLSLSTarget
1569 /// the logic adapter index
1572 /// The SLS map index
1576 ADLDisplayTarget displayTarget
;
1578 /// Target postion X in SLS grid
1579 int iSLSGridPositionX
;
1581 /// Target postion Y in SLS grid
1582 int iSLSGridPositionY
;
1584 /// The view size width, height and rotation angle per SLS Target
1587 /// The bit mask identifies the bits in iSLSTargetValue are currently used
1590 /// The bit mask identifies status info. It is for function extension purpose
1591 int iSLSTargetValue
;
1593 } ADLSLSTarget
, *LPADLSLSTarget
;
1595 /////////////////////////////////////////////////////////////////////////////////////////////
1596 ///\brief Structure containing information about the Adapter offset stepping size.
1598 /// This structure is used to store the Adapter offset stepping size information.
1600 ////////////////////////////////////////////////////////////////////////////////////////////
1601 typedef struct ADLBezelOffsetSteppingSize
1603 /// the logic adapter index
1606 /// The SLS map index
1609 /// Bezel X stepping size offset
1610 int iBezelOffsetSteppingSizeX
;
1612 /// Bezel Y stepping size offset
1613 int iBezelOffsetSteppingSizeY
;
1615 /// Identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
1616 int iBezelOffsetSteppingSizeMask
;
1618 /// Bit mask identifies the display status.
1619 int iBezelOffsetSteppingSizeValue
;
1621 } ADLBezelOffsetSteppingSize
, *LPADLBezelOffsetSteppingSize
;
1623 /////////////////////////////////////////////////////////////////////////////////////////////
1624 ///\brief Structure containing information about driver supported PowerExpress Config Caps
1626 /// This structure is used to store the driver supported PowerExpress Config Caps
1628 ////////////////////////////////////////////////////////////////////////////////////////////
1629 typedef struct ADLPXConfigCaps
1631 /// The Persistent logical Adapter Index.
1634 /// The bit mask identifies the number of bits PowerExpress Config Caps is currently using. It is the sum of all the bit definitions defined in \ref ADL_PX_CONFIGCAPS_XXXX.
1635 int iPXConfigCapMask
;
1637 /// The bit mask identifies the PowerExpress Config Caps value. The detailed definition is in \ref ADL_PX_CONFIGCAPS_XXXX.
1638 int iPXConfigCapValue
;
1640 } ADLPXConfigCaps
, *LPADLPXConfigCaps
;
1643 /////////////////////////////////////////////////////////////////////////////////////////////
1644 ///\brief Structure containing information about an application
1646 /// This structure is used to store basic information of an application
1648 ////////////////////////////////////////////////////////////////////////////////////////////
1649 typedef struct _ADLApplicationData
1652 char strPathName
[ADL_MAX_PATH
];
1654 char strFileName
[ADL_APP_PROFILE_FILENAME_LENGTH
];
1655 /// Creation timestamp
1656 char strTimeStamp
[ADL_APP_PROFILE_TIMESTAMP_LENGTH
];
1658 char strVersion
[ADL_APP_PROFILE_VERSION_LENGTH
];
1659 }ADLApplicationData
;
1662 /////////////////////////////////////////////////////////////////////////////////////////////
1663 ///\brief Structure containing information of a property of an application profile
1665 /// This structure is used to store property information of an application profile
1667 ////////////////////////////////////////////////////////////////////////////////////////////
1668 typedef struct _PropertyRecord
1671 char strName
[ADL_APP_PROFILE_PROPERTY_LENGTH
];
1673 ADLProfilePropertyType eType
;
1674 /// Data Size in bytes
1676 /// Property Value, can be any data type
1677 unsigned char uData
[1];
1680 /////////////////////////////////////////////////////////////////////////////////////////////
1681 ///\brief Structure containing information about an application profile
1683 /// This structure is used to store information of an application profile
1685 ////////////////////////////////////////////////////////////////////////////////////////////
1686 typedef struct _ADLApplicationProfile
1688 /// Number of properties
1690 /// Buffer to store all property records
1691 PropertyRecord record
[1];
1692 }ADLApplicationProfile
;
1696 /////////////////////////////////////////////////////////////////////////////////////////////
1697 ///\brief Structure containing information about an OD5 Power Control feature
1699 /// This structure is used to store information of an Power Control feature
1701 ////////////////////////////////////////////////////////////////////////////////////////////
1702 typedef struct ADLPowerControlInfo
1708 /// The minimum change in between minValue and maxValue.
1710 } ADLPowerControlInfo
;
1712 /////////////////////////////////////////////////////////////////////////////////////////////
1713 ///\brief Structure containing information about an controller mode
1715 /// This structure is used to store information of an controller mode
1717 ////////////////////////////////////////////////////////////////////////////////////////////
1718 typedef struct _ADLControllerMode
1720 /// This falg indicates actions that will be applied by set viewport
1721 /// The value can be a combination of ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION,
1722 /// ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK and ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE
1725 /// Horizontal view starting position
1726 int iViewPositionCx
;
1728 /// Vertical view starting position
1729 int iViewPositionCy
;
1731 /// Horizontal left panlock position
1732 int iViewPanLockLeft
;
1734 /// Horizontal right panlock position
1735 int iViewPanLockRight
;
1737 /// Vertical top panlock position
1738 int iViewPanLockTop
;
1740 /// Vertical bottom panlock position
1741 int iViewPanLockBottom
;
1743 /// View resolution in pixels (width)
1744 int iViewResolutionCx
;
1746 /// View resolution in pixels (hight)
1747 int iViewResolutionCy
;
1751 #endif /* ADL_STRUCTURES_H_ */