~ubuntu-branches/ubuntu/precise/nvidia-settings/precise

« back to all changes in this revision

Viewing changes to samples/nv-control-events.c

  • Committer: Bazaar Package Importer
  • Author(s): Alberto Milone (tseliot)
  • Date: 2009-01-31 17:21:51 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20090131172151-j7hdq3osfau2y51n
Tags: 180.25-0ubuntu1
* New upstream release (LP: #315667)
* debian/patches/02_add_missing_serverlayout.dpatch: drop patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
 * nvidia-settings: A tool for configuring the NVIDIA X driver on Unix
3
 
 * and Linux systems.
4
 
 *
5
 
 * Copyright (C) 2004 NVIDIA Corporation.
6
 
 *
7
 
 * This program is free software; you can redistribute it and/or
8
 
 * modify it under the terms of Version 2 of the GNU General Public
9
 
 * License as published by the Free Software Foundation.
10
 
 *
11
 
 * This program is distributed in the hope that it will be useful, but
12
 
 * WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See Version 2
14
 
 * of the GNU General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU General Public License
17
 
 * along with this program; if not, write to the:
18
 
 *
19
 
 *           Free Software Foundation, Inc.
20
 
 *           59 Temple Place - Suite 330
21
 
 *           Boston, MA 02111-1307, USA
22
 
 *
 
2
 * Copyright (c) 2004-2008 NVIDIA, Corporation
 
3
 *
 
4
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 
5
 * of this software and associated documentation files (the "Software"), to deal
 
6
 * in the Software without restriction, including without limitation the rights
 
7
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 
8
 * copies of the Software, and to permit persons to whom the Software is
 
9
 * furnished to do so, subject to the following conditions:
 
10
 *
 
11
 * The above copyright notice and this permission notice (including the next
 
12
 * paragraph) shall be included in all copies or substantial portions of the
 
13
 * Software.
 
14
 *
 
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 
18
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 
19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 
20
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 
21
 * SOFTWARE.
23
22
 */
24
23
 
25
24
/*
28
27
 */
29
28
 
30
29
#include <stdio.h>
 
30
#include <stdlib.h>
 
31
#include <string.h>
 
32
#include <ctype.h>
 
33
 
31
34
 
32
35
#include <X11/Xlib.h>
33
36
 
134
137
         * the NVIDIA driver.
135
138
         */
136
139
        if (!XNVCTRLIsNvScreen(dpy, i)) {
137
 
            printf("- The NV-CONTROL X not available on screen "
 
140
            printf("- The NV-CONTROL X not available on X screen "
138
141
                   "%d of '%s'.\n", i, XDisplayName(NULL));
139
142
            continue;
140
143
        }
146
149
            continue;
147
150
        }
148
151
        
149
 
        printf("+ Listening to ATTRIBUTE_CHANGE_EVENTs on screen %d.\n", i);
 
152
        printf("+ Listening to ATTRIBUTE_CHANGE_EVENTs on X screen %d.\n", i);
150
153
        sources++;
151
154
    }
152
155
    printf("\n");
170
173
         * the NVIDIA driver.
171
174
         */
172
175
        if (!XNVCTRLIsNvScreen(dpy, i)) {
173
 
            printf("- The NV-CONTROL X not available on screen "
 
176
            printf("- The NV-CONTROL X not available on X screen "
174
177
                   "%d of '%s'.\n", i, XDisplayName(NULL));
175
178
            continue;
176
179
        }
185
188
            continue;
186
189
        }
187
190
        
188
 
        printf("+ Listening to TARGET_ATTRIBUTE_CHANGE_EVENTs on X Screen "
 
191
        printf("+ Listening to TARGET_ATTRIBUTE_CHANGE_EVENTs on X screen "
189
192
               "%d.\n", i);
190
193
        sources++;
191
194
    }
261
264
     */
262
265
 
263
266
    while (True) {
 
267
        char target_str[256];
264
268
 
265
269
        /* block for the next event */
266
270
 
280
284
            nvevent = (XNVCtrlAttributeChangedEvent *) &event;
281
285
            
282
286
            /* print out the event information */
283
 
            
284
 
            printf("received NV-CONTROL event [attribute: %d (%s)  "
285
 
                   "value: %d]\n",
 
287
            snprintf(target_str, 256, "%s-%-3d", 
 
288
                     target2str(NV_CTRL_TARGET_TYPE_X_SCREEN),
 
289
                     nvevent->screen);
 
290
 
 
291
            printf("ATTRIBUTE_CHANGED_EVENTS:         Target: %15s   "
 
292
                   "Display Mask: 0x%08x   "
 
293
                   "Attribute: (%3d) %-32s   Value: %d (0x%08x)\n",
 
294
                   target_str,
 
295
                   nvevent->display_mask,
286
296
                   nvevent->attribute,
287
297
                   attr2str(nvevent->attribute),
288
 
                   nvevent->value);
 
298
                   nvevent->value,
 
299
                   nvevent->value
 
300
                   );
289
301
 
290
302
        /* Handle TARGET_ATTRIBUTE_CHANGED_EVENTS */
291
303
        } else if (event.type ==
295
307
            nveventtarget = (XNVCtrlAttributeChangedEventTarget *) &event;
296
308
            
297
309
            /* print out the event information */
298
 
            
299
 
            printf("received NV-CONTROL target event [target: %d (%s)  "
300
 
                   "id: %d ] [attribute: %d (%s)  value: %d]\n",
301
 
                   nveventtarget->target_type,
302
 
                   target2str(nveventtarget->target_type),
303
 
                   nveventtarget->target_id,
 
310
            snprintf(target_str, 256, "%s-%-3d",
 
311
                     target2str(nveventtarget->target_type),
 
312
                     nveventtarget->target_id);
 
313
 
 
314
            printf("TARGET_ATTRIBUTE_CHANGED_EVENTS:  Target: %15s   "
 
315
                   "Display Mask: 0x%08x   "
 
316
                   "Attribute: (%3d) %-32s   Value: %d (0x%08x)\n",
 
317
                   target_str,
 
318
                   nveventtarget->display_mask,
304
319
                   nveventtarget->attribute,
305
320
                   attr2str(nveventtarget->attribute),
306
 
                   nveventtarget->value);
 
321
                   nveventtarget->value,
 
322
                   nveventtarget->value
 
323
                   );
307
324
        }
308
325
    }
309
326
 
317
334
 */
318
335
static const char *target2str(int n)
319
336
{
 
337
    static char unknown[24];
 
338
 
320
339
    switch (n) {
321
340
    case NV_CTRL_TARGET_TYPE_X_SCREEN:  return "X Screen"; break;
322
341
    case NV_CTRL_TARGET_TYPE_GPU:       return "GPU"; break;
323
342
    case NV_CTRL_TARGET_TYPE_FRAMELOCK: return "Frame Lock"; break;
324
343
    case NV_CTRL_TARGET_TYPE_VCSC:      return "VCS"; break;
325
344
    default:
326
 
        return "Unknown";
 
345
        snprintf(unknown, 24, "Unknown (%d)", n);
 
346
        return unknown;
327
347
    }
328
348
}
329
349
 
330
350
 
331
 
 
332
 
 
333
 
/*
334
 
 * attr2str() - translate an attribute integer into a string
335
 
 */
 
351
// Used to convert the NV-CONTROL #defines to human readable text.
 
352
#define MAKE_ENTRY(ATTRIBUTE) { ATTRIBUTE, #ATTRIBUTE, NULL }
 
353
 
 
354
typedef struct {
 
355
    int num;
 
356
    char *str;
 
357
    char *name;
 
358
} AttrEntry;
 
359
 
 
360
static AttrEntry attr_table[];
336
361
 
337
362
static const char *attr2str(int n)
338
363
{
339
 
    switch (n) {
340
 
    case NV_CTRL_FLATPANEL_SCALING:                return "flatpanel scaling"; break;
341
 
    case NV_CTRL_FLATPANEL_DITHERING:              return "flatpanel dithering"; break;
342
 
    case NV_CTRL_DIGITAL_VIBRANCE:                 return "digital vibrance"; break;
343
 
    case NV_CTRL_SYNC_TO_VBLANK:                   return "sync to vblank"; break;
344
 
    case NV_CTRL_LOG_ANISO:                        return "log aniso"; break;
345
 
    case NV_CTRL_FSAA_MODE:                        return "fsaa mode"; break;
346
 
    case NV_CTRL_TEXTURE_SHARPEN:                  return "texture sharpen"; break;
347
 
    case NV_CTRL_EMULATE:                          return "OpenGL software emulation"; break;
348
 
    case NV_CTRL_CONNECTED_DISPLAYS:               return "connected displays"; break;
349
 
    case NV_CTRL_ENABLED_DISPLAYS:                 return "enabled displays"; break;
350
 
    case NV_CTRL_FRAMELOCK_MASTER:                 return "frame lock master"; break;
351
 
    case NV_CTRL_FRAMELOCK_POLARITY:               return "frame lock sync edge"; break;
352
 
    case NV_CTRL_FRAMELOCK_SYNC_DELAY:             return "frame lock sync delay"; break;
353
 
    case NV_CTRL_FRAMELOCK_SYNC_INTERVAL:          return "frame lock sync interval"; break;
354
 
    case NV_CTRL_FRAMELOCK_PORT0_STATUS:           return "frame lock port 0 status"; break;
355
 
    case NV_CTRL_FRAMELOCK_PORT1_STATUS:           return "frame lock port 1 status"; break;
356
 
    case NV_CTRL_FRAMELOCK_HOUSE_STATUS:           return "frame lock house status"; break;
357
 
    case NV_CTRL_FRAMELOCK_SYNC:                   return "frame lock sync"; break;
358
 
    case NV_CTRL_FRAMELOCK_SYNC_READY:             return "frame lock sync ready"; break;
359
 
    case NV_CTRL_FRAMELOCK_STEREO_SYNC:            return "frame lock stereo sync"; break;
360
 
    case NV_CTRL_FRAMELOCK_TEST_SIGNAL:            return "frame lock test signal"; break;
361
 
    case NV_CTRL_FRAMELOCK_ETHERNET_DETECTED:      return "frame lock ethernet detected"; break;
362
 
    case NV_CTRL_FRAMELOCK_VIDEO_MODE:             return "frame lock video mode"; break;
363
 
    case NV_CTRL_OPENGL_AA_LINE_GAMMA:             return "opengl aa line gamma"; break;
364
 
    case NV_CTRL_FLIPPING_ALLOWED:                 return "flipping allowed"; break;
365
 
    case NV_CTRL_TEXTURE_CLAMPING:                 return "texture clamping"; break;
366
 
    case NV_CTRL_CURSOR_SHADOW:                    return "cursor shadow"; break;
367
 
    case NV_CTRL_CURSOR_SHADOW_ALPHA:              return "cursor shadow alpha"; break;
368
 
    case NV_CTRL_CURSOR_SHADOW_RED:                return "cursor shadow red"; break;
369
 
    case NV_CTRL_CURSOR_SHADOW_GREEN:              return "cursor shadow green"; break;
370
 
    case NV_CTRL_CURSOR_SHADOW_BLUE:               return "cursor shadow blue"; break;
371
 
    case NV_CTRL_CURSOR_SHADOW_X_OFFSET:           return "cursor shadow x offset"; break;
372
 
    case NV_CTRL_CURSOR_SHADOW_Y_OFFSET:           return "cursor shadow y offset"; break;
373
 
    case NV_CTRL_FSAA_APPLICATION_CONTROLLED:      return "fsaa application controlled"; break;
374
 
    case NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED: return "log aniso application controlled"; break;
375
 
    case NV_CTRL_IMAGE_SHARPENING:                 return "image sharpening"; break;
376
 
    case NV_CTRL_TV_OVERSCAN:                      return "tv overscan"; break;
377
 
    case NV_CTRL_TV_FLICKER_FILTER:                return "tv flicker filter"; break;
378
 
    case NV_CTRL_TV_BRIGHTNESS:                    return "tv brightness"; break;
379
 
    case NV_CTRL_TV_HUE:                           return "tv hue"; break;
380
 
    case NV_CTRL_TV_CONTRAST:                      return "tv contrast"; break;
381
 
    case NV_CTRL_TV_SATURATION:                    return "tv saturation"; break;
382
 
    case NV_CTRL_TV_RESET_SETTINGS:                return "tv reset settings"; break;
383
 
    case NV_CTRL_GPU_CORE_TEMPERATURE:             return "gpu core temperature"; break;
384
 
    case NV_CTRL_GPU_CORE_THRESHOLD:               return "gpu core threshold"; break;
385
 
    case NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD:       return "gpu default core threshold"; break;
386
 
    case NV_CTRL_GPU_MAX_CORE_THRESHOLD:           return "gpu max core_threshold"; break;
387
 
    case NV_CTRL_AMBIENT_TEMPERATURE:              return "ambient temperature"; break;
388
 
    case NV_CTRL_PBUFFER_SCANOUT_XID:              return "scanout pbuffer xid"; break;
389
 
 
390
 
    case NV_CTRL_GVO_SUPPORTED:                         return "x screen supports gvo"; break;
391
 
    case NV_CTRL_GVO_SYNC_MODE:                         return "gvo sync mode"; break;
392
 
    case NV_CTRL_GVO_SYNC_SOURCE:                       return "gvo sync source"; break;
393
 
    case NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT:               return "gvo output video format"; break;
394
 
    case NV_CTRL_GVO_DISPLAY_X_SCREEN:                  return "gvo clone mode"; break;
395
 
    case NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED:     return "gvo composite sync input is detected"; break;
396
 
    case NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE:  return "gvo composite sync input detect mode"; break;
397
 
    case NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED:           return "gvo sync input detected"; break;
398
 
    case NV_CTRL_GVO_VIDEO_OUTPUTS:                     return "gvo video outputs"; break;
399
 
    case NV_CTRL_GVO_FIRMWARE_VERSION:                  return "gvo firmware version"; break;
400
 
    case NV_CTRL_GVO_SYNC_DELAY_PIXELS:                 return "gvo sync delay pixels"; break;
401
 
    case NV_CTRL_GVO_SYNC_DELAY_LINES:                  return "gvo sync delay lines"; break;
402
 
    case NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE:      return "gvo input video format reacquire"; break;
403
 
    case NV_CTRL_GVO_GLX_LOCKED:                        return "gvo glx locked"; break;
404
 
    case NV_CTRL_GVO_X_SCREEN_PAN_X:                    return "gvo x screen pan x"; break;
405
 
    case NV_CTRL_GVO_X_SCREEN_PAN_Y:                    return "gvo x screen pan y"; break;
406
 
    case NV_CTRL_GVO_OVERRIDE_HW_CSC:                   return "gvo override hw csc"; break;
407
 
    case NV_CTRL_GVO_CAPABILITIES:                      return "gvo capabilities"; break;
408
 
    case NV_CTRL_GVO_COMPOSITE_TERMINATION:             return "gvo composite termination"; break;
409
 
    case NV_CTRL_GVO_FLIP_QUEUE_SIZE:                   return "gvo flip queue size"; break;
410
 
    case NV_CTRL_GVO_LOCK_OWNER:                        return "gvo lock owner"; break;
411
 
        
412
 
    case NV_CTRL_GPU_OVERCLOCKING_STATE:           return "overclocking state"; break;
413
 
    case NV_CTRL_GPU_2D_CLOCK_FREQS:               return "gpu 2d clock frequencies"; break;
414
 
    case NV_CTRL_GPU_3D_CLOCK_FREQS:               return "gpu 3d clock frequencies"; break;
415
 
    case NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS:          return "gpu optimal clock frequencies"; break;
416
 
    case NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION: return "gpu optimal clock frequency detection"; break;
417
 
    case NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE: return "gpu optimal clock frequency detection state"; break;
418
 
        
419
 
        /* XXX DDCCI stuff */
420
 
 
421
 
    case NV_CTRL_USE_HOUSE_SYNC:                   return "use house sync"; break;
422
 
    case NV_CTRL_FORCE_STEREO:                     return "force stereo"; break;
423
 
    case NV_CTRL_IMAGE_SETTINGS:                   return "image settings"; break;
424
 
    case NV_CTRL_XINERAMA:                         return "xinerama"; break;
425
 
    case NV_CTRL_XINERAMA_STEREO:                  return "xinerama stereo"; break;
426
 
    case NV_CTRL_SHOW_SLI_HUD:                     return "show sli hud"; break;
427
 
    case NV_CTRL_XV_SYNC_TO_DISPLAY:               return "xv sync to display"; break;
428
 
 
429
 
    case NV_CTRL_ASSOCIATED_DISPLAY_DEVICES:       return "associated_display_devices"; break;
430
 
    case NV_CTRL_FRAMELOCK_SLAVES:                 return "frame lock slaves"; break;
431
 
    case NV_CTRL_FRAMELOCK_MASTERABLE:             return "frame lock masterable"; break;
432
 
    case NV_CTRL_PROBE_DISPLAYS:                   return "probed displays"; break;
433
 
 
434
 
    case NV_CTRL_REFRESH_RATE:                     return "refresh rate"; break;
435
 
    case NV_CTRL_CURRENT_SCANLINE:                 return "current scanline"; break;
436
 
    case NV_CTRL_INITIAL_PIXMAP_PLACEMENT:         return "initial pixmap placement"; break;
437
 
    case NV_CTRL_GLYPH_CACHE:                      return "glyph cache"; break;
438
 
    case NV_CTRL_PCI_BUS:                          return "pci bus"; break;
439
 
    case NV_CTRL_PCI_DEVICE:                       return "pci device"; break;
440
 
    case NV_CTRL_PCI_FUNCTION:                     return "pci function"; break;
441
 
    case NV_CTRL_FRAMELOCK_FPGA_REVISION:          return "framelock fpga revision"; break;
442
 
    case NV_CTRL_MAX_SCREEN_WIDTH:                 return "max screen width"; break;
443
 
    case NV_CTRL_MAX_SCREEN_HEIGHT:                return "max screen height"; break;
444
 
    case NV_CTRL_MAX_DISPLAYS:                     return "max displays"; break;
445
 
    case NV_CTRL_DYNAMIC_TWINVIEW:                 return "dynamic twinview"; break;
446
 
    case NV_CTRL_MULTIGPU_DISPLAY_OWNER:           return "multigpu display owner"; break;
447
 
    case NV_CTRL_GPU_SCALING:                      return "gpu scaling"; break;
448
 
    case NV_CTRL_FRONTEND_RESOLUTION:              return "frontend resolution"; break;
449
 
    case NV_CTRL_BACKEND_RESOLUTION:               return "backend resolution"; break;
450
 
    case NV_CTRL_FLATPANEL_NATIVE_RESOLUTION:      return "flatpanel native resolution"; break;
451
 
    case NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION:    return "flatpanel best fit resolution"; break;
452
 
    case NV_CTRL_GPU_SCALING_ACTIVE:               return "gpu scaling active"; break;
453
 
    case NV_CTRL_DFP_SCALING_ACTIVE:               return "dfp scaling active"; break;
454
 
    case NV_CTRL_FSAA_APPLICATION_ENHANCED:        return "fsaa application enhanced"; break;
455
 
    case NV_CTRL_FRAMELOCK_SYNC_RATE_4:            return "framelock sync rate (4)"; break;
456
 
 
457
 
    default:
458
 
        return "Unknown";
 
364
    AttrEntry *entry;
 
365
 
 
366
    entry = attr_table;
 
367
    while (entry->str) {
 
368
        if (entry->num == n) {
 
369
            if (!entry->name) {
 
370
                int len;
 
371
                entry->name = strdup(entry->str + 8);
 
372
                for (len = 0; len < strlen(entry->name); len++) {
 
373
                    entry->name[len] = tolower(entry->name[len]);
 
374
                }
 
375
            }
 
376
            return entry->name;
 
377
        }
 
378
        entry++;
459
379
    }
460
 
} /* attr2str() */
 
380
 
 
381
    return NULL;
 
382
}
 
383
 
 
384
// Attribute -> String table, generated using:
 
385
//
 
386
// grep 'define.*\/\*' NVCtrl.h | sed 's/.*define \([^ ]*\).*/    MAKE_ENTRY(\1),/' > DATA | head DATA
 
387
//
 
388
static AttrEntry attr_table[] = {
 
389
    MAKE_ENTRY(NV_CTRL_FLATPANEL_SCALING),
 
390
    MAKE_ENTRY(NV_CTRL_FLATPANEL_DITHERING),
 
391
    MAKE_ENTRY(NV_CTRL_DIGITAL_VIBRANCE),
 
392
    MAKE_ENTRY(NV_CTRL_BUS_TYPE),
 
393
    MAKE_ENTRY(NV_CTRL_VIDEO_RAM),
 
394
    MAKE_ENTRY(NV_CTRL_IRQ),
 
395
    MAKE_ENTRY(NV_CTRL_OPERATING_SYSTEM),
 
396
    MAKE_ENTRY(NV_CTRL_SYNC_TO_VBLANK),
 
397
    MAKE_ENTRY(NV_CTRL_LOG_ANISO),
 
398
    MAKE_ENTRY(NV_CTRL_FSAA_MODE),
 
399
    MAKE_ENTRY(NV_CTRL_TEXTURE_SHARPEN),
 
400
    MAKE_ENTRY(NV_CTRL_UBB),
 
401
    MAKE_ENTRY(NV_CTRL_OVERLAY),
 
402
    MAKE_ENTRY(NV_CTRL_STEREO),
 
403
    MAKE_ENTRY(NV_CTRL_EMULATE),
 
404
    MAKE_ENTRY(NV_CTRL_TWINVIEW),
 
405
    MAKE_ENTRY(NV_CTRL_CONNECTED_DISPLAYS),
 
406
    MAKE_ENTRY(NV_CTRL_ENABLED_DISPLAYS),
 
407
    MAKE_ENTRY(NV_CTRL_FRAMELOCK),
 
408
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_MASTER),
 
409
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_POLARITY),
 
410
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC_DELAY),
 
411
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC_INTERVAL),
 
412
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_PORT0_STATUS),
 
413
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_PORT1_STATUS),
 
414
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_HOUSE_STATUS),
 
415
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC),
 
416
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC_READY),
 
417
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_STEREO_SYNC),
 
418
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_TEST_SIGNAL),
 
419
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_ETHERNET_DETECTED),
 
420
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_VIDEO_MODE),
 
421
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC_RATE),
 
422
    MAKE_ENTRY(NV_CTRL_FORCE_GENERIC_CPU),
 
423
    MAKE_ENTRY(NV_CTRL_OPENGL_AA_LINE_GAMMA),
 
424
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_TIMING),
 
425
    MAKE_ENTRY(NV_CTRL_FLIPPING_ALLOWED),
 
426
    MAKE_ENTRY(NV_CTRL_ARCHITECTURE),
 
427
    MAKE_ENTRY(NV_CTRL_TEXTURE_CLAMPING),
 
428
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW),
 
429
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_ALPHA),
 
430
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_RED),
 
431
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_GREEN),
 
432
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_BLUE),
 
433
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_X_OFFSET),
 
434
    MAKE_ENTRY(NV_CTRL_CURSOR_SHADOW_Y_OFFSET),
 
435
    MAKE_ENTRY(NV_CTRL_FSAA_APPLICATION_CONTROLLED),
 
436
    MAKE_ENTRY(NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED),
 
437
    MAKE_ENTRY(NV_CTRL_IMAGE_SHARPENING),
 
438
    MAKE_ENTRY(NV_CTRL_TV_OVERSCAN),
 
439
    MAKE_ENTRY(NV_CTRL_TV_FLICKER_FILTER),
 
440
    MAKE_ENTRY(NV_CTRL_TV_BRIGHTNESS),
 
441
    MAKE_ENTRY(NV_CTRL_TV_HUE),
 
442
    MAKE_ENTRY(NV_CTRL_TV_CONTRAST),
 
443
    MAKE_ENTRY(NV_CTRL_TV_SATURATION),
 
444
    MAKE_ENTRY(NV_CTRL_TV_RESET_SETTINGS),
 
445
    MAKE_ENTRY(NV_CTRL_GPU_CORE_TEMPERATURE),
 
446
    MAKE_ENTRY(NV_CTRL_GPU_CORE_THRESHOLD),
 
447
    MAKE_ENTRY(NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD),
 
448
    MAKE_ENTRY(NV_CTRL_GPU_MAX_CORE_THRESHOLD),
 
449
    MAKE_ENTRY(NV_CTRL_AMBIENT_TEMPERATURE),
 
450
    MAKE_ENTRY(NV_CTRL_PBUFFER_SCANOUT_SUPPORTED),
 
451
    MAKE_ENTRY(NV_CTRL_PBUFFER_SCANOUT_XID),
 
452
    MAKE_ENTRY(NV_CTRL_GVO_SUPPORTED),
 
453
    MAKE_ENTRY(NV_CTRL_GVO_SYNC_MODE),
 
454
    MAKE_ENTRY(NV_CTRL_GVO_SYNC_SOURCE),
 
455
    MAKE_ENTRY(NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT),
 
456
    MAKE_ENTRY(NV_CTRL_GVO_INPUT_VIDEO_FORMAT),
 
457
    MAKE_ENTRY(NV_CTRL_GVO_DATA_FORMAT),
 
458
    MAKE_ENTRY(NV_CTRL_GVO_DISPLAY_X_SCREEN),
 
459
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED),
 
460
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE),
 
461
    MAKE_ENTRY(NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED),
 
462
    MAKE_ENTRY(NV_CTRL_GVO_VIDEO_OUTPUTS),
 
463
    MAKE_ENTRY(NV_CTRL_GVO_FIRMWARE_VERSION),
 
464
    MAKE_ENTRY(NV_CTRL_GVO_SYNC_DELAY_PIXELS),
 
465
    MAKE_ENTRY(NV_CTRL_GVO_SYNC_DELAY_LINES),
 
466
    MAKE_ENTRY(NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE),
 
467
    MAKE_ENTRY(NV_CTRL_GVO_GLX_LOCKED),
 
468
    MAKE_ENTRY(NV_CTRL_GVO_VIDEO_FORMAT_WIDTH),
 
469
    MAKE_ENTRY(NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT),
 
470
    MAKE_ENTRY(NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE),
 
471
    MAKE_ENTRY(NV_CTRL_GVO_X_SCREEN_PAN_X),
 
472
    MAKE_ENTRY(NV_CTRL_GVO_X_SCREEN_PAN_Y),
 
473
    MAKE_ENTRY(NV_CTRL_GPU_OVERCLOCKING_STATE),
 
474
    MAKE_ENTRY(NV_CTRL_GPU_2D_CLOCK_FREQS),
 
475
    MAKE_ENTRY(NV_CTRL_GPU_3D_CLOCK_FREQS),
 
476
    MAKE_ENTRY(NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS),
 
477
    MAKE_ENTRY(NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS),
 
478
    MAKE_ENTRY(NV_CTRL_GPU_CURRENT_CLOCK_FREQS),
 
479
    MAKE_ENTRY(NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS),
 
480
    MAKE_ENTRY(NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION),
 
481
    MAKE_ENTRY(NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE),
 
482
    MAKE_ENTRY(NV_CTRL_FLATPANEL_CHIP_LOCATION),
 
483
    MAKE_ENTRY(NV_CTRL_FLATPANEL_LINK),
 
484
    MAKE_ENTRY(NV_CTRL_FLATPANEL_SIGNAL),
 
485
    MAKE_ENTRY(NV_CTRL_USE_HOUSE_SYNC),
 
486
    MAKE_ENTRY(NV_CTRL_EDID_AVAILABLE),
 
487
    MAKE_ENTRY(NV_CTRL_FORCE_STEREO),
 
488
    MAKE_ENTRY(NV_CTRL_IMAGE_SETTINGS),
 
489
    MAKE_ENTRY(NV_CTRL_XINERAMA),
 
490
    MAKE_ENTRY(NV_CTRL_XINERAMA_STEREO),
 
491
    MAKE_ENTRY(NV_CTRL_BUS_RATE),
 
492
    MAKE_ENTRY(NV_CTRL_SHOW_SLI_HUD),
 
493
    MAKE_ENTRY(NV_CTRL_XV_SYNC_TO_DISPLAY),
 
494
    MAKE_ENTRY(NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2),
 
495
    MAKE_ENTRY(NV_CTRL_GVO_OVERRIDE_HW_CSC),
 
496
    MAKE_ENTRY(NV_CTRL_GVO_CAPABILITIES),
 
497
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_TERMINATION),
 
498
    MAKE_ENTRY(NV_CTRL_ASSOCIATED_DISPLAY_DEVICES),
 
499
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SLAVES),
 
500
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_MASTERABLE),
 
501
    MAKE_ENTRY(NV_CTRL_PROBE_DISPLAYS),
 
502
    MAKE_ENTRY(NV_CTRL_REFRESH_RATE),
 
503
    MAKE_ENTRY(NV_CTRL_GVO_FLIP_QUEUE_SIZE),
 
504
    MAKE_ENTRY(NV_CTRL_CURRENT_SCANLINE),
 
505
    MAKE_ENTRY(NV_CTRL_INITIAL_PIXMAP_PLACEMENT),
 
506
    MAKE_ENTRY(NV_CTRL_PCI_BUS),
 
507
    MAKE_ENTRY(NV_CTRL_PCI_DEVICE),
 
508
    MAKE_ENTRY(NV_CTRL_PCI_FUNCTION),
 
509
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_FPGA_REVISION),
 
510
    MAKE_ENTRY(NV_CTRL_MAX_SCREEN_WIDTH),
 
511
    MAKE_ENTRY(NV_CTRL_MAX_SCREEN_HEIGHT),
 
512
    MAKE_ENTRY(NV_CTRL_MAX_DISPLAYS),
 
513
    MAKE_ENTRY(NV_CTRL_DYNAMIC_TWINVIEW),
 
514
    MAKE_ENTRY(NV_CTRL_MULTIGPU_DISPLAY_OWNER),
 
515
    MAKE_ENTRY(NV_CTRL_GPU_SCALING),
 
516
    MAKE_ENTRY(NV_CTRL_FRONTEND_RESOLUTION),
 
517
    MAKE_ENTRY(NV_CTRL_BACKEND_RESOLUTION),
 
518
    MAKE_ENTRY(NV_CTRL_FLATPANEL_NATIVE_RESOLUTION),
 
519
    MAKE_ENTRY(NV_CTRL_FLATPANEL_BEST_FIT_RESOLUTION),
 
520
    MAKE_ENTRY(NV_CTRL_GPU_SCALING_ACTIVE),
 
521
    MAKE_ENTRY(NV_CTRL_DFP_SCALING_ACTIVE),
 
522
    MAKE_ENTRY(NV_CTRL_FSAA_APPLICATION_ENHANCED),
 
523
    MAKE_ENTRY(NV_CTRL_FRAMELOCK_SYNC_RATE_4),
 
524
    MAKE_ENTRY(NV_CTRL_GVO_LOCK_OWNER),
 
525
    MAKE_ENTRY(NV_CTRL_HWOVERLAY),
 
526
    MAKE_ENTRY(NV_CTRL_NUM_GPU_ERRORS_RECOVERED),
 
527
    MAKE_ENTRY(NV_CTRL_REFRESH_RATE_3),
 
528
    MAKE_ENTRY(NV_CTRL_ONDEMAND_VBLANK_INTERRUPTS),
 
529
    MAKE_ENTRY(NV_CTRL_GPU_POWER_SOURCE),
 
530
    MAKE_ENTRY(NV_CTRL_GPU_CURRENT_PERFORMANCE_MODE),
 
531
    MAKE_ENTRY(NV_CTRL_GLYPH_CACHE),
 
532
    MAKE_ENTRY(NV_CTRL_GPU_CURRENT_PERFORMANCE_LEVEL),
 
533
    MAKE_ENTRY(NV_CTRL_GPU_ADAPTIVE_CLOCK_STATE),
 
534
    MAKE_ENTRY(NV_CTRL_GVO_OUTPUT_VIDEO_LOCKED),
 
535
    MAKE_ENTRY(NV_CTRL_GVO_SYNC_LOCK_STATUS),
 
536
    MAKE_ENTRY(NV_CTRL_GVO_ANC_TIME_CODE_GENERATION),
 
537
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE),
 
538
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_ALPHA_KEY),
 
539
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_LUMA_KEY_RANGE),
 
540
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_CR_KEY_RANGE),
 
541
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_CB_KEY_RANGE),
 
542
    MAKE_ENTRY(NV_CTRL_GVO_COMPOSITE_NUM_KEY_RANGES),
 
543
    MAKE_ENTRY(NV_CTRL_SWITCH_TO_DISPLAYS),
 
544
    MAKE_ENTRY(NV_CTRL_NOTEBOOK_DISPLAY_CHANGE_LID_EVENT),
 
545
    MAKE_ENTRY(NV_CTRL_NOTEBOOK_INTERNAL_LCD),
 
546
    MAKE_ENTRY(NV_CTRL_DEPTH_30_ALLOWED),
 
547
    MAKE_ENTRY(NV_CTRL_MODE_SET_EVENT),
 
548
    MAKE_ENTRY(NV_CTRL_OPENGL_AA_LINE_GAMMA_VALUE),
 
549
    MAKE_ENTRY(NV_CTRL_DISPLAYPORT_LINK_RATE),
 
550
    MAKE_ENTRY(NV_CTRL_STEREO_EYES_EXCHANGE),
 
551
    { -1, NULL, NULL }
 
552
};