b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/vdif.h,v 1.4tsi Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define CARD32 unsigned int /* ... on all supported platforms */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 Checksum; /* sum of all bytes in the file after*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync /* this field */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 VDIFRevision; /* structure revision number */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 DateManufactured[3]; /* date Year/Month/Day */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 Manufacturer; /* ASCII ID of the manufacturer */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 MinVDIFIndex; /* ASCII ID of Minimum VDIF index */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 Version; /* ASCII ID of the model version */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 SerialNumber; /* ASCII ID of the serial number */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 WhitePoint_x; /* WhitePoint in CIExyY (scale 1000) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 RedChromaticity_x; /* Red chromaticity in x,y */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 GreenChromaticity_x; /* Green chromaticity in x,y */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 BlueChromaticity_x; /* Blue chromaticity in x,y */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 RedGamma; /* Gamme curve exponent (scale 1000) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 NumberOptions; /* optinal sections (gamma table) */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef enum { /* Tags for section identification */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _VDIFScnHdr { /* Generic Section Header: */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 ScnTag; /* tag for section identification */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _VDIFLimits { /* Operational Limits: */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 SyncConfiguration; /* separate / composite / other */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _VDIFTiming { /* Preadjusted Timing: */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 PreadjustedTimingName; /* SVGA/SVPMI mode number */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD8 ScanType; /* noninterlaced / interlaced / other*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD16 GammaTableEntries; /* count of grays or RGB 3-tuples */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* access macros */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync((xf86VdifLimitsPtr)((char*)(vdif) + (vdif)->OffsetOperationalLimits))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define VDIF_NEXT_OPERATIONAL_LIMITS(limits) limits = \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((xf86VdifLimitsPtr)((char*)(limits) + (limits)->OffsetNextLimits))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync((xf86VdifTimingPtr)((char*)(limits) + (limits)->Header.ScnLength))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define VDIF_NEXT_PREADJUSTED_TIMING(timing) timing = \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((xf86VdifTimingPtr)((char*)(timing) + (timing)->Header.ScnLength))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((VDIFScnHdrPtr)((char*)(vdif) + (vdif)->OffsetOptions))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((xf86VdifGammaPtr)((char*)(options) + (options)->Header.ScnLength))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ((char*)((char*)vdif + vdif->OffsetStringTable + (string)))