objc2_io_kit/generated/
graphics.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7#[cfg(feature = "objc2")]
8use objc2::__framework_prelude::*;
9use objc2_core_foundation::*;
10
11use crate::*;
12
13/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioacceleratorclassname?language=objc)
14pub const kIOAcceleratorClassName: &CStr =
15    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOAccelerator\0") };
16/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kcurrentgraphicsinterfaceversion?language=objc)
17pub const kCurrentGraphicsInterfaceVersion: c_uint = 1;
18/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kcurrentgraphicsinterfacerevision?language=objc)
19pub const kCurrentGraphicsInterfaceRevision: c_uint = 2;
20/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioacceltypeskey?language=objc)
21pub const kIOAccelTypesKey: &CStr =
22    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOAccelTypes\0") };
23/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioaccelindexkey?language=objc)
24pub const kIOAccelIndexKey: &CStr =
25    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOAccelIndex\0") };
26/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioaccelrevisionkey?language=objc)
27pub const kIOAccelRevisionKey: &CStr =
28    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOAccelRevision\0") };
29/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io1bitindexedpixels?language=objc)
30pub const IO1BitIndexedPixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"P\0") };
31/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io2bitindexedpixels?language=objc)
32pub const IO2BitIndexedPixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"PP\0") };
33/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io4bitindexedpixels?language=objc)
34pub const IO4BitIndexedPixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"PPPP\0") };
35/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io8bitindexedpixels?language=objc)
36pub const IO8BitIndexedPixels: &CStr =
37    unsafe { CStr::from_bytes_with_nul_unchecked(b"PPPPPPPP\0") };
38/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io16bitdirectpixels?language=objc)
39pub const IO16BitDirectPixels: &CStr =
40    unsafe { CStr::from_bytes_with_nul_unchecked(b"-RRRRRGGGGGBBBBB\0") };
41/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io32bitdirectpixels?language=objc)
42pub const IO32BitDirectPixels: &CStr =
43    unsafe { CStr::from_bytes_with_nul_unchecked(b"--------RRRRRRRRGGGGGGGGBBBBBBBB\0") };
44/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio30bitdirectpixels?language=objc)
45pub const kIO30BitDirectPixels: &CStr =
46    unsafe { CStr::from_bytes_with_nul_unchecked(b"--RRRRRRRRRRGGGGGGGGGGBBBBBBBBBB\0") };
47/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio64bitdirectpixels?language=objc)
48pub const kIO64BitDirectPixels: &CStr =
49    unsafe { CStr::from_bytes_with_nul_unchecked(b"-16R16G16B16\0") };
50/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16bitfloatpixels?language=objc)
51pub const kIO16BitFloatPixels: &CStr =
52    unsafe { CStr::from_bytes_with_nul_unchecked(b"-16FR16FG16FB16\0") };
53/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio32bitfloatpixels?language=objc)
54pub const kIO32BitFloatPixels: &CStr =
55    unsafe { CStr::from_bytes_with_nul_unchecked(b"-32FR32FG32FB32\0") };
56/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioyuv422pixels?language=objc)
57pub const IOYUV422Pixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"Y4U2V2\0") };
58/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io8bitoverlaypixels?language=objc)
59pub const IO8BitOverlayPixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"O8\0") };
60/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iopagedpixels?language=objc)
61pub const IOPagedPixels: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"Page1\0") };
62/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io_sampletypealpha?language=objc)
63pub const IO_SampleTypeAlpha: c_uint = b'A' as _;
64/// [Apple's documentation](https://developer.apple.com/documentation/iokit/io_sampletypeskip?language=objc)
65pub const IO_SampleTypeSkip: c_uint = b'-' as _;
66/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbsetgammasyncnotspecified?language=objc)
67pub const kIOFBSetGammaSyncNotSpecified: c_int = -1;
68/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbsetgammasyncnosync?language=objc)
69pub const kIOFBSetGammaSyncNoSync: c_uint = 0;
70/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbsetgammasyncverticalblanksync?language=objc)
71pub const kIOFBSetGammaSyncVerticalBlankSync: c_uint = 1;
72/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayattributeskey?language=objc)
73pub const kIODisplayAttributesKey: &CStr =
74    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayAttributes\0") };
75/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaysupportsunderscankey?language=objc)
76pub const kIODisplaySupportsUnderscanKey: &CStr =
77    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplaySupportsUnderscan\0") };
78/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaysupportsbasicaudiokey?language=objc)
79pub const kIODisplaySupportsBasicAudioKey: &CStr =
80    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplaySupportsBasicAudio\0") };
81/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaysupportsycbcr444key?language=objc)
82pub const kIODisplaySupportsYCbCr444Key: &CStr =
83    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplaySupportsYCbCr444\0") };
84/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaysupportsycbcr422key?language=objc)
85pub const kIODisplaySupportsYCbCr422Key: &CStr =
86    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplaySupportsYCbCr422\0") };
87/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayselectedcolormodekey?language=objc)
88pub const kIODisplaySelectedColorModeKey: &CStr =
89    unsafe { CStr::from_bytes_with_nul_unchecked(b"cmod\0") };
90/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioframebufferinfokey?language=objc)
91pub const kIOFramebufferInfoKey: &CStr =
92    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFramebufferInformation\0") };
93/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbwidthkey?language=objc)
94pub const kIOFBWidthKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBWidth\0") };
95/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbheightkey?language=objc)
96pub const kIOFBHeightKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBHeight\0") };
97/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbrefreshratekey?language=objc)
98pub const kIOFBRefreshRateKey: &CStr =
99    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBRefreshRate\0") };
100/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbflagskey?language=objc)
101pub const kIOFBFlagsKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBFlags\0") };
102/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbytesperrowkey?language=objc)
103pub const kIOFBBytesPerRowKey: &CStr =
104    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBBytesPerRow\0") };
105/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbytesperplanekey?language=objc)
106pub const kIOFBBytesPerPlaneKey: &CStr =
107    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBBytesPerPlane\0") };
108/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbitsperpixelkey?language=objc)
109pub const kIOFBBitsPerPixelKey: &CStr =
110    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBBitsPerPixel\0") };
111/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcomponentcountkey?language=objc)
112pub const kIOFBComponentCountKey: &CStr =
113    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBComponentCount\0") };
114/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbitspercomponentkey?language=objc)
115pub const kIOFBBitsPerComponentKey: &CStr =
116    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBBitsPerComponent\0") };
117/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdetailedtimingskey?language=objc)
118pub const kIOFBDetailedTimingsKey: &CStr =
119    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBDetailedTimings\0") };
120/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbtimingrangekey?language=objc)
121pub const kIOFBTimingRangeKey: &CStr =
122    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBTimingRange\0") };
123/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbscalerinfokey?language=objc)
124pub const kIOFBScalerInfoKey: &CStr =
125    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBScalerInfo\0") };
126/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcursorinfokey?language=objc)
127pub const kIOFBCursorInfoKey: &CStr =
128    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBCursorInfo\0") };
129/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdmidongleromkey?language=objc)
130pub const kIOFBHDMIDongleROMKey: &CStr =
131    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBHDMIDongleROM\0") };
132/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhostaccessflagskey?language=objc)
133pub const kIOFBHostAccessFlagsKey: &CStr =
134    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBHostAccessFlags\0") };
135/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmemorysizekey?language=objc)
136pub const kIOFBMemorySizeKey: &CStr =
137    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBMemorySize\0") };
138/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbneedsrefreshkey?language=objc)
139pub const kIOFBNeedsRefreshKey: &CStr =
140    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBNeedsRefresh\0") };
141/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbprobeoptionskey?language=objc)
142pub const kIOFBProbeOptionsKey: &CStr =
143    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBProbeOptions\0") };
144/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbgammawidthkey?language=objc)
145pub const kIOFBGammaWidthKey: &CStr =
146    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBGammaWidth\0") };
147/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbgammacountkey?language=objc)
148pub const kIOFBGammaCountKey: &CStr =
149    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBGammaCount\0") };
150/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbclutdeferkey?language=objc)
151pub const kIOFBCLUTDeferKey: &CStr =
152    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBCLUTDefer\0") };
153/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplayportconfigurationdatakey?language=objc)
154pub const kIOFBDisplayPortConfigurationDataKey: &CStr =
155    unsafe { CStr::from_bytes_with_nul_unchecked(b"dpcd-registers\0") };
156/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohibernatepreviewactivekey?language=objc)
157pub const kIOHibernatePreviewActiveKey: &CStr =
158    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOHibernatePreviewActive\0") };
159/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohibernateefigfxstatuskey?language=objc)
160pub const kIOHibernateEFIGfxStatusKey: &CStr =
161    unsafe { CStr::from_bytes_with_nul_unchecked(b"IOHibernateEFIGfxStatus\0") };
162/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypekey?language=objc)
163pub const kIOFBAVSignalTypeKey: &CStr =
164    unsafe { CStr::from_bytes_with_nul_unchecked(b"av-signal-type\0") };
165/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbconfigkey?language=objc)
166pub const kIOFBConfigKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBConfig\0") };
167/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodeskey?language=objc)
168pub const kIOFBModesKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"IOFBModes\0") };
169/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodeidkey?language=objc)
170pub const kIOFBModeIDKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"ID\0") };
171/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodedmkey?language=objc)
172pub const kIOFBModeDMKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"DM\0") };
173/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodetmkey?language=objc)
174pub const kIOFBModeTMKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"TM\0") };
175/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodeaidkey?language=objc)
176pub const kIOFBModeAIDKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"AID\0") };
177/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodedfkey?language=objc)
178pub const kIOFBModeDFKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"DF\0") };
179/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmodepikey?language=objc)
180pub const kIOFBModePIKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"PI\0") };
181/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayedidkey?language=objc)
182pub const kIODisplayEDIDKey: &CStr =
183    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayEDID\0") };
184/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayedidoriginalkey?language=objc)
185pub const kIODisplayEDIDOriginalKey: &CStr =
186    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayEDIDOriginal\0") };
187/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaylocationkey?language=objc)
188pub const kIODisplayLocationKey: &CStr =
189    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayLocation\0") };
190/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayconnectflagskey?language=objc)
191pub const kIODisplayConnectFlagsKey: &CStr =
192    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayConnectFlags\0") };
193/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayhasbacklightkey?language=objc)
194pub const kIODisplayHasBacklightKey: &CStr =
195    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayHasBacklight\0") };
196/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayisdigitalkey?language=objc)
197pub const kIODisplayIsDigitalKey: &CStr =
198    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayIsDigital\0") };
199/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaybundlekey?language=objc)
200pub const kDisplayBundleKey: &CStr =
201    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayBundle\0") };
202/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kappledisplaytypekey?language=objc)
203pub const kAppleDisplayTypeKey: &CStr =
204    unsafe { CStr::from_bytes_with_nul_unchecked(b"AppleDisplayType\0") };
205/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kapplesensekey?language=objc)
206pub const kAppleSenseKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"AppleSense\0") };
207/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaymccsversionkey?language=objc)
208pub const kIODisplayMCCSVersionKey: &CStr =
209    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayMCCSVersion\0") };
210/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaytechnologytypekey?language=objc)
211pub const kIODisplayTechnologyTypeKey: &CStr =
212    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayTechnologyType\0") };
213/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayusagetimekey?language=objc)
214pub const kIODisplayUsageTimeKey: &CStr =
215    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayUsageTime\0") };
216/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayfirmwarelevelkey?language=objc)
217pub const kIODisplayFirmwareLevelKey: &CStr =
218    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayFirmwareLevel\0") };
219/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayvendorid?language=objc)
220pub const kDisplayVendorID: &CStr =
221    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayVendorID\0") };
222/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayproductid?language=objc)
223pub const kDisplayProductID: &CStr =
224    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayProductID\0") };
225/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayserialnumber?language=objc)
226pub const kDisplaySerialNumber: &CStr =
227    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplaySerialNumber\0") };
228/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayserialstring?language=objc)
229pub const kDisplaySerialString: &CStr =
230    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplaySerialString\0") };
231/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayweekofmanufacture?language=objc)
232pub const kDisplayWeekOfManufacture: &CStr =
233    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayWeekManufacture\0") };
234/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayyearofmanufacture?language=objc)
235pub const kDisplayYearOfManufacture: &CStr =
236    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayYearManufacture\0") };
237/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayproductname?language=objc)
238pub const kDisplayProductName: &CStr =
239    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayProductName\0") };
240/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaywhitepointx?language=objc)
241pub const kDisplayWhitePointX: &CStr =
242    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayWhitePointX\0") };
243/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaywhitepointy?language=objc)
244pub const kDisplayWhitePointY: &CStr =
245    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayWhitePointY\0") };
246/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayredpointx?language=objc)
247pub const kDisplayRedPointX: &CStr =
248    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayRedPointX\0") };
249/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayredpointy?language=objc)
250pub const kDisplayRedPointY: &CStr =
251    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayRedPointY\0") };
252/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygreenpointx?language=objc)
253pub const kDisplayGreenPointX: &CStr =
254    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGreenPointX\0") };
255/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygreenpointy?language=objc)
256pub const kDisplayGreenPointY: &CStr =
257    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGreenPointY\0") };
258/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaybluepointx?language=objc)
259pub const kDisplayBluePointX: &CStr =
260    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayBluePointX\0") };
261/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaybluepointy?language=objc)
262pub const kDisplayBluePointY: &CStr =
263    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayBluePointY\0") };
264/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaywhitegamma?language=objc)
265pub const kDisplayWhiteGamma: &CStr =
266    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayWhiteGamma\0") };
267/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayredgamma?language=objc)
268pub const kDisplayRedGamma: &CStr =
269    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayRedGamma\0") };
270/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygreengamma?language=objc)
271pub const kDisplayGreenGamma: &CStr =
272    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGreenGamma\0") };
273/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaybluegamma?language=objc)
274pub const kDisplayBlueGamma: &CStr =
275    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayBlueGamma\0") };
276/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygammachannels?language=objc)
277pub const kDisplayGammaChannels: &CStr =
278    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGammaChannels\0") };
279/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygammaentrycount?language=objc)
280pub const kDisplayGammaEntryCount: &CStr =
281    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGammaEntryCount\0") };
282/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygammaentrysize?language=objc)
283pub const kDisplayGammaEntrySize: &CStr =
284    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGammaEntrySize\0") };
285/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaygammatable?language=objc)
286pub const kDisplayGammaTable: &CStr =
287    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayGammaTable\0") };
288/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaybrightnessaffectsgamma?language=objc)
289pub const kDisplayBrightnessAffectsGamma: &CStr =
290    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayBrightnessAffectsGamma\0") };
291/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayviewangleaffectsgamma?language=objc)
292pub const kDisplayViewAngleAffectsGamma: &CStr =
293    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayViewAngleAffectsGamma\0") };
294/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaycsprofile?language=objc)
295pub const kDisplayCSProfile: &CStr =
296    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayCSProfile\0") };
297/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayhorizontalimagesize?language=objc)
298pub const kDisplayHorizontalImageSize: &CStr =
299    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayHorizontalImageSize\0") };
300/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayverticalimagesize?language=objc)
301pub const kDisplayVerticalImageSize: &CStr =
302    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayVerticalImageSize\0") };
303/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayfixedpixelformat?language=objc)
304pub const kDisplayFixedPixelFormat: &CStr =
305    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplayFixedPixelFormat\0") };
306/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayout?language=objc)
307pub const kDisplaySubPixelLayout: &CStr =
308    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplaySubPixelLayout\0") };
309/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfiguration?language=objc)
310pub const kDisplaySubPixelConfiguration: &CStr =
311    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplaySubPixelConfiguration\0") };
312/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshape?language=objc)
313pub const kDisplaySubPixelShape: &CStr =
314    unsafe { CStr::from_bytes_with_nul_unchecked(b"DisplaySubPixelShape\0") };
315/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayoverridematchingkey?language=objc)
316pub const kIODisplayOverrideMatchingKey: &CStr =
317    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayOverrideMatching\0") };
318/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayparameterskey?language=objc)
319pub const kIODisplayParametersKey: &CStr =
320    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayParameters\0") };
321/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayguidkey?language=objc)
322pub const kIODisplayGUIDKey: &CStr =
323    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayGUID\0") };
324/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayvaluekey?language=objc)
325pub const kIODisplayValueKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"value\0") };
326/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayminvaluekey?language=objc)
327pub const kIODisplayMinValueKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"min\0") };
328/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaymaxvaluekey?language=objc)
329pub const kIODisplayMaxValueKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"max\0") };
330/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaybrightnessprobekey?language=objc)
331pub const kIODisplayBrightnessProbeKey: &CStr =
332    unsafe { CStr::from_bytes_with_nul_unchecked(b"brightness-probe\0") };
333/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaylinearbrightnessprobekey?language=objc)
334pub const kIODisplayLinearBrightnessProbeKey: &CStr =
335    unsafe { CStr::from_bytes_with_nul_unchecked(b"linear-brightness-probe\0") };
336/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaybrightnesskey?language=objc)
337pub const kIODisplayBrightnessKey: &CStr =
338    unsafe { CStr::from_bytes_with_nul_unchecked(b"brightness\0") };
339/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaylinearbrightnesskey?language=objc)
340pub const kIODisplayLinearBrightnessKey: &CStr =
341    unsafe { CStr::from_bytes_with_nul_unchecked(b"linear-brightness\0") };
342/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayusablelinearbrightnesskey?language=objc)
343pub const kIODisplayUsableLinearBrightnessKey: &CStr =
344    unsafe { CStr::from_bytes_with_nul_unchecked(b"usable-linear-brightness\0") };
345/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaybrightnessfadekey?language=objc)
346pub const kIODisplayBrightnessFadeKey: &CStr =
347    unsafe { CStr::from_bytes_with_nul_unchecked(b"brightness-fade\0") };
348/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaycontrastkey?language=objc)
349pub const kIODisplayContrastKey: &CStr =
350    unsafe { CStr::from_bytes_with_nul_unchecked(b"contrast\0") };
351/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayhorizontalpositionkey?language=objc)
352pub const kIODisplayHorizontalPositionKey: &CStr =
353    unsafe { CStr::from_bytes_with_nul_unchecked(b"horizontal-position\0") };
354/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayhorizontalsizekey?language=objc)
355pub const kIODisplayHorizontalSizeKey: &CStr =
356    unsafe { CStr::from_bytes_with_nul_unchecked(b"horizontal-size\0") };
357/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayverticalpositionkey?language=objc)
358pub const kIODisplayVerticalPositionKey: &CStr =
359    unsafe { CStr::from_bytes_with_nul_unchecked(b"vertical-position\0") };
360/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayverticalsizekey?language=objc)
361pub const kIODisplayVerticalSizeKey: &CStr =
362    unsafe { CStr::from_bytes_with_nul_unchecked(b"vertical-size\0") };
363/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaytrapezoidkey?language=objc)
364pub const kIODisplayTrapezoidKey: &CStr =
365    unsafe { CStr::from_bytes_with_nul_unchecked(b"trapezoid\0") };
366/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypincushionkey?language=objc)
367pub const kIODisplayPincushionKey: &CStr =
368    unsafe { CStr::from_bytes_with_nul_unchecked(b"pincushion\0") };
369/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayparallelogramkey?language=objc)
370pub const kIODisplayParallelogramKey: &CStr =
371    unsafe { CStr::from_bytes_with_nul_unchecked(b"parallelogram\0") };
372/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrotationkey?language=objc)
373pub const kIODisplayRotationKey: &CStr =
374    unsafe { CStr::from_bytes_with_nul_unchecked(b"rotation\0") };
375/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaytheatremodekey?language=objc)
376pub const kIODisplayTheatreModeKey: &CStr =
377    unsafe { CStr::from_bytes_with_nul_unchecked(b"theatre-mode\0") };
378/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaytheatremodewindowkey?language=objc)
379pub const kIODisplayTheatreModeWindowKey: &CStr =
380    unsafe { CStr::from_bytes_with_nul_unchecked(b"theatre-mode-window\0") };
381/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayoverscankey?language=objc)
382pub const kIODisplayOverscanKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"oscn\0") };
383/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayvideobestkey?language=objc)
384pub const kIODisplayVideoBestKey: &CStr = unsafe { CStr::from_bytes_with_nul_unchecked(b"vbst\0") };
385/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayspeakervolumekey?language=objc)
386pub const kIODisplaySpeakerVolumeKey: &CStr =
387    unsafe { CStr::from_bytes_with_nul_unchecked(b"speaker-volume\0") };
388/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayspeakerselectkey?language=objc)
389pub const kIODisplaySpeakerSelectKey: &CStr =
390    unsafe { CStr::from_bytes_with_nul_unchecked(b"speaker-select\0") };
391/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaymicrophonevolumekey?language=objc)
392pub const kIODisplayMicrophoneVolumeKey: &CStr =
393    unsafe { CStr::from_bytes_with_nul_unchecked(b"microphone-volume\0") };
394/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayambientlightsensorkey?language=objc)
395pub const kIODisplayAmbientLightSensorKey: &CStr =
396    unsafe { CStr::from_bytes_with_nul_unchecked(b"ambient-light-sensor\0") };
397/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayaudiomuteandscreenblankkey?language=objc)
398pub const kIODisplayAudioMuteAndScreenBlankKey: &CStr =
399    unsafe { CStr::from_bytes_with_nul_unchecked(b"audio-mute-and-screen-blank\0") };
400/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayaudiotreblekey?language=objc)
401pub const kIODisplayAudioTrebleKey: &CStr =
402    unsafe { CStr::from_bytes_with_nul_unchecked(b"audio-treble\0") };
403/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayaudiobasskey?language=objc)
404pub const kIODisplayAudioBassKey: &CStr =
405    unsafe { CStr::from_bytes_with_nul_unchecked(b"audio-bass\0") };
406/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayaudiobalancelrkey?language=objc)
407pub const kIODisplayAudioBalanceLRKey: &CStr =
408    unsafe { CStr::from_bytes_with_nul_unchecked(b"audio-balance-LR\0") };
409/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayaudioprocessormodekey?language=objc)
410pub const kIODisplayAudioProcessorModeKey: &CStr =
411    unsafe { CStr::from_bytes_with_nul_unchecked(b"audio-processor-mode\0") };
412/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypowermodekey?language=objc)
413pub const kIODisplayPowerModeKey: &CStr =
414    unsafe { CStr::from_bytes_with_nul_unchecked(b"power-mode\0") };
415/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaymanufacturerspecifickey?language=objc)
416pub const kIODisplayManufacturerSpecificKey: &CStr =
417    unsafe { CStr::from_bytes_with_nul_unchecked(b"manufacturer-specific\0") };
418/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypowerstatekey?language=objc)
419pub const kIODisplayPowerStateKey: &CStr =
420    unsafe { CStr::from_bytes_with_nul_unchecked(b"dsyp\0") };
421/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaycontrolleridkey?language=objc)
422pub const kIODisplayControllerIDKey: &CStr =
423    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayControllerID\0") };
424/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaycapabilitystringkey?language=objc)
425pub const kIODisplayCapabilityStringKey: &CStr =
426    unsafe { CStr::from_bytes_with_nul_unchecked(b"IODisplayCapabilityString\0") };
427/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayredgammascalekey?language=objc)
428pub const kIODisplayRedGammaScaleKey: &CStr =
429    unsafe { CStr::from_bytes_with_nul_unchecked(b"rgsc\0") };
430/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaygreengammascalekey?language=objc)
431pub const kIODisplayGreenGammaScaleKey: &CStr =
432    unsafe { CStr::from_bytes_with_nul_unchecked(b"ggsc\0") };
433/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaybluegammascalekey?language=objc)
434pub const kIODisplayBlueGammaScaleKey: &CStr =
435    unsafe { CStr::from_bytes_with_nul_unchecked(b"bgsc\0") };
436/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaygammascalekey?language=objc)
437pub const kIODisplayGammaScaleKey: &CStr =
438    unsafe { CStr::from_bytes_with_nul_unchecked(b"gsc \0") };
439/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayparameterscommitkey?language=objc)
440pub const kIODisplayParametersCommitKey: &CStr =
441    unsafe { CStr::from_bytes_with_nul_unchecked(b"commit\0") };
442/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayparametersdefaultkey?language=objc)
443pub const kIODisplayParametersDefaultKey: &CStr =
444    unsafe { CStr::from_bytes_with_nul_unchecked(b"defaults\0") };
445/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayparametersflushkey?language=objc)
446pub const kIODisplayParametersFlushKey: &CStr =
447    unsafe { CStr::from_bytes_with_nul_unchecked(b"flush\0") };
448/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioacceleratorclienttypes?language=objc)
449#[repr(transparent)]
450#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
451pub struct eIOAcceleratorClientTypes(pub c_uint);
452impl eIOAcceleratorClientTypes {
453    #[doc(alias = "kIOAccelSurfaceClientType")]
454    pub const IOAccelSurfaceClientType: Self = Self(0);
455    #[doc(alias = "kIOAccelNumClientTypes")]
456    pub const IOAccelNumClientTypes: Self = Self(1);
457    #[doc(alias = "kIOAccelSurface2ClientType")]
458    pub const IOAccelSurface2ClientType: Self = Self(0x20);
459}
460
461#[cfg(feature = "objc2")]
462unsafe impl Encode for eIOAcceleratorClientTypes {
463    const ENCODING: Encoding = c_uint::ENCODING;
464}
465
466#[cfg(feature = "objc2")]
467unsafe impl RefEncode for eIOAcceleratorClientTypes {
468    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
469}
470
471/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelbounds?language=objc)
472#[repr(C)]
473#[derive(Clone, Copy, Debug, PartialEq)]
474pub struct IOAccelBounds {
475    pub x: i16,
476    pub y: i16,
477    pub w: i16,
478    pub h: i16,
479}
480
481#[cfg(feature = "objc2")]
482unsafe impl Encode for IOAccelBounds {
483    const ENCODING: Encoding = Encoding::Struct(
484        "?",
485        &[
486            <i16>::ENCODING,
487            <i16>::ENCODING,
488            <i16>::ENCODING,
489            <i16>::ENCODING,
490        ],
491    );
492}
493
494#[cfg(feature = "objc2")]
495unsafe impl RefEncode for IOAccelBounds {
496    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
497}
498
499/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelsize?language=objc)
500#[repr(C)]
501#[derive(Clone, Copy, Debug, PartialEq)]
502pub struct IOAccelSize {
503    pub w: i16,
504    pub h: i16,
505}
506
507#[cfg(feature = "objc2")]
508unsafe impl Encode for IOAccelSize {
509    const ENCODING: Encoding = Encoding::Struct("?", &[<i16>::ENCODING, <i16>::ENCODING]);
510}
511
512#[cfg(feature = "objc2")]
513unsafe impl RefEncode for IOAccelSize {
514    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
515}
516
517/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioaccelvolatilesurface?language=objc)
518pub const kIOAccelVolatileSurface: c_uint = 0x00000001;
519
520/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelsurfaceinformation?language=objc)
521#[cfg(feature = "libc")]
522#[repr(C)]
523#[derive(Clone, Copy, Debug, PartialEq)]
524pub struct IOAccelSurfaceInformation {
525    pub address: [libc::mach_vm_address_t; 4],
526    pub rowBytes: u32,
527    pub width: u32,
528    pub height: u32,
529    pub pixelFormat: u32,
530    pub flags: IOOptionBits,
531    pub colorTemperature: [IOFixed; 4],
532    pub typeDependent: [u32; 4],
533}
534
535#[cfg(all(feature = "libc", feature = "objc2"))]
536unsafe impl Encode for IOAccelSurfaceInformation {
537    const ENCODING: Encoding = Encoding::Struct(
538        "?",
539        &[
540            <[libc::mach_vm_address_t; 4]>::ENCODING,
541            <u32>::ENCODING,
542            <u32>::ENCODING,
543            <u32>::ENCODING,
544            <u32>::ENCODING,
545            <IOOptionBits>::ENCODING,
546            <[IOFixed; 4]>::ENCODING,
547            <[u32; 4]>::ENCODING,
548        ],
549    );
550}
551
552#[cfg(all(feature = "libc", feature = "objc2"))]
553unsafe impl RefEncode for IOAccelSurfaceInformation {
554    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
555}
556
557/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelsurfacereaddata?language=objc)
558#[cfg(feature = "libc")]
559#[repr(C)]
560#[derive(Clone, Copy, Debug, PartialEq)]
561pub struct IOAccelSurfaceReadData {
562    pub x: i32,
563    pub y: i32,
564    pub w: i32,
565    pub h: i32,
566    pub client_addr: libc::mach_vm_address_t,
567    pub client_row_bytes: u32,
568}
569
570#[cfg(all(feature = "libc", feature = "objc2"))]
571unsafe impl Encode for IOAccelSurfaceReadData {
572    const ENCODING: Encoding = Encoding::Struct(
573        "?",
574        &[
575            <i32>::ENCODING,
576            <i32>::ENCODING,
577            <i32>::ENCODING,
578            <i32>::ENCODING,
579            <libc::mach_vm_address_t>::ENCODING,
580            <u32>::ENCODING,
581        ],
582    );
583}
584
585#[cfg(all(feature = "libc", feature = "objc2"))]
586unsafe impl RefEncode for IOAccelSurfaceReadData {
587    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
588}
589
590/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelsurfacescaling?language=objc)
591#[repr(C)]
592#[derive(Clone, Copy, Debug, PartialEq)]
593pub struct IOAccelSurfaceScaling {
594    pub buffer: IOAccelBounds,
595    pub source: IOAccelSize,
596    pub reserved: [u32; 8],
597}
598
599#[cfg(feature = "objc2")]
600unsafe impl Encode for IOAccelSurfaceScaling {
601    const ENCODING: Encoding = Encoding::Struct(
602        "?",
603        &[
604            <IOAccelBounds>::ENCODING,
605            <IOAccelSize>::ENCODING,
606            <[u32; 8]>::ENCODING,
607        ],
608    );
609}
610
611#[cfg(feature = "objc2")]
612unsafe impl RefEncode for IOAccelSurfaceScaling {
613    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
614}
615
616/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioaccelid?language=objc)
617pub type IOAccelID = i32;
618
619/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioaccelprivateid?language=objc)
620pub const kIOAccelPrivateID: c_uint = 0x00000001;
621
622/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioacceldeviceregion?language=objc)
623#[repr(C)]
624#[derive(Clone, Copy, Debug, PartialEq)]
625pub struct IOAccelDeviceRegion {
626    pub num_rects: u32,
627    pub bounds: IOAccelBounds,
628    pub rect: [IOAccelBounds; 0],
629}
630
631#[cfg(feature = "objc2")]
632unsafe impl Encode for IOAccelDeviceRegion {
633    const ENCODING: Encoding = Encoding::Struct(
634        "?",
635        &[
636            <u32>::ENCODING,
637            <IOAccelBounds>::ENCODING,
638            <[IOAccelBounds; 0]>::ENCODING,
639        ],
640    );
641}
642
643#[cfg(feature = "objc2")]
644unsafe impl RefEncode for IOAccelDeviceRegion {
645    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
646}
647
648/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacememorytypes?language=objc)
649#[repr(transparent)]
650#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
651pub struct eIOAccelSurfaceMemoryTypes(pub c_uint);
652impl eIOAccelSurfaceMemoryTypes {
653    #[doc(alias = "kIOAccelNumSurfaceMemoryTypes")]
654    pub const IOAccelNumSurfaceMemoryTypes: Self = Self(0);
655}
656
657#[cfg(feature = "objc2")]
658unsafe impl Encode for eIOAccelSurfaceMemoryTypes {
659    const ENCODING: Encoding = c_uint::ENCODING;
660}
661
662#[cfg(feature = "objc2")]
663unsafe impl RefEncode for eIOAccelSurfaceMemoryTypes {
664    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
665}
666
667/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacemethods?language=objc)
668#[repr(transparent)]
669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
670pub struct eIOAccelSurfaceMethods(pub c_uint);
671impl eIOAccelSurfaceMethods {
672    #[doc(alias = "kIOAccelSurfaceReadLockOptions")]
673    pub const IOAccelSurfaceReadLockOptions: Self = Self(0);
674    #[doc(alias = "kIOAccelSurfaceReadUnlockOptions")]
675    pub const IOAccelSurfaceReadUnlockOptions: Self = Self(1);
676    #[doc(alias = "kIOAccelSurfaceGetState")]
677    pub const IOAccelSurfaceGetState: Self = Self(2);
678    #[doc(alias = "kIOAccelSurfaceWriteLockOptions")]
679    pub const IOAccelSurfaceWriteLockOptions: Self = Self(3);
680    #[doc(alias = "kIOAccelSurfaceWriteUnlockOptions")]
681    pub const IOAccelSurfaceWriteUnlockOptions: Self = Self(4);
682    #[doc(alias = "kIOAccelSurfaceRead")]
683    pub const IOAccelSurfaceRead: Self = Self(5);
684    #[doc(alias = "kIOAccelSurfaceSetShapeBacking")]
685    pub const IOAccelSurfaceSetShapeBacking: Self = Self(6);
686    #[doc(alias = "kIOAccelSurfaceSetIDMode")]
687    pub const IOAccelSurfaceSetIDMode: Self = Self(7);
688    #[doc(alias = "kIOAccelSurfaceSetScale")]
689    pub const IOAccelSurfaceSetScale: Self = Self(8);
690    #[doc(alias = "kIOAccelSurfaceSetShape")]
691    pub const IOAccelSurfaceSetShape: Self = Self(9);
692    #[doc(alias = "kIOAccelSurfaceFlush")]
693    pub const IOAccelSurfaceFlush: Self = Self(10);
694    #[doc(alias = "kIOAccelSurfaceQueryLock")]
695    pub const IOAccelSurfaceQueryLock: Self = Self(11);
696    #[doc(alias = "kIOAccelSurfaceReadLock")]
697    pub const IOAccelSurfaceReadLock: Self = Self(12);
698    #[doc(alias = "kIOAccelSurfaceReadUnlock")]
699    pub const IOAccelSurfaceReadUnlock: Self = Self(13);
700    #[doc(alias = "kIOAccelSurfaceWriteLock")]
701    pub const IOAccelSurfaceWriteLock: Self = Self(14);
702    #[doc(alias = "kIOAccelSurfaceWriteUnlock")]
703    pub const IOAccelSurfaceWriteUnlock: Self = Self(15);
704    #[doc(alias = "kIOAccelSurfaceControl")]
705    pub const IOAccelSurfaceControl: Self = Self(16);
706    #[doc(alias = "kIOAccelSurfaceSetShapeBackingAndLength")]
707    pub const IOAccelSurfaceSetShapeBackingAndLength: Self = Self(17);
708    #[doc(alias = "kIOAccelNumSurfaceMethods")]
709    pub const IOAccelNumSurfaceMethods: Self = Self(18);
710}
711
712#[cfg(feature = "objc2")]
713unsafe impl Encode for eIOAccelSurfaceMethods {
714    const ENCODING: Encoding = c_uint::ENCODING;
715}
716
717#[cfg(feature = "objc2")]
718unsafe impl RefEncode for eIOAccelSurfaceMethods {
719    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
720}
721
722/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacemodebits?language=objc)
723#[repr(transparent)]
724#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
725pub struct eIOAccelSurfaceModeBits(pub c_uint);
726impl eIOAccelSurfaceModeBits {
727    #[doc(alias = "kIOAccelSurfaceModeColorDepth1555")]
728    pub const IOAccelSurfaceModeColorDepth1555: Self = Self(0x00000003);
729    #[doc(alias = "kIOAccelSurfaceModeColorDepth8888")]
730    pub const IOAccelSurfaceModeColorDepth8888: Self = Self(0x00000004);
731    #[doc(alias = "kIOAccelSurfaceModeColorDepthYUV")]
732    pub const IOAccelSurfaceModeColorDepthYUV: Self = Self(0x00000006);
733    #[doc(alias = "kIOAccelSurfaceModeColorDepthYUV9")]
734    pub const IOAccelSurfaceModeColorDepthYUV9: Self = Self(0x00000007);
735    #[doc(alias = "kIOAccelSurfaceModeColorDepthYUV12")]
736    pub const IOAccelSurfaceModeColorDepthYUV12: Self = Self(0x00000008);
737    #[doc(alias = "kIOAccelSurfaceModeColorDepthYUV2")]
738    pub const IOAccelSurfaceModeColorDepthYUV2: Self = Self(0x00000009);
739    #[doc(alias = "kIOAccelSurfaceModeColorDepthBGRA32")]
740    pub const IOAccelSurfaceModeColorDepthBGRA32: Self = Self(0x0000000A);
741    #[doc(alias = "kIOAccelSurfaceModeColorDepth2101010")]
742    pub const IOAccelSurfaceModeColorDepth2101010: Self = Self(0x0000000F);
743    #[doc(alias = "kIOAccelSurfaceModeColorDepthBits")]
744    pub const IOAccelSurfaceModeColorDepthBits: Self = Self(0x0000000F);
745    #[doc(alias = "kIOAccelSurfaceModeStereoBit")]
746    pub const IOAccelSurfaceModeStereoBit: Self = Self(0x00000010);
747    #[doc(alias = "kIOAccelSurfaceModeWindowedBit")]
748    pub const IOAccelSurfaceModeWindowedBit: Self = Self(0x00000020);
749    #[doc(alias = "kIOAccelSurfaceModeSurface2")]
750    pub const IOAccelSurfaceModeSurface2: Self = Self(0x00004000);
751    #[doc(alias = "kIOAccelSurfaceModeBeamSync")]
752    pub const IOAccelSurfaceModeBeamSync: Self = Self(0x00008000);
753}
754
755#[cfg(feature = "objc2")]
756unsafe impl Encode for eIOAccelSurfaceModeBits {
757    const ENCODING: Encoding = c_uint::ENCODING;
758}
759
760#[cfg(feature = "objc2")]
761unsafe impl RefEncode for eIOAccelSurfaceModeBits {
762    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
763}
764
765/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfaceshapebits?language=objc)
766#[repr(transparent)]
767#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
768pub struct eIOAccelSurfaceShapeBits(pub c_uint);
769impl eIOAccelSurfaceShapeBits {
770    #[doc(alias = "kIOAccelSurfaceShapeNone")]
771    pub const IOAccelSurfaceShapeNone: Self = Self(0x00000000);
772    #[doc(alias = "kIOAccelSurfaceShapeNonBlockingBit")]
773    pub const IOAccelSurfaceShapeNonBlockingBit: Self = Self(0x00000001);
774    #[doc(alias = "kIOAccelSurfaceShapeNonSimpleBit")]
775    pub const IOAccelSurfaceShapeNonSimpleBit: Self = Self(0x00000002);
776    #[doc(alias = "kIOAccelSurfaceShapeIdentityScaleBit")]
777    pub const IOAccelSurfaceShapeIdentityScaleBit: Self = Self(0x00000004);
778    #[doc(alias = "kIOAccelSurfaceShapeFrameSyncBit")]
779    pub const IOAccelSurfaceShapeFrameSyncBit: Self = Self(0x00000008);
780    #[doc(alias = "kIOAccelSurfaceShapeBeamSyncBit")]
781    pub const IOAccelSurfaceShapeBeamSyncBit: Self = Self(0x00000010);
782    #[doc(alias = "kIOAccelSurfaceShapeStaleBackingBit")]
783    pub const IOAccelSurfaceShapeStaleBackingBit: Self = Self(0x00000020);
784    #[doc(alias = "kIOAccelSurfaceShapeAssemblyBit")]
785    pub const IOAccelSurfaceShapeAssemblyBit: Self = Self(0x00000040);
786    #[doc(alias = "kIOAccelSurfaceShapeWaitEnabledBit")]
787    pub const IOAccelSurfaceShapeWaitEnabledBit: Self = Self(0x00000080);
788    #[doc(alias = "kIOAccelSurfaceShapeBlockingBit")]
789    pub const IOAccelSurfaceShapeBlockingBit: Self =
790        Self(eIOAccelSurfaceShapeBits::IOAccelSurfaceShapeNonBlockingBit.0);
791}
792
793#[cfg(feature = "objc2")]
794unsafe impl Encode for eIOAccelSurfaceShapeBits {
795    const ENCODING: Encoding = c_uint::ENCODING;
796}
797
798#[cfg(feature = "objc2")]
799unsafe impl RefEncode for eIOAccelSurfaceShapeBits {
800    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
801}
802
803/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacestatebits?language=objc)
804#[repr(transparent)]
805#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
806pub struct eIOAccelSurfaceStateBits(pub c_uint);
807impl eIOAccelSurfaceStateBits {
808    #[doc(alias = "kIOAccelSurfaceStateNone")]
809    pub const IOAccelSurfaceStateNone: Self = Self(0x00000000);
810    #[doc(alias = "kIOAccelSurfaceStateIdleBit")]
811    pub const IOAccelSurfaceStateIdleBit: Self = Self(0x00000001);
812}
813
814#[cfg(feature = "objc2")]
815unsafe impl Encode for eIOAccelSurfaceStateBits {
816    const ENCODING: Encoding = c_uint::ENCODING;
817}
818
819#[cfg(feature = "objc2")]
820unsafe impl RefEncode for eIOAccelSurfaceStateBits {
821    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
822}
823
824/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacescalebits?language=objc)
825#[repr(transparent)]
826#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
827pub struct eIOAccelSurfaceScaleBits(pub c_uint);
828impl eIOAccelSurfaceScaleBits {
829    #[doc(alias = "kIOAccelSurfaceBeamSyncSwaps")]
830    pub const IOAccelSurfaceBeamSyncSwaps: Self = Self(0x00000001);
831    #[doc(alias = "kIOAccelSurfaceFixedSource")]
832    pub const IOAccelSurfaceFixedSource: Self = Self(0x00000002);
833    #[doc(alias = "kIOAccelSurfaceFiltering")]
834    pub const IOAccelSurfaceFiltering: Self = Self(0x000000f0);
835    #[doc(alias = "kIOAccelSurfaceFilterDefault")]
836    pub const IOAccelSurfaceFilterDefault: Self = Self(0x00000000);
837    #[doc(alias = "kIOAccelSurfaceFilterNone")]
838    pub const IOAccelSurfaceFilterNone: Self = Self(0x00000010);
839    #[doc(alias = "kIOAccelSurfaceFilterLinear")]
840    pub const IOAccelSurfaceFilterLinear: Self = Self(0x00000020);
841}
842
843#[cfg(feature = "objc2")]
844unsafe impl Encode for eIOAccelSurfaceScaleBits {
845    const ENCODING: Encoding = c_uint::ENCODING;
846}
847
848#[cfg(feature = "objc2")]
849unsafe impl RefEncode for eIOAccelSurfaceScaleBits {
850    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
851}
852
853/// [Apple's documentation](https://developer.apple.com/documentation/iokit/eioaccelsurfacelockbits?language=objc)
854#[repr(transparent)]
855#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
856pub struct eIOAccelSurfaceLockBits(pub c_uint);
857impl eIOAccelSurfaceLockBits {
858    #[doc(alias = "kIOAccelSurfaceLockInBacking")]
859    pub const IOAccelSurfaceLockInBacking: Self = Self(0);
860    #[doc(alias = "kIOAccelSurfaceLockInAccel")]
861    pub const IOAccelSurfaceLockInAccel: Self = Self(1);
862    #[doc(alias = "kIOAccelSurfaceLockInDontCare")]
863    pub const IOAccelSurfaceLockInDontCare: Self = Self(2);
864    #[doc(alias = "kIOAccelSurfaceLockInMask")]
865    pub const IOAccelSurfaceLockInMask: Self = Self(0x00000003);
866}
867
868#[cfg(feature = "objc2")]
869unsafe impl Encode for eIOAccelSurfaceLockBits {
870    const ENCODING: Encoding = c_uint::ENCODING;
871}
872
873#[cfg(feature = "objc2")]
874unsafe impl RefEncode for eIOAccelSurfaceLockBits {
875    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
876}
877
878/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofourcharcode?language=objc)
879pub type IOFourCharCode = u32;
880
881/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcompletiontoken?language=objc)
882pub type IOBlitCompletionToken = i32;
883
884/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblittype?language=objc)
885pub type IOBlitType = u32;
886
887/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeverbmask?language=objc)
888pub const kIOBlitTypeVerbMask: c_uint = 0x000000ff;
889/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittyperects?language=objc)
890pub const kIOBlitTypeRects: c_uint = 0;
891/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypecopyrects?language=objc)
892pub const kIOBlitTypeCopyRects: c_uint = 1;
893/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypelines?language=objc)
894pub const kIOBlitTypeLines: c_uint = 2;
895/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypescanlines?language=objc)
896pub const kIOBlitTypeScanlines: c_uint = 3;
897/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypecopyregion?language=objc)
898pub const kIOBlitTypeCopyRegion: c_uint = 4;
899/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypemovecursor?language=objc)
900pub const kIOBlitTypeMoveCursor: c_uint = 5;
901/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeshowcursor?language=objc)
902pub const kIOBlitTypeShowCursor: c_uint = 6;
903/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypehidecursor?language=objc)
904pub const kIOBlitTypeHideCursor: c_uint = 7;
905/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypemonoexpand?language=objc)
906pub const kIOBlitTypeMonoExpand: c_uint = 0x00000100;
907/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypecolorspaceconvert?language=objc)
908pub const kIOBlitTypeColorSpaceConvert: c_uint = 0x00000200;
909/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypescale?language=objc)
910pub const kIOBlitTypeScale: c_uint = 0x00000400;
911/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypesourcekeycolormodemask?language=objc)
912pub const kIOBlitTypeSourceKeyColorModeMask: c_uint = 0x00003000;
913/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypedestkeycolormodemask?language=objc)
914pub const kIOBlitTypeDestKeyColorModeMask: c_uint = 0x0000c000;
915/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypesourcekeycolorequal?language=objc)
916pub const kIOBlitTypeSourceKeyColorEqual: c_uint = 0x00001000;
917/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypesourcekeycolornotequal?language=objc)
918pub const kIOBlitTypeSourceKeyColorNotEqual: c_uint = 0x00002000;
919/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypedestkeycolorequal?language=objc)
920pub const kIOBlitTypeDestKeyColorEqual: c_uint = 0x00004000;
921/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypedestkeycolornotequal?language=objc)
922pub const kIOBlitTypeDestKeyColorNotEqual: c_uint = 0x00008000;
923/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeoperationmask?language=objc)
924pub const kIOBlitTypeOperationMask: c_uint = 0x0fff0000;
925/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeoperationshift?language=objc)
926pub const kIOBlitTypeOperationShift: c_uint = 16;
927/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeoperationtypemask?language=objc)
928pub const kIOBlitTypeOperationTypeMask: c_uint = 0x0f000000;
929/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblittypeoperationtype0?language=objc)
930pub const kIOBlitTypeOperationType0: c_uint = 0x00000000;
931/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitcopyoperation?language=objc)
932pub const kIOBlitCopyOperation: c_uint = 0x00000000 | kIOBlitTypeOperationType0;
933/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitoroperation?language=objc)
934pub const kIOBlitOrOperation: c_uint = 0x00010000 | kIOBlitTypeOperationType0;
935/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitxoroperation?language=objc)
936pub const kIOBlitXorOperation: c_uint = 0x00020000 | kIOBlitTypeOperationType0;
937/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitblendoperation?language=objc)
938pub const kIOBlitBlendOperation: c_uint = 0x00030000 | kIOBlitTypeOperationType0;
939/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblithighlightoperation?language=objc)
940pub const kIOBlitHighlightOperation: c_uint = 0x00040000 | kIOBlitTypeOperationType0;
941
942/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitsourcetype?language=objc)
943pub type IOBlitSourceType = u32;
944
945/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourcedefault?language=objc)
946pub const kIOBlitSourceDefault: c_uint = 0x00000000;
947/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourceframebuffer?language=objc)
948pub const kIOBlitSourceFramebuffer: c_uint = 0x00001000;
949/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourcememory?language=objc)
950pub const kIOBlitSourceMemory: c_uint = 0x00002000;
951/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourceoolmemory?language=objc)
952pub const kIOBlitSourceOOLMemory: c_uint = 0x00003000;
953/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourcepattern?language=objc)
954pub const kIOBlitSourcePattern: c_uint = 0x00004000;
955/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourceoolpattern?language=objc)
956pub const kIOBlitSourceOOLPattern: c_uint = 0x00005000;
957/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourcesolid?language=objc)
958pub const kIOBlitSourceSolid: c_uint = 0x00006000;
959/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourcecgssurface?language=objc)
960pub const kIOBlitSourceCGSSurface: c_uint = 0x00007000;
961/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsourceissame?language=objc)
962pub const kIOBlitSourceIsSame: c_uint = 0x80000000;
963
964/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitsourcedesttype?language=objc)
965pub type IOBlitSourceDestType = IOBlitSourceType;
966
967/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitdestframebuffer?language=objc)
968pub const kIOBlitDestFramebuffer: c_uint = 0x00000001;
969
970/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitoperationstruct?language=objc)
971#[repr(C)]
972#[derive(Clone, Copy, Debug, PartialEq)]
973pub struct IOBlitOperationStruct {
974    pub color0: u32,
975    pub color1: u32,
976    pub offsetX: i32,
977    pub offsetY: i32,
978    pub sourceKeyColor: u32,
979    pub destKeyColor: u32,
980    pub specific: [u32; 16],
981}
982
983#[cfg(feature = "objc2")]
984unsafe impl Encode for IOBlitOperationStruct {
985    const ENCODING: Encoding = Encoding::Struct(
986        "IOBlitOperationStruct",
987        &[
988            <u32>::ENCODING,
989            <u32>::ENCODING,
990            <i32>::ENCODING,
991            <i32>::ENCODING,
992            <u32>::ENCODING,
993            <u32>::ENCODING,
994            <[u32; 16]>::ENCODING,
995        ],
996    );
997}
998
999#[cfg(feature = "objc2")]
1000unsafe impl RefEncode for IOBlitOperationStruct {
1001    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1002}
1003
1004/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitoperation?language=objc)
1005pub type IOBlitOperation = IOBlitOperationStruct;
1006
1007/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitrectanglestruct?language=objc)
1008#[repr(C)]
1009#[derive(Clone, Copy, Debug, PartialEq)]
1010pub struct IOBlitRectangleStruct {
1011    pub x: i32,
1012    pub y: i32,
1013    pub width: i32,
1014    pub height: i32,
1015}
1016
1017#[cfg(feature = "objc2")]
1018unsafe impl Encode for IOBlitRectangleStruct {
1019    const ENCODING: Encoding = Encoding::Struct(
1020        "IOBlitRectangleStruct",
1021        &[
1022            <i32>::ENCODING,
1023            <i32>::ENCODING,
1024            <i32>::ENCODING,
1025            <i32>::ENCODING,
1026        ],
1027    );
1028}
1029
1030#[cfg(feature = "objc2")]
1031unsafe impl RefEncode for IOBlitRectangleStruct {
1032    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1033}
1034
1035/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitrectangle?language=objc)
1036pub type IOBlitRectangle = IOBlitRectangleStruct;
1037
1038/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitrectanglesstruct?language=objc)
1039#[repr(C)]
1040#[derive(Clone, Copy, Debug, PartialEq)]
1041pub struct IOBlitRectanglesStruct {
1042    pub operation: IOBlitOperation,
1043    pub count: IOItemCount,
1044    pub rects: [IOBlitRectangle; 1],
1045}
1046
1047#[cfg(feature = "objc2")]
1048unsafe impl Encode for IOBlitRectanglesStruct {
1049    const ENCODING: Encoding = Encoding::Struct(
1050        "IOBlitRectanglesStruct",
1051        &[
1052            <IOBlitOperation>::ENCODING,
1053            <IOItemCount>::ENCODING,
1054            <[IOBlitRectangle; 1]>::ENCODING,
1055        ],
1056    );
1057}
1058
1059#[cfg(feature = "objc2")]
1060unsafe impl RefEncode for IOBlitRectanglesStruct {
1061    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1062}
1063
1064/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitrectangles?language=objc)
1065pub type IOBlitRectangles = IOBlitRectanglesStruct;
1066
1067/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyrectanglestruct?language=objc)
1068#[repr(C)]
1069#[derive(Clone, Copy, Debug, PartialEq)]
1070pub struct IOBlitCopyRectangleStruct {
1071    pub sourceX: i32,
1072    pub sourceY: i32,
1073    pub x: i32,
1074    pub y: i32,
1075    pub width: i32,
1076    pub height: i32,
1077}
1078
1079#[cfg(feature = "objc2")]
1080unsafe impl Encode for IOBlitCopyRectangleStruct {
1081    const ENCODING: Encoding = Encoding::Struct(
1082        "IOBlitCopyRectangleStruct",
1083        &[
1084            <i32>::ENCODING,
1085            <i32>::ENCODING,
1086            <i32>::ENCODING,
1087            <i32>::ENCODING,
1088            <i32>::ENCODING,
1089            <i32>::ENCODING,
1090        ],
1091    );
1092}
1093
1094#[cfg(feature = "objc2")]
1095unsafe impl RefEncode for IOBlitCopyRectangleStruct {
1096    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1097}
1098
1099/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyrectangle?language=objc)
1100pub type IOBlitCopyRectangle = IOBlitCopyRectangleStruct;
1101
1102/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyrectanglesstruct?language=objc)
1103#[repr(C)]
1104#[derive(Clone, Copy, Debug, PartialEq)]
1105pub struct IOBlitCopyRectanglesStruct {
1106    pub operation: IOBlitOperation,
1107    pub count: IOItemCount,
1108    pub rects: [IOBlitCopyRectangle; 1],
1109}
1110
1111#[cfg(feature = "objc2")]
1112unsafe impl Encode for IOBlitCopyRectanglesStruct {
1113    const ENCODING: Encoding = Encoding::Struct(
1114        "IOBlitCopyRectanglesStruct",
1115        &[
1116            <IOBlitOperation>::ENCODING,
1117            <IOItemCount>::ENCODING,
1118            <[IOBlitCopyRectangle; 1]>::ENCODING,
1119        ],
1120    );
1121}
1122
1123#[cfg(feature = "objc2")]
1124unsafe impl RefEncode for IOBlitCopyRectanglesStruct {
1125    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1126}
1127
1128/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyrectangles?language=objc)
1129pub type IOBlitCopyRectangles = IOBlitCopyRectanglesStruct;
1130
1131/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyregionstruct?language=objc)
1132#[repr(C)]
1133#[derive(Clone, Copy, Debug, PartialEq)]
1134pub struct IOBlitCopyRegionStruct {
1135    pub operation: IOBlitOperation,
1136    pub deltaX: i32,
1137    pub deltaY: i32,
1138    pub region: *mut IOAccelDeviceRegion,
1139}
1140
1141#[cfg(feature = "objc2")]
1142unsafe impl Encode for IOBlitCopyRegionStruct {
1143    const ENCODING: Encoding = Encoding::Struct(
1144        "IOBlitCopyRegionStruct",
1145        &[
1146            <IOBlitOperation>::ENCODING,
1147            <i32>::ENCODING,
1148            <i32>::ENCODING,
1149            <*mut IOAccelDeviceRegion>::ENCODING,
1150        ],
1151    );
1152}
1153
1154#[cfg(feature = "objc2")]
1155unsafe impl RefEncode for IOBlitCopyRegionStruct {
1156    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1157}
1158
1159/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcopyregion?language=objc)
1160pub type IOBlitCopyRegion = IOBlitCopyRegionStruct;
1161
1162/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitvertexstruct?language=objc)
1163#[repr(C)]
1164#[derive(Clone, Copy, Debug, PartialEq)]
1165pub struct IOBlitVertexStruct {
1166    pub x: i32,
1167    pub y: i32,
1168}
1169
1170#[cfg(feature = "objc2")]
1171unsafe impl Encode for IOBlitVertexStruct {
1172    const ENCODING: Encoding =
1173        Encoding::Struct("IOBlitVertexStruct", &[<i32>::ENCODING, <i32>::ENCODING]);
1174}
1175
1176#[cfg(feature = "objc2")]
1177unsafe impl RefEncode for IOBlitVertexStruct {
1178    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1179}
1180
1181/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitvertex?language=objc)
1182pub type IOBlitVertex = IOBlitVertexStruct;
1183
1184/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitverticesstruct?language=objc)
1185#[repr(C)]
1186#[derive(Clone, Copy, Debug, PartialEq)]
1187pub struct IOBlitVerticesStruct {
1188    pub operation: IOBlitOperation,
1189    pub count: IOItemCount,
1190    pub vertices: [IOBlitVertex; 2],
1191}
1192
1193#[cfg(feature = "objc2")]
1194unsafe impl Encode for IOBlitVerticesStruct {
1195    const ENCODING: Encoding = Encoding::Struct(
1196        "IOBlitVerticesStruct",
1197        &[
1198            <IOBlitOperation>::ENCODING,
1199            <IOItemCount>::ENCODING,
1200            <[IOBlitVertex; 2]>::ENCODING,
1201        ],
1202    );
1203}
1204
1205#[cfg(feature = "objc2")]
1206unsafe impl RefEncode for IOBlitVerticesStruct {
1207    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1208}
1209
1210/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitvertices?language=objc)
1211pub type IOBlitVertices = IOBlitVerticesStruct;
1212
1213/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitscanlinesstruct?language=objc)
1214#[repr(C)]
1215#[derive(Clone, Copy, Debug, PartialEq)]
1216pub struct IOBlitScanlinesStruct {
1217    pub operation: IOBlitOperation,
1218    pub count: IOItemCount,
1219    pub y: i32,
1220    pub height: i32,
1221    pub x: [i32; 2],
1222}
1223
1224#[cfg(feature = "objc2")]
1225unsafe impl Encode for IOBlitScanlinesStruct {
1226    const ENCODING: Encoding = Encoding::Struct(
1227        "IOBlitScanlinesStruct",
1228        &[
1229            <IOBlitOperation>::ENCODING,
1230            <IOItemCount>::ENCODING,
1231            <i32>::ENCODING,
1232            <i32>::ENCODING,
1233            <[i32; 2]>::ENCODING,
1234        ],
1235    );
1236}
1237
1238#[cfg(feature = "objc2")]
1239unsafe impl RefEncode for IOBlitScanlinesStruct {
1240    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1241}
1242
1243/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitscanlines?language=objc)
1244pub type IOBlitScanlines = IOBlitScanlinesStruct;
1245
1246/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcursorstruct?language=objc)
1247#[repr(C)]
1248#[derive(Clone, Copy, Debug, PartialEq)]
1249pub struct IOBlitCursorStruct {
1250    pub operation: IOBlitOperation,
1251    pub rect: IOBlitRectangle,
1252}
1253
1254#[cfg(feature = "objc2")]
1255unsafe impl Encode for IOBlitCursorStruct {
1256    const ENCODING: Encoding = Encoding::Struct(
1257        "IOBlitCursorStruct",
1258        &[<IOBlitOperation>::ENCODING, <IOBlitRectangle>::ENCODING],
1259    );
1260}
1261
1262#[cfg(feature = "objc2")]
1263unsafe impl RefEncode for IOBlitCursorStruct {
1264    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1265}
1266
1267/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitcursor?language=objc)
1268pub type IOBlitCursor = IOBlitCursorStruct;
1269
1270/// [Apple's documentation](https://developer.apple.com/documentation/iokit/_ioblitmemory?language=objc)
1271#[repr(C)]
1272#[derive(Debug)]
1273pub struct _IOBlitMemory {
1274    inner: [u8; 0],
1275    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
1276}
1277
1278#[cfg(feature = "objc2")]
1279unsafe impl RefEncode for _IOBlitMemory {
1280    const ENCODING_REF: Encoding = Encoding::Pointer(&Encoding::Struct("_IOBlitMemory", &[]));
1281}
1282
1283/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitmemoryref?language=objc)
1284pub type IOBlitMemoryRef = *mut _IOBlitMemory;
1285
1286/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio1monochromepixelformat?language=objc)
1287pub const kIO1MonochromePixelFormat: c_uint = 0x00000001;
1288/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio2indexedpixelformat?language=objc)
1289pub const kIO2IndexedPixelFormat: c_uint = 0x00000002;
1290/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio4indexedpixelformat?language=objc)
1291pub const kIO4IndexedPixelFormat: c_uint = 0x00000004;
1292/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio8indexedpixelformat?language=objc)
1293pub const kIO8IndexedPixelFormat: c_uint = 0x00000008;
1294/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16be555pixelformat?language=objc)
1295pub const kIO16BE555PixelFormat: c_uint = 0x00000010;
1296/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio24rgbpixelformat?language=objc)
1297pub const kIO24RGBPixelFormat: c_uint = 0x00000018;
1298/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio32argbpixelformat?language=objc)
1299pub const kIO32ARGBPixelFormat: c_uint = 0x00000020;
1300/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio1indexedgraypixelformat?language=objc)
1301pub const kIO1IndexedGrayPixelFormat: c_uint = 0x00000021;
1302/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio2indexedgraypixelformat?language=objc)
1303pub const kIO2IndexedGrayPixelFormat: c_uint = 0x00000022;
1304/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio4indexedgraypixelformat?language=objc)
1305pub const kIO4IndexedGrayPixelFormat: c_uint = 0x00000024;
1306/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio8indexedgraypixelformat?language=objc)
1307pub const kIO8IndexedGrayPixelFormat: c_uint = 0x00000028;
1308
1309/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16le555pixelformat?language=objc)
1310pub const kIO16LE555PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x4c353535);
1311/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16le5551pixelformat?language=objc)
1312pub const kIO16LE5551PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x35353531);
1313/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16be565pixelformat?language=objc)
1314pub const kIO16BE565PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42353635);
1315/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16le565pixelformat?language=objc)
1316pub const kIO16LE565PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x4c353635);
1317/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio24bgrpixelformat?language=objc)
1318pub const kIO24BGRPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x32344247);
1319/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio32bgrapixelformat?language=objc)
1320pub const kIO32BGRAPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42475241);
1321/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio32abgrpixelformat?language=objc)
1322pub const kIO32ABGRPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x41424752);
1323/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio32rgbapixelformat?language=objc)
1324pub const kIO32RGBAPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x52474241);
1325/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyuvspixelformat?language=objc)
1326pub const kIOYUVSPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x79757673);
1327/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyuvupixelformat?language=objc)
1328pub const kIOYUVUPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x79757675);
1329/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyvu9pixelformat?language=objc)
1330pub const kIOYVU9PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x59565539);
1331/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyuv411pixelformat?language=objc)
1332pub const kIOYUV411PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x59343131);
1333/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyvyu422pixelformat?language=objc)
1334pub const kIOYVYU422PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x59565955);
1335/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiouyvy422pixelformat?language=objc)
1336pub const kIOUYVY422PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x55595659);
1337/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioyuv211pixelformat?language=objc)
1338pub const kIOYUV211PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x59323131);
1339/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio2vuypixelformat?language=objc)
1340pub const kIO2vuyPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x32767579);
1341
1342/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16le4444pixelformat?language=objc)
1343pub const kIO16LE4444PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x4c343434);
1344/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio16be4444pixelformat?language=objc)
1345pub const kIO16BE4444PixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42343434);
1346/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio64bgrapixelformat?language=objc)
1347pub const kIO64BGRAPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42313649);
1348/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio64rgbafloatpixelformat?language=objc)
1349pub const kIO64RGBAFloatPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42313646);
1350/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kio128rgbafloatpixelformat?language=objc)
1351pub const kIO128RGBAFloatPixelFormat: c_uint = IO_FOUR_CHAR_CODE!(0x42333246);
1352
1353/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitmemoryrequireshostflush?language=objc)
1354pub const kIOBlitMemoryRequiresHostFlush: c_uint = 0x00000001;
1355
1356/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitsurfacestruct_memory?language=objc)
1357#[repr(C)]
1358#[derive(Clone, Copy)]
1359pub union IOBlitSurfaceStruct_memory {
1360    pub bytes: *mut u8,
1361    pub r#ref: IOBlitMemoryRef,
1362}
1363
1364#[cfg(feature = "objc2")]
1365unsafe impl Encode for IOBlitSurfaceStruct_memory {
1366    const ENCODING: Encoding =
1367        Encoding::Union("?", &[<*mut u8>::ENCODING, <IOBlitMemoryRef>::ENCODING]);
1368}
1369
1370#[cfg(feature = "objc2")]
1371unsafe impl RefEncode for IOBlitSurfaceStruct_memory {
1372    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1373}
1374
1375/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitsurfacestruct?language=objc)
1376#[repr(C)]
1377#[derive(Clone, Copy)]
1378pub struct IOBlitSurfaceStruct {
1379    pub memory: IOBlitSurfaceStruct_memory,
1380    pub pixelFormat: IOFourCharCode,
1381    pub size: IOBlitRectangle,
1382    pub rowBytes: u32,
1383    pub byteOffset: u32,
1384    pub palette: *mut u32,
1385    pub accessFlags: IOOptionBits,
1386    pub interfaceRef: IOBlitMemoryRef,
1387    pub more: [u32; 14],
1388}
1389
1390#[cfg(feature = "objc2")]
1391unsafe impl Encode for IOBlitSurfaceStruct {
1392    const ENCODING: Encoding = Encoding::Struct(
1393        "IOBlitSurfaceStruct",
1394        &[
1395            <IOBlitSurfaceStruct_memory>::ENCODING,
1396            <IOFourCharCode>::ENCODING,
1397            <IOBlitRectangle>::ENCODING,
1398            <u32>::ENCODING,
1399            <u32>::ENCODING,
1400            <*mut u32>::ENCODING,
1401            <IOOptionBits>::ENCODING,
1402            <IOBlitMemoryRef>::ENCODING,
1403            <[u32; 14]>::ENCODING,
1404        ],
1405    );
1406}
1407
1408#[cfg(feature = "objc2")]
1409unsafe impl RefEncode for IOBlitSurfaceStruct {
1410    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1411}
1412
1413/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitsurface?language=objc)
1414pub type IOBlitSurface = IOBlitSurfaceStruct;
1415
1416/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitmemory?language=objc)
1417pub type IOBlitMemory = IOBlitSurface;
1418
1419/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsynchronizewaitbeamexit?language=objc)
1420pub const kIOBlitSynchronizeWaitBeamExit: c_uint = 0x00000001;
1421/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsynchronizeflushhostwrites?language=objc)
1422pub const kIOBlitSynchronizeFlushHostWrites: c_uint = 0x00000002;
1423
1424/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitwaitcontext?language=objc)
1425pub const kIOBlitWaitContext: c_uint = 0x00000000;
1426/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitwaitall2d?language=objc)
1427pub const kIOBlitWaitAll2D: c_uint = 0x00000001;
1428/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitwaitglobal?language=objc)
1429pub const kIOBlitWaitGlobal: c_uint = 0x00000001;
1430/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitwaitall?language=objc)
1431pub const kIOBlitWaitAll: c_uint = 0x00000002;
1432/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitwaitcheck?language=objc)
1433pub const kIOBlitWaitCheck: c_uint = 0x00000080;
1434/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitflushwithswap?language=objc)
1435pub const kIOBlitFlushWithSwap: c_uint = 0x00010000;
1436
1437/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblithascgssurface?language=objc)
1438pub const kIOBlitHasCGSSurface: c_uint = 0x00000001;
1439/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitfixedsource?language=objc)
1440pub const kIOBlitFixedSource: c_uint = 0x00000002;
1441/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitbeamsyncswaps?language=objc)
1442pub const kIOBlitBeamSyncSwaps: c_uint = 0x00000004;
1443/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitreferencesource?language=objc)
1444pub const kIOBlitReferenceSource: c_uint = 0x00000008;
1445
1446/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitunlockwithswap?language=objc)
1447pub const kIOBlitUnlockWithSwap: c_uint = 0x80000000;
1448
1449/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitframebufferdestination?language=objc)
1450pub const kIOBlitFramebufferDestination: c_uint = 0x00000000;
1451/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitsurfacedestination?language=objc)
1452pub const kIOBlitSurfaceDestination: c_uint = 0x00000001;
1453
1454/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitbeamsync?language=objc)
1455pub const kIOBlitBeamSync: c_uint = 0x00000001;
1456/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitbeamsyncalways?language=objc)
1457pub const kIOBlitBeamSyncAlways: c_uint = 0x00000002;
1458/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitbeamsyncspin?language=objc)
1459pub const kIOBlitBeamSyncSpin: c_uint = 0x00000004;
1460/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitalloptions?language=objc)
1461pub const kIOBlitAllOptions: c_uint = 0xffffffff;
1462
1463/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioblitcolorspacetypes?language=objc)
1464pub const kIOBlitColorSpaceTypes: c_uint = IO_FOUR_CHAR_CODE!(0x63737063);
1465
1466/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitaccumulateptr?language=objc)
1467pub type IOBlitAccumulatePtr =
1468    Option<unsafe extern "C-unwind" fn(*mut c_void, i32, i32, i32, i32, i32, i32) -> IOReturn>;
1469
1470/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitprocptr?language=objc)
1471pub type IOBlitProcPtr = Option<
1472    unsafe extern "C-unwind" fn(
1473        *mut c_void,
1474        IOOptionBits,
1475        IOBlitType,
1476        IOBlitSourceDestType,
1477        *mut IOBlitOperation,
1478        *mut c_void,
1479        *mut c_void,
1480        *mut IOBlitCompletionToken,
1481    ) -> IOReturn,
1482>;
1483
1484/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioblitterptr?language=objc)
1485pub type IOBlitterPtr = Option<
1486    unsafe extern "C-unwind" fn(
1487        *mut c_void,
1488        IOOptionBits,
1489        IOBlitType,
1490        IOBlitSourceType,
1491        *mut IOBlitOperation,
1492        *mut c_void,
1493    ) -> IOReturn,
1494>;
1495
1496/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iographicsacceleratorinterfacestruct?language=objc)
1497#[cfg(feature = "libc")]
1498#[repr(C)]
1499#[derive(Clone, Copy, Debug, PartialEq)]
1500pub struct IOGraphicsAcceleratorInterfaceStruct {
1501    pub(crate) _reserved: *mut c_void,
1502    pub QueryInterface:
1503        Option<unsafe extern "C-unwind" fn(*mut c_void, REFIID, *mut LPVOID) -> HRESULT>,
1504    pub AddRef: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>,
1505    pub Release: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>,
1506    pub version: u16,
1507    pub revision: u16,
1508    pub Probe: Option<
1509        unsafe extern "C-unwind" fn(
1510            *mut c_void,
1511            *const CFDictionary,
1512            io_service_t,
1513            *mut i32,
1514        ) -> IOReturn,
1515    >,
1516    pub Start: Option<
1517        unsafe extern "C-unwind" fn(*mut c_void, *const CFDictionary, io_service_t) -> IOReturn,
1518    >,
1519    pub Stop: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
1520    pub Reset: Option<unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits) -> IOReturn>,
1521    pub CopyCapabilities: Option<
1522        unsafe extern "C-unwind" fn(*mut c_void, FourCharCode, *mut *const CFType) -> IOReturn,
1523    >,
1524    pub GetBlitProc: Option<
1525        unsafe extern "C-unwind" fn(
1526            *mut c_void,
1527            IOOptionBits,
1528            IOBlitType,
1529            IOBlitSourceDestType,
1530            *mut IOBlitProcPtr,
1531        ) -> IOReturn,
1532    >,
1533    pub Flush: Option<unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits) -> IOReturn>,
1534    pub WaitForCompletion: Option<
1535        unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits, IOBlitCompletionToken) -> IOReturn,
1536    >,
1537    pub Synchronize:
1538        Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32, u32, u32, u32) -> IOReturn>,
1539    pub GetBeamPosition:
1540        Option<unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits, *mut i32) -> IOReturn>,
1541    pub AllocateSurface: Option<
1542        unsafe extern "C-unwind" fn(
1543            *mut c_void,
1544            IOOptionBits,
1545            *mut IOBlitSurface,
1546            *mut c_void,
1547        ) -> IOReturn,
1548    >,
1549    pub FreeSurface: Option<
1550        unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits, *mut IOBlitSurface) -> IOReturn,
1551    >,
1552    pub LockSurface: Option<
1553        unsafe extern "C-unwind" fn(
1554            *mut c_void,
1555            IOOptionBits,
1556            *mut IOBlitSurface,
1557            *mut libc::vm_address_t,
1558        ) -> IOReturn,
1559    >,
1560    pub UnlockSurface: Option<
1561        unsafe extern "C-unwind" fn(
1562            *mut c_void,
1563            IOOptionBits,
1564            *mut IOBlitSurface,
1565            *mut IOOptionBits,
1566        ) -> IOReturn,
1567    >,
1568    pub SwapSurface: Option<
1569        unsafe extern "C-unwind" fn(
1570            *mut c_void,
1571            IOOptionBits,
1572            *mut IOBlitSurface,
1573            *mut IOOptionBits,
1574        ) -> IOReturn,
1575    >,
1576    pub SetDestination: Option<
1577        unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits, *mut IOBlitSurface) -> IOReturn,
1578    >,
1579    pub GetBlitter: Option<
1580        unsafe extern "C-unwind" fn(
1581            *mut c_void,
1582            IOOptionBits,
1583            IOBlitType,
1584            IOBlitSourceType,
1585            *mut IOBlitterPtr,
1586        ) -> IOReturn,
1587    >,
1588    pub WaitComplete: Option<unsafe extern "C-unwind" fn(*mut c_void, IOOptionBits) -> IOReturn>,
1589    pub(crate) __gaInterfaceReserved: [*mut c_void; 24],
1590}
1591
1592#[cfg(all(feature = "libc", feature = "objc2"))]
1593unsafe impl Encode for IOGraphicsAcceleratorInterfaceStruct {
1594    const ENCODING: Encoding = Encoding::Struct("IOGraphicsAcceleratorInterfaceStruct", &[
1595        <*mut c_void>::ENCODING,
1596        <Option<unsafe extern "C-unwind" fn(*mut c_void,REFIID,*mut LPVOID,) -> HRESULT>>::ENCODING,
1597        <Option<unsafe extern "C-unwind" fn(*mut c_void,) -> ULONG>>::ENCODING,
1598        <Option<unsafe extern "C-unwind" fn(*mut c_void,) -> ULONG>>::ENCODING,
1599        <u16>::ENCODING,
1600        <u16>::ENCODING,
1601        <Option<unsafe extern "C-unwind" fn(*mut c_void,*const CFDictionary,io_service_t,*mut i32,) -> IOReturn>>::ENCODING,
1602        <Option<unsafe extern "C-unwind" fn(*mut c_void,*const CFDictionary,io_service_t,) -> IOReturn>>::ENCODING,
1603        <Option<unsafe extern "C-unwind" fn(*mut c_void,) -> IOReturn>>::ENCODING,
1604        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,) -> IOReturn>>::ENCODING,
1605        <Option<unsafe extern "C-unwind" fn(*mut c_void,FourCharCode,*mut *const CFType,) -> IOReturn>>::ENCODING,
1606        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,IOBlitType,IOBlitSourceDestType,*mut IOBlitProcPtr,) -> IOReturn>>::ENCODING,
1607        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,) -> IOReturn>>::ENCODING,
1608        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,IOBlitCompletionToken,) -> IOReturn>>::ENCODING,
1609        <Option<unsafe extern "C-unwind" fn(*mut c_void,u32,u32,u32,u32,u32,) -> IOReturn>>::ENCODING,
1610        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut i32,) -> IOReturn>>::ENCODING,
1611        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,*mut c_void,) -> IOReturn>>::ENCODING,
1612        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,) -> IOReturn>>::ENCODING,
1613        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,*mut libc::vm_address_t,) -> IOReturn>>::ENCODING,
1614        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,*mut IOOptionBits,) -> IOReturn>>::ENCODING,
1615        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,*mut IOOptionBits,) -> IOReturn>>::ENCODING,
1616        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,*mut IOBlitSurface,) -> IOReturn>>::ENCODING,
1617        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,IOBlitType,IOBlitSourceType,*mut IOBlitterPtr,) -> IOReturn>>::ENCODING,
1618        <Option<unsafe extern "C-unwind" fn(*mut c_void,IOOptionBits,) -> IOReturn>>::ENCODING,
1619        <[*mut c_void; 24]>::ENCODING,
1620    ]);
1621}
1622
1623#[cfg(all(feature = "libc", feature = "objc2"))]
1624unsafe impl RefEncode for IOGraphicsAcceleratorInterfaceStruct {
1625    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1626}
1627
1628/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iographicsacceleratorinterface?language=objc)
1629#[cfg(feature = "libc")]
1630pub type IOGraphicsAcceleratorInterface = IOGraphicsAcceleratorInterfaceStruct;
1631
1632extern "C-unwind" {
1633    #[cfg(feature = "libc")]
1634    pub fn IOAccelFindAccelerator(
1635        framebuffer: io_service_t,
1636        p_accelerator: *mut io_service_t,
1637        p_framebuffer_index: *mut u32,
1638    ) -> IOReturn;
1639}
1640
1641/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioindex?language=objc)
1642pub type IOIndex = i32;
1643
1644/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioselect?language=objc)
1645pub type IOSelect = u32;
1646
1647/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofixed1616?language=objc)
1648pub type IOFixed1616 = u32;
1649
1650/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplayvendorid?language=objc)
1651pub type IODisplayVendorID = u32;
1652
1653/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplayproductid?language=objc)
1654pub type IODisplayProductID = u32;
1655
1656/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplaymodeid?language=objc)
1657pub type IODisplayModeID = i32;
1658
1659/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomaxpixelbits?language=objc)
1660pub const kIOMaxPixelBits: c_uint = 64;
1661
1662/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioclutpixels?language=objc)
1663pub const kIOCLUTPixels: c_uint = 0;
1664/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofixedclutpixels?language=objc)
1665pub const kIOFixedCLUTPixels: c_uint = 1;
1666/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorgbdirectpixels?language=objc)
1667pub const kIORGBDirectPixels: c_uint = 2;
1668/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomonodirectpixels?language=objc)
1669pub const kIOMonoDirectPixels: c_uint = 3;
1670/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomonoinversedirectpixels?language=objc)
1671pub const kIOMonoInverseDirectPixels: c_uint = 4;
1672/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorgbsigneddirectpixels?language=objc)
1673pub const kIORGBSignedDirectPixels: c_uint = 5;
1674/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorgbsignedfloatingpointpixels?language=objc)
1675pub const kIORGBSignedFloatingPointPixels: c_uint = 6;
1676
1677/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioappletimingid?language=objc)
1678pub type IOAppleTimingID = u32;
1679
1680/// A structure defining the format of a framebuffer.
1681///
1682/// This structure is used by IOFramebuffer to define the format of the pixels.
1683/// Field: nominalWidth Number of pixels visible per row.
1684/// Field: nominalHeight Number of visible pixel rows.
1685/// Field: refreshRate Refresh rate in fixed point 16.16.
1686/// Field: maxDepthIndex Highest depth index available in this display mode.
1687/// Field: flags Flags for the mode, including:
1688/// <br>
1689/// kDisplayModeInterlacedFlag mode is interlaced.
1690/// <br>
1691/// kDisplayModeSimulscanFlag mode is available on multiple display connections.
1692/// <br>
1693/// kDisplayModeNotPresetFlag mode is not a factory preset for the display (geometry may need correction).
1694/// <br>
1695/// kDisplayModeStretchedFlag mode is stretched/distorted to match the display aspect ratio.
1696/// <br>
1697/// Field: imageWidth Physical width of active image if known, in millimeters, otherwise zero.
1698/// <br>
1699/// Field: imageHeight Physical height of active image if known, in millimeters, otherwise zero.
1700/// <br>
1701/// Field: reserved Set to zero.
1702///
1703/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplaymodeinformation?language=objc)
1704#[repr(C)]
1705#[derive(Clone, Copy, Debug, PartialEq)]
1706pub struct IODisplayModeInformation {
1707    pub nominalWidth: u32,
1708    pub nominalHeight: u32,
1709    pub refreshRate: IOFixed1616,
1710    pub maxDepthIndex: IOIndex,
1711    pub flags: u32,
1712    pub imageWidth: u16,
1713    pub imageHeight: u16,
1714    pub reserved: [u32; 3],
1715}
1716
1717#[cfg(feature = "objc2")]
1718unsafe impl Encode for IODisplayModeInformation {
1719    const ENCODING: Encoding = Encoding::Struct(
1720        "IODisplayModeInformation",
1721        &[
1722            <u32>::ENCODING,
1723            <u32>::ENCODING,
1724            <IOFixed1616>::ENCODING,
1725            <IOIndex>::ENCODING,
1726            <u32>::ENCODING,
1727            <u16>::ENCODING,
1728            <u16>::ENCODING,
1729            <[u32; 3]>::ENCODING,
1730        ],
1731    );
1732}
1733
1734#[cfg(feature = "objc2")]
1735unsafe impl RefEncode for IODisplayModeInformation {
1736    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1737}
1738
1739/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodesafetyflags?language=objc)
1740pub const kDisplayModeSafetyFlags: c_uint = 0x00000007;
1741/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodealwaysshowflag?language=objc)
1742pub const kDisplayModeAlwaysShowFlag: c_uint = 0x00000008;
1743/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodenevershowflag?language=objc)
1744pub const kDisplayModeNeverShowFlag: c_uint = 0x00000080;
1745/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodenotresizeflag?language=objc)
1746pub const kDisplayModeNotResizeFlag: c_uint = 0x00000010;
1747/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymoderequirespanflag?language=objc)
1748pub const kDisplayModeRequiresPanFlag: c_uint = 0x00000020;
1749/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodeinterlacedflag?language=objc)
1750pub const kDisplayModeInterlacedFlag: c_uint = 0x00000040;
1751/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodesimulscanflag?language=objc)
1752pub const kDisplayModeSimulscanFlag: c_uint = 0x00000100;
1753/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodebuiltinflag?language=objc)
1754pub const kDisplayModeBuiltInFlag: c_uint = 0x00000400;
1755/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodenotpresetflag?language=objc)
1756pub const kDisplayModeNotPresetFlag: c_uint = 0x00000200;
1757/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodestretchedflag?language=objc)
1758pub const kDisplayModeStretchedFlag: c_uint = 0x00000800;
1759/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodenotgraphicsqualityflag?language=objc)
1760pub const kDisplayModeNotGraphicsQualityFlag: c_uint = 0x00001000;
1761/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodevalidateagainstdisplay?language=objc)
1762pub const kDisplayModeValidateAgainstDisplay: c_uint = 0x00002000;
1763/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodetelevisionflag?language=objc)
1764pub const kDisplayModeTelevisionFlag: c_uint = 0x00100000;
1765/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodevalidformirroringflag?language=objc)
1766pub const kDisplayModeValidForMirroringFlag: c_uint = 0x00200000;
1767/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodeacceleratorbackedflag?language=objc)
1768pub const kDisplayModeAcceleratorBackedFlag: c_uint = 0x00400000;
1769/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodevalidforhiresflag?language=objc)
1770pub const kDisplayModeValidForHiResFlag: c_uint = 0x00800000;
1771/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodevalidforairplayflag?language=objc)
1772pub const kDisplayModeValidForAirPlayFlag: c_uint = 0x01000000;
1773/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodenativeflag?language=objc)
1774pub const kDisplayModeNativeFlag: c_uint = 0x02000000;
1775
1776/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodevalidflag?language=objc)
1777pub const kDisplayModeValidFlag: c_uint = 0x00000001;
1778/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodesafeflag?language=objc)
1779pub const kDisplayModeSafeFlag: c_uint = 0x00000002;
1780/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaymodedefaultflag?language=objc)
1781pub const kDisplayModeDefaultFlag: c_uint = 0x00000004;
1782
1783/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ioframebufferinformation?language=objc)
1784#[repr(C)]
1785#[derive(Clone, Copy, Debug, PartialEq)]
1786pub struct IOFramebufferInformation {
1787    pub baseAddress: IOPhysicalAddress,
1788    pub activeWidth: u32,
1789    pub activeHeight: u32,
1790    pub bytesPerRow: IOByteCount,
1791    pub bytesPerPlane: IOByteCount,
1792    pub bitsPerPixel: u32,
1793    pub pixelType: u32,
1794    pub flags: u32,
1795    pub reserved: [u32; 4],
1796}
1797
1798#[cfg(feature = "objc2")]
1799unsafe impl Encode for IOFramebufferInformation {
1800    const ENCODING: Encoding = Encoding::Struct(
1801        "IOFramebufferInformation",
1802        &[
1803            <IOPhysicalAddress>::ENCODING,
1804            <u32>::ENCODING,
1805            <u32>::ENCODING,
1806            <IOByteCount>::ENCODING,
1807            <IOByteCount>::ENCODING,
1808            <u32>::ENCODING,
1809            <u32>::ENCODING,
1810            <u32>::ENCODING,
1811            <[u32; 4]>::ENCODING,
1812        ],
1813    );
1814}
1815
1816#[cfg(feature = "objc2")]
1817unsafe impl RefEncode for IOFramebufferInformation {
1818    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1819}
1820
1821/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kframebuffersupportscopybackcache?language=objc)
1822pub const kFramebufferSupportsCopybackCache: c_uint = 0x00010000;
1823/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kframebuffersupportswritethrucache?language=objc)
1824pub const kFramebufferSupportsWritethruCache: c_uint = 0x00020000;
1825/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kframebuffersupportsgammacorrection?language=objc)
1826pub const kFramebufferSupportsGammaCorrection: c_uint = 0x00040000;
1827/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kframebufferdisablealtivecaccess?language=objc)
1828pub const kFramebufferDisableAltivecAccess: c_uint = 0x00080000;
1829
1830/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iopixelaperture?language=objc)
1831pub type IOPixelAperture = IOIndex;
1832
1833/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbsystemaperture?language=objc)
1834pub const kIOFBSystemAperture: c_uint = 0;
1835
1836/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iocolorcomponent?language=objc)
1837pub type IOColorComponent = u16;
1838
1839/// A structure defining one entry of a color lookup table.
1840///
1841/// This structure is used by IOFramebuffer to define an entry of a color lookup table.
1842/// Field: index Number of pixels visible per row.
1843/// Field: red Value of red component 0-65535.
1844/// Field: green Value of green component 0-65535.
1845/// Field: blue Value of blue component 0-65535.
1846///
1847/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iocolorentry?language=objc)
1848#[repr(C)]
1849#[derive(Clone, Copy, Debug, PartialEq)]
1850pub struct IOColorEntry {
1851    pub index: u16,
1852    pub red: IOColorComponent,
1853    pub green: IOColorComponent,
1854    pub blue: IOColorComponent,
1855}
1856
1857#[cfg(feature = "objc2")]
1858unsafe impl Encode for IOColorEntry {
1859    const ENCODING: Encoding = Encoding::Struct(
1860        "IOColorEntry",
1861        &[
1862            <u16>::ENCODING,
1863            <IOColorComponent>::ENCODING,
1864            <IOColorComponent>::ENCODING,
1865            <IOColorComponent>::ENCODING,
1866        ],
1867    );
1868}
1869
1870#[cfg(feature = "objc2")]
1871unsafe impl RefEncode for IOColorEntry {
1872    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1873}
1874
1875/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ksetclutbyvalue?language=objc)
1876pub const kSetCLUTByValue: c_uint = 0x00000001;
1877/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ksetclutimmediately?language=objc)
1878pub const kSetCLUTImmediately: c_uint = 0x00000002;
1879/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ksetclutwithluminance?language=objc)
1880pub const kSetCLUTWithLuminance: c_uint = 0x00000004;
1881
1882/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopowerstateattribute?language=objc)
1883pub const kIOPowerStateAttribute: c_uint = 0x70777273;
1884/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopowerattribute?language=objc)
1885pub const kIOPowerAttribute: c_uint = 0x706f7772;
1886/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodriverpowerattribute?language=objc)
1887pub const kIODriverPowerAttribute: c_uint = 0x64706f77;
1888/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohardwarecursorattribute?language=objc)
1889pub const kIOHardwareCursorAttribute: c_uint = 0x63727372;
1890/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrorattribute?language=objc)
1891pub const kIOMirrorAttribute: c_uint = 0x6d697272;
1892/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrordefaultattribute?language=objc)
1893pub const kIOMirrorDefaultAttribute: c_uint = 0x6d726466;
1894/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocapturedattribute?language=objc)
1895pub const kIOCapturedAttribute: c_uint = 0x63617064;
1896/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocursorcontrolattribute?language=objc)
1897pub const kIOCursorControlAttribute: c_uint = 0x63727363;
1898/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiosystempowerattribute?language=objc)
1899pub const kIOSystemPowerAttribute: c_uint = 0x73707772;
1900/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowindowserveractiveattribute?language=objc)
1901pub const kIOWindowServerActiveAttribute: c_uint = 0x77737276;
1902/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiovramsaveattribute?language=objc)
1903pub const kIOVRAMSaveAttribute: c_uint = 0x76727376;
1904/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodeferclutsetattribute?language=objc)
1905pub const kIODeferCLUTSetAttribute: c_uint = 0x76636c74;
1906/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioclamshellstateattribute?language=objc)
1907pub const kIOClamshellStateAttribute: c_uint = 0x636c616d;
1908/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplayporttrainingattribute?language=objc)
1909pub const kIOFBDisplayPortTrainingAttribute: c_uint = 0x64707461;
1910/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplaystate?language=objc)
1911pub const kIOFBDisplayState: c_uint = 0x64737474;
1912/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbvariablerefreshrate?language=objc)
1913pub const kIOFBVariableRefreshRate: c_uint = 0x7672723f;
1914/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblimithdcpattribute?language=objc)
1915pub const kIOFBLimitHDCPAttribute: c_uint = 0x68646370;
1916/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblimithdcpstateattribute?language=objc)
1917pub const kIOFBLimitHDCPStateAttribute: c_uint = 0x73484443;
1918/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbstop?language=objc)
1919pub const kIOFBStop: c_uint = 0x73746f70;
1920/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbredgammascaleattribute?language=objc)
1921pub const kIOFBRedGammaScaleAttribute: c_uint = 0x67736c72;
1922/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbgreengammascaleattribute?language=objc)
1923pub const kIOFBGreenGammaScaleAttribute: c_uint = 0x67736c67;
1924/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbluegammascaleattribute?language=objc)
1925pub const kIOFBBlueGammaScaleAttribute: c_uint = 0x67736c62;
1926/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdrmetadataattribute?language=objc)
1927pub const kIOFBHDRMetaDataAttribute: c_uint = 0x6864726d;
1928/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobuiltinpanelpowerattribute?language=objc)
1929pub const kIOBuiltinPanelPowerAttribute: c_uint = 0x706e6c70;
1930
1931/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdcplimit_allowall?language=objc)
1932pub const kIOFBHDCPLimit_AllowAll: c_uint = 0;
1933/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdcplimit_nohdcp1x?language=objc)
1934pub const kIOFBHDCPLimit_NoHDCP1x: c_uint = 1 << 0;
1935/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdcplimit_nohdcp20type0?language=objc)
1936pub const kIOFBHDCPLimit_NoHDCP20Type0: c_uint = 1 << 1;
1937/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhdcplimit_nohdcp20type1?language=objc)
1938pub const kIOFBHDCPLimit_NoHDCP20Type1: c_uint = 1 << 2;
1939
1940/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofbhdrmetadatav1?language=objc)
1941#[repr(C)]
1942#[derive(Clone, Copy, Debug, PartialEq)]
1943pub struct IOFBHDRMetaDataV1 {
1944    pub displayPrimary_X0: u16,
1945    pub displayPrimary_Y0: u16,
1946    pub displayPrimary_X1: u16,
1947    pub displayPrimary_Y1: u16,
1948    pub displayPrimary_X2: u16,
1949    pub displayPrimary_Y2: u16,
1950    pub displayPrimary_X: u16,
1951    pub displayPrimary_Y: u16,
1952    pub desiredLuminance_Max: u16,
1953    pub desiredLuminance_Min: u16,
1954    pub desiredLightLevel_Avg: u16,
1955    pub desiredLightLevel_Max: u16,
1956    pub(crate) __reservedA: [u64; 5],
1957}
1958
1959#[cfg(feature = "objc2")]
1960unsafe impl Encode for IOFBHDRMetaDataV1 {
1961    const ENCODING: Encoding = Encoding::Struct(
1962        "IOFBHDRMetaDataV1",
1963        &[
1964            <u16>::ENCODING,
1965            <u16>::ENCODING,
1966            <u16>::ENCODING,
1967            <u16>::ENCODING,
1968            <u16>::ENCODING,
1969            <u16>::ENCODING,
1970            <u16>::ENCODING,
1971            <u16>::ENCODING,
1972            <u16>::ENCODING,
1973            <u16>::ENCODING,
1974            <u16>::ENCODING,
1975            <u16>::ENCODING,
1976            <[u64; 5]>::ENCODING,
1977        ],
1978    );
1979}
1980
1981#[cfg(feature = "objc2")]
1982unsafe impl RefEncode for IOFBHDRMetaDataV1 {
1983    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
1984}
1985
1986/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofbhdrmetadata?language=objc)
1987#[repr(C)]
1988#[derive(Clone, Copy)]
1989pub union IOFBHDRMetaData {
1990    pub v1: IOFBHDRMetaDataV1,
1991}
1992
1993#[cfg(feature = "objc2")]
1994unsafe impl Encode for IOFBHDRMetaData {
1995    const ENCODING: Encoding = Encoding::Union("?", &[<IOFBHDRMetaDataV1>::ENCODING]);
1996}
1997
1998#[cfg(feature = "objc2")]
1999unsafe impl RefEncode for IOFBHDRMetaData {
2000    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2001}
2002
2003/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplaystate_alreadyactive?language=objc)
2004pub const kIOFBDisplayState_AlreadyActive: c_uint = 1 << 0;
2005/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplaystate_restoredprofile?language=objc)
2006pub const kIOFBDisplayState_RestoredProfile: c_uint = 1 << 1;
2007/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplaystate_pipelineblack?language=objc)
2008pub const kIOFBDisplayState_PipelineBlack: c_uint = 1 << 2;
2009/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplaystate_mask?language=objc)
2010pub const kIOFBDisplayState_Mask: c_uint = kIOFBDisplayState_AlreadyActive
2011    | kIOFBDisplayState_RestoredProfile
2012    | kIOFBDisplayState_PipelineBlack;
2013
2014/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_unaccelerated?language=objc)
2015pub const kIOWSAA_Unaccelerated: c_uint = 0;
2016/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_accelerated?language=objc)
2017pub const kIOWSAA_Accelerated: c_uint = 1;
2018/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_from_accelerated?language=objc)
2019pub const kIOWSAA_From_Accelerated: c_uint = 2;
2020/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_to_accelerated?language=objc)
2021pub const kIOWSAA_To_Accelerated: c_uint = 3;
2022/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_sleep?language=objc)
2023pub const kIOWSAA_Sleep: c_uint = 4;
2024/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_hibernate?language=objc)
2025pub const kIOWSAA_Hibernate: c_uint = kIOWSAA_Sleep;
2026/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_driveropen?language=objc)
2027pub const kIOWSAA_DriverOpen: c_uint = 5;
2028/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_statemask?language=objc)
2029pub const kIOWSAA_StateMask: c_uint = 0xF;
2030/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_transactional?language=objc)
2031pub const kIOWSAA_Transactional: c_uint = 0x10;
2032/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_deferstart?language=objc)
2033pub const kIOWSAA_DeferStart: c_uint = 0x100;
2034/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_deferend?language=objc)
2035pub const kIOWSAA_DeferEnd: c_uint = 0x200;
2036/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_nonconsoledevice?language=objc)
2037pub const kIOWSAA_NonConsoleDevice: c_uint = 0x400;
2038/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiowsaa_reserved?language=objc)
2039pub const kIOWSAA_Reserved: c_uint = 0xF0000000;
2040
2041/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_rendezvous?language=objc)
2042pub const kIOFBNS_Rendezvous: c_uint = 0x87654321;
2043/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_messagemask?language=objc)
2044pub const kIOFBNS_MessageMask: c_uint = 0x0000000f;
2045/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_sleep?language=objc)
2046pub const kIOFBNS_Sleep: c_uint = 0x00;
2047/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_wake?language=objc)
2048pub const kIOFBNS_Wake: c_uint = 0x01;
2049/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_doze?language=objc)
2050pub const kIOFBNS_Doze: c_uint = 0x02;
2051/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_dim?language=objc)
2052pub const kIOFBNS_Dim: c_uint = 0x03;
2053/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_undim?language=objc)
2054pub const kIOFBNS_UnDim: c_uint = 0x04;
2055/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_displaystatemask?language=objc)
2056pub const kIOFBNS_DisplayStateMask: c_uint = 0x00000f00;
2057/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_displaystateshift?language=objc)
2058pub const kIOFBNS_DisplayStateShift: c_uint = 8;
2059/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_generationmask?language=objc)
2060pub const kIOFBNS_GenerationMask: c_uint = 0x7fff0000;
2061/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbns_generationshift?language=objc)
2062pub const kIOFBNS_GenerationShift: c_uint = 16;
2063
2064/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrorisprimary?language=objc)
2065pub const kIOMirrorIsPrimary: c_uint = 0x80000000;
2066/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrorhwclipped?language=objc)
2067pub const kIOMirrorHWClipped: c_uint = 0x40000000;
2068/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrorismirrored?language=objc)
2069pub const kIOMirrorIsMirrored: c_uint = 0x20000000;
2070
2071/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrordefault?language=objc)
2072pub const kIOMirrorDefault: c_uint = 0x00000001;
2073/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomirrorforced?language=objc)
2074pub const kIOMirrorForced: c_uint = 0x00000002;
2075
2076/// / Display mode timing information
2077///
2078/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodetailedtiminginformationv1?language=objc)
2079#[repr(C)]
2080#[derive(Clone, Copy, Debug, PartialEq)]
2081pub struct IODetailedTimingInformationV1 {
2082    pub pixelClock: u32,
2083    pub horizontalActive: u32,
2084    pub horizontalBlanking: u32,
2085    pub horizontalBorder: u32,
2086    pub horizontalSyncOffset: u32,
2087    pub horizontalSyncWidth: u32,
2088    pub verticalActive: u32,
2089    pub verticalBlanking: u32,
2090    pub verticalBorder: u32,
2091    pub verticalSyncOffset: u32,
2092    pub verticalSyncWidth: u32,
2093}
2094
2095#[cfg(feature = "objc2")]
2096unsafe impl Encode for IODetailedTimingInformationV1 {
2097    const ENCODING: Encoding = Encoding::Struct(
2098        "IODetailedTimingInformationV1",
2099        &[
2100            <u32>::ENCODING,
2101            <u32>::ENCODING,
2102            <u32>::ENCODING,
2103            <u32>::ENCODING,
2104            <u32>::ENCODING,
2105            <u32>::ENCODING,
2106            <u32>::ENCODING,
2107            <u32>::ENCODING,
2108            <u32>::ENCODING,
2109            <u32>::ENCODING,
2110            <u32>::ENCODING,
2111        ],
2112    );
2113}
2114
2115#[cfg(feature = "objc2")]
2116unsafe impl RefEncode for IODetailedTimingInformationV1 {
2117    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2118}
2119
2120/// A structure defining the detailed timing information of a display mode.
2121///
2122/// This structure is used by IOFramebuffer to define detailed timing information for a display mode. The VESA EDID document has more information.
2123/// Field: __reservedA Set to zero.
2124/// Field: horizontalScaledInset If the mode is scaled, sets the number of active pixels to remove the left and right edges in order to display an underscanned image.
2125/// Field: verticalScaledInset If the mode is scaled, sets the number of active lines to remove the top and bottom edges in order to display an underscanned image.
2126/// Field: scalerFlags If the mode is scaled,
2127/// kIOScaleStretchToFit may be set to allow stretching.
2128/// kIOScaleRotateFlags is mask which may have the value given by kIOScaleRotate90, kIOScaleRotate180, kIOScaleRotate270 to display a rotated framebuffer.
2129/// Field: horizontalScaled If the mode is scaled, sets the size of the image before scaling or rotation.
2130/// Field: verticalScaled If the mode is scaled, sets the size of the image before scaling or rotation.
2131/// Field: signalConfig
2132/// kIOAnalogSetupExpected set if display expects a blank-to-black setup or pedestal.  See VESA signal standards.
2133/// <br>
2134/// kIOInterlacedCEATiming set for a CEA style interlaced timing:
2135/// <br>
2136/// Field 1 vertical blanking = half specified vertical blanking lines.
2137/// <br>
2138/// Field 2 vertical blanking = (half vertical blanking lines) + 1 line.
2139/// <br>
2140/// Field 1 vertical offset = half specified vertical sync offset.
2141/// <br>
2142/// Field 2 vertical offset = (half specified vertical sync offset) + 0.5 lines.
2143/// <br>
2144/// Field: signalLevels One of:
2145/// <br>
2146/// kIOAnalogSignalLevel_0700_0300 0.700 - 0.300 V p-p.
2147/// <br>
2148/// kIOAnalogSignalLevel_0714_0286 0.714 - 0.286 V p-p.
2149/// <br>
2150/// kIOAnalogSignalLevel_1000_0400 1.000 - 0.400 V p-p.
2151/// <br>
2152/// kIOAnalogSignalLevel_0700_0000 0.700 - 0.000 V p-p.
2153/// <br>
2154/// Field: pixelClock Pixel clock frequency in Hz.
2155/// Field: minPixelClock Minimum pixel clock frequency in Hz, with error.
2156/// Field: maxPixelClock Maximum pixel clock frequency in Hz, with error.
2157/// Field: horizontalActive Pixel clocks per line.
2158/// Field: horizontalBlanking Blanking clocks per line.
2159/// Field: horizontalSyncOffset First clock of horizontal sync.
2160/// Field: horizontalSyncPulseWidth Width of horizontal sync.
2161/// Field: verticalActive Number of lines per frame.
2162/// Field: verticalBlanking Blanking lines per frame.
2163/// Field: verticalSyncOffset First line of vertical sync.
2164/// Field: verticalSyncPulseWidth Height of vertical sync.
2165/// Field: horizontalBorderLeft Number of pixels in left horizontal border.
2166/// Field: horizontalBorderRight Number of pixels in right horizontal border.
2167/// Field: verticalBorderTop Number of lines in top vertical border.
2168/// Field: verticalBorderBottom Number of lines in bottom vertical border.
2169/// Field: horizontalSyncConfig kIOSyncPositivePolarity for positive polarity horizontal sync (0 for negative).
2170/// Field: horizontalSyncLevel Zero.
2171/// Field: verticalSyncConfig kIOSyncPositivePolarity for positive polarity vertical sync (0 for negative).
2172/// Field: verticalSyncLevel Zero.
2173/// Field: numLinks number of links to be used by a dual link timing, if zero, assume one link.
2174/// Field: verticalBlankingExtension maximum number of blanking extension lines that is available. (0 for none).
2175/// Field: pixelEncoding 2017 Timing Features - ERS 2-58 (6.3.1)
2176/// Field: bitsPerColorComponent 2017 Timing Features - ERS 2-58 (6.3.1)
2177/// Field: colorimetry 2017 Timing Features - ERS 2-58 (6.3.1)
2178/// Field: dynamicRange 2017 Timing Features - ERS 2-58 (6.3.1)
2179/// Field: dscCompressedBitsPerPixel 2018 Timing Features - ERS 2-63 (6.3.1)
2180/// Field: dscSliceHeight 2018 Timing Features - ERS 2-63 (6.3.1)
2181/// Field: dscSliceWidth 2018 Timing Features - ERS 2-63 (6.3.1)
2182/// Field: verticalBlankingMaxStretchPerFrame Max stretch time used for VRR refresh rate ramps
2183/// Field: verticalBlankingMaxShrinkPerFrame Max shrink time used for VRR refresh rate ramps
2184/// Field: __reservedB Reserved set to zero.
2185///
2186/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodetailedtiminginformationv2?language=objc)
2187#[repr(C)]
2188#[derive(Clone, Copy, Debug, PartialEq)]
2189pub struct IODetailedTimingInformationV2 {
2190    pub(crate) __reservedA: [u32; 3],
2191    pub horizontalScaledInset: u32,
2192    pub verticalScaledInset: u32,
2193    pub scalerFlags: u32,
2194    pub horizontalScaled: u32,
2195    pub verticalScaled: u32,
2196    pub signalConfig: u32,
2197    pub signalLevels: u32,
2198    pub pixelClock: u64,
2199    pub minPixelClock: u64,
2200    pub maxPixelClock: u64,
2201    pub horizontalActive: u32,
2202    pub horizontalBlanking: u32,
2203    pub horizontalSyncOffset: u32,
2204    pub horizontalSyncPulseWidth: u32,
2205    pub verticalActive: u32,
2206    pub verticalBlanking: u32,
2207    pub verticalSyncOffset: u32,
2208    pub verticalSyncPulseWidth: u32,
2209    pub horizontalBorderLeft: u32,
2210    pub horizontalBorderRight: u32,
2211    pub verticalBorderTop: u32,
2212    pub verticalBorderBottom: u32,
2213    pub horizontalSyncConfig: u32,
2214    pub horizontalSyncLevel: u32,
2215    pub verticalSyncConfig: u32,
2216    pub verticalSyncLevel: u32,
2217    pub numLinks: u32,
2218    pub verticalBlankingExtension: u32,
2219    pub pixelEncoding: u16,
2220    pub bitsPerColorComponent: u16,
2221    pub colorimetry: u16,
2222    pub dynamicRange: u16,
2223    pub dscCompressedBitsPerPixel: u16,
2224    pub dscSliceHeight: u16,
2225    pub dscSliceWidth: u16,
2226    pub verticalBlankingMaxStretchPerFrame: u16,
2227    pub verticalBlankingMaxShrinkPerFrame: u16,
2228    pub(crate) __reservedB: [u16; 3],
2229}
2230
2231#[cfg(feature = "objc2")]
2232unsafe impl Encode for IODetailedTimingInformationV2 {
2233    const ENCODING: Encoding = Encoding::Struct(
2234        "IODetailedTimingInformationV2",
2235        &[
2236            <[u32; 3]>::ENCODING,
2237            <u32>::ENCODING,
2238            <u32>::ENCODING,
2239            <u32>::ENCODING,
2240            <u32>::ENCODING,
2241            <u32>::ENCODING,
2242            <u32>::ENCODING,
2243            <u32>::ENCODING,
2244            <u64>::ENCODING,
2245            <u64>::ENCODING,
2246            <u64>::ENCODING,
2247            <u32>::ENCODING,
2248            <u32>::ENCODING,
2249            <u32>::ENCODING,
2250            <u32>::ENCODING,
2251            <u32>::ENCODING,
2252            <u32>::ENCODING,
2253            <u32>::ENCODING,
2254            <u32>::ENCODING,
2255            <u32>::ENCODING,
2256            <u32>::ENCODING,
2257            <u32>::ENCODING,
2258            <u32>::ENCODING,
2259            <u32>::ENCODING,
2260            <u32>::ENCODING,
2261            <u32>::ENCODING,
2262            <u32>::ENCODING,
2263            <u32>::ENCODING,
2264            <u32>::ENCODING,
2265            <u16>::ENCODING,
2266            <u16>::ENCODING,
2267            <u16>::ENCODING,
2268            <u16>::ENCODING,
2269            <u16>::ENCODING,
2270            <u16>::ENCODING,
2271            <u16>::ENCODING,
2272            <u16>::ENCODING,
2273            <u16>::ENCODING,
2274            <[u16; 3]>::ENCODING,
2275        ],
2276    );
2277}
2278
2279#[cfg(feature = "objc2")]
2280unsafe impl RefEncode for IODetailedTimingInformationV2 {
2281    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2282}
2283
2284/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iodetailedtiminginformation?language=objc)
2285pub type IODetailedTimingInformation = IODetailedTimingInformationV2;
2286
2287/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iotiminginformation_detailedinfo?language=objc)
2288#[repr(C)]
2289#[derive(Clone, Copy)]
2290pub union IOTimingInformation_detailedInfo {
2291    pub v1: IODetailedTimingInformationV1,
2292    pub v2: IODetailedTimingInformationV2,
2293}
2294
2295#[cfg(feature = "objc2")]
2296unsafe impl Encode for IOTimingInformation_detailedInfo {
2297    const ENCODING: Encoding = Encoding::Union(
2298        "?",
2299        &[
2300            <IODetailedTimingInformationV1>::ENCODING,
2301            <IODetailedTimingInformationV2>::ENCODING,
2302        ],
2303    );
2304}
2305
2306#[cfg(feature = "objc2")]
2307unsafe impl RefEncode for IOTimingInformation_detailedInfo {
2308    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2309}
2310
2311/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iotiminginformation?language=objc)
2312#[repr(C)]
2313#[derive(Clone, Copy)]
2314pub struct IOTimingInformation {
2315    pub appleTimingID: IOAppleTimingID,
2316    pub flags: u32,
2317    pub detailedInfo: IOTimingInformation_detailedInfo,
2318}
2319
2320#[cfg(feature = "objc2")]
2321unsafe impl Encode for IOTimingInformation {
2322    const ENCODING: Encoding = Encoding::Struct(
2323        "IOTimingInformation",
2324        &[
2325            <IOAppleTimingID>::ENCODING,
2326            <u32>::ENCODING,
2327            <IOTimingInformation_detailedInfo>::ENCODING,
2328        ],
2329    );
2330}
2331
2332#[cfg(feature = "objc2")]
2333unsafe impl RefEncode for IOTimingInformation {
2334    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2335}
2336
2337/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodetailedtimingvalid?language=objc)
2338pub const kIODetailedTimingValid: c_uint = 0x80000000;
2339/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalinginfovalid?language=objc)
2340pub const kIOScalingInfoValid: c_uint = 0x40000000;
2341
2342/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalestretchtofit?language=objc)
2343pub const kIOScaleStretchToFit: c_uint = 0x00000001;
2344/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalerotateflags?language=objc)
2345pub const kIOScaleRotateFlags: c_uint = 0x000000f0;
2346/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscaleswapaxes?language=objc)
2347pub const kIOScaleSwapAxes: c_uint = 0x00000010;
2348/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscaleinvertx?language=objc)
2349pub const kIOScaleInvertX: c_uint = 0x00000020;
2350/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscaleinverty?language=objc)
2351pub const kIOScaleInvertY: c_uint = 0x00000040;
2352/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalerotate0?language=objc)
2353pub const kIOScaleRotate0: c_uint = 0x00000000;
2354/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalerotate90?language=objc)
2355pub const kIOScaleRotate90: c_uint = kIOScaleSwapAxes | kIOScaleInvertX;
2356/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalerotate180?language=objc)
2357pub const kIOScaleRotate180: c_uint = kIOScaleInvertX | kIOScaleInvertY;
2358/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalerotate270?language=objc)
2359pub const kIOScaleRotate270: c_uint = kIOScaleSwapAxes | kIOScaleInvertY;
2360
2361/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopixelencodingnotsupported?language=objc)
2362pub const kIOPixelEncodingNotSupported: c_uint = 0x0000;
2363/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopixelencodingrgb444?language=objc)
2364pub const kIOPixelEncodingRGB444: c_uint = 0x0001;
2365/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopixelencodingycbcr444?language=objc)
2366pub const kIOPixelEncodingYCbCr444: c_uint = 0x0002;
2367/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopixelencodingycbcr422?language=objc)
2368pub const kIOPixelEncodingYCbCr422: c_uint = 0x0004;
2369/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopixelencodingycbcr420?language=objc)
2370pub const kIOPixelEncodingYCbCr420: c_uint = 0x0008;
2371
2372/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponentnotsupported?language=objc)
2373pub const kIOBitsPerColorComponentNotSupported: c_uint = 0x0000;
2374/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponent6?language=objc)
2375pub const kIOBitsPerColorComponent6: c_uint = 0x0001;
2376/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponent8?language=objc)
2377pub const kIOBitsPerColorComponent8: c_uint = 0x0002;
2378/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponent10?language=objc)
2379pub const kIOBitsPerColorComponent10: c_uint = 0x0004;
2380/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponent12?language=objc)
2381pub const kIOBitsPerColorComponent12: c_uint = 0x0008;
2382/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiobitspercolorcomponent16?language=objc)
2383pub const kIOBitsPerColorComponent16: c_uint = 0x0010;
2384
2385/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrynotsupported?language=objc)
2386pub const kIOColorimetryNotSupported: c_uint = 0x0000;
2387/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrynativergb?language=objc)
2388pub const kIOColorimetryNativeRGB: c_uint = 0x0001;
2389/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrysrgb?language=objc)
2390pub const kIOColorimetrysRGB: c_uint = 0x0002;
2391/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrydcip3?language=objc)
2392pub const kIOColorimetryDCIP3: c_uint = 0x0004;
2393/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetryadobergb?language=objc)
2394pub const kIOColorimetryAdobeRGB: c_uint = 0x0008;
2395/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetryxvycc?language=objc)
2396pub const kIOColorimetryxvYCC: c_uint = 0x0010;
2397/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrywgrgb?language=objc)
2398pub const kIOColorimetryWGRGB: c_uint = 0x0020;
2399/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrybt601?language=objc)
2400pub const kIOColorimetryBT601: c_uint = 0x0040;
2401/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrybt709?language=objc)
2402pub const kIOColorimetryBT709: c_uint = 0x0080;
2403/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrybt2020?language=objc)
2404pub const kIOColorimetryBT2020: c_uint = 0x0100;
2405/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocolorimetrybt2100?language=objc)
2406pub const kIOColorimetryBT2100: c_uint = 0x0200;
2407
2408/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangenotsupported?language=objc)
2409pub const kIODynamicRangeNotSupported: c_uint = 0x0000;
2410/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangesdr?language=objc)
2411pub const kIODynamicRangeSDR: c_uint = 0x0001;
2412/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangehdr10?language=objc)
2413pub const kIODynamicRangeHDR10: c_uint = 0x0002;
2414/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangedolbynormalmode?language=objc)
2415pub const kIODynamicRangeDolbyNormalMode: c_uint = 0x0004;
2416/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangedolbytunnelmode?language=objc)
2417pub const kIODynamicRangeDolbyTunnelMode: c_uint = 0x0008;
2418/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangetraditionalgammahdr?language=objc)
2419pub const kIODynamicRangeTraditionalGammaHDR: c_uint = 0x0010;
2420/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodynamicrangetraditionalgammasdr?language=objc)
2421pub const kIODynamicRangeTraditionalGammaSDR: c_uint = 0x0020;
2422
2423/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofbdisplaymodedescription?language=objc)
2424#[repr(C)]
2425#[derive(Clone, Copy)]
2426pub struct IOFBDisplayModeDescription {
2427    pub info: IODisplayModeInformation,
2428    pub timingInfo: IOTimingInformation,
2429}
2430
2431#[cfg(feature = "objc2")]
2432unsafe impl Encode for IOFBDisplayModeDescription {
2433    const ENCODING: Encoding = Encoding::Struct(
2434        "IOFBDisplayModeDescription",
2435        &[
2436            <IODisplayModeInformation>::ENCODING,
2437            <IOTimingInformation>::ENCODING,
2438        ],
2439    );
2440}
2441
2442#[cfg(feature = "objc2")]
2443unsafe impl RefEncode for IOFBDisplayModeDescription {
2444    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2445}
2446
2447/// A structure defining the limits and attributes of a display or framebuffer.
2448///
2449/// This structure is used to define the limits for modes programmed as detailed timings by the OS. The VESA EDID is useful background information for many of these fields. A data property with this structure under the key kIOFBTimingRangeKey in a framebuffer will allow the OS to program detailed timings that fall within its range.
2450/// Field: __reservedA Set to zero.
2451/// Field: version Set to zero.
2452/// Field: __reservedB Set to zero.
2453/// Field: minPixelClock minimum pixel clock frequency in range, in Hz.
2454/// Field: minPixelClock maximum pixel clock frequency in range, in Hz.
2455/// Field: maxPixelError largest variation between specified and actual pixel clock frequency, in Hz.
2456/// Field: supportedSyncFlags mask of supported sync attributes. The following are defined:
2457/// <br>
2458/// kIORangeSupportsSeparateSyncs - digital separate syncs.
2459/// <br>
2460/// kIORangeSupportsSyncOnGreen - sync on green.
2461/// <br>
2462/// kIORangeSupportsCompositeSync - composite sync.
2463/// <br>
2464/// kIORangeSupportsVSyncSerration - vertical sync has serration and equalization pulses.
2465/// <br>
2466/// kIORangeSupportsVRR - variable refresh rate.
2467/// <br>
2468/// Field: supportedSignalLevels mask of possible signal levels. The following are defined:
2469/// <br>
2470/// kIORangeSupportsSignal_0700_0300 0.700 - 0.300 V p-p.
2471/// <br>
2472/// kIORangeSupportsSignal_0714_0286 0.714 - 0.286 V p-p.
2473/// <br>
2474/// kIORangeSupportsSignal_1000_0400 1.000 - 0.400 V p-p.
2475/// <br>
2476/// kIORangeSupportsSignal_0700_0000 0.700 - 0.000 V p-p.
2477/// <br>
2478/// Field: supportedSignalConfigs mask of possible signal configurations. The following are defined:
2479/// <br>
2480/// kIORangeSupportsInterlacedCEATiming Supports CEA style interlaced timing:
2481/// <br>
2482/// Field 1 vertical blanking = specified vertical blanking lines.
2483/// <br>
2484/// Field 2 vertical blanking = vertical blanking lines + 1 line.
2485/// <br>
2486/// Field 1 vertical offset = specified vertical sync offset.
2487/// <br>
2488/// Field 2 vertical offset = specified vertical sync offset + 0.5 lines.
2489/// <br>
2490/// kIORangeSupportsInterlacedCEATimingWithConfirm Supports CEA style interlaced timing, but require a confirm.
2491/// Field: minFrameRate minimum frame rate (vertical refresh frequency) in range, in Hz.
2492/// Field: maxFrameRate maximum frame rate (vertical refresh frequency) in range, in Hz.
2493/// Field: minLineRate minimum line rate (horizontal refresh frequency) in range, in Hz.
2494/// Field: maxLineRate maximum line rate (horizontal refresh frequency) in range, in Hz.
2495/// Field: maxHorizontalTotal maximum clocks in horizontal line (active + blanking).
2496/// Field: maxVerticalTotal maximum lines in vertical frame (active + blanking).
2497/// Field: __reservedD Set to zero.
2498/// Field: charSizeHorizontalActive horizontalActive must be a multiple of charSizeHorizontalActive.
2499/// Field: charSizeHorizontalBlanking horizontalBlanking must be a multiple of charSizeHorizontalBlanking.
2500/// Field: charSizeHorizontalSyncOffset horizontalSyncOffset must be a multiple of charSizeHorizontalSyncOffset.
2501/// Field: charSizeHorizontalSyncPulse horizontalSyncPulse must be a multiple of charSizeHorizontalSyncPulse.
2502/// Field: charSizeVerticalActive verticalActive must be a multiple of charSizeVerticalActive.
2503/// Field: charSizeVerticalBlanking verticalBlanking must be a multiple of charSizeVerticalBlanking.
2504/// Field: charSizeVerticalSyncOffset verticalSyncOffset must be a multiple of charSizeVerticalSyncOffset.
2505/// Field: charSizeVerticalSyncPulse verticalSyncPulse must be a multiple of charSizeVerticalSyncPulse.
2506/// Field: charSizeHorizontalBorderLeft horizontalBorderLeft must be a multiple of charSizeHorizontalBorderLeft.
2507/// Field: charSizeHorizontalBorderRight horizontalBorderRight must be a multiple of charSizeHorizontalBorderRight.
2508/// Field: charSizeVerticalBorderTop verticalBorderTop must be a multiple of charSizeVerticalBorderTop.
2509/// Field: charSizeVerticalBorderBottom verticalBorderBottom must be a multiple of charSizeVerticalBorderBottom.
2510/// Field: charSizeHorizontalTotal (horizontalActive + horizontalBlanking) must be a multiple of charSizeHorizontalTotal.
2511/// Field: charSizeVerticalTotal (verticalActive + verticalBlanking) must be a multiple of charSizeVerticalTotal.
2512/// Field: __reservedE Set to zero.
2513/// Field: minHorizontalActiveClocks minimum value of horizontalActive.
2514/// Field: maxHorizontalActiveClocks maximum value of horizontalActive.
2515/// Field: minHorizontalBlankingClocks minimum value of horizontalBlanking.
2516/// Field: maxHorizontalBlankingClocks maximum value of horizontalBlanking.
2517/// Field: minHorizontalSyncOffsetClocks minimum value of horizontalSyncOffset.
2518/// Field: maxHorizontalSyncOffsetClocks maximum value of horizontalSyncOffset.
2519/// Field: minHorizontalPulseWidthClocks minimum value of horizontalPulseWidth.
2520/// Field: maxHorizontalPulseWidthClocks maximum value of horizontalPulseWidth.
2521/// Field: minVerticalActiveClocks minimum value of verticalActive.
2522/// Field: maxVerticalActiveClocks maximum value of verticalActive.
2523/// Field: minVerticalBlankingClocks minimum value of verticalBlanking.
2524/// Field: maxVerticalBlankingClocks maximum value of verticalBlanking.
2525/// Field: minVerticalSyncOffsetClocks minimum value of verticalSyncOffset.
2526/// Field: maxVerticalSyncOffsetClocks maximum value of verticalSyncOffset.
2527/// Field: minVerticalPulseWidthClocks minimum value of verticalPulseWidth.
2528/// Field: maxVerticalPulseWidthClocks maximum value of verticalPulseWidth.
2529/// Field: minHorizontalBorderLeft minimum value of horizontalBorderLeft.
2530/// Field: maxHorizontalBorderLeft maximum value of horizontalBorderLeft.
2531/// Field: minHorizontalBorderRight minimum value of horizontalBorderRight.
2532/// Field: maxHorizontalBorderRight maximum value of horizontalBorderRight.
2533/// Field: minVerticalBorderTop minimum value of verticalBorderTop.
2534/// Field: maxVerticalBorderTop maximum value of verticalBorderTop.
2535/// Field: minVerticalBorderBottom minimum value of verticalBorderBottom.
2536/// Field: maxVerticalBorderBottom maximum value of verticalBorderBottom.
2537/// Field: maxNumLinks number of links supported, if zero, 1 link is assumed.
2538/// Field: minLink0PixelClock minimum pixel clock for link 0 (kHz).
2539/// Field: maxLink0PixelClock maximum pixel clock for link 0 (kHz).
2540/// Field: minLink1PixelClock minimum pixel clock for link 1 (kHz).
2541/// Field: maxLink1PixelClock maximum pixel clock for link 1 (kHz).
2542/// Field: supportedPixelEncoding 2017 Timing Features - ERS 2-58 (6.3.1)
2543/// Field: supportedBitsPerColorComponent 2017 Timing Features - ERS 2-58 (6.3.1)
2544/// Field: supportedColorimetry 2017 Timing Features - ERS 2-58 (6.3.1)
2545/// Field: supportedDynamicRange 2017 Timing Features - ERS 2-58 (6.3.1)
2546/// Field: __reservedF Set to zero.
2547///
2548/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplaytimingrangev1?language=objc)
2549#[repr(C)]
2550#[derive(Clone, Copy, Debug, PartialEq)]
2551pub struct IODisplayTimingRangeV1 {
2552    pub(crate) __reservedA: [u32; 2],
2553    pub version: u32,
2554    pub(crate) __reservedB: [u32; 5],
2555    pub minPixelClock: u64,
2556    pub maxPixelClock: u64,
2557    pub maxPixelError: u32,
2558    pub supportedSyncFlags: u32,
2559    pub supportedSignalLevels: u32,
2560    pub supportedSignalConfigs: u32,
2561    pub minFrameRate: u32,
2562    pub maxFrameRate: u32,
2563    pub minLineRate: u32,
2564    pub maxLineRate: u32,
2565    pub maxHorizontalTotal: u32,
2566    pub maxVerticalTotal: u32,
2567    pub(crate) __reservedD: [u32; 2],
2568    pub charSizeHorizontalActive: u8,
2569    pub charSizeHorizontalBlanking: u8,
2570    pub charSizeHorizontalSyncOffset: u8,
2571    pub charSizeHorizontalSyncPulse: u8,
2572    pub charSizeVerticalActive: u8,
2573    pub charSizeVerticalBlanking: u8,
2574    pub charSizeVerticalSyncOffset: u8,
2575    pub charSizeVerticalSyncPulse: u8,
2576    pub charSizeHorizontalBorderLeft: u8,
2577    pub charSizeHorizontalBorderRight: u8,
2578    pub charSizeVerticalBorderTop: u8,
2579    pub charSizeVerticalBorderBottom: u8,
2580    pub charSizeHorizontalTotal: u8,
2581    pub charSizeVerticalTotal: u8,
2582    pub(crate) __reservedE: u16,
2583    pub minHorizontalActiveClocks: u32,
2584    pub maxHorizontalActiveClocks: u32,
2585    pub minHorizontalBlankingClocks: u32,
2586    pub maxHorizontalBlankingClocks: u32,
2587    pub minHorizontalSyncOffsetClocks: u32,
2588    pub maxHorizontalSyncOffsetClocks: u32,
2589    pub minHorizontalPulseWidthClocks: u32,
2590    pub maxHorizontalPulseWidthClocks: u32,
2591    pub minVerticalActiveClocks: u32,
2592    pub maxVerticalActiveClocks: u32,
2593    pub minVerticalBlankingClocks: u32,
2594    pub maxVerticalBlankingClocks: u32,
2595    pub minVerticalSyncOffsetClocks: u32,
2596    pub maxVerticalSyncOffsetClocks: u32,
2597    pub minVerticalPulseWidthClocks: u32,
2598    pub maxVerticalPulseWidthClocks: u32,
2599    pub minHorizontalBorderLeft: u32,
2600    pub maxHorizontalBorderLeft: u32,
2601    pub minHorizontalBorderRight: u32,
2602    pub maxHorizontalBorderRight: u32,
2603    pub minVerticalBorderTop: u32,
2604    pub maxVerticalBorderTop: u32,
2605    pub minVerticalBorderBottom: u32,
2606    pub maxVerticalBorderBottom: u32,
2607    pub maxNumLinks: u32,
2608    pub minLink0PixelClock: u32,
2609    pub maxLink0PixelClock: u32,
2610    pub minLink1PixelClock: u32,
2611    pub maxLink1PixelClock: u32,
2612    pub supportedPixelEncoding: u16,
2613    pub supportedBitsPerColorComponent: u16,
2614    pub supportedColorimetryModes: u16,
2615    pub supportedDynamicRangeModes: u16,
2616    pub(crate) __reservedF: [u32; 1],
2617}
2618
2619#[cfg(feature = "objc2")]
2620unsafe impl Encode for IODisplayTimingRangeV1 {
2621    const ENCODING: Encoding = Encoding::Struct(
2622        "IODisplayTimingRangeV1",
2623        &[
2624            <[u32; 2]>::ENCODING,
2625            <u32>::ENCODING,
2626            <[u32; 5]>::ENCODING,
2627            <u64>::ENCODING,
2628            <u64>::ENCODING,
2629            <u32>::ENCODING,
2630            <u32>::ENCODING,
2631            <u32>::ENCODING,
2632            <u32>::ENCODING,
2633            <u32>::ENCODING,
2634            <u32>::ENCODING,
2635            <u32>::ENCODING,
2636            <u32>::ENCODING,
2637            <u32>::ENCODING,
2638            <u32>::ENCODING,
2639            <[u32; 2]>::ENCODING,
2640            <u8>::ENCODING,
2641            <u8>::ENCODING,
2642            <u8>::ENCODING,
2643            <u8>::ENCODING,
2644            <u8>::ENCODING,
2645            <u8>::ENCODING,
2646            <u8>::ENCODING,
2647            <u8>::ENCODING,
2648            <u8>::ENCODING,
2649            <u8>::ENCODING,
2650            <u8>::ENCODING,
2651            <u8>::ENCODING,
2652            <u8>::ENCODING,
2653            <u8>::ENCODING,
2654            <u16>::ENCODING,
2655            <u32>::ENCODING,
2656            <u32>::ENCODING,
2657            <u32>::ENCODING,
2658            <u32>::ENCODING,
2659            <u32>::ENCODING,
2660            <u32>::ENCODING,
2661            <u32>::ENCODING,
2662            <u32>::ENCODING,
2663            <u32>::ENCODING,
2664            <u32>::ENCODING,
2665            <u32>::ENCODING,
2666            <u32>::ENCODING,
2667            <u32>::ENCODING,
2668            <u32>::ENCODING,
2669            <u32>::ENCODING,
2670            <u32>::ENCODING,
2671            <u32>::ENCODING,
2672            <u32>::ENCODING,
2673            <u32>::ENCODING,
2674            <u32>::ENCODING,
2675            <u32>::ENCODING,
2676            <u32>::ENCODING,
2677            <u32>::ENCODING,
2678            <u32>::ENCODING,
2679            <u32>::ENCODING,
2680            <u32>::ENCODING,
2681            <u32>::ENCODING,
2682            <u32>::ENCODING,
2683            <u32>::ENCODING,
2684            <u16>::ENCODING,
2685            <u16>::ENCODING,
2686            <u16>::ENCODING,
2687            <u16>::ENCODING,
2688            <[u32; 1]>::ENCODING,
2689        ],
2690    );
2691}
2692
2693#[cfg(feature = "objc2")]
2694unsafe impl RefEncode for IODisplayTimingRangeV1 {
2695    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2696}
2697
2698/// A structure defining the limits and attributes of DSC capabilities in a  framebuffer.
2699///
2700/// This structure is used to define the limits for DSC enabled modes programmed as detailed timings by the OS. The VESA DSC spec is useful background information for many of these fields.
2701/// Field: maxBandwidth Maximum permitted bandwidth of the given topology in bits per second.
2702/// Field: dscMinSliceHeight Minimum slice Height, in units of line.
2703/// Field: dscMaxSliceHeight Maximum slice Height, in units of line.
2704/// Field: dscMinSliceWidth  Minimum slice width, in units of line.
2705/// Field: dscMaxSliceWidth  Maximum slice width, in units of line.
2706/// Field: dscMinSlicePerLine Minimum slice per Line.
2707/// Field: dscMaxSlicePerLine Maximum slice per Line.
2708/// Field: dscMinBPC  Minimum Bits per component, in units of bits.
2709/// Field: dscMaxBPC  Maximum Bits per component, in units of bits.
2710/// Field: dscMinBPP  Minimum target bits/pixel, in bpp.
2711/// Field: dscMaxBPP  Maximum target bits/pixel, in bpp.
2712/// Field: dscVBR     VBR mode, 0:disabled 1:enabled.
2713/// Field: dscBlockPredEnable  DSC BP is user or not, 0: not used, 1: used.
2714/// Field: __reservedF  Set to zero.
2715///
2716/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplaytimingrangev2?language=objc)
2717#[repr(C)]
2718#[derive(Clone, Copy, Debug, PartialEq)]
2719pub struct IODisplayTimingRangeV2 {
2720    pub(crate) __reservedA: [u32; 2],
2721    pub version: u32,
2722    pub(crate) __reservedB: [u32; 5],
2723    pub minPixelClock: u64,
2724    pub maxPixelClock: u64,
2725    pub maxPixelError: u32,
2726    pub supportedSyncFlags: u32,
2727    pub supportedSignalLevels: u32,
2728    pub supportedSignalConfigs: u32,
2729    pub minFrameRate: u32,
2730    pub maxFrameRate: u32,
2731    pub minLineRate: u32,
2732    pub maxLineRate: u32,
2733    pub maxHorizontalTotal: u32,
2734    pub maxVerticalTotal: u32,
2735    pub(crate) __reservedD: [u32; 2],
2736    pub charSizeHorizontalActive: u8,
2737    pub charSizeHorizontalBlanking: u8,
2738    pub charSizeHorizontalSyncOffset: u8,
2739    pub charSizeHorizontalSyncPulse: u8,
2740    pub charSizeVerticalActive: u8,
2741    pub charSizeVerticalBlanking: u8,
2742    pub charSizeVerticalSyncOffset: u8,
2743    pub charSizeVerticalSyncPulse: u8,
2744    pub charSizeHorizontalBorderLeft: u8,
2745    pub charSizeHorizontalBorderRight: u8,
2746    pub charSizeVerticalBorderTop: u8,
2747    pub charSizeVerticalBorderBottom: u8,
2748    pub charSizeHorizontalTotal: u8,
2749    pub charSizeVerticalTotal: u8,
2750    pub(crate) __reservedE: u16,
2751    pub minHorizontalActiveClocks: u32,
2752    pub maxHorizontalActiveClocks: u32,
2753    pub minHorizontalBlankingClocks: u32,
2754    pub maxHorizontalBlankingClocks: u32,
2755    pub minHorizontalSyncOffsetClocks: u32,
2756    pub maxHorizontalSyncOffsetClocks: u32,
2757    pub minHorizontalPulseWidthClocks: u32,
2758    pub maxHorizontalPulseWidthClocks: u32,
2759    pub minVerticalActiveClocks: u32,
2760    pub maxVerticalActiveClocks: u32,
2761    pub minVerticalBlankingClocks: u32,
2762    pub maxVerticalBlankingClocks: u32,
2763    pub minVerticalSyncOffsetClocks: u32,
2764    pub maxVerticalSyncOffsetClocks: u32,
2765    pub minVerticalPulseWidthClocks: u32,
2766    pub maxVerticalPulseWidthClocks: u32,
2767    pub minHorizontalBorderLeft: u32,
2768    pub maxHorizontalBorderLeft: u32,
2769    pub minHorizontalBorderRight: u32,
2770    pub maxHorizontalBorderRight: u32,
2771    pub minVerticalBorderTop: u32,
2772    pub maxVerticalBorderTop: u32,
2773    pub minVerticalBorderBottom: u32,
2774    pub maxVerticalBorderBottom: u32,
2775    pub maxNumLinks: u32,
2776    pub minLink0PixelClock: u32,
2777    pub maxLink0PixelClock: u32,
2778    pub minLink1PixelClock: u32,
2779    pub maxLink1PixelClock: u32,
2780    pub supportedPixelEncoding: u16,
2781    pub supportedBitsPerColorComponent: u16,
2782    pub supportedColorimetryModes: u16,
2783    pub supportedDynamicRangeModes: u16,
2784    pub(crate) __reservedF: [u32; 1],
2785    pub maxBandwidth: u64,
2786    pub dscMinSliceHeight: u32,
2787    pub dscMaxSliceHeight: u32,
2788    pub dscMinSliceWidth: u32,
2789    pub dscMaxSliceWidth: u32,
2790    pub dscMinSlicePerLine: u32,
2791    pub dscMaxSlicePerLine: u32,
2792    pub dscMinBPC: u16,
2793    pub dscMaxBPC: u16,
2794    pub dscMinBPP: u16,
2795    pub dscMaxBPP: u16,
2796    pub dscVBR: u8,
2797    pub dscBlockPredEnable: u8,
2798    pub(crate) __reservedC: [u32; 6],
2799}
2800
2801#[cfg(feature = "objc2")]
2802unsafe impl Encode for IODisplayTimingRangeV2 {
2803    const ENCODING: Encoding = Encoding::Struct(
2804        "IODisplayTimingRangeV2",
2805        &[
2806            <[u32; 2]>::ENCODING,
2807            <u32>::ENCODING,
2808            <[u32; 5]>::ENCODING,
2809            <u64>::ENCODING,
2810            <u64>::ENCODING,
2811            <u32>::ENCODING,
2812            <u32>::ENCODING,
2813            <u32>::ENCODING,
2814            <u32>::ENCODING,
2815            <u32>::ENCODING,
2816            <u32>::ENCODING,
2817            <u32>::ENCODING,
2818            <u32>::ENCODING,
2819            <u32>::ENCODING,
2820            <u32>::ENCODING,
2821            <[u32; 2]>::ENCODING,
2822            <u8>::ENCODING,
2823            <u8>::ENCODING,
2824            <u8>::ENCODING,
2825            <u8>::ENCODING,
2826            <u8>::ENCODING,
2827            <u8>::ENCODING,
2828            <u8>::ENCODING,
2829            <u8>::ENCODING,
2830            <u8>::ENCODING,
2831            <u8>::ENCODING,
2832            <u8>::ENCODING,
2833            <u8>::ENCODING,
2834            <u8>::ENCODING,
2835            <u8>::ENCODING,
2836            <u16>::ENCODING,
2837            <u32>::ENCODING,
2838            <u32>::ENCODING,
2839            <u32>::ENCODING,
2840            <u32>::ENCODING,
2841            <u32>::ENCODING,
2842            <u32>::ENCODING,
2843            <u32>::ENCODING,
2844            <u32>::ENCODING,
2845            <u32>::ENCODING,
2846            <u32>::ENCODING,
2847            <u32>::ENCODING,
2848            <u32>::ENCODING,
2849            <u32>::ENCODING,
2850            <u32>::ENCODING,
2851            <u32>::ENCODING,
2852            <u32>::ENCODING,
2853            <u32>::ENCODING,
2854            <u32>::ENCODING,
2855            <u32>::ENCODING,
2856            <u32>::ENCODING,
2857            <u32>::ENCODING,
2858            <u32>::ENCODING,
2859            <u32>::ENCODING,
2860            <u32>::ENCODING,
2861            <u32>::ENCODING,
2862            <u32>::ENCODING,
2863            <u32>::ENCODING,
2864            <u32>::ENCODING,
2865            <u32>::ENCODING,
2866            <u16>::ENCODING,
2867            <u16>::ENCODING,
2868            <u16>::ENCODING,
2869            <u16>::ENCODING,
2870            <[u32; 1]>::ENCODING,
2871            <u64>::ENCODING,
2872            <u32>::ENCODING,
2873            <u32>::ENCODING,
2874            <u32>::ENCODING,
2875            <u32>::ENCODING,
2876            <u32>::ENCODING,
2877            <u32>::ENCODING,
2878            <u16>::ENCODING,
2879            <u16>::ENCODING,
2880            <u16>::ENCODING,
2881            <u16>::ENCODING,
2882            <u8>::ENCODING,
2883            <u8>::ENCODING,
2884            <[u32; 6]>::ENCODING,
2885        ],
2886    );
2887}
2888
2889#[cfg(feature = "objc2")]
2890unsafe impl RefEncode for IODisplayTimingRangeV2 {
2891    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
2892}
2893
2894/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplaytimingrange?language=objc)
2895pub type IODisplayTimingRange = IODisplayTimingRangeV2;
2896
2897/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingrangev2?language=objc)
2898pub const kIOTimingRangeV2: c_uint = 0x00000002;
2899/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingrangev1?language=objc)
2900pub const kIOTimingRangeV1: c_uint = 0x00000000;
2901
2902/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangepixelencodingnotsupported?language=objc)
2903pub const kIORangePixelEncodingNotSupported: c_uint = 0x0000;
2904/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangepixelencodingrgb444?language=objc)
2905pub const kIORangePixelEncodingRGB444: c_uint = 0x0001;
2906/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangepixelencodingycbcr444?language=objc)
2907pub const kIORangePixelEncodingYCbCr444: c_uint = 0x0002;
2908/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangepixelencodingycbcr422?language=objc)
2909pub const kIORangePixelEncodingYCbCr422: c_uint = 0x0004;
2910/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangepixelencodingycbcr420?language=objc)
2911pub const kIORangePixelEncodingYCbCr420: c_uint = 0x0008;
2912
2913/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponentnotsupported?language=objc)
2914pub const kIORangeBitsPerColorComponentNotSupported: c_uint = 0x0000;
2915/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponent6?language=objc)
2916pub const kIORangeBitsPerColorComponent6: c_uint = 0x0001;
2917/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponent8?language=objc)
2918pub const kIORangeBitsPerColorComponent8: c_uint = 0x0002;
2919/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponent10?language=objc)
2920pub const kIORangeBitsPerColorComponent10: c_uint = 0x0004;
2921/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponent12?language=objc)
2922pub const kIORangeBitsPerColorComponent12: c_uint = 0x0008;
2923/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangebitspercolorcomponent16?language=objc)
2924pub const kIORangeBitsPerColorComponent16: c_uint = 0x0010;
2925
2926/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrynotsupported?language=objc)
2927pub const kIORangeColorimetryNotSupported: c_uint = 0x0000;
2928/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrynativergb?language=objc)
2929pub const kIORangeColorimetryNativeRGB: c_uint = 0x0001;
2930/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrysrgb?language=objc)
2931pub const kIORangeColorimetrysRGB: c_uint = 0x0002;
2932/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrydcip3?language=objc)
2933pub const kIORangeColorimetryDCIP3: c_uint = 0x0004;
2934/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetryadobergb?language=objc)
2935pub const kIORangeColorimetryAdobeRGB: c_uint = 0x0008;
2936/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetryxvycc?language=objc)
2937pub const kIORangeColorimetryxvYCC: c_uint = 0x0010;
2938/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrywgrgb?language=objc)
2939pub const kIORangeColorimetryWGRGB: c_uint = 0x0020;
2940/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrybt601?language=objc)
2941pub const kIORangeColorimetryBT601: c_uint = 0x0040;
2942/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrybt709?language=objc)
2943pub const kIORangeColorimetryBT709: c_uint = 0x0080;
2944/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrybt2020?language=objc)
2945pub const kIORangeColorimetryBT2020: c_uint = 0x0100;
2946/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangecolorimetrybt2100?language=objc)
2947pub const kIORangeColorimetryBT2100: c_uint = 0x0200;
2948
2949/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangenotsupported?language=objc)
2950pub const kIORangeDynamicRangeNotSupported: c_uint = 0x0000;
2951/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangesdr?language=objc)
2952pub const kIORangeDynamicRangeSDR: c_uint = 0x0001;
2953/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangehdr10?language=objc)
2954pub const kIORangeDynamicRangeHDR10: c_uint = 0x0002;
2955/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangedolbynormalmode?language=objc)
2956pub const kIORangeDynamicRangeDolbyNormalMode: c_uint = 0x0004;
2957/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangedolbytunnelmode?language=objc)
2958pub const kIORangeDynamicRangeDolbyTunnelMode: c_uint = 0x0008;
2959/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangetraditionalgammahdr?language=objc)
2960pub const kIORangeDynamicRangeTraditionalGammaHDR: c_uint = 0x0010;
2961/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangedynamicrangetraditionalgammasdr?language=objc)
2962pub const kIORangeDynamicRangeTraditionalGammaSDR: c_uint = 0x0020;
2963
2964/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportssignal_0700_0300?language=objc)
2965pub const kIORangeSupportsSignal_0700_0300: c_uint = 0x00000001;
2966/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportssignal_0714_0286?language=objc)
2967pub const kIORangeSupportsSignal_0714_0286: c_uint = 0x00000002;
2968/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportssignal_1000_0400?language=objc)
2969pub const kIORangeSupportsSignal_1000_0400: c_uint = 0x00000004;
2970/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportssignal_0700_0000?language=objc)
2971pub const kIORangeSupportsSignal_0700_0000: c_uint = 0x00000008;
2972
2973/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsseparatesyncs?language=objc)
2974pub const kIORangeSupportsSeparateSyncs: c_uint = 0x00000001;
2975/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportssyncongreen?language=objc)
2976pub const kIORangeSupportsSyncOnGreen: c_uint = 0x00000002;
2977/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportscompositesync?language=objc)
2978pub const kIORangeSupportsCompositeSync: c_uint = 0x00000004;
2979/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsvsyncserration?language=objc)
2980pub const kIORangeSupportsVSyncSerration: c_uint = 0x00000008;
2981/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsvrr?language=objc)
2982pub const kIORangeSupportsVRR: c_uint = 0x00000010;
2983
2984/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsinterlacedceatiming?language=objc)
2985pub const kIORangeSupportsInterlacedCEATiming: c_uint = 0x00000004;
2986/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsinterlacedceatimingwithconfirm?language=objc)
2987pub const kIORangeSupportsInterlacedCEATimingWithConfirm: c_uint = 0x00000008;
2988/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiorangesupportsmultialignedtiming?language=objc)
2989pub const kIORangeSupportsMultiAlignedTiming: c_uint = 0x00000040;
2990
2991/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodigitalsignal?language=objc)
2992pub const kIODigitalSignal: c_uint = 0x00000001;
2993/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioanalogsetupexpected?language=objc)
2994pub const kIOAnalogSetupExpected: c_uint = 0x00000002;
2995/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiointerlacedceatiming?language=objc)
2996pub const kIOInterlacedCEATiming: c_uint = 0x00000004;
2997/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiontsctiming?language=objc)
2998pub const kIONTSCTiming: c_uint = 0x00000008;
2999/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiopaltiming?language=objc)
3000pub const kIOPALTiming: c_uint = 0x00000010;
3001/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodscblockpredenable?language=objc)
3002pub const kIODSCBlockPredEnable: c_uint = 0x00000020;
3003/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiomultialignedtiming?language=objc)
3004pub const kIOMultiAlignedTiming: c_uint = 0x00000040;
3005
3006/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioanalogsignallevel_0700_0300?language=objc)
3007pub const kIOAnalogSignalLevel_0700_0300: c_uint = 0;
3008/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioanalogsignallevel_0714_0286?language=objc)
3009pub const kIOAnalogSignalLevel_0714_0286: c_uint = 1;
3010/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioanalogsignallevel_1000_0400?language=objc)
3011pub const kIOAnalogSignalLevel_1000_0400: c_uint = 2;
3012/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioanalogsignallevel_0700_0000?language=objc)
3013pub const kIOAnalogSignalLevel_0700_0000: c_uint = 3;
3014
3015/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiosyncpositivepolarity?language=objc)
3016pub const kIOSyncPositivePolarity: c_uint = 0x00000001;
3017
3018/// A structure defining the scaling capabilities of a framebuffer.
3019///
3020/// This structure is used to define the limits for modes programmed as detailed timings by the OS. A data property with this structure under the key kIOFBScalerInfoKey in a framebuffer will allow the OS to program detailed timings that are scaled to a displays native resolution.
3021/// Field: __reservedA Set to zero.
3022/// Field: version Set to zero.
3023/// Field: __reservedB Set to zero.
3024/// Field: scalerFeatures Mask of scaling features. The following are defined:
3025/// <br>
3026/// kIOScaleStretchOnly If set the framebuffer can only provide stretched scaling with non-square pixels, without borders.
3027/// <br>
3028/// kIOScaleCanUpSamplePixels If set framebuffer can scale up from a smaller number of source pixels to a larger native timing (eg. 640x480 pixels on a 1600x1200 timing).
3029/// <br>
3030/// kIOScaleCanDownSamplePixels If set framebuffer can scale down from a larger number of source pixels to a smaller native timing (eg. 1600x1200 pixels on a 640x480 timing).
3031/// <br>
3032/// kIOScaleCanScaleInterlaced If set framebuffer can scale an interlaced detailed timing.
3033/// <br>
3034/// kIOScaleCanSupportInset If set framebuffer can support scaled modes with non-zero horizontalScaledInset, verticalScaledInset fields.
3035/// <br>
3036/// kIOScaleCanRotate If set framebuffer can support some of the flags in the kIOScaleRotateFlags mask.
3037/// <br>
3038/// kIOScaleCanBorderInsetOnly If set framebuffer can support scaled modes with non-zero horizontalScaledInset, verticalScaledInset fields, but requires the active pixels to be equal in size to the inset area, ie. can do insets with a border versus scaling an image.
3039/// <br>
3040/// Field: maxHorizontalPixels Maximum number of horizontal source pixels (horizontalScaled).
3041/// <br>
3042/// Field: maxVerticalPixels Maximum number of vertical source pixels (verticalScaled).
3043/// <br>
3044/// Field: __reservedC Set to zero.
3045///
3046/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iodisplayscalerinformation?language=objc)
3047#[repr(C)]
3048#[derive(Clone, Copy, Debug, PartialEq)]
3049pub struct IODisplayScalerInformation {
3050    pub(crate) __reservedA: [u32; 1],
3051    pub version: u32,
3052    pub(crate) __reservedB: [u32; 2],
3053    pub scalerFeatures: IOOptionBits,
3054    pub maxHorizontalPixels: u32,
3055    pub maxVerticalPixels: u32,
3056    pub(crate) __reservedC: [u32; 5],
3057}
3058
3059#[cfg(feature = "objc2")]
3060unsafe impl Encode for IODisplayScalerInformation {
3061    const ENCODING: Encoding = Encoding::Struct(
3062        "IODisplayScalerInformation",
3063        &[
3064            <[u32; 1]>::ENCODING,
3065            <u32>::ENCODING,
3066            <[u32; 2]>::ENCODING,
3067            <IOOptionBits>::ENCODING,
3068            <u32>::ENCODING,
3069            <u32>::ENCODING,
3070            <[u32; 5]>::ENCODING,
3071        ],
3072    );
3073}
3074
3075#[cfg(feature = "objc2")]
3076unsafe impl RefEncode for IODisplayScalerInformation {
3077    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3078}
3079
3080/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalestretchonly?language=objc)
3081pub const kIOScaleStretchOnly: c_uint = 0x00000001;
3082/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecanupsamplepixels?language=objc)
3083pub const kIOScaleCanUpSamplePixels: c_uint = 0x00000002;
3084/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecandownsamplepixels?language=objc)
3085pub const kIOScaleCanDownSamplePixels: c_uint = 0x00000004;
3086/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecanscaleinterlaced?language=objc)
3087pub const kIOScaleCanScaleInterlaced: c_uint = 0x00000008;
3088/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecansupportinset?language=objc)
3089pub const kIOScaleCanSupportInset: c_uint = 0x00000010;
3090/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecanrotate?language=objc)
3091pub const kIOScaleCanRotate: c_uint = 0x00000020;
3092/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioscalecanborderinsetonly?language=objc)
3093pub const kIOScaleCanBorderInsetOnly: c_uint = 0x00000040;
3094
3095/// [Apple's documentation](https://developer.apple.com/documentation/iokit/korconnections?language=objc)
3096pub const kOrConnections: c_uint = 0xffffffe;
3097/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kandconnections?language=objc)
3098pub const kAndConnections: c_uint = 0xffffffd;
3099
3100/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionflags?language=objc)
3101pub const kConnectionFlags: c_uint = 0x666c6773;
3102/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionsyncenable?language=objc)
3103pub const kConnectionSyncEnable: c_uint = 0x73796e63;
3104/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionsyncflags?language=objc)
3105pub const kConnectionSyncFlags: c_uint = 0x73796366;
3106/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionsupportsapplesense?language=objc)
3107pub const kConnectionSupportsAppleSense: c_uint = 0x61736e73;
3108/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionsupportsllddcsense?language=objc)
3109pub const kConnectionSupportsLLDDCSense: c_uint = 0x6c646463;
3110/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionsupportshlddcsense?language=objc)
3111pub const kConnectionSupportsHLDDCSense: c_uint = 0x68646463;
3112/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionenable?language=objc)
3113pub const kConnectionEnable: c_uint = 0x656e6162;
3114/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectioncheckenable?language=objc)
3115pub const kConnectionCheckEnable: c_uint = 0x63656e61;
3116/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionprobe?language=objc)
3117pub const kConnectionProbe: c_uint = 0x70726f62;
3118/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionchanged?language=objc)
3119pub const kConnectionChanged: c_uint = 0x63686e67;
3120/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionpower?language=objc)
3121pub const kConnectionPower: c_uint = 0x706f7772;
3122/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionpostwake?language=objc)
3123pub const kConnectionPostWake: c_uint = 0x7077616b;
3124/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectiondisplayparametercount?language=objc)
3125pub const kConnectionDisplayParameterCount: c_uint = 0x70636e74;
3126/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectiondisplayparameters?language=objc)
3127pub const kConnectionDisplayParameters: c_uint = 0x7061726d;
3128/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionoverscan?language=objc)
3129pub const kConnectionOverscan: c_uint = 0x6f73636e;
3130/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionvideobest?language=objc)
3131pub const kConnectionVideoBest: c_uint = 0x76627374;
3132/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionredgammascale?language=objc)
3133pub const kConnectionRedGammaScale: c_uint = 0x72677363;
3134/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectiongreengammascale?language=objc)
3135pub const kConnectionGreenGammaScale: c_uint = 0x67677363;
3136/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionbluegammascale?language=objc)
3137pub const kConnectionBlueGammaScale: c_uint = 0x62677363;
3138/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectiongammascale?language=objc)
3139pub const kConnectionGammaScale: c_uint = 0x67736320;
3140/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionflushparameters?language=objc)
3141pub const kConnectionFlushParameters: c_uint = 0x666c7573;
3142/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionvblmultiplier?language=objc)
3143pub const kConnectionVBLMultiplier: c_uint = 0x76626c6d;
3144/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionhandledisplayportevent?language=objc)
3145pub const kConnectionHandleDisplayPortEvent: c_uint = 0x64706972;
3146/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionpaneltimingdisable?language=objc)
3147pub const kConnectionPanelTimingDisable: c_uint = 0x706e6c74;
3148/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectioncolormode?language=objc)
3149pub const kConnectionColorMode: c_uint = 0x63797576;
3150/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectioncolormodessupported?language=objc)
3151pub const kConnectionColorModesSupported: c_uint = 0x636f6c72;
3152/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectioncolordepthssupported?language=objc)
3153pub const kConnectionColorDepthsSupported: c_uint = 0x20627063;
3154/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectiondisplayflags?language=objc)
3155pub const kConnectionDisplayFlags: c_uint = 0x64666c67;
3156/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionenableaudio?language=objc)
3157pub const kConnectionEnableAudio: c_uint = 0x61756420;
3158/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionaudiostreaming?language=objc)
3159pub const kConnectionAudioStreaming: c_uint = 0x61756473;
3160/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kconnectionstartofframetime?language=objc)
3161pub const kConnectionStartOfFrameTime: c_uint = 0x736f6674;
3162
3163/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioconnectionbuiltin?language=objc)
3164pub const kIOConnectionBuiltIn: c_uint = 0x00000800;
3165/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kioconnectionstereosync?language=objc)
3166pub const kIOConnectionStereoSync: c_uint = 0x00008000;
3167
3168/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohsyncdisable?language=objc)
3169pub const kIOHSyncDisable: c_uint = 0x00000001;
3170/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiovsyncdisable?language=objc)
3171pub const kIOVSyncDisable: c_uint = 0x00000002;
3172/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiocsyncdisable?language=objc)
3173pub const kIOCSyncDisable: c_uint = 0x00000004;
3174/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kionoseparatesynccontrol?language=objc)
3175pub const kIONoSeparateSyncControl: c_uint = 0x00000040;
3176/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotristatesyncs?language=objc)
3177pub const kIOTriStateSyncs: c_uint = 0x00000080;
3178/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiosynconblue?language=objc)
3179pub const kIOSyncOnBlue: c_uint = 0x00000008;
3180/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiosyncongreen?language=objc)
3181pub const kIOSyncOnGreen: c_uint = 0x00000010;
3182/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiosynconred?language=objc)
3183pub const kIOSyncOnRed: c_uint = 0x00000020;
3184
3185/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventstart?language=objc)
3186pub const kIODPEventStart: c_uint = 1;
3187/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventidle?language=objc)
3188pub const kIODPEventIdle: c_uint = 2;
3189/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventforceretrain?language=objc)
3190pub const kIODPEventForceRetrain: c_uint = 3;
3191/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventremotecontrolcommandpending?language=objc)
3192pub const kIODPEventRemoteControlCommandPending: c_uint = 256;
3193/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventautomatedtestrequest?language=objc)
3194pub const kIODPEventAutomatedTestRequest: c_uint = 257;
3195/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventcontentprotection?language=objc)
3196pub const kIODPEventContentProtection: c_uint = 258;
3197/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventmccs?language=objc)
3198pub const kIODPEventMCCS: c_uint = 259;
3199/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodpeventsinkspecific?language=objc)
3200pub const kIODPEventSinkSpecific: c_uint = 260;
3201
3202/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaycolormode?language=objc)
3203pub const kIODisplayColorMode: c_uint = kConnectionColorMode;
3204
3205/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbitsunknown?language=objc)
3206pub const kIODisplayRGBColorComponentBitsUnknown: c_uint = 0x00000000;
3207/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits6?language=objc)
3208pub const kIODisplayRGBColorComponentBits6: c_uint = 0x00000001;
3209/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits8?language=objc)
3210pub const kIODisplayRGBColorComponentBits8: c_uint = 0x00000002;
3211/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits10?language=objc)
3212pub const kIODisplayRGBColorComponentBits10: c_uint = 0x00000004;
3213/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits12?language=objc)
3214pub const kIODisplayRGBColorComponentBits12: c_uint = 0x00000008;
3215/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits14?language=objc)
3216pub const kIODisplayRGBColorComponentBits14: c_uint = 0x00000010;
3217/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayrgbcolorcomponentbits16?language=objc)
3218pub const kIODisplayRGBColorComponentBits16: c_uint = 0x00000020;
3219/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbitsunknown?language=objc)
3220pub const kIODisplayYCbCr444ColorComponentBitsUnknown: c_uint = 0x00000000;
3221/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits6?language=objc)
3222pub const kIODisplayYCbCr444ColorComponentBits6: c_uint = 0x00000100;
3223/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits8?language=objc)
3224pub const kIODisplayYCbCr444ColorComponentBits8: c_uint = 0x00000200;
3225/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits10?language=objc)
3226pub const kIODisplayYCbCr444ColorComponentBits10: c_uint = 0x00000400;
3227/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits12?language=objc)
3228pub const kIODisplayYCbCr444ColorComponentBits12: c_uint = 0x00000800;
3229/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits14?language=objc)
3230pub const kIODisplayYCbCr444ColorComponentBits14: c_uint = 0x00001000;
3231/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr444colorcomponentbits16?language=objc)
3232pub const kIODisplayYCbCr444ColorComponentBits16: c_uint = 0x00002000;
3233/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbitsunknown?language=objc)
3234pub const kIODisplayYCbCr422ColorComponentBitsUnknown: c_uint = 0x00000000;
3235/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits6?language=objc)
3236pub const kIODisplayYCbCr422ColorComponentBits6: c_uint = 0x00010000;
3237/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits8?language=objc)
3238pub const kIODisplayYCbCr422ColorComponentBits8: c_uint = 0x00020000;
3239/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits10?language=objc)
3240pub const kIODisplayYCbCr422ColorComponentBits10: c_uint = 0x00040000;
3241/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits12?language=objc)
3242pub const kIODisplayYCbCr422ColorComponentBits12: c_uint = 0x00080000;
3243/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits14?language=objc)
3244pub const kIODisplayYCbCr422ColorComponentBits14: c_uint = 0x00100000;
3245/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayycbcr422colorcomponentbits16?language=objc)
3246pub const kIODisplayYCbCr422ColorComponentBits16: c_uint = 0x00200000;
3247
3248/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherdisable?language=objc)
3249pub const kIODisplayDitherDisable: c_uint = 0x00000000;
3250/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherspatial?language=objc)
3251pub const kIODisplayDitherSpatial: c_uint = 0x00000001;
3252/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaydithertemporal?language=objc)
3253pub const kIODisplayDitherTemporal: c_uint = 0x00000002;
3254/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherframeratecontrol?language=objc)
3255pub const kIODisplayDitherFrameRateControl: c_uint = 0x00000004;
3256/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherdefault?language=objc)
3257pub const kIODisplayDitherDefault: c_uint = 0x00000080;
3258/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherall?language=objc)
3259pub const kIODisplayDitherAll: c_uint = 0x000000FF;
3260/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherrgbshift?language=objc)
3261pub const kIODisplayDitherRGBShift: c_uint = 0;
3262/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherycbcr444shift?language=objc)
3263pub const kIODisplayDitherYCbCr444Shift: c_uint = 8;
3264/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayditherycbcr422shift?language=objc)
3265pub const kIODisplayDitherYCbCr422Shift: c_uint = 16;
3266
3267/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayneedsceaunderscan?language=objc)
3268pub const kIODisplayNeedsCEAUnderscan: c_uint = 0x00000001;
3269
3270/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypowerstateoff?language=objc)
3271pub const kIODisplayPowerStateOff: c_uint = 0;
3272/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypowerstateminusable?language=objc)
3273pub const kIODisplayPowerStateMinUsable: c_uint = 1;
3274/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaypowerstateon?language=objc)
3275pub const kIODisplayPowerStateOn: c_uint = 2;
3276
3277/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbserverconnecttype?language=objc)
3278pub const kIOFBServerConnectType: c_uint = 0;
3279/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbsharedconnecttype?language=objc)
3280pub const kIOFBSharedConnectType: c_uint = 1;
3281/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiogdiagnosegtracetype?language=objc)
3282pub const kIOGDiagnoseGTraceType: c_uint = 11452;
3283/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiogdiagnoseconnecttype?language=objc)
3284pub const kIOGDiagnoseConnectType: c_uint = 38744;
3285/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayassertionconnecttype?language=objc)
3286pub const kIODisplayAssertionConnectType: c_uint = 61074;
3287
3288/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbuserrequestprobe?language=objc)
3289pub const kIOFBUserRequestProbe: c_uint = 0x00000001;
3290
3291/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iogpoint?language=objc)
3292#[repr(C)]
3293#[derive(Clone, Copy, Debug, PartialEq)]
3294pub struct IOGPoint {
3295    pub x: i16,
3296    pub y: i16,
3297}
3298
3299#[cfg(feature = "objc2")]
3300unsafe impl Encode for IOGPoint {
3301    const ENCODING: Encoding = Encoding::Struct("IOGPoint", &[<i16>::ENCODING, <i16>::ENCODING]);
3302}
3303
3304#[cfg(feature = "objc2")]
3305unsafe impl RefEncode for IOGPoint {
3306    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3307}
3308
3309/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iogsize?language=objc)
3310#[repr(C)]
3311#[derive(Clone, Copy, Debug, PartialEq)]
3312pub struct IOGSize {
3313    pub width: i16,
3314    pub height: i16,
3315}
3316
3317#[cfg(feature = "objc2")]
3318unsafe impl Encode for IOGSize {
3319    const ENCODING: Encoding = Encoding::Struct("IOGSize", &[<i16>::ENCODING, <i16>::ENCODING]);
3320}
3321
3322#[cfg(feature = "objc2")]
3323unsafe impl RefEncode for IOGSize {
3324    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3325}
3326
3327/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iogbounds?language=objc)
3328#[repr(C)]
3329#[derive(Clone, Copy, Debug, PartialEq)]
3330pub struct IOGBounds {
3331    pub minx: i16,
3332    pub maxx: i16,
3333    pub miny: i16,
3334    pub maxy: i16,
3335}
3336
3337#[cfg(feature = "objc2")]
3338unsafe impl Encode for IOGBounds {
3339    const ENCODING: Encoding = Encoding::Struct(
3340        "IOGBounds",
3341        &[
3342            <i16>::ENCODING,
3343            <i16>::ENCODING,
3344            <i16>::ENCODING,
3345            <i16>::ENCODING,
3346        ],
3347    );
3348}
3349
3350#[cfg(feature = "objc2")]
3351unsafe impl RefEncode for IOGBounds {
3352    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3353}
3354
3355/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ktransparentencoding?language=objc)
3356pub const kTransparentEncoding: c_uint = 0;
3357/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kinvertingencoding?language=objc)
3358pub const kInvertingEncoding: c_uint = 1;
3359
3360/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ktransparentencodingshift?language=objc)
3361pub const kTransparentEncodingShift: c_uint = kTransparentEncoding << 1;
3362/// [Apple's documentation](https://developer.apple.com/documentation/iokit/ktransparentencodedpixel?language=objc)
3363pub const kTransparentEncodedPixel: c_uint = 0x01 << kTransparentEncodingShift;
3364/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kinvertingencodingshift?language=objc)
3365pub const kInvertingEncodingShift: c_uint = kInvertingEncoding << 1;
3366/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kinvertingencodedpixel?language=objc)
3367pub const kInvertingEncodedPixel: c_uint = 0x01 << kInvertingEncodingShift;
3368
3369/// [Apple's documentation](https://developer.apple.com/documentation/iokit/khardwarecursordescriptormajorversion?language=objc)
3370pub const kHardwareCursorDescriptorMajorVersion: c_uint = 0x0001;
3371/// [Apple's documentation](https://developer.apple.com/documentation/iokit/khardwarecursordescriptorminorversion?language=objc)
3372pub const kHardwareCursorDescriptorMinorVersion: c_uint = 0x0000;
3373
3374/// A structure defining the format of a hardware cursor.
3375///
3376/// This structure is used by IOFramebuffer to define the format of a hardware cursor.
3377/// Field: majorVersion Set to kHardwareCursorDescriptorMajorVersion.
3378/// Field: minorVersion Set to kHardwareCursorDescriptorMinorVersion.
3379/// Field: height Maximum size of the cursor.
3380/// Field: width Maximum size of the cursor.
3381/// Field: bitDepth Number bits per pixel, or a QD/QT pixel type, for example kIO8IndexedPixelFormat, kIO32ARGBPixelFormat.
3382/// Field: maskBitDepth Unused.
3383/// Field: numColors Number of colors for indexed pixel types.
3384/// Field: colorEncodings An array pointer specifying the pixel values corresponding to the indices into the color table, for indexed pixel types.
3385/// Field: flags None defined, set to zero.
3386/// Field: supportedSpecialEncodings Mask of supported special pixel values, eg. kTransparentEncodedPixel, kInvertingEncodedPixel.
3387/// Field: specialEncodings Array of pixel values for each supported special encoding.
3388///
3389/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iohardwarecursordescriptor?language=objc)
3390#[repr(C)]
3391#[derive(Clone, Copy, Debug, PartialEq)]
3392pub struct IOHardwareCursorDescriptor {
3393    pub majorVersion: u16,
3394    pub minorVersion: u16,
3395    pub height: u32,
3396    pub width: u32,
3397    pub bitDepth: u32,
3398    pub maskBitDepth: u32,
3399    pub numColors: u32,
3400    pub colorEncodings: *mut u32,
3401    pub flags: u32,
3402    pub supportedSpecialEncodings: u32,
3403    pub specialEncodings: [u32; 16],
3404}
3405
3406#[cfg(feature = "objc2")]
3407unsafe impl Encode for IOHardwareCursorDescriptor {
3408    const ENCODING: Encoding = Encoding::Struct(
3409        "IOHardwareCursorDescriptor",
3410        &[
3411            <u16>::ENCODING,
3412            <u16>::ENCODING,
3413            <u32>::ENCODING,
3414            <u32>::ENCODING,
3415            <u32>::ENCODING,
3416            <u32>::ENCODING,
3417            <u32>::ENCODING,
3418            <*mut u32>::ENCODING,
3419            <u32>::ENCODING,
3420            <u32>::ENCODING,
3421            <[u32; 16]>::ENCODING,
3422        ],
3423    );
3424}
3425
3426#[cfg(feature = "objc2")]
3427unsafe impl RefEncode for IOHardwareCursorDescriptor {
3428    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3429}
3430
3431/// [Apple's documentation](https://developer.apple.com/documentation/iokit/khardwarecursorinfomajorversion?language=objc)
3432pub const kHardwareCursorInfoMajorVersion: c_uint = 0x0001;
3433/// [Apple's documentation](https://developer.apple.com/documentation/iokit/khardwarecursorinfominorversion?language=objc)
3434pub const kHardwareCursorInfoMinorVersion: c_uint = 0x0000;
3435
3436/// A structure defining the converted data of a hardware cursor.
3437///
3438/// This structure is used by IOFramebuffer to return the data of a hardware cursor by convertCursorImage() after conversion based on the IOHardwareCursorDescriptor passed to that routine.
3439/// Field: majorVersion Set to kHardwareCursorInfoMajorVersion.
3440/// Field: minorVersion Set to kHardwareCursorInfoMinorVersion.
3441/// Field: cursorHeight The actual size of the cursor is returned.
3442/// Field: cursorWidth The actual size of the cursor is returned.
3443/// Field: colorMap Pointer to array of IOColorEntry structures, with the number of elements set by the numColors field of the IOHardwareCursorDescriptor. Zero should be passed for direct pixel formats.
3444/// Field: hardwareCursorData Buffer to receive the converted cursor data.
3445/// Field: cursorHotSpotX Cursor's hotspot.
3446/// Field: cursorHotSpotY Cursor's hotspot.
3447/// Field: reserved Reserved, set to zero.
3448///
3449/// See also [Apple's documentation](https://developer.apple.com/documentation/iokit/iohardwarecursorinfo?language=objc)
3450#[repr(C)]
3451#[derive(Clone, Copy, Debug, PartialEq)]
3452pub struct IOHardwareCursorInfo {
3453    pub majorVersion: u16,
3454    pub minorVersion: u16,
3455    pub cursorHeight: u32,
3456    pub cursorWidth: u32,
3457    pub colorMap: *mut IOColorEntry,
3458    pub hardwareCursorData: *mut u8,
3459    pub cursorHotSpotX: u16,
3460    pub cursorHotSpotY: u16,
3461    pub reserved: [u32; 5],
3462}
3463
3464#[cfg(feature = "objc2")]
3465unsafe impl Encode for IOHardwareCursorInfo {
3466    const ENCODING: Encoding = Encoding::Struct(
3467        "IOHardwareCursorInfo",
3468        &[
3469            <u16>::ENCODING,
3470            <u16>::ENCODING,
3471            <u32>::ENCODING,
3472            <u32>::ENCODING,
3473            <*mut IOColorEntry>::ENCODING,
3474            <*mut u8>::ENCODING,
3475            <u16>::ENCODING,
3476            <u16>::ENCODING,
3477            <[u32; 5]>::ENCODING,
3478        ],
3479    );
3480}
3481
3482#[cfg(feature = "objc2")]
3483unsafe impl RefEncode for IOHardwareCursorInfo {
3484    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3485}
3486
3487/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbvblinterrupttype?language=objc)
3488pub const kIOFBVBLInterruptType: c_uint = 0x76626c20;
3489/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhblinterrupttype?language=objc)
3490pub const kIOFBHBLInterruptType: c_uint = 0x68626c20;
3491/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbframeinterrupttype?language=objc)
3492pub const kIOFBFrameInterruptType: c_uint = 0x6672616d;
3493/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbconnectinterrupttype?language=objc)
3494pub const kIOFBConnectInterruptType: c_uint = 0x64636920;
3495/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbchangedinterrupttype?language=objc)
3496pub const kIOFBChangedInterruptType: c_uint = 0x63686e67;
3497/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbofflineinterrupttype?language=objc)
3498pub const kIOFBOfflineInterruptType: c_uint = 0x72656d76;
3499/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbonlineinterrupttype?language=objc)
3500pub const kIOFBOnlineInterruptType: c_uint = 0x61646420;
3501/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplayportinterrupttype?language=objc)
3502pub const kIOFBDisplayPortInterruptType: c_uint = 0x64706972;
3503/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbdisplayportlinkchangeinterrupttype?language=objc)
3504pub const kIOFBDisplayPortLinkChangeInterruptType: c_uint = 0x64706c6b;
3505/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmccsinterrupttype?language=objc)
3506pub const kIOFBMCCSInterruptType: c_uint = 0x6d636373;
3507/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbwakeinterrupttype?language=objc)
3508pub const kIOFBWakeInterruptType: c_uint = 0x7677616b;
3509
3510/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidinvalid?language=objc)
3511pub const kIOTimingIDInvalid: c_uint = 0;
3512/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_fixedratelcd?language=objc)
3513pub const kIOTimingIDApple_FixedRateLCD: c_uint = 42;
3514/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_512x384_60hz?language=objc)
3515pub const kIOTimingIDApple_512x384_60hz: c_uint = 130;
3516/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_560x384_60hz?language=objc)
3517pub const kIOTimingIDApple_560x384_60hz: c_uint = 135;
3518/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_640x480_67hz?language=objc)
3519pub const kIOTimingIDApple_640x480_67hz: c_uint = 140;
3520/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_640x400_67hz?language=objc)
3521pub const kIOTimingIDApple_640x400_67hz: c_uint = 145;
3522/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_640x480_60hz?language=objc)
3523pub const kIOTimingIDVESA_640x480_60hz: c_uint = 150;
3524/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_640x480_72hz?language=objc)
3525pub const kIOTimingIDVESA_640x480_72hz: c_uint = 152;
3526/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_640x480_75hz?language=objc)
3527pub const kIOTimingIDVESA_640x480_75hz: c_uint = 154;
3528/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_640x480_85hz?language=objc)
3529pub const kIOTimingIDVESA_640x480_85hz: c_uint = 158;
3530/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidgtf_640x480_120hz?language=objc)
3531pub const kIOTimingIDGTF_640x480_120hz: c_uint = 159;
3532/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_640x870_75hz?language=objc)
3533pub const kIOTimingIDApple_640x870_75hz: c_uint = 160;
3534/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_640x818_75hz?language=objc)
3535pub const kIOTimingIDApple_640x818_75hz: c_uint = 165;
3536/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_832x624_75hz?language=objc)
3537pub const kIOTimingIDApple_832x624_75hz: c_uint = 170;
3538/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_800x600_56hz?language=objc)
3539pub const kIOTimingIDVESA_800x600_56hz: c_uint = 180;
3540/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_800x600_60hz?language=objc)
3541pub const kIOTimingIDVESA_800x600_60hz: c_uint = 182;
3542/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_800x600_72hz?language=objc)
3543pub const kIOTimingIDVESA_800x600_72hz: c_uint = 184;
3544/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_800x600_75hz?language=objc)
3545pub const kIOTimingIDVESA_800x600_75hz: c_uint = 186;
3546/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_800x600_85hz?language=objc)
3547pub const kIOTimingIDVESA_800x600_85hz: c_uint = 188;
3548/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1024x768_60hz?language=objc)
3549pub const kIOTimingIDVESA_1024x768_60hz: c_uint = 190;
3550/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1024x768_70hz?language=objc)
3551pub const kIOTimingIDVESA_1024x768_70hz: c_uint = 200;
3552/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1024x768_75hz?language=objc)
3553pub const kIOTimingIDVESA_1024x768_75hz: c_uint = 204;
3554/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1024x768_85hz?language=objc)
3555pub const kIOTimingIDVESA_1024x768_85hz: c_uint = 208;
3556/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_1024x768_75hz?language=objc)
3557pub const kIOTimingIDApple_1024x768_75hz: c_uint = 210;
3558/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1152x864_75hz?language=objc)
3559pub const kIOTimingIDVESA_1152x864_75hz: c_uint = 215;
3560/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_1152x870_75hz?language=objc)
3561pub const kIOTimingIDApple_1152x870_75hz: c_uint = 220;
3562/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplentsc_st?language=objc)
3563pub const kIOTimingIDAppleNTSC_ST: c_uint = 230;
3564/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplentsc_ff?language=objc)
3565pub const kIOTimingIDAppleNTSC_FF: c_uint = 232;
3566/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplentsc_stconv?language=objc)
3567pub const kIOTimingIDAppleNTSC_STconv: c_uint = 234;
3568/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplentsc_ffconv?language=objc)
3569pub const kIOTimingIDAppleNTSC_FFconv: c_uint = 236;
3570/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplepal_st?language=objc)
3571pub const kIOTimingIDApplePAL_ST: c_uint = 238;
3572/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplepal_ff?language=objc)
3573pub const kIOTimingIDApplePAL_FF: c_uint = 240;
3574/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplepal_stconv?language=objc)
3575pub const kIOTimingIDApplePAL_STconv: c_uint = 242;
3576/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapplepal_ffconv?language=objc)
3577pub const kIOTimingIDApplePAL_FFconv: c_uint = 244;
3578/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x960_75hz?language=objc)
3579pub const kIOTimingIDVESA_1280x960_75hz: c_uint = 250;
3580/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x960_60hz?language=objc)
3581pub const kIOTimingIDVESA_1280x960_60hz: c_uint = 252;
3582/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x960_85hz?language=objc)
3583pub const kIOTimingIDVESA_1280x960_85hz: c_uint = 254;
3584/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x1024_60hz?language=objc)
3585pub const kIOTimingIDVESA_1280x1024_60hz: c_uint = 260;
3586/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x1024_75hz?language=objc)
3587pub const kIOTimingIDVESA_1280x1024_75hz: c_uint = 262;
3588/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1280x1024_85hz?language=objc)
3589pub const kIOTimingIDVESA_1280x1024_85hz: c_uint = 268;
3590/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_60hz?language=objc)
3591pub const kIOTimingIDVESA_1600x1200_60hz: c_uint = 280;
3592/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_65hz?language=objc)
3593pub const kIOTimingIDVESA_1600x1200_65hz: c_uint = 282;
3594/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_70hz?language=objc)
3595pub const kIOTimingIDVESA_1600x1200_70hz: c_uint = 284;
3596/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_75hz?language=objc)
3597pub const kIOTimingIDVESA_1600x1200_75hz: c_uint = 286;
3598/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_80hz?language=objc)
3599pub const kIOTimingIDVESA_1600x1200_80hz: c_uint = 288;
3600/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1600x1200_85hz?language=objc)
3601pub const kIOTimingIDVESA_1600x1200_85hz: c_uint = 289;
3602/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1792x1344_60hz?language=objc)
3603pub const kIOTimingIDVESA_1792x1344_60hz: c_uint = 296;
3604/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1792x1344_75hz?language=objc)
3605pub const kIOTimingIDVESA_1792x1344_75hz: c_uint = 298;
3606/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1856x1392_60hz?language=objc)
3607pub const kIOTimingIDVESA_1856x1392_60hz: c_uint = 300;
3608/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1856x1392_75hz?language=objc)
3609pub const kIOTimingIDVESA_1856x1392_75hz: c_uint = 302;
3610/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1920x1440_60hz?language=objc)
3611pub const kIOTimingIDVESA_1920x1440_60hz: c_uint = 304;
3612/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1920x1440_75hz?language=objc)
3613pub const kIOTimingIDVESA_1920x1440_75hz: c_uint = 306;
3614/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidsmpte240m_60hz?language=objc)
3615pub const kIOTimingIDSMPTE240M_60hz: c_uint = 400;
3616/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidfilmrate_48hz?language=objc)
3617pub const kIOTimingIDFilmRate_48hz: c_uint = 410;
3618/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidsony_1600x1024_76hz?language=objc)
3619pub const kIOTimingIDSony_1600x1024_76hz: c_uint = 500;
3620/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidsony_1920x1080_60hz?language=objc)
3621pub const kIOTimingIDSony_1920x1080_60hz: c_uint = 510;
3622/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidsony_1920x1080_72hz?language=objc)
3623pub const kIOTimingIDSony_1920x1080_72hz: c_uint = 520;
3624/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidsony_1920x1200_76hz?language=objc)
3625pub const kIOTimingIDSony_1920x1200_76hz: c_uint = 540;
3626/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidapple_0x0_0hz_offline?language=objc)
3627pub const kIOTimingIDApple_0x0_0hz_Offline: c_uint = 550;
3628/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_848x480_60hz?language=objc)
3629pub const kIOTimingIDVESA_848x480_60hz: c_uint = 570;
3630/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiotimingidvesa_1360x768_60hz?language=objc)
3631pub const kIOTimingIDVESA_1360x768_60hz: c_uint = 590;
3632
3633/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohibernatepreviewactive?language=objc)
3634pub const kIOHibernatePreviewActive: c_uint = 0x00000001;
3635/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiohibernatepreviewupdates?language=objc)
3636pub const kIOHibernatePreviewUpdates: c_uint = 0x00000002;
3637
3638/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypeunknown?language=objc)
3639pub const kIOFBAVSignalTypeUnknown: c_uint = 0x00000000;
3640/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypevga?language=objc)
3641pub const kIOFBAVSignalTypeVGA: c_uint = 0x00000001;
3642/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypedvi?language=objc)
3643pub const kIOFBAVSignalTypeDVI: c_uint = 0x00000002;
3644/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypehdmi?language=objc)
3645pub const kIOFBAVSignalTypeHDMI: c_uint = 0x00000008;
3646/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbavsignaltypedp?language=objc)
3647pub const kIOFBAVSignalTypeDP: c_uint = 0x00000010;
3648
3649/// [Apple's documentation](https://developer.apple.com/documentation/iokit/iofbdplinkconfig?language=objc)
3650#[repr(C)]
3651#[derive(Clone, Copy, Debug, PartialEq)]
3652pub struct IOFBDPLinkConfig {
3653    pub version: u16,
3654    pub bitRate: u8,
3655    pub(crate) __reservedA: [u8; 1],
3656    pub t1Time: u16,
3657    pub t2Time: u16,
3658    pub t3Time: u16,
3659    pub idlePatterns: u8,
3660    pub laneCount: u8,
3661    pub voltage: u8,
3662    pub preEmphasis: u8,
3663    pub downspread: u8,
3664    pub scrambler: u8,
3665    pub maxBitRate: u8,
3666    pub maxLaneCount: u8,
3667    pub maxDownspread: u8,
3668    pub(crate) __reservedB: [u8; 9],
3669}
3670
3671#[cfg(feature = "objc2")]
3672unsafe impl Encode for IOFBDPLinkConfig {
3673    const ENCODING: Encoding = Encoding::Struct(
3674        "IOFBDPLinkConfig",
3675        &[
3676            <u16>::ENCODING,
3677            <u8>::ENCODING,
3678            <[u8; 1]>::ENCODING,
3679            <u16>::ENCODING,
3680            <u16>::ENCODING,
3681            <u16>::ENCODING,
3682            <u8>::ENCODING,
3683            <u8>::ENCODING,
3684            <u8>::ENCODING,
3685            <u8>::ENCODING,
3686            <u8>::ENCODING,
3687            <u8>::ENCODING,
3688            <u8>::ENCODING,
3689            <u8>::ENCODING,
3690            <u8>::ENCODING,
3691            <[u8; 9]>::ENCODING,
3692        ],
3693    );
3694}
3695
3696#[cfg(feature = "objc2")]
3697unsafe impl RefEncode for IOFBDPLinkConfig {
3698    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
3699}
3700
3701/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbitraterbr?language=objc)
3702pub const kIOFBBitRateRBR: c_uint = 0x06;
3703/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbitratehbr?language=objc)
3704pub const kIOFBBitRateHBR: c_uint = 0x0A;
3705/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbbitratehbr2?language=objc)
3706pub const kIOFBBitRateHBR2: c_uint = 0x14;
3707
3708/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkvoltagelevel0?language=objc)
3709pub const kIOFBLinkVoltageLevel0: c_uint = 0x00;
3710/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkvoltagelevel1?language=objc)
3711pub const kIOFBLinkVoltageLevel1: c_uint = 0x01;
3712/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkvoltagelevel2?language=objc)
3713pub const kIOFBLinkVoltageLevel2: c_uint = 0x02;
3714/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkvoltagelevel3?language=objc)
3715pub const kIOFBLinkVoltageLevel3: c_uint = 0x03;
3716
3717/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkpreemphasislevel0?language=objc)
3718pub const kIOFBLinkPreEmphasisLevel0: c_uint = 0x00;
3719/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkpreemphasislevel1?language=objc)
3720pub const kIOFBLinkPreEmphasisLevel1: c_uint = 0x01;
3721/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkpreemphasislevel2?language=objc)
3722pub const kIOFBLinkPreEmphasisLevel2: c_uint = 0x02;
3723/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkpreemphasislevel3?language=objc)
3724pub const kIOFBLinkPreEmphasisLevel3: c_uint = 0x03;
3725
3726/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkdownspreadnone?language=objc)
3727pub const kIOFBLinkDownspreadNone: c_uint = 0x0;
3728/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkdownspreadmax?language=objc)
3729pub const kIOFBLinkDownspreadMax: c_uint = 0x1;
3730
3731/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkscramblernormal?language=objc)
3732pub const kIOFBLinkScramblerNormal: c_uint = 0x0;
3733/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofblinkscrambleralternate?language=objc)
3734pub const kIOFBLinkScramblerAlternate: c_uint = 0x1;
3735
3736/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayvendoridunknown?language=objc)
3737pub const kDisplayVendorIDUnknown: c_uint = 0x756e6b6e;
3738/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplayproductidgeneric?language=objc)
3739pub const kDisplayProductIDGeneric: c_uint = 0x717;
3740
3741/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayoutundefined?language=objc)
3742pub const kDisplaySubPixelLayoutUndefined: c_uint = 0x00000000;
3743/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayoutrgb?language=objc)
3744pub const kDisplaySubPixelLayoutRGB: c_uint = 0x00000001;
3745/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayoutbgr?language=objc)
3746pub const kDisplaySubPixelLayoutBGR: c_uint = 0x00000002;
3747/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayoutquadgbl?language=objc)
3748pub const kDisplaySubPixelLayoutQuadGBL: c_uint = 0x00000003;
3749/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixellayoutquadgbr?language=objc)
3750pub const kDisplaySubPixelLayoutQuadGBR: c_uint = 0x00000004;
3751/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfigurationundefined?language=objc)
3752pub const kDisplaySubPixelConfigurationUndefined: c_uint = 0x00000000;
3753/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfigurationdelta?language=objc)
3754pub const kDisplaySubPixelConfigurationDelta: c_uint = 0x00000001;
3755/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfigurationstripe?language=objc)
3756pub const kDisplaySubPixelConfigurationStripe: c_uint = 0x00000002;
3757/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfigurationstripeoffset?language=objc)
3758pub const kDisplaySubPixelConfigurationStripeOffset: c_uint = 0x00000003;
3759/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelconfigurationquad?language=objc)
3760pub const kDisplaySubPixelConfigurationQuad: c_uint = 0x00000004;
3761/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshapeundefined?language=objc)
3762pub const kDisplaySubPixelShapeUndefined: c_uint = 0x00000000;
3763/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshaperound?language=objc)
3764pub const kDisplaySubPixelShapeRound: c_uint = 0x00000001;
3765/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshapesquare?language=objc)
3766pub const kDisplaySubPixelShapeSquare: c_uint = 0x00000002;
3767/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshaperectangular?language=objc)
3768pub const kDisplaySubPixelShapeRectangular: c_uint = 0x00000003;
3769/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshapeoval?language=objc)
3770pub const kDisplaySubPixelShapeOval: c_uint = 0x00000004;
3771/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kdisplaysubpixelshapeelliptical?language=objc)
3772pub const kDisplaySubPixelShapeElliptical: c_uint = 0x00000005;
3773
3774/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbnumcursorframes?language=objc)
3775pub const kIOFBNumCursorFrames: c_uint = 4;
3776/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbnumcursorframesshift?language=objc)
3777pub const kIOFBNumCursorFramesShift: c_uint = 2;
3778/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmaxcursordepth?language=objc)
3779pub const kIOFBMaxCursorDepth: c_uint = 32;
3780/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmaxcursorwidth?language=objc)
3781pub const kIOFBMaxCursorWidth: c_uint = 256;
3782/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbmaxcursorframes?language=objc)
3783pub const kIOFBMaxCursorFrames: c_uint = 32;
3784
3785/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcursorimagenew?language=objc)
3786pub const kIOFBCursorImageNew: c_uint = 0x01;
3787/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcursorhwcapable?language=objc)
3788pub const kIOFBCursorHWCapable: c_uint = 0x02;
3789
3790/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhardwarecursoractive?language=objc)
3791pub const kIOFBHardwareCursorActive: c_uint = 0x01;
3792/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbhardwarecursorinvram?language=objc)
3793pub const kIOFBHardwareCursorInVRAM: c_uint = 0x02;
3794
3795/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbshmemversionmask?language=objc)
3796pub const kIOFBShmemVersionMask: c_uint = 0x000000ff;
3797/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbtenptoneshmemversion?language=objc)
3798pub const kIOFBTenPtOneShmemVersion: c_uint = 2;
3799/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbtenpttwoshmemversion?language=objc)
3800pub const kIOFBTenPtTwoShmemVersion: c_uint = 3;
3801/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcurrentshmemversion?language=objc)
3802pub const kIOFBCurrentShmemVersion: c_uint = 2;
3803/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbshmemcursornumframesmask?language=objc)
3804pub const kIOFBShmemCursorNumFramesMask: c_uint = 0x00ff0000;
3805/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbshmemcursornumframesshift?language=objc)
3806pub const kIOFBShmemCursorNumFramesShift: c_uint = 16;
3807/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiofbcursormemory?language=objc)
3808pub const kIOFBCursorMemory: c_uint = 100;
3809
3810extern "C-unwind" {
3811    /// IOGraphicsLib
3812    /// IOGraphicsLib implements non-kernel task access to IOGraphics family object types - IOFramebuffer and IOAccelerator. These functions implement a graphics family specific API.
3813    /// <br>
3814    /// A connection to a graphics IOService must be made before these functions are called. A connection is made with the IOServiceOpen() function described in IOKitLib.h. An io_connect_t handle is returned by IOServiceOpen(), which must be passed to the IOGraphicsLib functions. The appropriate connection type from IOGraphicsTypes.h must be specified in the call to IOServiceOpen(). All of the IOFramebuffer functions can only be called from a kIOFBServerConnectType connection. Except as specified below, functions whose names begin with IOFB are IOFramebuffer functions. Functions whose names begin with IOPS are IOAccelerator functions and must be called from connections of type kIOFBEngineControllerConnectType or kIOFBEngineConnectType.
3815    /// <br>
3816    /// The functions in IOGraphicsLib use a number of special types. The display mode is the screen's resolution and refresh rate. The known display modes are referred to by an index of type IODisplayModeID. The display depth is the number of significant color bits used in representing each pixel. Depths are also referred to by an index value that is 0 for 8 bits, 1 for 15 bits, and 2 for 24 bits. A combination of display mode and depth may have a number of supported pixel formats. The pixel aperture is an index of supported pixel formats for a display mode and depth. This index is of type IOPixelAperture. All of these graphics specific types are defined in IOGraphicsTypes.h.
3817    #[cfg(feature = "libc")]
3818    pub fn IOFramebufferOpen(
3819        service: io_service_t,
3820        owning_task: task_port_t,
3821        r#type: c_uint,
3822        connect: *mut io_connect_t,
3823    ) -> libc::kern_return_t;
3824}
3825
3826/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaymatchinginfo?language=objc)
3827pub const kIODisplayMatchingInfo: c_uint = 0x00000100;
3828/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplayonlypreferredname?language=objc)
3829pub const kIODisplayOnlyPreferredName: c_uint = 0x00000200;
3830/// [Apple's documentation](https://developer.apple.com/documentation/iokit/kiodisplaynoproductname?language=objc)
3831pub const kIODisplayNoProductName: c_uint = 0x00000400;
3832
3833/// Create a CFDictionary with information about display hardware.
3834///
3835/// The CFDictionary created by this function contains information about the display hardware associated with a framebuffer. The keys for the dictionary are listed in IOGraphicsTypes.h.
3836///
3837/// Parameter `framebuffer`: The IOService handle for an IOFramebuffer service.
3838///
3839/// Parameter `options`: Use IODisplayDictionaryOptions to specify which keys to include.
3840///
3841/// Returns: The returned CFDictionary that should be released by the caller with CFRelease().
3842#[cfg(feature = "libc")]
3843#[inline]
3844pub unsafe extern "C-unwind" fn IODisplayCreateInfoDictionary(
3845    framebuffer: io_service_t,
3846    options: IOOptionBits,
3847) -> Option<CFRetained<CFDictionary>> {
3848    extern "C-unwind" {
3849        fn IODisplayCreateInfoDictionary(
3850            framebuffer: io_service_t,
3851            options: IOOptionBits,
3852        ) -> Option<NonNull<CFDictionary>>;
3853    }
3854    let ret = unsafe { IODisplayCreateInfoDictionary(framebuffer, options) };
3855    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
3856}
3857
3858extern "C-unwind" {
3859    /// Match two display information dictionaries to see if they are for the same display.
3860    ///
3861    /// By comparing two CFDictionaries returned from IODisplayCreateInfoDictionary(), this function determines if the displays are the same. The information compared is what is returned by calling IODisplayCreateInfoDictionary() with an option of kIODisplayMatchingInfo. This includes information such as the vendor, product, and serial number.
3862    ///
3863    /// Parameter `matching1`: A CFDictionary returned from IODisplayCreateInfoDictionary().
3864    ///
3865    /// Parameter `matching2`: Another CFDictionary returned from IODisplayCreateInfoDictionary().
3866    ///
3867    /// Parameter `options`: No options are currently defined.
3868    ///
3869    /// Returns: Returns FALSE if the two displays are not equivalent or TRUE if they are.
3870    pub fn IODisplayMatchDictionaries(
3871        matching1: Option<&CFDictionary>,
3872        matching2: Option<&CFDictionary>,
3873        options: IOOptionBits,
3874    ) -> i32;
3875}
3876
3877extern "C-unwind" {
3878    #[cfg(feature = "libc")]
3879    pub fn IODisplayForFramebuffer(
3880        framebuffer: io_service_t,
3881        options: IOOptionBits,
3882    ) -> io_service_t;
3883}
3884
3885extern "C-unwind" {
3886    #[cfg(feature = "libc")]
3887    pub fn IODisplaySetParameters(
3888        service: io_service_t,
3889        options: IOOptionBits,
3890        params: Option<&CFDictionary>,
3891    ) -> IOReturn;
3892}
3893
3894extern "C-unwind" {
3895    #[cfg(feature = "libc")]
3896    pub fn IODisplaySetFloatParameter(
3897        service: io_service_t,
3898        options: IOOptionBits,
3899        parameter_name: Option<&CFString>,
3900        value: c_float,
3901    ) -> IOReturn;
3902}
3903
3904extern "C-unwind" {
3905    #[cfg(feature = "libc")]
3906    pub fn IODisplaySetIntegerParameter(
3907        service: io_service_t,
3908        options: IOOptionBits,
3909        parameter_name: Option<&CFString>,
3910        value: i32,
3911    ) -> IOReturn;
3912}
3913
3914extern "C-unwind" {
3915    #[cfg(feature = "libc")]
3916    pub fn IODisplayCopyParameters(
3917        service: io_service_t,
3918        options: IOOptionBits,
3919        params: *mut *const CFDictionary,
3920    ) -> IOReturn;
3921}
3922
3923extern "C-unwind" {
3924    #[cfg(feature = "libc")]
3925    pub fn IODisplayCopyFloatParameters(
3926        service: io_service_t,
3927        options: IOOptionBits,
3928        params: *mut *const CFDictionary,
3929    ) -> IOReturn;
3930}
3931
3932extern "C-unwind" {
3933    #[cfg(feature = "libc")]
3934    pub fn IODisplayGetFloatParameter(
3935        service: io_service_t,
3936        options: IOOptionBits,
3937        parameter_name: Option<&CFString>,
3938        value: *mut c_float,
3939    ) -> IOReturn;
3940}
3941
3942extern "C-unwind" {
3943    #[cfg(feature = "libc")]
3944    pub fn IODisplayGetIntegerRangeParameter(
3945        service: io_service_t,
3946        options: IOOptionBits,
3947        parameter_name: Option<&CFString>,
3948        value: *mut i32,
3949        min: *mut i32,
3950        max: *mut i32,
3951    ) -> IOReturn;
3952}
3953
3954extern "C-unwind" {
3955    #[cfg(feature = "libc")]
3956    pub fn IODisplayCommitParameters(service: io_service_t, options: IOOptionBits) -> IOReturn;
3957}