00001 #ifndef __NVCONTROL_H 00002 #define __NVCONTROL_H 00003 00004 #define NV_CONTROL_ERRORS 0 00005 #define NV_CONTROL_EVENTS 2 00006 #define NV_CONTROL_NAME "NV-CONTROL" 00007 00008 #define NV_CONTROL_MAJOR 1 00009 #define NV_CONTROL_MINOR 10 00010 00011 #define X_nvCtrlQueryExtension 0 00012 #define X_nvCtrlIsNv 1 00013 #define X_nvCtrlQueryAttribute 2 00014 #define X_nvCtrlSetAttribute 3 00015 #define X_nvCtrlQueryStringAttribute 4 00016 #define X_nvCtrlQueryValidAttributeValues 5 00017 #define X_nvCtrlSelectNotify 6 00018 #define X_nvCtrlSetGvoColorConversion_deprecated 7 00019 #define X_nvCtrlQueryGvoColorConversion_deprecated 8 00020 #define X_nvCtrlSetStringAttribute 9 00021 #define X_nvCtrlQueryDDCCILutSize 10 00022 #define X_nvCtrlQueryDDCCISinglePointLutOperation 11 00023 #define X_nvCtrlSetDDCCISinglePointLutOperation 12 00024 #define X_nvCtrlQueryDDCCIBlockLutOperation 13 00025 #define X_nvCtrlSetDDCCIBlockLutOperation 14 00026 #define X_nvCtrlSetDDCCIRemoteProcedureCall 15 00027 #define X_nvCtrlQueryDDCCIDisplayControllerType 16 00028 #define X_nvCtrlQueryDDCCICapabilities 17 00029 #define X_nvCtrlQueryDDCCITimingReport 18 00030 #define X_nvCtrlSetAttributeAndGetStatus 19 00031 #define X_nvCtrlQueryBinaryData 20 00032 #define X_nvCtrlSetGvoColorConversion 21 00033 #define X_nvCtrlQueryGvoColorConversion 22 00034 #define X_nvCtrlSelectTargetNotify 23 00035 #define X_nvCtrlQueryTargetCount 24 00036 #define X_nvCtrlLastRequest (X_nvCtrlQueryTargetCount + 1) 00037 00038 00039 /* Define 32 bit floats */ 00040 typedef float FLOAT32; 00041 #ifndef F32 00042 #define F32 00043 #endif 00044 00045 00046 typedef struct { 00047 CARD8 reqType; 00048 CARD8 nvReqType; 00049 CARD16 length B16; 00050 } xnvCtrlQueryExtensionReq; 00051 #define sz_xnvCtrlQueryExtensionReq 4 00052 00053 typedef struct { 00054 BYTE type; /* X_Reply */ 00055 CARD8 padb1; 00056 CARD16 sequenceNumber B16; 00057 CARD32 length B32; 00058 CARD16 major B16; 00059 CARD16 minor B16; 00060 CARD32 padl4 B32; 00061 CARD32 padl5 B32; 00062 CARD32 padl6 B32; 00063 CARD32 padl7 B32; 00064 CARD32 padl8 B32; 00065 } xnvCtrlQueryExtensionReply; 00066 #define sz_xnvCtrlQueryExtensionReply 32 00067 00068 typedef struct { 00069 CARD8 reqType; 00070 CARD8 nvReqType; 00071 CARD16 length B16; 00072 CARD32 screen B32; 00073 } xnvCtrlIsNvReq; 00074 #define sz_xnvCtrlIsNvReq 8 00075 00076 typedef struct { 00077 BYTE type; /* X_Reply */ 00078 CARD8 padb1; 00079 CARD16 sequenceNumber B16; 00080 CARD32 length B32; 00081 CARD32 isnv B32; 00082 CARD32 padl4 B32; 00083 CARD32 padl5 B32; 00084 CARD32 padl6 B32; 00085 CARD32 padl7 B32; 00086 CARD32 padl8 B32; 00087 } xnvCtrlIsNvReply; 00088 #define sz_xnvCtrlIsNvReply 32 00089 00090 typedef struct { 00091 CARD8 reqType; 00092 CARD8 nvReqType; 00093 CARD16 length B16; 00094 CARD32 target_type B32; 00095 } xnvCtrlQueryTargetCountReq; 00096 #define sz_xnvCtrlQueryTargetCountReq 8 00097 00098 typedef struct { 00099 BYTE type; /* X_Reply */ 00100 CARD8 padb1; 00101 CARD16 sequenceNumber B16; 00102 CARD32 length B32; 00103 CARD32 count B32; 00104 CARD32 padl4 B32; 00105 CARD32 padl5 B32; 00106 CARD32 padl6 B32; 00107 CARD32 padl7 B32; 00108 CARD32 padl8 B32; 00109 } xnvCtrlQueryTargetCountReply; 00110 #define sz_xnvCtrlQueryTargetCountReply 32 00111 00112 typedef struct { 00113 CARD8 reqType; 00114 CARD8 nvReqType; 00115 CARD16 length B16; 00116 CARD16 target_id B16; /* X screen number or GPU number */ 00117 CARD16 target_type B16; /* X screen or GPU */ 00118 CARD32 display_mask B32; 00119 CARD32 attribute B32; 00120 } xnvCtrlQueryAttributeReq; 00121 #define sz_xnvCtrlQueryAttributeReq 16 00122 00123 typedef struct { 00124 BYTE type; 00125 BYTE pad0; 00126 CARD16 sequenceNumber B16; 00127 CARD32 length B32; 00128 CARD32 flags B32; 00129 INT32 value B32; 00130 CARD32 pad4 B32; 00131 CARD32 pad5 B32; 00132 CARD32 pad6 B32; 00133 CARD32 pad7 B32; 00134 } xnvCtrlQueryAttributeReply; 00135 #define sz_xnvCtrlQueryAttributeReply 32 00136 00137 typedef struct { 00138 CARD8 reqType; 00139 CARD8 nvReqType; 00140 CARD16 length B16; 00141 CARD16 target_id B16; 00142 CARD16 target_type B16; 00143 CARD32 display_mask B32; 00144 CARD32 attribute B32; 00145 INT32 value B32; 00146 } xnvCtrlSetAttributeReq; 00147 #define sz_xnvCtrlSetAttributeReq 20 00148 00149 typedef struct { 00150 CARD8 reqType; 00151 CARD8 nvReqType; 00152 CARD16 length B16; 00153 CARD32 screen B32; 00154 CARD32 display_mask B32; 00155 CARD32 attribute B32; 00156 INT32 value B32; 00157 } xnvCtrlSetAttributeAndGetStatusReq; 00158 #define sz_xnvCtrlSetAttributeAndGetStatusReq 20 00159 00160 typedef struct { 00161 BYTE type; 00162 BYTE pad0; 00163 CARD16 sequenceNumber B16; 00164 CARD32 length B32; 00165 CARD32 flags B32; 00166 CARD32 pad3 B32; 00167 CARD32 pad4 B32; 00168 CARD32 pad5 B32; 00169 CARD32 pad6 B32; 00170 CARD32 pad7 B32; 00171 } xnvCtrlSetAttributeAndGetStatusReply; 00172 #define sz_xnvCtrlSetAttributeAndGetStatusReply 32 00173 00174 typedef struct { 00175 CARD8 reqType; 00176 CARD8 nvReqType; 00177 CARD16 length B16; 00178 CARD16 target_id B16; /* X screen number or GPU number */ 00179 CARD16 target_type B16; /* X screen or GPU */ 00180 CARD32 display_mask B32; 00181 CARD32 attribute B32; 00182 } xnvCtrlQueryStringAttributeReq; 00183 #define sz_xnvCtrlQueryStringAttributeReq 16 00184 00185 typedef struct { 00186 BYTE type; 00187 BYTE pad0; 00188 CARD16 sequenceNumber B16; 00189 CARD32 length B32; 00190 CARD32 flags B32; 00191 CARD32 n B32; /* Length of string */ 00192 CARD32 pad4 B32; 00193 CARD32 pad5 B32; 00194 CARD32 pad6 B32; 00195 CARD32 pad7 B32; 00196 } xnvCtrlQueryStringAttributeReply; 00197 #define sz_xnvCtrlQueryStringAttributeReply 32 00198 00199 00200 typedef struct { 00201 CARD8 reqType; 00202 CARD8 nvReqType; 00203 CARD16 length B16; 00204 CARD32 screen B32; 00205 CARD32 display_mask B32; 00206 CARD32 attribute B32; 00207 CARD32 num_bytes B32; 00208 } xnvCtrlSetStringAttributeReq; 00209 #define sz_xnvCtrlSetStringAttributeReq 20 00210 00211 typedef struct { 00212 BYTE type; 00213 BYTE pad0; 00214 CARD16 sequenceNumber B16; 00215 CARD32 length B32; 00216 CARD32 flags B32; 00217 CARD32 pad3 B32; 00218 CARD32 pad4 B32; 00219 CARD32 pad5 B32; 00220 CARD32 pad6 B32; 00221 CARD32 pad7 B32; 00222 } xnvCtrlSetStringAttributeReply; 00223 #define sz_xnvCtrlSetStringAttributeReply 32 00224 00225 typedef struct { 00226 CARD8 reqType; 00227 CARD8 nvReqType; 00228 CARD16 length B16; 00229 CARD16 target_id B16; /* X screen number or GPU number */ 00230 CARD16 target_type B16; /* X screen or GPU */ 00231 CARD32 display_mask B32; 00232 CARD32 attribute B32; 00233 } xnvCtrlQueryValidAttributeValuesReq; 00234 #define sz_xnvCtrlQueryValidAttributeValuesReq 16 00235 00236 typedef struct { 00237 BYTE type; 00238 BYTE pad0; 00239 CARD16 sequenceNumber B16; 00240 CARD32 length B32; 00241 CARD32 flags B32; 00242 INT32 attr_type B32; 00243 INT32 min B32; 00244 INT32 max B32; 00245 CARD32 bits B32; 00246 CARD32 perms B32; 00247 } xnvCtrlQueryValidAttributeValuesReply; 00248 #define sz_xnvCtrlQueryValidAttributeValuesReply 32 00249 00250 /* Set GVO Color Conversion request (deprecated) */ 00251 typedef struct { 00252 CARD8 reqType; 00253 CARD8 nvReqType; 00254 CARD16 length B16; 00255 CARD32 screen B32; 00256 FLOAT32 row1_col1 F32; 00257 FLOAT32 row1_col2 F32; 00258 FLOAT32 row1_col3 F32; 00259 FLOAT32 row1_col4 F32; 00260 FLOAT32 row2_col1 F32; 00261 FLOAT32 row2_col2 F32; 00262 FLOAT32 row2_col3 F32; 00263 FLOAT32 row2_col4 F32; 00264 FLOAT32 row3_col1 F32; 00265 FLOAT32 row3_col2 F32; 00266 FLOAT32 row3_col3 F32; 00267 FLOAT32 row3_col4 F32; 00268 } xnvCtrlSetGvoColorConversionDeprecatedReq; 00269 #define sz_xnvCtrlSetGvoColorConversionDeprecatedReq 56 00270 00271 /* Query GVO Color Conversion request (deprecated) */ 00272 typedef struct { 00273 CARD8 reqType; 00274 CARD8 nvReqType; 00275 CARD16 length B16; 00276 CARD32 screen B32; 00277 } xnvCtrlQueryGvoColorConversionDeprecatedReq; 00278 #define sz_xnvCtrlQueryGvoColorConversionDeprecatedReq 8 00279 00280 /* Query GVO Color Conversion reply (deprecated) */ 00281 typedef struct { 00282 BYTE type; /* X_Reply */ 00283 BYTE pad0; 00284 CARD16 sequenceNumber B16; 00285 CARD32 length B32; 00286 CARD32 pad3 B32; 00287 CARD32 pad4 B32; 00288 CARD32 pad5 B32; 00289 CARD32 pad6 B32; 00290 CARD32 pad7 B32; 00291 CARD32 pad8 B32; 00292 } xnvCtrlQueryGvoColorConversionDeprecatedReply; 00293 #define sz_xnvCtrlQueryGvoColorConversionDeprecatedReply 32 00294 00295 00296 /* Set GVO Color Conversion request */ 00297 typedef struct { 00298 CARD8 reqType; 00299 CARD8 nvReqType; 00300 CARD16 length B16; 00301 CARD32 screen B32; 00302 00303 FLOAT32 cscMatrix_y_r F32; 00304 FLOAT32 cscMatrix_y_g F32; 00305 FLOAT32 cscMatrix_y_b F32; 00306 00307 FLOAT32 cscMatrix_cr_r F32; 00308 FLOAT32 cscMatrix_cr_g F32; 00309 FLOAT32 cscMatrix_cr_b F32; 00310 00311 FLOAT32 cscMatrix_cb_r F32; 00312 FLOAT32 cscMatrix_cb_g F32; 00313 FLOAT32 cscMatrix_cb_b F32; 00314 00315 FLOAT32 cscOffset_y F32; 00316 FLOAT32 cscOffset_cr F32; 00317 FLOAT32 cscOffset_cb F32; 00318 00319 FLOAT32 cscScale_y F32; 00320 FLOAT32 cscScale_cr F32; 00321 FLOAT32 cscScale_cb F32; 00322 00323 } xnvCtrlSetGvoColorConversionReq; 00324 #define sz_xnvCtrlSetGvoColorConversionReq 68 00325 00326 /* Query GVO Color Conversion request */ 00327 typedef struct { 00328 CARD8 reqType; 00329 CARD8 nvReqType; 00330 CARD16 length B16; 00331 CARD32 screen B32; 00332 } xnvCtrlQueryGvoColorConversionReq; 00333 #define sz_xnvCtrlQueryGvoColorConversionReq 8 00334 00335 /* Query GVO Color Conversion reply */ 00336 typedef struct { 00337 BYTE type; /* X_Reply */ 00338 BYTE pad0; 00339 CARD16 sequenceNumber B16; 00340 CARD32 length B32; 00341 CARD32 pad3 B32; 00342 CARD32 pad4 B32; 00343 CARD32 pad5 B32; 00344 CARD32 pad6 B32; 00345 CARD32 pad7 B32; 00346 CARD32 pad8 B32; 00347 } xnvCtrlQueryGvoColorConversionReply; 00348 #define sz_xnvCtrlQueryGvoColorConversionReply 32 00349 00350 00351 typedef struct { 00352 CARD8 reqType; 00353 CARD8 nvReqType; 00354 CARD16 length B16; 00355 CARD32 screen B32; 00356 CARD32 display_mask B32; 00357 } xnvCtrlQueryDDCCILutSizeReq; 00358 #define sz_xnvCtrlQueryDDCCILutSizeReq 12 00359 00360 typedef struct { 00361 BYTE type; /* X_Reply */ 00362 BYTE pad0; 00363 CARD16 sequenceNumber B16; 00364 CARD32 length B32; 00365 CARD32 flags B32; 00366 CARD32 pad4 B32; 00367 CARD32 pad5 B32; 00368 CARD32 pad6 B32; 00369 CARD32 pad7 B32; 00370 CARD32 pad8 B32; 00371 } xnvCtrlQueryDDCCILutSizeReply; 00372 #define sz_xnvCtrlQueryDDCCILutSizeReply 32 00373 00374 typedef struct { 00375 CARD8 reqType; 00376 CARD8 nvReqType; 00377 CARD16 length B16; 00378 CARD32 screen B32; 00379 CARD32 display_mask B32; 00380 CARD32 offset B32; 00381 CARD32 red_value B32; 00382 CARD32 green_value B32; 00383 CARD32 blue_value B32; 00384 } xnvCtrlSetDDCCISinglePointLutOperationReq; 00385 #define sz_xnvCtrlSetDDCCISinglePointLutOperationReq 28 00386 00387 typedef struct { 00388 BYTE type; /* X_Reply */ 00389 BYTE pad0; 00390 CARD16 sequenceNumber B16; 00391 CARD32 length B32; 00392 CARD32 flags B32; 00393 CARD32 pad4 B32; 00394 CARD32 pad5 B32; 00395 CARD32 pad6 B32; 00396 CARD32 pad7 B32; 00397 CARD32 pad8 B32; 00398 } xnvCtrlSetDDCCISinglePointLutOperationReply; 00399 #define sz_xnvCtrlSetDDCCISinglePointLutOperationReply 32 00400 00401 typedef struct { 00402 CARD8 reqType; 00403 CARD8 nvReqType; 00404 CARD16 length B16; 00405 CARD32 screen B32; 00406 CARD32 display_mask B32; 00407 CARD32 offset B32; 00408 } xnvCtrlQueryDDCCISinglePointLutOperationReq; 00409 #define sz_xnvCtrlQueryDDCCISinglePointLutOperationReq 16 00410 00411 typedef struct { 00412 BYTE type; /* X_Reply */ 00413 BYTE pad0; 00414 CARD16 sequenceNumber B16; 00415 CARD32 length B32; 00416 CARD32 flags B32; 00417 CARD32 pad4 B32; 00418 CARD32 pad5 B32; 00419 CARD32 pad6 B32; 00420 CARD32 pad7 B32; 00421 CARD32 pad8 B32; 00422 } xnvCtrlQueryDDCCISinglePointLutOperationReply; 00423 #define sz_xnvCtrlQueryDDCCISinglePointLutOperationReply 32 00424 00425 typedef struct { 00426 CARD8 reqType; 00427 CARD8 nvReqType; 00428 CARD16 length B16; 00429 CARD32 screen B32; 00430 CARD32 display_mask B32; 00431 CARD32 size B32; 00432 CARD32 color B32; 00433 CARD32 offset B32; 00434 } xnvCtrlQueryDDCCIBlockLutOperationReq; 00435 #define sz_xnvCtrlQueryDDCCIBlockLutOperationReq 24 00436 00437 typedef struct { 00438 BYTE type; /* X_Reply */ 00439 BYTE pad0; 00440 CARD16 sequenceNumber B16; 00441 CARD32 length B32; 00442 CARD32 num_bytes B32; 00443 CARD32 flags B32; 00444 CARD32 pad5 B32; 00445 CARD32 pad6 B32; 00446 CARD32 pad7 B32; 00447 CARD32 pad8 B32; 00448 } xnvCtrlQueryDDCCIBlockLutOperationReply; 00449 #define sz_xnvCtrlQueryDDCCIBlockLutOperationReply 32 00450 00451 00452 typedef struct { 00453 CARD8 reqType; 00454 CARD8 nvReqType; 00455 CARD16 length B16; 00456 CARD32 screen B32; 00457 CARD32 display_mask B32; 00458 CARD32 color B32; 00459 CARD32 offset B32; 00460 CARD32 size B32; 00461 CARD32 num_bytes B32; 00462 } xnvCtrlSetDDCCIBlockLutOperationReq; 00463 #define sz_xnvCtrlSetDDCCIBlockLutOperationReq 28 00464 00465 typedef struct { 00466 BYTE type; /* X_Reply */ 00467 BYTE pad0; 00468 CARD16 sequenceNumber B16; 00469 CARD32 length B32; 00470 CARD32 num_bytes B32; 00471 CARD32 flags B32; 00472 CARD32 pad5 B32; 00473 CARD32 pad6 B32; 00474 CARD32 pad7 B32; 00475 CARD32 pad8 B32; 00476 } xnvCtrlSetDDCCIBlockLutOperationReply; 00477 #define sz_xnvCtrlSetDDCCIBlockLutOperationReply 32 00478 00479 00480 typedef struct { 00481 CARD8 reqType; 00482 CARD8 nvReqType; 00483 CARD16 length B16; 00484 CARD32 screen B32; 00485 CARD32 display_mask B32; 00486 CARD32 num_bytes B32; 00487 CARD32 size B32; 00488 CARD32 offset B32; 00489 } xnvCtrlSetDDCCIRemoteProcedureCallReq; 00490 #define sz_xnvCtrlSetDDCCIRemoteProcedureCallReq 24 00491 00492 typedef struct { 00493 BYTE type; /* X_Reply */ 00494 BYTE pad0; 00495 CARD16 sequenceNumber B16; 00496 CARD32 length B32; 00497 CARD32 num_bytes B32; 00498 CARD32 flags B32; 00499 CARD32 pad5 B32; 00500 CARD32 pad6 B32; 00501 CARD32 pad7 B32; 00502 CARD32 pad8 B32; 00503 } xnvCtrlSetDDCCIRemoteProcedureCallReply; 00504 #define sz_xnvCtrlSetDDCCIRemoteProcedureCallReply 32 00505 00506 typedef struct { 00507 CARD8 reqType; 00508 CARD8 nvReqType; 00509 CARD16 length B16; 00510 CARD32 screen B32; 00511 CARD32 display_mask B32; 00512 } xnvCtrlQueryDDCCIDisplayControllerTypeReq; 00513 #define sz_xnvCtrlQueryDDCCIDisplayControllerTypeReq 12 00514 00515 typedef struct { 00516 BYTE type; /* X_Reply */ 00517 BYTE pad0; 00518 CARD16 sequenceNumber B16; 00519 CARD32 length B32; 00520 CARD32 controller_type B32; 00521 CARD32 size B32; 00522 CARD32 flags B32; 00523 CARD32 pad5 B32; 00524 CARD32 pad6 B32; 00525 CARD32 pad7 B32; 00526 } xnvCtrlQueryDDCCIDisplayControllerTypeReply; 00527 #define sz_xnvCtrlQueryDDCCIDisplayControllerTypeReply 32 00528 00529 typedef struct { 00530 CARD8 reqType; 00531 CARD8 nvReqType; 00532 CARD16 length B16; 00533 CARD32 screen B32; 00534 CARD32 display_mask B32; 00535 } xnvCtrlQueryDDCCICapabilitiesReq; 00536 #define sz_xnvCtrlQueryDDCCICapabilitiesReq 12 00537 00538 typedef struct { 00539 BYTE type; /* X_Reply */ 00540 BYTE pad0; 00541 CARD16 sequenceNumber B16; 00542 CARD32 length B32; 00543 CARD32 num_bytes B32; 00544 CARD32 flags B32; 00545 CARD32 possible_val_len B32; 00546 CARD32 pad6 B32; 00547 CARD32 pad7 B32; 00548 CARD32 pad8 B32; 00549 } xnvCtrlQueryDDCCICapabilitiesReply; 00550 #define sz_xnvCtrlQueryDDCCICapabilitiesReply 32 00551 00552 typedef struct { 00553 CARD8 reqType; 00554 CARD8 nvReqType; 00555 CARD16 length B16; 00556 CARD32 screen B32; 00557 CARD32 display_mask B32; 00558 } xnvCtrlQueryDDCCITimingReportReq; 00559 #define sz_xnvCtrlQueryDDCCITimingReportReq 12 00560 00561 typedef struct { 00562 BYTE type; /* X_Reply */ 00563 BYTE pad0; 00564 CARD16 sequenceNumber B16; 00565 CARD32 length B32; 00566 CARD32 flags B32; 00567 CARD32 pad4 B32; 00568 CARD32 pad5 B32; 00569 CARD32 pad6 B32; 00570 CARD32 pad7 B32; 00571 CARD32 pad8 B32; 00572 } xnvCtrlQueryDDCCITimingReportReply; 00573 #define sz_xnvCtrlQueryDDCCITimingReportReply 32 00574 00575 typedef struct { 00576 CARD8 reqType; 00577 CARD8 nvReqType; 00578 CARD16 length B16; 00579 CARD16 target_id B16; /* X screen number or GPU number */ 00580 CARD16 target_type B16; /* X screen or GPU */ 00581 CARD32 display_mask B32; 00582 CARD32 attribute B32; 00583 } xnvCtrlQueryBinaryDataReq; 00584 #define sz_xnvCtrlQueryBinaryDataReq 16 00585 00586 typedef struct { 00587 BYTE type; 00588 BYTE pad0; 00589 CARD16 sequenceNumber B16; 00590 CARD32 length B32; 00591 CARD32 flags B32; 00592 CARD32 n B32; 00593 CARD32 pad4 B32; 00594 CARD32 pad5 B32; 00595 CARD32 pad6 B32; 00596 CARD32 pad7 B32; 00597 } xnvCtrlQueryBinaryDataReply; 00598 #define sz_xnvCtrlQueryBinaryDataReply 32 00599 00600 00601 typedef struct { 00602 CARD8 reqType; 00603 CARD8 nvReqType; 00604 CARD16 length B16; 00605 CARD32 screen B32; 00606 CARD16 notifyType B16; 00607 CARD16 onoff B16; 00608 } xnvCtrlSelectNotifyReq; 00609 #define sz_xnvCtrlSelectNotifyReq 12 00610 00611 typedef struct { 00612 union { 00613 struct { 00614 BYTE type; 00615 BYTE detail; 00616 CARD16 sequenceNumber B16; 00617 } u; 00618 struct { 00619 BYTE type; 00620 BYTE detail; 00621 CARD16 sequenceNumber B16; 00622 CARD32 time B32; 00623 CARD32 screen B32; 00624 CARD32 display_mask B32; 00625 CARD32 attribute B32; 00626 CARD32 value B32; 00627 CARD32 pad0 B32; 00628 CARD32 pad1 B32; 00629 } attribute_changed; 00630 } u; 00631 } xnvctrlEvent; 00632 00633 00634 /* 00635 * Leave target_type before target_id for the 00636 * xnvCtrlSelectTargetNotifyReq and xnvctrlEventTarget 00637 * structures, even though other request protocol structures 00638 * store target_id in the bottom 16-bits of the second DWORD of the 00639 * structures. The event-related structures were added in version 00640 * 1.8, and so there is no prior version with which to maintain 00641 * compatibility. 00642 */ 00643 typedef struct { 00644 CARD8 reqType; 00645 CARD8 nvReqType; 00646 CARD16 length B16; 00647 CARD16 target_type B16; /* Don't swap these */ 00648 CARD16 target_id B16; 00649 CARD16 notifyType B16; 00650 CARD16 onoff B16; 00651 } xnvCtrlSelectTargetNotifyReq; 00652 #define sz_xnvCtrlSelectTargetNotifyReq 12 00653 00654 typedef struct { 00655 union { 00656 struct { 00657 BYTE type; 00658 BYTE detail; 00659 CARD16 sequenceNumber B16; 00660 } u; 00661 struct { 00662 BYTE type; 00663 BYTE detail; 00664 CARD16 sequenceNumber B16; 00665 CARD32 time B32; 00666 CARD16 target_type B16; /* Don't swap these */ 00667 CARD16 target_id B16; 00668 CARD32 display_mask B32; 00669 CARD32 attribute B32; 00670 CARD32 value B32; 00671 CARD32 pad0 B32; 00672 CARD32 pad1 B32; 00673 } attribute_changed; 00674 } u; 00675 } xnvctrlEventTarget; 00676 00677 00678 #endif /* __NVCONTROL_H */