Edit

kc3-lang/angle/src/third_party/libXNVCtrl/nv_control.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2018-11-27 11:34:27
    Hash : b980c563
    Message : Reformat all cpp and h files. This applies git cl format --full to all ANGLE sources. Bug: angleproject:2986 Change-Id: Ib504e618c1589332a37e97696cdc3515d739308f Reviewed-on: https://chromium-review.googlesource.com/c/1351367 Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>

  • src/third_party/libXNVCtrl/nv_control.h
  • /*
     * Copyright (c) 2008 NVIDIA, Corporation
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
     * in the Software without restriction, including without limitation the rights
     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     * copies of the Software, and to permit persons to whom the Software is
     * furnished to do so, subject to the following conditions:
     *
     * The above copyright notice and this permission notice (including the next
     * paragraph) shall be included in all copies or substantial portions of the
     * Software.
     *
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     * SOFTWARE.
     *
     *
     * NV-CONTROL Protocol Version History
     *
     * 1.0 - 1.5   NVIDIA Internal development versions
     * 1.6         Initial public version
     * 1.7         Added QueryBinaryData request
     * 1.8         Added TargetTypes
     * 1.9         Added QueryTargetCount request
     * 1.10        Fixed target type/id byte ordering for compatibility with
     *             pre-1.8 NV-CONTROL clients
     * 1.11        NVIDIA Internal development version
     * 1.12        Added StringOperation request
     * 1.13        NVIDIA Internal development version
     * 1.14        Fixed an NV_CTRL_BINARY_DATA_MODELINES double scan modeline
     *             reporting bug (vsyncstart, vsyncend, and vtotal were incorrectly
     *             doubled)
     * 1.15        Added AVAILABILITY_TARGET_ATTRIBUTE_CHANGED_EVENT
     * 1.16        Added TARGET_STRING_ATTRIBUTE_CHANGED_EVENT
     * 1.17        Added TARGET_BINARY_ATTRIBUTE_CHANGED_EVENT
     * 1.18        Updated QueryTargetCount to return a count of 0, rather than
     *             BadMatch, if an unknown TargetType is specified
     * 1.19        Added TargetType support for SetAttributeAndGetStatus and
     *             SetStringAttribute requests
     * 1.20        Added COOLER TargetType
     * 1.21        Added initial 64-bit integer attribute support (read-only)
     * 1.22        Added X_nvCtrlQueryValidStringAttributeValues to check
     *             string attribute permissions.
     * 1.23        Added SENSOR TargetType
     * 1.24        Fixed a bug where SLI_MOSAIC_MODE_AVAILABLE attribute would
     *             report false positives via the GPU and X screen target types
     * 1.25        Added 3D_VISION_PRO_TRANSCEIVER TargetType
     * 1.26        Added XNVCTRLQueryXXXAttributePermissions.
     * 1.27        Added DISPLAY TargetType
     * 1.28        Added NV_CTRL_CURRENT_METAMODE_ID: clients should use this
     *             attribute to switch MetaModes, rather than pass the MetaMode ID
     *             through the RRSetScreenConfig protocol request.
     */
    
    #ifndef __NVCONTROL_H
    #define __NVCONTROL_H
    
    #define NV_CONTROL_ERRORS 0
    #define NV_CONTROL_EVENTS 5
    #define NV_CONTROL_NAME "NV-CONTROL"
    
    #define NV_CONTROL_MAJOR 1
    #define NV_CONTROL_MINOR 28
    
    #define X_nvCtrlQueryExtension 0
    #define X_nvCtrlIsNv 1
    #define X_nvCtrlQueryAttribute 2
    #define X_nvCtrlSetAttribute 3
    #define X_nvCtrlQueryStringAttribute 4
    #define X_nvCtrlQueryValidAttributeValues 5
    #define X_nvCtrlSelectNotify 6
    #define X_nvCtrlSetGvoColorConversionDeprecated 7
    #define X_nvCtrlQueryGvoColorConversionDeprecated 8
    #define X_nvCtrlSetStringAttribute 9
    /* STUB X_nvCtrlQueryDDCCILutSize                   10 */
    /* STUB X_nvCtrlQueryDDCCISinglePointLutOperation   11 */
    /* STUB X_nvCtrlSetDDCCISinglePointLutOperation     12 */
    /* STUB X_nvCtrlQueryDDCCIBlockLutOperation         13 */
    /* STUB X_nvCtrlSetDDCCIBlockLutOperation           14 */
    /* STUB X_nvCtrlSetDDCCIRemoteProcedureCall         15 */
    /* STUB X_nvCtrlQueryDDCCIDisplayControllerType     16 */
    /* STUB X_nvCtrlQueryDDCCICapabilities              17 */
    /* STUB X_nvCtrlQueryDDCCITimingReport              18 */
    #define X_nvCtrlSetAttributeAndGetStatus 19
    #define X_nvCtrlQueryBinaryData 20
    #define X_nvCtrlSetGvoColorConversion 21
    #define X_nvCtrlQueryGvoColorConversion 22
    #define X_nvCtrlSelectTargetNotify 23
    #define X_nvCtrlQueryTargetCount 24
    #define X_nvCtrlStringOperation 25
    #define X_nvCtrlQueryValidAttributeValues64 26
    #define X_nvCtrlQueryAttribute64 27
    #define X_nvCtrlQueryValidStringAttributeValues 28
    #define X_nvCtrlQueryAttributePermissions 29
    #define X_nvCtrlQueryStringAttributePermissions 30
    #define X_nvCtrlQueryBinaryDataAttributePermissions 31
    #define X_nvCtrlQueryStringOperationAttributePermissions 32
    
    #define X_nvCtrlLastRequest (X_nvCtrlQueryStringOperationAttributePermissions + 1)
    
    /* Define 32 bit floats */
    typedef float FLOAT32;
    #ifndef F32
    #    define F32
    #endif
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
    } xnvCtrlQueryExtensionReq;
    #define sz_xnvCtrlQueryExtensionReq 4
    
    typedef struct
    {
        BYTE type; /* X_Reply */
        CARD8 padb1;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD16 major B16;
        CARD16 minor B16;
        CARD32 padl4 B32;
        CARD32 padl5 B32;
        CARD32 padl6 B32;
        CARD32 padl7 B32;
        CARD32 padl8 B32;
    } xnvCtrlQueryExtensionReply;
    #define sz_xnvCtrlQueryExtensionReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
    } xnvCtrlIsNvReq;
    #define sz_xnvCtrlIsNvReq 8
    
    typedef struct
    {
        BYTE type; /* X_Reply */
        CARD8 padb1;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 isnv B32;
        CARD32 padl4 B32;
        CARD32 padl5 B32;
        CARD32 padl6 B32;
        CARD32 padl7 B32;
        CARD32 padl8 B32;
    } xnvCtrlIsNvReply;
    #define sz_xnvCtrlIsNvReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 target_type B32;
    } xnvCtrlQueryTargetCountReq;
    #define sz_xnvCtrlQueryTargetCountReq 8
    
    typedef struct
    {
        BYTE type; /* X_Reply */
        CARD8 padb1;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 count B32;
        CARD32 padl4 B32;
        CARD32 padl5 B32;
        CARD32 padl6 B32;
        CARD32 padl7 B32;
        CARD32 padl8 B32;
    } xnvCtrlQueryTargetCountReply;
    #define sz_xnvCtrlQueryTargetCountReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;   /* X screen number or GPU number */
        CARD16 target_type B16; /* X screen or GPU */
        CARD32 display_mask B32;
        CARD32 attribute B32;
    } xnvCtrlQueryAttributeReq;
    #define sz_xnvCtrlQueryAttributeReq 16
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        INT32 value B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlQueryAttributeReply;
    #define sz_xnvCtrlQueryAttributeReply 32
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        CARD32 pad3 B32;
        int64_t value_64;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlQueryAttribute64Reply;
    #define sz_xnvCtrlQueryAttribute64Reply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;
        CARD16 target_type B16;
        CARD32 display_mask B32;
        CARD32 attribute B32;
        INT32 value B32;
    } xnvCtrlSetAttributeReq;
    #define sz_xnvCtrlSetAttributeReq 20
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;
        CARD16 target_type B16;
        CARD32 display_mask B32;
        CARD32 attribute B32;
        INT32 value B32;
    } xnvCtrlSetAttributeAndGetStatusReq;
    #define sz_xnvCtrlSetAttributeAndGetStatusReq 20
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        CARD32 pad3 B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlSetAttributeAndGetStatusReply;
    #define sz_xnvCtrlSetAttributeAndGetStatusReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;   /* X screen number or GPU number */
        CARD16 target_type B16; /* X screen or GPU */
        CARD32 display_mask B32;
        CARD32 attribute B32;
    } xnvCtrlQueryStringAttributeReq;
    #define sz_xnvCtrlQueryStringAttributeReq 16
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        CARD32 n B32; /* Length of string */
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlQueryStringAttributeReply;
    #define sz_xnvCtrlQueryStringAttributeReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;
        CARD16 target_type B16;
        CARD32 display_mask B32;
        CARD32 attribute B32;
        CARD32 num_bytes B32;
    } xnvCtrlSetStringAttributeReq;
    #define sz_xnvCtrlSetStringAttributeReq 20
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        CARD32 pad3 B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlSetStringAttributeReply;
    #define sz_xnvCtrlSetStringAttributeReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;   /* X screen number or GPU number */
        CARD16 target_type B16; /* X screen or GPU */
        CARD32 display_mask B32;
        CARD32 attribute B32;
    } xnvCtrlQueryValidAttributeValuesReq;
    #define sz_xnvCtrlQueryValidAttributeValuesReq 16
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        INT32 attr_type B32;
        INT32 min B32;
        INT32 max B32;
        CARD32 bits B32;
        CARD32 perms B32;
    } xnvCtrlQueryValidAttributeValuesReply;
    #define sz_xnvCtrlQueryValidAttributeValuesReply 32
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        INT32 attr_type B32;
        int64_t min_64;
        int64_t max_64;
        CARD64 bits_64;
        CARD32 perms B32;
        CARD32 pad1 B32;
    } xnvCtrlQueryValidAttributeValues64Reply;
    #define sz_xnvCtrlQueryValidAttributeValues64Reply 48
    #define sz_xnvCtrlQueryValidAttributeValues64Reply_extra ((48 - 32) >> 2)
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 attribute B32;
    } xnvCtrlQueryAttributePermissionsReq;
    #define sz_xnvCtrlQueryAttributePermissionsReq 8
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        INT32 attr_type B32;
        CARD32 perms B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
        CARD32 pad8 B32;
    } xnvCtrlQueryAttributePermissionsReply;
    #define sz_xnvCtrlQueryAttributePermissionsReply 32
    
    /* Set GVO Color Conversion request (deprecated) */
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
        FLOAT32 row1_col1 F32;
        FLOAT32 row1_col2 F32;
        FLOAT32 row1_col3 F32;
        FLOAT32 row1_col4 F32;
        FLOAT32 row2_col1 F32;
        FLOAT32 row2_col2 F32;
        FLOAT32 row2_col3 F32;
        FLOAT32 row2_col4 F32;
        FLOAT32 row3_col1 F32;
        FLOAT32 row3_col2 F32;
        FLOAT32 row3_col3 F32;
        FLOAT32 row3_col4 F32;
    } xnvCtrlSetGvoColorConversionDeprecatedReq;
    #define sz_xnvCtrlSetGvoColorConversionDeprecatedReq 56
    
    /* Query GVO Color Conversion request (deprecated) */
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
    } xnvCtrlQueryGvoColorConversionDeprecatedReq;
    #define sz_xnvCtrlQueryGvoColorConversionDeprecatedReq 8
    
    /* Query GVO Color Conversion reply (deprecated) */
    typedef struct
    {
        BYTE type; /* X_Reply */
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 pad3 B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
        CARD32 pad8 B32;
    } xnvCtrlQueryGvoColorConversionDeprecatedReply;
    #define sz_xnvCtrlQueryGvoColorConversionDeprecatedReply 32
    
    /* Set GVO Color Conversion request */
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
    
        FLOAT32 cscMatrix_y_r F32;
        FLOAT32 cscMatrix_y_g F32;
        FLOAT32 cscMatrix_y_b F32;
    
        FLOAT32 cscMatrix_cr_r F32;
        FLOAT32 cscMatrix_cr_g F32;
        FLOAT32 cscMatrix_cr_b F32;
    
        FLOAT32 cscMatrix_cb_r F32;
        FLOAT32 cscMatrix_cb_g F32;
        FLOAT32 cscMatrix_cb_b F32;
    
        FLOAT32 cscOffset_y F32;
        FLOAT32 cscOffset_cr F32;
        FLOAT32 cscOffset_cb F32;
    
        FLOAT32 cscScale_y F32;
        FLOAT32 cscScale_cr F32;
        FLOAT32 cscScale_cb F32;
    
    } xnvCtrlSetGvoColorConversionReq;
    #define sz_xnvCtrlSetGvoColorConversionReq 68
    
    /* Query GVO Color Conversion request */
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
    } xnvCtrlQueryGvoColorConversionReq;
    #define sz_xnvCtrlQueryGvoColorConversionReq 8
    
    /* Query GVO Color Conversion reply */
    typedef struct
    {
        BYTE type; /* X_Reply */
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 pad3 B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
        CARD32 pad8 B32;
    } xnvCtrlQueryGvoColorConversionReply;
    #define sz_xnvCtrlQueryGvoColorConversionReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;   /* X screen number or GPU number */
        CARD16 target_type B16; /* X screen or GPU */
        CARD32 display_mask B32;
        CARD32 attribute B32;
    } xnvCtrlQueryBinaryDataReq;
    #define sz_xnvCtrlQueryBinaryDataReq 16
    
    typedef struct
    {
        BYTE type;
        BYTE pad0;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 flags B32;
        CARD32 n B32;
        CARD32 pad4 B32;
        CARD32 pad5 B32;
        CARD32 pad6 B32;
        CARD32 pad7 B32;
    } xnvCtrlQueryBinaryDataReply;
    #define sz_xnvCtrlQueryBinaryDataReply 32
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD32 screen B32;
        CARD16 notifyType B16;
        CARD16 onoff B16;
    } xnvCtrlSelectNotifyReq;
    #define sz_xnvCtrlSelectNotifyReq 12
    
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_id B16;   /* X screen number or GPU number */
        CARD16 target_type B16; /* X screen or GPU */
        CARD32 display_mask B32;
        CARD32 attribute B32;
        CARD32 num_bytes B32; /* Length of string */
    } xnvCtrlStringOperationReq;
    #define sz_xnvCtrlStringOperationReq 20
    
    typedef struct
    {
        BYTE type; /* X_Reply */
        CARD8 padb1;
        CARD16 sequenceNumber B16;
        CARD32 length B32;
        CARD32 ret B32;
        CARD32 num_bytes B32; /* Length of string */
        CARD32 padl4 B32;
        CARD32 padl5 B32;
        CARD32 padl6 B32;
        CARD32 padl7 B32;
    } xnvCtrlStringOperationReply;
    #define sz_xnvCtrlStringOperationReply 32
    
    typedef struct
    {
        union
        {
            struct
            {
                BYTE type;
                BYTE detail;
                CARD16 sequenceNumber B16;
            } u;
            struct
            {
                BYTE type;
                BYTE detail;
                CARD16 sequenceNumber B16;
                CARD32 time B32;
                CARD32 screen B32;
                CARD32 display_mask B32;
                CARD32 attribute B32;
                CARD32 value B32;
                CARD32 pad0 B32;
                CARD32 pad1 B32;
            } attribute_changed;
        } u;
    } xnvctrlEvent;
    
    /*
     * Leave target_type before target_id for the
     * xnvCtrlSelectTargetNotifyReq and xnvctrlEventTarget
     * structures, even though other request protocol structures
     * store target_id in the bottom 16-bits of the second DWORD of the
     * structures.  The event-related structures were added in version
     * 1.8, and so there is no prior version with which to maintain
     * compatibility.
     */
    typedef struct
    {
        CARD8 reqType;
        CARD8 nvReqType;
        CARD16 length B16;
        CARD16 target_type B16; /* Don't swap these */
        CARD16 target_id B16;
        CARD16 notifyType B16;
        CARD16 onoff B16;
    } xnvCtrlSelectTargetNotifyReq;
    #define sz_xnvCtrlSelectTargetNotifyReq 12
    
    typedef struct
    {
        union
        {
            struct
            {
                BYTE type;
                BYTE detail;
                CARD16 sequenceNumber B16;
            } u;
            struct
            {
                BYTE type;
                BYTE detail;
                CARD16 sequenceNumber B16;
                CARD32 time B32;
                CARD16 target_type B16; /* Don't swap these */
                CARD16 target_id B16;
                CARD32 display_mask B32;
                CARD32 attribute B32;
                CARD32 value B32;
                CARD32 pad0 B32;
                CARD32 pad1 B32;
            } attribute_changed;
            struct
            {
                BYTE type;
                BYTE detail;
                CARD16 sequenceNumber B16;
                CARD32 time B32;
                CARD16 target_type B16; /* Don't swap these */
                CARD16 target_id B16;
                CARD32 display_mask B32;
                CARD32 attribute B32;
                CARD32 value B32;
                CARD8 availability;
                CARD8 pad0;
                CARD16 pad1 B16;
                CARD32 pad2 B32;
            } availability_changed;
        } u;
    } xnvctrlEventTarget;
    
    #endif /* __NVCONTROL_H */