libretro_rs/
sys.rs

1/* automatically generated by rust-bindgen 0.59.1 */
2
3#![allow(dead_code, non_camel_case_types, non_upper_case_globals)]
4
5use libc::size_t;
6
7pub const RETRO_API_VERSION: u32 = 1;
8pub const RETRO_DEVICE_TYPE_SHIFT: u32 = 8;
9pub const RETRO_DEVICE_MASK: u32 = 255;
10pub const RETRO_DEVICE_NONE: u32 = 0;
11pub const RETRO_DEVICE_JOYPAD: u32 = 1;
12pub const RETRO_DEVICE_MOUSE: u32 = 2;
13pub const RETRO_DEVICE_KEYBOARD: u32 = 3;
14pub const RETRO_DEVICE_LIGHTGUN: u32 = 4;
15pub const RETRO_DEVICE_ANALOG: u32 = 5;
16pub const RETRO_DEVICE_POINTER: u32 = 6;
17pub const RETRO_DEVICE_ID_JOYPAD_B: u32 = 0;
18pub const RETRO_DEVICE_ID_JOYPAD_Y: u32 = 1;
19pub const RETRO_DEVICE_ID_JOYPAD_SELECT: u32 = 2;
20pub const RETRO_DEVICE_ID_JOYPAD_START: u32 = 3;
21pub const RETRO_DEVICE_ID_JOYPAD_UP: u32 = 4;
22pub const RETRO_DEVICE_ID_JOYPAD_DOWN: u32 = 5;
23pub const RETRO_DEVICE_ID_JOYPAD_LEFT: u32 = 6;
24pub const RETRO_DEVICE_ID_JOYPAD_RIGHT: u32 = 7;
25pub const RETRO_DEVICE_ID_JOYPAD_A: u32 = 8;
26pub const RETRO_DEVICE_ID_JOYPAD_X: u32 = 9;
27pub const RETRO_DEVICE_ID_JOYPAD_L: u32 = 10;
28pub const RETRO_DEVICE_ID_JOYPAD_R: u32 = 11;
29pub const RETRO_DEVICE_ID_JOYPAD_L2: u32 = 12;
30pub const RETRO_DEVICE_ID_JOYPAD_R2: u32 = 13;
31pub const RETRO_DEVICE_ID_JOYPAD_L3: u32 = 14;
32pub const RETRO_DEVICE_ID_JOYPAD_R3: u32 = 15;
33pub const RETRO_DEVICE_ID_JOYPAD_MASK: u32 = 256;
34pub const RETRO_DEVICE_INDEX_ANALOG_LEFT: u32 = 0;
35pub const RETRO_DEVICE_INDEX_ANALOG_RIGHT: u32 = 1;
36pub const RETRO_DEVICE_INDEX_ANALOG_BUTTON: u32 = 2;
37pub const RETRO_DEVICE_ID_ANALOG_X: u32 = 0;
38pub const RETRO_DEVICE_ID_ANALOG_Y: u32 = 1;
39pub const RETRO_DEVICE_ID_MOUSE_X: u32 = 0;
40pub const RETRO_DEVICE_ID_MOUSE_Y: u32 = 1;
41pub const RETRO_DEVICE_ID_MOUSE_LEFT: u32 = 2;
42pub const RETRO_DEVICE_ID_MOUSE_RIGHT: u32 = 3;
43pub const RETRO_DEVICE_ID_MOUSE_WHEELUP: u32 = 4;
44pub const RETRO_DEVICE_ID_MOUSE_WHEELDOWN: u32 = 5;
45pub const RETRO_DEVICE_ID_MOUSE_MIDDLE: u32 = 6;
46pub const RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP: u32 = 7;
47pub const RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN: u32 = 8;
48pub const RETRO_DEVICE_ID_MOUSE_BUTTON_4: u32 = 9;
49pub const RETRO_DEVICE_ID_MOUSE_BUTTON_5: u32 = 10;
50pub const RETRO_DEVICE_ID_LIGHTGUN_SCREEN_X: u32 = 13;
51pub const RETRO_DEVICE_ID_LIGHTGUN_SCREEN_Y: u32 = 14;
52pub const RETRO_DEVICE_ID_LIGHTGUN_IS_OFFSCREEN: u32 = 15;
53pub const RETRO_DEVICE_ID_LIGHTGUN_TRIGGER: u32 = 2;
54pub const RETRO_DEVICE_ID_LIGHTGUN_RELOAD: u32 = 16;
55pub const RETRO_DEVICE_ID_LIGHTGUN_AUX_A: u32 = 3;
56pub const RETRO_DEVICE_ID_LIGHTGUN_AUX_B: u32 = 4;
57pub const RETRO_DEVICE_ID_LIGHTGUN_START: u32 = 6;
58pub const RETRO_DEVICE_ID_LIGHTGUN_SELECT: u32 = 7;
59pub const RETRO_DEVICE_ID_LIGHTGUN_AUX_C: u32 = 8;
60pub const RETRO_DEVICE_ID_LIGHTGUN_DPAD_UP: u32 = 9;
61pub const RETRO_DEVICE_ID_LIGHTGUN_DPAD_DOWN: u32 = 10;
62pub const RETRO_DEVICE_ID_LIGHTGUN_DPAD_LEFT: u32 = 11;
63pub const RETRO_DEVICE_ID_LIGHTGUN_DPAD_RIGHT: u32 = 12;
64pub const RETRO_DEVICE_ID_LIGHTGUN_X: u32 = 0;
65pub const RETRO_DEVICE_ID_LIGHTGUN_Y: u32 = 1;
66pub const RETRO_DEVICE_ID_LIGHTGUN_CURSOR: u32 = 3;
67pub const RETRO_DEVICE_ID_LIGHTGUN_TURBO: u32 = 4;
68pub const RETRO_DEVICE_ID_LIGHTGUN_PAUSE: u32 = 5;
69pub const RETRO_DEVICE_ID_POINTER_X: u32 = 0;
70pub const RETRO_DEVICE_ID_POINTER_Y: u32 = 1;
71pub const RETRO_DEVICE_ID_POINTER_PRESSED: u32 = 2;
72pub const RETRO_DEVICE_ID_POINTER_COUNT: u32 = 3;
73pub const RETRO_REGION_NTSC: u32 = 0;
74pub const RETRO_REGION_PAL: u32 = 1;
75pub const RETRO_MEMORY_MASK: u32 = 255;
76pub const RETRO_MEMORY_SAVE_RAM: u32 = 0;
77pub const RETRO_MEMORY_RTC: u32 = 1;
78pub const RETRO_MEMORY_SYSTEM_RAM: u32 = 2;
79pub const RETRO_MEMORY_VIDEO_RAM: u32 = 3;
80pub const RETRO_ENVIRONMENT_EXPERIMENTAL: u32 = 65536;
81pub const RETRO_ENVIRONMENT_PRIVATE: u32 = 131072;
82pub const RETRO_ENVIRONMENT_SET_ROTATION: u32 = 1;
83pub const RETRO_ENVIRONMENT_GET_OVERSCAN: u32 = 2;
84pub const RETRO_ENVIRONMENT_GET_CAN_DUPE: u32 = 3;
85pub const RETRO_ENVIRONMENT_SET_MESSAGE: u32 = 6;
86pub const RETRO_ENVIRONMENT_SHUTDOWN: u32 = 7;
87pub const RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL: u32 = 8;
88pub const RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY: u32 = 9;
89pub const RETRO_ENVIRONMENT_SET_PIXEL_FORMAT: u32 = 10;
90pub const RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS: u32 = 11;
91pub const RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK: u32 = 12;
92pub const RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE: u32 = 13;
93pub const RETRO_ENVIRONMENT_SET_HW_RENDER: u32 = 14;
94pub const RETRO_ENVIRONMENT_GET_VARIABLE: u32 = 15;
95pub const RETRO_ENVIRONMENT_SET_VARIABLES: u32 = 16;
96pub const RETRO_ENVIRONMENT_GET_VARIABLE_UPDATE: u32 = 17;
97pub const RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME: u32 = 18;
98pub const RETRO_ENVIRONMENT_GET_LIBRETRO_PATH: u32 = 19;
99pub const RETRO_ENVIRONMENT_SET_FRAME_TIME_CALLBACK: u32 = 21;
100pub const RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK: u32 = 22;
101pub const RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE: u32 = 23;
102pub const RETRO_ENVIRONMENT_GET_INPUT_DEVICE_CAPABILITIES: u32 = 24;
103pub const RETRO_ENVIRONMENT_GET_SENSOR_INTERFACE: u32 = 65561;
104pub const RETRO_ENVIRONMENT_GET_CAMERA_INTERFACE: u32 = 65562;
105pub const RETRO_ENVIRONMENT_GET_LOG_INTERFACE: u32 = 27;
106pub const RETRO_ENVIRONMENT_GET_PERF_INTERFACE: u32 = 28;
107pub const RETRO_ENVIRONMENT_GET_LOCATION_INTERFACE: u32 = 29;
108pub const RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY: u32 = 30;
109pub const RETRO_ENVIRONMENT_GET_CORE_ASSETS_DIRECTORY: u32 = 30;
110pub const RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY: u32 = 31;
111pub const RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO: u32 = 32;
112pub const RETRO_ENVIRONMENT_SET_PROC_ADDRESS_CALLBACK: u32 = 33;
113pub const RETRO_ENVIRONMENT_SET_SUBSYSTEM_INFO: u32 = 34;
114pub const RETRO_ENVIRONMENT_SET_CONTROLLER_INFO: u32 = 35;
115pub const RETRO_ENVIRONMENT_SET_MEMORY_MAPS: u32 = 65572;
116pub const RETRO_ENVIRONMENT_SET_GEOMETRY: u32 = 37;
117pub const RETRO_ENVIRONMENT_GET_USERNAME: u32 = 38;
118pub const RETRO_ENVIRONMENT_GET_LANGUAGE: u32 = 39;
119pub const RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER: u32 = 65576;
120pub const RETRO_ENVIRONMENT_GET_HW_RENDER_INTERFACE: u32 = 65577;
121pub const RETRO_ENVIRONMENT_SET_SUPPORT_ACHIEVEMENTS: u32 = 65578;
122pub const RETRO_ENVIRONMENT_SET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE: u32 = 65579;
123pub const RETRO_ENVIRONMENT_SET_SERIALIZATION_QUIRKS: u32 = 44;
124pub const RETRO_ENVIRONMENT_SET_HW_SHARED_CONTEXT: u32 = 65580;
125pub const RETRO_ENVIRONMENT_GET_VFS_INTERFACE: u32 = 65581;
126pub const RETRO_ENVIRONMENT_GET_LED_INTERFACE: u32 = 65582;
127pub const RETRO_ENVIRONMENT_GET_AUDIO_VIDEO_ENABLE: u32 = 65583;
128pub const RETRO_ENVIRONMENT_GET_MIDI_INTERFACE: u32 = 65584;
129pub const RETRO_ENVIRONMENT_GET_FASTFORWARDING: u32 = 65585;
130pub const RETRO_ENVIRONMENT_GET_TARGET_REFRESH_RATE: u32 = 65586;
131pub const RETRO_ENVIRONMENT_GET_INPUT_BITMASKS: u32 = 65587;
132pub const RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION: u32 = 52;
133pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS: u32 = 53;
134pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL: u32 = 54;
135pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY: u32 = 55;
136pub const RETRO_ENVIRONMENT_GET_PREFERRED_HW_RENDER: u32 = 56;
137pub const RETRO_ENVIRONMENT_GET_DISK_CONTROL_INTERFACE_VERSION: u32 = 57;
138pub const RETRO_ENVIRONMENT_SET_DISK_CONTROL_EXT_INTERFACE: u32 = 58;
139pub const RETRO_ENVIRONMENT_GET_MESSAGE_INTERFACE_VERSION: u32 = 59;
140pub const RETRO_ENVIRONMENT_SET_MESSAGE_EXT: u32 = 60;
141pub const RETRO_ENVIRONMENT_GET_INPUT_MAX_USERS: u32 = 61;
142pub const RETRO_ENVIRONMENT_SET_AUDIO_BUFFER_STATUS_CALLBACK: u32 = 62;
143pub const RETRO_ENVIRONMENT_SET_MINIMUM_AUDIO_LATENCY: u32 = 63;
144pub const RETRO_ENVIRONMENT_SET_FASTFORWARDING_OVERRIDE: u32 = 64;
145pub const RETRO_ENVIRONMENT_SET_CONTENT_INFO_OVERRIDE: u32 = 65;
146pub const RETRO_ENVIRONMENT_GET_GAME_INFO_EXT: u32 = 66;
147pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2: u32 = 67;
148pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL: u32 = 68;
149pub const RETRO_ENVIRONMENT_SET_CORE_OPTIONS_UPDATE_DISPLAY_CALLBACK: u32 = 69;
150pub const RETRO_VFS_FILE_ACCESS_READ: u32 = 1;
151pub const RETRO_VFS_FILE_ACCESS_WRITE: u32 = 2;
152pub const RETRO_VFS_FILE_ACCESS_READ_WRITE: u32 = 3;
153pub const RETRO_VFS_FILE_ACCESS_UPDATE_EXISTING: u32 = 4;
154pub const RETRO_VFS_FILE_ACCESS_HINT_NONE: u32 = 0;
155pub const RETRO_VFS_FILE_ACCESS_HINT_FREQUENT_ACCESS: u32 = 1;
156pub const RETRO_VFS_SEEK_POSITION_START: u32 = 0;
157pub const RETRO_VFS_SEEK_POSITION_CURRENT: u32 = 1;
158pub const RETRO_VFS_SEEK_POSITION_END: u32 = 2;
159pub const RETRO_VFS_STAT_IS_VALID: u32 = 1;
160pub const RETRO_VFS_STAT_IS_DIRECTORY: u32 = 2;
161pub const RETRO_VFS_STAT_IS_CHARACTER_SPECIAL: u32 = 4;
162pub const RETRO_SERIALIZATION_QUIRK_INCOMPLETE: u32 = 1;
163pub const RETRO_SERIALIZATION_QUIRK_MUST_INITIALIZE: u32 = 2;
164pub const RETRO_SERIALIZATION_QUIRK_CORE_VARIABLE_SIZE: u32 = 4;
165pub const RETRO_SERIALIZATION_QUIRK_FRONT_VARIABLE_SIZE: u32 = 8;
166pub const RETRO_SERIALIZATION_QUIRK_SINGLE_SESSION: u32 = 16;
167pub const RETRO_SERIALIZATION_QUIRK_ENDIAN_DEPENDENT: u32 = 32;
168pub const RETRO_SERIALIZATION_QUIRK_PLATFORM_DEPENDENT: u32 = 64;
169pub const RETRO_MEMDESC_CONST: u32 = 1;
170pub const RETRO_MEMDESC_BIGENDIAN: u32 = 2;
171pub const RETRO_MEMDESC_SYSTEM_RAM: u32 = 4;
172pub const RETRO_MEMDESC_SAVE_RAM: u32 = 8;
173pub const RETRO_MEMDESC_VIDEO_RAM: u32 = 16;
174pub const RETRO_MEMDESC_ALIGN_2: u32 = 65536;
175pub const RETRO_MEMDESC_ALIGN_4: u32 = 131072;
176pub const RETRO_MEMDESC_ALIGN_8: u32 = 196608;
177pub const RETRO_MEMDESC_MINSIZE_2: u32 = 16777216;
178pub const RETRO_MEMDESC_MINSIZE_4: u32 = 33554432;
179pub const RETRO_MEMDESC_MINSIZE_8: u32 = 50331648;
180pub const RETRO_SIMD_SSE: u32 = 1;
181pub const RETRO_SIMD_SSE2: u32 = 2;
182pub const RETRO_SIMD_VMX: u32 = 4;
183pub const RETRO_SIMD_VMX128: u32 = 8;
184pub const RETRO_SIMD_AVX: u32 = 16;
185pub const RETRO_SIMD_NEON: u32 = 32;
186pub const RETRO_SIMD_SSE3: u32 = 64;
187pub const RETRO_SIMD_SSSE3: u32 = 128;
188pub const RETRO_SIMD_MMX: u32 = 256;
189pub const RETRO_SIMD_MMXEXT: u32 = 512;
190pub const RETRO_SIMD_SSE4: u32 = 1024;
191pub const RETRO_SIMD_SSE42: u32 = 2048;
192pub const RETRO_SIMD_AVX2: u32 = 4096;
193pub const RETRO_SIMD_VFPU: u32 = 8192;
194pub const RETRO_SIMD_PS: u32 = 16384;
195pub const RETRO_SIMD_AES: u32 = 32768;
196pub const RETRO_SIMD_VFPV3: u32 = 65536;
197pub const RETRO_SIMD_VFPV4: u32 = 131072;
198pub const RETRO_SIMD_POPCNT: u32 = 262144;
199pub const RETRO_SIMD_MOVBE: u32 = 524288;
200pub const RETRO_SIMD_CMOV: u32 = 1048576;
201pub const RETRO_SIMD_ASIMD: u32 = 2097152;
202pub const RETRO_SENSOR_ACCELEROMETER_X: u32 = 0;
203pub const RETRO_SENSOR_ACCELEROMETER_Y: u32 = 1;
204pub const RETRO_SENSOR_ACCELEROMETER_Z: u32 = 2;
205pub const RETRO_SENSOR_GYROSCOPE_X: u32 = 3;
206pub const RETRO_SENSOR_GYROSCOPE_Y: u32 = 4;
207pub const RETRO_SENSOR_GYROSCOPE_Z: u32 = 5;
208pub const RETRO_SENSOR_ILLUMINANCE: u32 = 6;
209pub const RETRO_NUM_CORE_OPTION_VALUES_MAX: u32 = 128;
210pub const RETRO_MEMORY_ACCESS_WRITE: u32 = 1;
211pub const RETRO_MEMORY_ACCESS_READ: u32 = 2;
212pub const RETRO_MEMORY_TYPE_CACHED: u32 = 1;
213
214pub const retro_language_RETRO_LANGUAGE_ENGLISH: retro_language = 0;
215pub const retro_language_RETRO_LANGUAGE_JAPANESE: retro_language = 1;
216pub const retro_language_RETRO_LANGUAGE_FRENCH: retro_language = 2;
217pub const retro_language_RETRO_LANGUAGE_SPANISH: retro_language = 3;
218pub const retro_language_RETRO_LANGUAGE_GERMAN: retro_language = 4;
219pub const retro_language_RETRO_LANGUAGE_ITALIAN: retro_language = 5;
220pub const retro_language_RETRO_LANGUAGE_DUTCH: retro_language = 6;
221pub const retro_language_RETRO_LANGUAGE_PORTUGUESE_BRAZIL: retro_language = 7;
222pub const retro_language_RETRO_LANGUAGE_PORTUGUESE_PORTUGAL: retro_language = 8;
223pub const retro_language_RETRO_LANGUAGE_RUSSIAN: retro_language = 9;
224pub const retro_language_RETRO_LANGUAGE_KOREAN: retro_language = 10;
225pub const retro_language_RETRO_LANGUAGE_CHINESE_TRADITIONAL: retro_language = 11;
226pub const retro_language_RETRO_LANGUAGE_CHINESE_SIMPLIFIED: retro_language = 12;
227pub const retro_language_RETRO_LANGUAGE_ESPERANTO: retro_language = 13;
228pub const retro_language_RETRO_LANGUAGE_POLISH: retro_language = 14;
229pub const retro_language_RETRO_LANGUAGE_VIETNAMESE: retro_language = 15;
230pub const retro_language_RETRO_LANGUAGE_ARABIC: retro_language = 16;
231pub const retro_language_RETRO_LANGUAGE_GREEK: retro_language = 17;
232pub const retro_language_RETRO_LANGUAGE_TURKISH: retro_language = 18;
233pub const retro_language_RETRO_LANGUAGE_SLOVAK: retro_language = 19;
234pub const retro_language_RETRO_LANGUAGE_PERSIAN: retro_language = 20;
235pub const retro_language_RETRO_LANGUAGE_HEBREW: retro_language = 21;
236pub const retro_language_RETRO_LANGUAGE_ASTURIAN: retro_language = 22;
237pub const retro_language_RETRO_LANGUAGE_FINNISH: retro_language = 23;
238pub const retro_language_RETRO_LANGUAGE_LAST: retro_language = 24;
239pub const retro_language_RETRO_LANGUAGE_DUMMY: retro_language = 2147483647;
240pub type retro_language = ::std::os::raw::c_uint;
241pub const retro_key_RETROK_UNKNOWN: retro_key = 0;
242pub const retro_key_RETROK_FIRST: retro_key = 0;
243pub const retro_key_RETROK_BACKSPACE: retro_key = 8;
244pub const retro_key_RETROK_TAB: retro_key = 9;
245pub const retro_key_RETROK_CLEAR: retro_key = 12;
246pub const retro_key_RETROK_RETURN: retro_key = 13;
247pub const retro_key_RETROK_PAUSE: retro_key = 19;
248pub const retro_key_RETROK_ESCAPE: retro_key = 27;
249pub const retro_key_RETROK_SPACE: retro_key = 32;
250pub const retro_key_RETROK_EXCLAIM: retro_key = 33;
251pub const retro_key_RETROK_QUOTEDBL: retro_key = 34;
252pub const retro_key_RETROK_HASH: retro_key = 35;
253pub const retro_key_RETROK_DOLLAR: retro_key = 36;
254pub const retro_key_RETROK_AMPERSAND: retro_key = 38;
255pub const retro_key_RETROK_QUOTE: retro_key = 39;
256pub const retro_key_RETROK_LEFTPAREN: retro_key = 40;
257pub const retro_key_RETROK_RIGHTPAREN: retro_key = 41;
258pub const retro_key_RETROK_ASTERISK: retro_key = 42;
259pub const retro_key_RETROK_PLUS: retro_key = 43;
260pub const retro_key_RETROK_COMMA: retro_key = 44;
261pub const retro_key_RETROK_MINUS: retro_key = 45;
262pub const retro_key_RETROK_PERIOD: retro_key = 46;
263pub const retro_key_RETROK_SLASH: retro_key = 47;
264pub const retro_key_RETROK_0: retro_key = 48;
265pub const retro_key_RETROK_1: retro_key = 49;
266pub const retro_key_RETROK_2: retro_key = 50;
267pub const retro_key_RETROK_3: retro_key = 51;
268pub const retro_key_RETROK_4: retro_key = 52;
269pub const retro_key_RETROK_5: retro_key = 53;
270pub const retro_key_RETROK_6: retro_key = 54;
271pub const retro_key_RETROK_7: retro_key = 55;
272pub const retro_key_RETROK_8: retro_key = 56;
273pub const retro_key_RETROK_9: retro_key = 57;
274pub const retro_key_RETROK_COLON: retro_key = 58;
275pub const retro_key_RETROK_SEMICOLON: retro_key = 59;
276pub const retro_key_RETROK_LESS: retro_key = 60;
277pub const retro_key_RETROK_EQUALS: retro_key = 61;
278pub const retro_key_RETROK_GREATER: retro_key = 62;
279pub const retro_key_RETROK_QUESTION: retro_key = 63;
280pub const retro_key_RETROK_AT: retro_key = 64;
281pub const retro_key_RETROK_LEFTBRACKET: retro_key = 91;
282pub const retro_key_RETROK_BACKSLASH: retro_key = 92;
283pub const retro_key_RETROK_RIGHTBRACKET: retro_key = 93;
284pub const retro_key_RETROK_CARET: retro_key = 94;
285pub const retro_key_RETROK_UNDERSCORE: retro_key = 95;
286pub const retro_key_RETROK_BACKQUOTE: retro_key = 96;
287pub const retro_key_RETROK_a: retro_key = 97;
288pub const retro_key_RETROK_b: retro_key = 98;
289pub const retro_key_RETROK_c: retro_key = 99;
290pub const retro_key_RETROK_d: retro_key = 100;
291pub const retro_key_RETROK_e: retro_key = 101;
292pub const retro_key_RETROK_f: retro_key = 102;
293pub const retro_key_RETROK_g: retro_key = 103;
294pub const retro_key_RETROK_h: retro_key = 104;
295pub const retro_key_RETROK_i: retro_key = 105;
296pub const retro_key_RETROK_j: retro_key = 106;
297pub const retro_key_RETROK_k: retro_key = 107;
298pub const retro_key_RETROK_l: retro_key = 108;
299pub const retro_key_RETROK_m: retro_key = 109;
300pub const retro_key_RETROK_n: retro_key = 110;
301pub const retro_key_RETROK_o: retro_key = 111;
302pub const retro_key_RETROK_p: retro_key = 112;
303pub const retro_key_RETROK_q: retro_key = 113;
304pub const retro_key_RETROK_r: retro_key = 114;
305pub const retro_key_RETROK_s: retro_key = 115;
306pub const retro_key_RETROK_t: retro_key = 116;
307pub const retro_key_RETROK_u: retro_key = 117;
308pub const retro_key_RETROK_v: retro_key = 118;
309pub const retro_key_RETROK_w: retro_key = 119;
310pub const retro_key_RETROK_x: retro_key = 120;
311pub const retro_key_RETROK_y: retro_key = 121;
312pub const retro_key_RETROK_z: retro_key = 122;
313pub const retro_key_RETROK_LEFTBRACE: retro_key = 123;
314pub const retro_key_RETROK_BAR: retro_key = 124;
315pub const retro_key_RETROK_RIGHTBRACE: retro_key = 125;
316pub const retro_key_RETROK_TILDE: retro_key = 126;
317pub const retro_key_RETROK_DELETE: retro_key = 127;
318pub const retro_key_RETROK_KP0: retro_key = 256;
319pub const retro_key_RETROK_KP1: retro_key = 257;
320pub const retro_key_RETROK_KP2: retro_key = 258;
321pub const retro_key_RETROK_KP3: retro_key = 259;
322pub const retro_key_RETROK_KP4: retro_key = 260;
323pub const retro_key_RETROK_KP5: retro_key = 261;
324pub const retro_key_RETROK_KP6: retro_key = 262;
325pub const retro_key_RETROK_KP7: retro_key = 263;
326pub const retro_key_RETROK_KP8: retro_key = 264;
327pub const retro_key_RETROK_KP9: retro_key = 265;
328pub const retro_key_RETROK_KP_PERIOD: retro_key = 266;
329pub const retro_key_RETROK_KP_DIVIDE: retro_key = 267;
330pub const retro_key_RETROK_KP_MULTIPLY: retro_key = 268;
331pub const retro_key_RETROK_KP_MINUS: retro_key = 269;
332pub const retro_key_RETROK_KP_PLUS: retro_key = 270;
333pub const retro_key_RETROK_KP_ENTER: retro_key = 271;
334pub const retro_key_RETROK_KP_EQUALS: retro_key = 272;
335pub const retro_key_RETROK_UP: retro_key = 273;
336pub const retro_key_RETROK_DOWN: retro_key = 274;
337pub const retro_key_RETROK_RIGHT: retro_key = 275;
338pub const retro_key_RETROK_LEFT: retro_key = 276;
339pub const retro_key_RETROK_INSERT: retro_key = 277;
340pub const retro_key_RETROK_HOME: retro_key = 278;
341pub const retro_key_RETROK_END: retro_key = 279;
342pub const retro_key_RETROK_PAGEUP: retro_key = 280;
343pub const retro_key_RETROK_PAGEDOWN: retro_key = 281;
344pub const retro_key_RETROK_F1: retro_key = 282;
345pub const retro_key_RETROK_F2: retro_key = 283;
346pub const retro_key_RETROK_F3: retro_key = 284;
347pub const retro_key_RETROK_F4: retro_key = 285;
348pub const retro_key_RETROK_F5: retro_key = 286;
349pub const retro_key_RETROK_F6: retro_key = 287;
350pub const retro_key_RETROK_F7: retro_key = 288;
351pub const retro_key_RETROK_F8: retro_key = 289;
352pub const retro_key_RETROK_F9: retro_key = 290;
353pub const retro_key_RETROK_F10: retro_key = 291;
354pub const retro_key_RETROK_F11: retro_key = 292;
355pub const retro_key_RETROK_F12: retro_key = 293;
356pub const retro_key_RETROK_F13: retro_key = 294;
357pub const retro_key_RETROK_F14: retro_key = 295;
358pub const retro_key_RETROK_F15: retro_key = 296;
359pub const retro_key_RETROK_NUMLOCK: retro_key = 300;
360pub const retro_key_RETROK_CAPSLOCK: retro_key = 301;
361pub const retro_key_RETROK_SCROLLOCK: retro_key = 302;
362pub const retro_key_RETROK_RSHIFT: retro_key = 303;
363pub const retro_key_RETROK_LSHIFT: retro_key = 304;
364pub const retro_key_RETROK_RCTRL: retro_key = 305;
365pub const retro_key_RETROK_LCTRL: retro_key = 306;
366pub const retro_key_RETROK_RALT: retro_key = 307;
367pub const retro_key_RETROK_LALT: retro_key = 308;
368pub const retro_key_RETROK_RMETA: retro_key = 309;
369pub const retro_key_RETROK_LMETA: retro_key = 310;
370pub const retro_key_RETROK_LSUPER: retro_key = 311;
371pub const retro_key_RETROK_RSUPER: retro_key = 312;
372pub const retro_key_RETROK_MODE: retro_key = 313;
373pub const retro_key_RETROK_COMPOSE: retro_key = 314;
374pub const retro_key_RETROK_HELP: retro_key = 315;
375pub const retro_key_RETROK_PRINT: retro_key = 316;
376pub const retro_key_RETROK_SYSREQ: retro_key = 317;
377pub const retro_key_RETROK_BREAK: retro_key = 318;
378pub const retro_key_RETROK_MENU: retro_key = 319;
379pub const retro_key_RETROK_POWER: retro_key = 320;
380pub const retro_key_RETROK_EURO: retro_key = 321;
381pub const retro_key_RETROK_UNDO: retro_key = 322;
382pub const retro_key_RETROK_OEM_102: retro_key = 323;
383pub const retro_key_RETROK_LAST: retro_key = 324;
384pub const retro_key_RETROK_DUMMY: retro_key = 2147483647;
385pub type retro_key = ::std::os::raw::c_uint;
386pub const retro_mod_RETROKMOD_NONE: retro_mod = 0;
387pub const retro_mod_RETROKMOD_SHIFT: retro_mod = 1;
388pub const retro_mod_RETROKMOD_CTRL: retro_mod = 2;
389pub const retro_mod_RETROKMOD_ALT: retro_mod = 4;
390pub const retro_mod_RETROKMOD_META: retro_mod = 8;
391pub const retro_mod_RETROKMOD_NUMLOCK: retro_mod = 16;
392pub const retro_mod_RETROKMOD_CAPSLOCK: retro_mod = 32;
393pub const retro_mod_RETROKMOD_SCROLLOCK: retro_mod = 64;
394pub const retro_mod_RETROKMOD_DUMMY: retro_mod = 2147483647;
395pub type retro_mod = ::std::os::raw::c_uint;
396#[repr(C)]
397#[derive(Debug, Copy, Clone)]
398pub struct retro_vfs_file_handle {
399    _unused: [u8; 0],
400}
401#[repr(C)]
402#[derive(Debug, Copy, Clone)]
403pub struct retro_vfs_dir_handle {
404    _unused: [u8; 0],
405}
406pub type retro_vfs_get_path_t = ::std::option::Option<
407    unsafe extern "C" fn(stream: *mut retro_vfs_file_handle) -> *const ::std::os::raw::c_char,
408>;
409pub type retro_vfs_open_t = ::std::option::Option<
410    unsafe extern "C" fn(
411        path: *const ::std::os::raw::c_char,
412        mode: ::std::os::raw::c_uint,
413        hints: ::std::os::raw::c_uint,
414    ) -> *mut retro_vfs_file_handle,
415>;
416pub type retro_vfs_close_t = ::std::option::Option<
417    unsafe extern "C" fn(stream: *mut retro_vfs_file_handle) -> ::std::os::raw::c_int,
418>;
419pub type retro_vfs_size_t =
420    ::std::option::Option<unsafe extern "C" fn(stream: *mut retro_vfs_file_handle) -> i64>;
421pub type retro_vfs_truncate_t = ::std::option::Option<
422    unsafe extern "C" fn(stream: *mut retro_vfs_file_handle, length: i64) -> i64,
423>;
424pub type retro_vfs_tell_t =
425    ::std::option::Option<unsafe extern "C" fn(stream: *mut retro_vfs_file_handle) -> i64>;
426pub type retro_vfs_seek_t = ::std::option::Option<
427    unsafe extern "C" fn(
428        stream: *mut retro_vfs_file_handle,
429        offset: i64,
430        seek_position: ::std::os::raw::c_int,
431    ) -> i64,
432>;
433pub type retro_vfs_read_t = ::std::option::Option<
434    unsafe extern "C" fn(
435        stream: *mut retro_vfs_file_handle,
436        s: *mut ::std::os::raw::c_void,
437        len: u64,
438    ) -> i64,
439>;
440pub type retro_vfs_write_t = ::std::option::Option<
441    unsafe extern "C" fn(
442        stream: *mut retro_vfs_file_handle,
443        s: *const ::std::os::raw::c_void,
444        len: u64,
445    ) -> i64,
446>;
447pub type retro_vfs_flush_t = ::std::option::Option<
448    unsafe extern "C" fn(stream: *mut retro_vfs_file_handle) -> ::std::os::raw::c_int,
449>;
450pub type retro_vfs_remove_t = ::std::option::Option<
451    unsafe extern "C" fn(path: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
452>;
453pub type retro_vfs_rename_t = ::std::option::Option<
454    unsafe extern "C" fn(
455        old_path: *const ::std::os::raw::c_char,
456        new_path: *const ::std::os::raw::c_char,
457    ) -> ::std::os::raw::c_int,
458>;
459pub type retro_vfs_stat_t = ::std::option::Option<
460    unsafe extern "C" fn(
461        path: *const ::std::os::raw::c_char,
462        size: *mut i32,
463    ) -> ::std::os::raw::c_int,
464>;
465pub type retro_vfs_mkdir_t = ::std::option::Option<
466    unsafe extern "C" fn(dir: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int,
467>;
468pub type retro_vfs_opendir_t = ::std::option::Option<
469    unsafe extern "C" fn(
470        dir: *const ::std::os::raw::c_char,
471        include_hidden: bool,
472    ) -> *mut retro_vfs_dir_handle,
473>;
474pub type retro_vfs_readdir_t =
475    ::std::option::Option<unsafe extern "C" fn(dirstream: *mut retro_vfs_dir_handle) -> bool>;
476pub type retro_vfs_dirent_get_name_t = ::std::option::Option<
477    unsafe extern "C" fn(dirstream: *mut retro_vfs_dir_handle) -> *const ::std::os::raw::c_char,
478>;
479pub type retro_vfs_dirent_is_dir_t =
480    ::std::option::Option<unsafe extern "C" fn(dirstream: *mut retro_vfs_dir_handle) -> bool>;
481pub type retro_vfs_closedir_t = ::std::option::Option<
482    unsafe extern "C" fn(dirstream: *mut retro_vfs_dir_handle) -> ::std::os::raw::c_int,
483>;
484#[repr(C)]
485#[derive(Debug, Copy, Clone)]
486pub struct retro_vfs_interface {
487    pub get_path: retro_vfs_get_path_t,
488    pub open: retro_vfs_open_t,
489    pub close: retro_vfs_close_t,
490    pub size: retro_vfs_size_t,
491    pub tell: retro_vfs_tell_t,
492    pub seek: retro_vfs_seek_t,
493    pub read: retro_vfs_read_t,
494    pub write: retro_vfs_write_t,
495    pub flush: retro_vfs_flush_t,
496    pub remove: retro_vfs_remove_t,
497    pub rename: retro_vfs_rename_t,
498    pub truncate: retro_vfs_truncate_t,
499    pub stat: retro_vfs_stat_t,
500    pub mkdir: retro_vfs_mkdir_t,
501    pub opendir: retro_vfs_opendir_t,
502    pub readdir: retro_vfs_readdir_t,
503    pub dirent_get_name: retro_vfs_dirent_get_name_t,
504    pub dirent_is_dir: retro_vfs_dirent_is_dir_t,
505    pub closedir: retro_vfs_closedir_t,
506}
507#[test]
508fn bindgen_test_layout_retro_vfs_interface() {
509    assert_eq!(
510        ::std::mem::size_of::<retro_vfs_interface>(),
511        152usize,
512        concat!("Size of: ", stringify!(retro_vfs_interface))
513    );
514    assert_eq!(
515        ::std::mem::align_of::<retro_vfs_interface>(),
516        8usize,
517        concat!("Alignment of ", stringify!(retro_vfs_interface))
518    );
519    assert_eq!(
520        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).get_path as *const _ as usize },
521        0usize,
522        concat!(
523            "Offset of field: ",
524            stringify!(retro_vfs_interface),
525            "::",
526            stringify!(get_path)
527        )
528    );
529    assert_eq!(
530        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).open as *const _ as usize },
531        8usize,
532        concat!(
533            "Offset of field: ",
534            stringify!(retro_vfs_interface),
535            "::",
536            stringify!(open)
537        )
538    );
539    assert_eq!(
540        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).close as *const _ as usize },
541        16usize,
542        concat!(
543            "Offset of field: ",
544            stringify!(retro_vfs_interface),
545            "::",
546            stringify!(close)
547        )
548    );
549    assert_eq!(
550        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).size as *const _ as usize },
551        24usize,
552        concat!(
553            "Offset of field: ",
554            stringify!(retro_vfs_interface),
555            "::",
556            stringify!(size)
557        )
558    );
559    assert_eq!(
560        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).tell as *const _ as usize },
561        32usize,
562        concat!(
563            "Offset of field: ",
564            stringify!(retro_vfs_interface),
565            "::",
566            stringify!(tell)
567        )
568    );
569    assert_eq!(
570        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).seek as *const _ as usize },
571        40usize,
572        concat!(
573            "Offset of field: ",
574            stringify!(retro_vfs_interface),
575            "::",
576            stringify!(seek)
577        )
578    );
579    assert_eq!(
580        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).read as *const _ as usize },
581        48usize,
582        concat!(
583            "Offset of field: ",
584            stringify!(retro_vfs_interface),
585            "::",
586            stringify!(read)
587        )
588    );
589    assert_eq!(
590        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).write as *const _ as usize },
591        56usize,
592        concat!(
593            "Offset of field: ",
594            stringify!(retro_vfs_interface),
595            "::",
596            stringify!(write)
597        )
598    );
599    assert_eq!(
600        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).flush as *const _ as usize },
601        64usize,
602        concat!(
603            "Offset of field: ",
604            stringify!(retro_vfs_interface),
605            "::",
606            stringify!(flush)
607        )
608    );
609    assert_eq!(
610        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).remove as *const _ as usize },
611        72usize,
612        concat!(
613            "Offset of field: ",
614            stringify!(retro_vfs_interface),
615            "::",
616            stringify!(remove)
617        )
618    );
619    assert_eq!(
620        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).rename as *const _ as usize },
621        80usize,
622        concat!(
623            "Offset of field: ",
624            stringify!(retro_vfs_interface),
625            "::",
626            stringify!(rename)
627        )
628    );
629    assert_eq!(
630        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).truncate as *const _ as usize },
631        88usize,
632        concat!(
633            "Offset of field: ",
634            stringify!(retro_vfs_interface),
635            "::",
636            stringify!(truncate)
637        )
638    );
639    assert_eq!(
640        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).stat as *const _ as usize },
641        96usize,
642        concat!(
643            "Offset of field: ",
644            stringify!(retro_vfs_interface),
645            "::",
646            stringify!(stat)
647        )
648    );
649    assert_eq!(
650        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).mkdir as *const _ as usize },
651        104usize,
652        concat!(
653            "Offset of field: ",
654            stringify!(retro_vfs_interface),
655            "::",
656            stringify!(mkdir)
657        )
658    );
659    assert_eq!(
660        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).opendir as *const _ as usize },
661        112usize,
662        concat!(
663            "Offset of field: ",
664            stringify!(retro_vfs_interface),
665            "::",
666            stringify!(opendir)
667        )
668    );
669    assert_eq!(
670        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).readdir as *const _ as usize },
671        120usize,
672        concat!(
673            "Offset of field: ",
674            stringify!(retro_vfs_interface),
675            "::",
676            stringify!(readdir)
677        )
678    );
679    assert_eq!(
680        unsafe {
681            &(*(::std::ptr::null::<retro_vfs_interface>())).dirent_get_name as *const _ as usize
682        },
683        128usize,
684        concat!(
685            "Offset of field: ",
686            stringify!(retro_vfs_interface),
687            "::",
688            stringify!(dirent_get_name)
689        )
690    );
691    assert_eq!(
692        unsafe {
693            &(*(::std::ptr::null::<retro_vfs_interface>())).dirent_is_dir as *const _ as usize
694        },
695        136usize,
696        concat!(
697            "Offset of field: ",
698            stringify!(retro_vfs_interface),
699            "::",
700            stringify!(dirent_is_dir)
701        )
702    );
703    assert_eq!(
704        unsafe { &(*(::std::ptr::null::<retro_vfs_interface>())).closedir as *const _ as usize },
705        144usize,
706        concat!(
707            "Offset of field: ",
708            stringify!(retro_vfs_interface),
709            "::",
710            stringify!(closedir)
711        )
712    );
713}
714#[repr(C)]
715#[derive(Debug, Copy, Clone)]
716pub struct retro_vfs_interface_info {
717    pub required_interface_version: u32,
718    pub iface: *mut retro_vfs_interface,
719}
720#[test]
721fn bindgen_test_layout_retro_vfs_interface_info() {
722    assert_eq!(
723        ::std::mem::size_of::<retro_vfs_interface_info>(),
724        16usize,
725        concat!("Size of: ", stringify!(retro_vfs_interface_info))
726    );
727    assert_eq!(
728        ::std::mem::align_of::<retro_vfs_interface_info>(),
729        8usize,
730        concat!("Alignment of ", stringify!(retro_vfs_interface_info))
731    );
732    assert_eq!(
733        unsafe {
734            &(*(::std::ptr::null::<retro_vfs_interface_info>())).required_interface_version
735                as *const _ as usize
736        },
737        0usize,
738        concat!(
739            "Offset of field: ",
740            stringify!(retro_vfs_interface_info),
741            "::",
742            stringify!(required_interface_version)
743        )
744    );
745    assert_eq!(
746        unsafe { &(*(::std::ptr::null::<retro_vfs_interface_info>())).iface as *const _ as usize },
747        8usize,
748        concat!(
749            "Offset of field: ",
750            stringify!(retro_vfs_interface_info),
751            "::",
752            stringify!(iface)
753        )
754    );
755}
756pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_VULKAN:
757    retro_hw_render_interface_type = 0;
758pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_D3D9:
759    retro_hw_render_interface_type = 1;
760pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_D3D10:
761    retro_hw_render_interface_type = 2;
762pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_D3D11:
763    retro_hw_render_interface_type = 3;
764pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_D3D12:
765    retro_hw_render_interface_type = 4;
766pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_GSKIT_PS2:
767    retro_hw_render_interface_type = 5;
768pub const retro_hw_render_interface_type_RETRO_HW_RENDER_INTERFACE_DUMMY:
769    retro_hw_render_interface_type = 2147483647;
770pub type retro_hw_render_interface_type = ::std::os::raw::c_uint;
771#[repr(C)]
772#[derive(Debug, Copy, Clone)]
773pub struct retro_hw_render_interface {
774    pub interface_type: retro_hw_render_interface_type,
775    pub interface_version: ::std::os::raw::c_uint,
776}
777#[test]
778fn bindgen_test_layout_retro_hw_render_interface() {
779    assert_eq!(
780        ::std::mem::size_of::<retro_hw_render_interface>(),
781        8usize,
782        concat!("Size of: ", stringify!(retro_hw_render_interface))
783    );
784    assert_eq!(
785        ::std::mem::align_of::<retro_hw_render_interface>(),
786        4usize,
787        concat!("Alignment of ", stringify!(retro_hw_render_interface))
788    );
789    assert_eq!(
790        unsafe {
791            &(*(::std::ptr::null::<retro_hw_render_interface>())).interface_type as *const _
792                as usize
793        },
794        0usize,
795        concat!(
796            "Offset of field: ",
797            stringify!(retro_hw_render_interface),
798            "::",
799            stringify!(interface_type)
800        )
801    );
802    assert_eq!(
803        unsafe {
804            &(*(::std::ptr::null::<retro_hw_render_interface>())).interface_version as *const _
805                as usize
806        },
807        4usize,
808        concat!(
809            "Offset of field: ",
810            stringify!(retro_hw_render_interface),
811            "::",
812            stringify!(interface_version)
813        )
814    );
815}
816pub type retro_set_led_state_t = ::std::option::Option<
817    unsafe extern "C" fn(led: ::std::os::raw::c_int, state: ::std::os::raw::c_int),
818>;
819#[repr(C)]
820#[derive(Debug, Copy, Clone)]
821pub struct retro_led_interface {
822    pub set_led_state: retro_set_led_state_t,
823}
824#[test]
825fn bindgen_test_layout_retro_led_interface() {
826    assert_eq!(
827        ::std::mem::size_of::<retro_led_interface>(),
828        8usize,
829        concat!("Size of: ", stringify!(retro_led_interface))
830    );
831    assert_eq!(
832        ::std::mem::align_of::<retro_led_interface>(),
833        8usize,
834        concat!("Alignment of ", stringify!(retro_led_interface))
835    );
836    assert_eq!(
837        unsafe {
838            &(*(::std::ptr::null::<retro_led_interface>())).set_led_state as *const _ as usize
839        },
840        0usize,
841        concat!(
842            "Offset of field: ",
843            stringify!(retro_led_interface),
844            "::",
845            stringify!(set_led_state)
846        )
847    );
848}
849pub type retro_midi_input_enabled_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
850pub type retro_midi_output_enabled_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
851pub type retro_midi_read_t = ::std::option::Option<unsafe extern "C" fn(byte: *mut u8) -> bool>;
852pub type retro_midi_write_t =
853    ::std::option::Option<unsafe extern "C" fn(byte: u8, delta_time: u32) -> bool>;
854pub type retro_midi_flush_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
855#[repr(C)]
856#[derive(Debug, Copy, Clone)]
857pub struct retro_midi_interface {
858    pub input_enabled: retro_midi_input_enabled_t,
859    pub output_enabled: retro_midi_output_enabled_t,
860    pub read: retro_midi_read_t,
861    pub write: retro_midi_write_t,
862    pub flush: retro_midi_flush_t,
863}
864#[test]
865fn bindgen_test_layout_retro_midi_interface() {
866    assert_eq!(
867        ::std::mem::size_of::<retro_midi_interface>(),
868        40usize,
869        concat!("Size of: ", stringify!(retro_midi_interface))
870    );
871    assert_eq!(
872        ::std::mem::align_of::<retro_midi_interface>(),
873        8usize,
874        concat!("Alignment of ", stringify!(retro_midi_interface))
875    );
876    assert_eq!(
877        unsafe {
878            &(*(::std::ptr::null::<retro_midi_interface>())).input_enabled as *const _ as usize
879        },
880        0usize,
881        concat!(
882            "Offset of field: ",
883            stringify!(retro_midi_interface),
884            "::",
885            stringify!(input_enabled)
886        )
887    );
888    assert_eq!(
889        unsafe {
890            &(*(::std::ptr::null::<retro_midi_interface>())).output_enabled as *const _ as usize
891        },
892        8usize,
893        concat!(
894            "Offset of field: ",
895            stringify!(retro_midi_interface),
896            "::",
897            stringify!(output_enabled)
898        )
899    );
900    assert_eq!(
901        unsafe { &(*(::std::ptr::null::<retro_midi_interface>())).read as *const _ as usize },
902        16usize,
903        concat!(
904            "Offset of field: ",
905            stringify!(retro_midi_interface),
906            "::",
907            stringify!(read)
908        )
909    );
910    assert_eq!(
911        unsafe { &(*(::std::ptr::null::<retro_midi_interface>())).write as *const _ as usize },
912        24usize,
913        concat!(
914            "Offset of field: ",
915            stringify!(retro_midi_interface),
916            "::",
917            stringify!(write)
918        )
919    );
920    assert_eq!(
921        unsafe { &(*(::std::ptr::null::<retro_midi_interface>())).flush as *const _ as usize },
922        32usize,
923        concat!(
924            "Offset of field: ",
925            stringify!(retro_midi_interface),
926            "::",
927            stringify!(flush)
928        )
929    );
930}
931pub const retro_hw_render_context_negotiation_interface_type_RETRO_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE_VULKAN : retro_hw_render_context_negotiation_interface_type = 0 ;
932pub const retro_hw_render_context_negotiation_interface_type_RETRO_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE_DUMMY : retro_hw_render_context_negotiation_interface_type = 2147483647 ;
933pub type retro_hw_render_context_negotiation_interface_type = ::std::os::raw::c_uint;
934#[repr(C)]
935#[derive(Debug, Copy, Clone)]
936pub struct retro_hw_render_context_negotiation_interface {
937    pub interface_type: retro_hw_render_context_negotiation_interface_type,
938    pub interface_version: ::std::os::raw::c_uint,
939}
940#[test]
941fn bindgen_test_layout_retro_hw_render_context_negotiation_interface() {
942    assert_eq!(
943        ::std::mem::size_of::<retro_hw_render_context_negotiation_interface>(),
944        8usize,
945        concat!(
946            "Size of: ",
947            stringify!(retro_hw_render_context_negotiation_interface)
948        )
949    );
950    assert_eq!(
951        ::std::mem::align_of::<retro_hw_render_context_negotiation_interface>(),
952        4usize,
953        concat!(
954            "Alignment of ",
955            stringify!(retro_hw_render_context_negotiation_interface)
956        )
957    );
958    assert_eq!(
959        unsafe {
960            &(*(::std::ptr::null::<retro_hw_render_context_negotiation_interface>())).interface_type
961                as *const _ as usize
962        },
963        0usize,
964        concat!(
965            "Offset of field: ",
966            stringify!(retro_hw_render_context_negotiation_interface),
967            "::",
968            stringify!(interface_type)
969        )
970    );
971    assert_eq!(
972        unsafe {
973            &(*(::std::ptr::null::<retro_hw_render_context_negotiation_interface>()))
974                .interface_version as *const _ as usize
975        },
976        4usize,
977        concat!(
978            "Offset of field: ",
979            stringify!(retro_hw_render_context_negotiation_interface),
980            "::",
981            stringify!(interface_version)
982        )
983    );
984}
985#[repr(C)]
986#[derive(Debug, Copy, Clone)]
987pub struct retro_memory_descriptor {
988    pub flags: u64,
989    pub ptr: *mut ::std::os::raw::c_void,
990    pub offset: size_t,
991    pub start: size_t,
992    pub select: size_t,
993    pub disconnect: size_t,
994    pub len: size_t,
995    pub addrspace: *const ::std::os::raw::c_char,
996}
997#[test]
998fn bindgen_test_layout_retro_memory_descriptor() {
999    assert_eq!(
1000        ::std::mem::size_of::<retro_memory_descriptor>(),
1001        64usize,
1002        concat!("Size of: ", stringify!(retro_memory_descriptor))
1003    );
1004    assert_eq!(
1005        ::std::mem::align_of::<retro_memory_descriptor>(),
1006        8usize,
1007        concat!("Alignment of ", stringify!(retro_memory_descriptor))
1008    );
1009    assert_eq!(
1010        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).flags as *const _ as usize },
1011        0usize,
1012        concat!(
1013            "Offset of field: ",
1014            stringify!(retro_memory_descriptor),
1015            "::",
1016            stringify!(flags)
1017        )
1018    );
1019    assert_eq!(
1020        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).ptr as *const _ as usize },
1021        8usize,
1022        concat!(
1023            "Offset of field: ",
1024            stringify!(retro_memory_descriptor),
1025            "::",
1026            stringify!(ptr)
1027        )
1028    );
1029    assert_eq!(
1030        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).offset as *const _ as usize },
1031        16usize,
1032        concat!(
1033            "Offset of field: ",
1034            stringify!(retro_memory_descriptor),
1035            "::",
1036            stringify!(offset)
1037        )
1038    );
1039    assert_eq!(
1040        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).start as *const _ as usize },
1041        24usize,
1042        concat!(
1043            "Offset of field: ",
1044            stringify!(retro_memory_descriptor),
1045            "::",
1046            stringify!(start)
1047        )
1048    );
1049    assert_eq!(
1050        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).select as *const _ as usize },
1051        32usize,
1052        concat!(
1053            "Offset of field: ",
1054            stringify!(retro_memory_descriptor),
1055            "::",
1056            stringify!(select)
1057        )
1058    );
1059    assert_eq!(
1060        unsafe {
1061            &(*(::std::ptr::null::<retro_memory_descriptor>())).disconnect as *const _ as usize
1062        },
1063        40usize,
1064        concat!(
1065            "Offset of field: ",
1066            stringify!(retro_memory_descriptor),
1067            "::",
1068            stringify!(disconnect)
1069        )
1070    );
1071    assert_eq!(
1072        unsafe { &(*(::std::ptr::null::<retro_memory_descriptor>())).len as *const _ as usize },
1073        48usize,
1074        concat!(
1075            "Offset of field: ",
1076            stringify!(retro_memory_descriptor),
1077            "::",
1078            stringify!(len)
1079        )
1080    );
1081    assert_eq!(
1082        unsafe {
1083            &(*(::std::ptr::null::<retro_memory_descriptor>())).addrspace as *const _ as usize
1084        },
1085        56usize,
1086        concat!(
1087            "Offset of field: ",
1088            stringify!(retro_memory_descriptor),
1089            "::",
1090            stringify!(addrspace)
1091        )
1092    );
1093}
1094#[repr(C)]
1095#[derive(Debug, Copy, Clone)]
1096pub struct retro_memory_map {
1097    pub descriptors: *const retro_memory_descriptor,
1098    pub num_descriptors: ::std::os::raw::c_uint,
1099}
1100#[test]
1101fn bindgen_test_layout_retro_memory_map() {
1102    assert_eq!(
1103        ::std::mem::size_of::<retro_memory_map>(),
1104        16usize,
1105        concat!("Size of: ", stringify!(retro_memory_map))
1106    );
1107    assert_eq!(
1108        ::std::mem::align_of::<retro_memory_map>(),
1109        8usize,
1110        concat!("Alignment of ", stringify!(retro_memory_map))
1111    );
1112    assert_eq!(
1113        unsafe { &(*(::std::ptr::null::<retro_memory_map>())).descriptors as *const _ as usize },
1114        0usize,
1115        concat!(
1116            "Offset of field: ",
1117            stringify!(retro_memory_map),
1118            "::",
1119            stringify!(descriptors)
1120        )
1121    );
1122    assert_eq!(
1123        unsafe {
1124            &(*(::std::ptr::null::<retro_memory_map>())).num_descriptors as *const _ as usize
1125        },
1126        8usize,
1127        concat!(
1128            "Offset of field: ",
1129            stringify!(retro_memory_map),
1130            "::",
1131            stringify!(num_descriptors)
1132        )
1133    );
1134}
1135#[repr(C)]
1136#[derive(Debug, Copy, Clone)]
1137pub struct retro_controller_description {
1138    pub desc: *const ::std::os::raw::c_char,
1139    pub id: ::std::os::raw::c_uint,
1140}
1141#[test]
1142fn bindgen_test_layout_retro_controller_description() {
1143    assert_eq!(
1144        ::std::mem::size_of::<retro_controller_description>(),
1145        16usize,
1146        concat!("Size of: ", stringify!(retro_controller_description))
1147    );
1148    assert_eq!(
1149        ::std::mem::align_of::<retro_controller_description>(),
1150        8usize,
1151        concat!("Alignment of ", stringify!(retro_controller_description))
1152    );
1153    assert_eq!(
1154        unsafe {
1155            &(*(::std::ptr::null::<retro_controller_description>())).desc as *const _ as usize
1156        },
1157        0usize,
1158        concat!(
1159            "Offset of field: ",
1160            stringify!(retro_controller_description),
1161            "::",
1162            stringify!(desc)
1163        )
1164    );
1165    assert_eq!(
1166        unsafe { &(*(::std::ptr::null::<retro_controller_description>())).id as *const _ as usize },
1167        8usize,
1168        concat!(
1169            "Offset of field: ",
1170            stringify!(retro_controller_description),
1171            "::",
1172            stringify!(id)
1173        )
1174    );
1175}
1176#[repr(C)]
1177#[derive(Debug, Copy, Clone)]
1178pub struct retro_controller_info {
1179    pub types: *const retro_controller_description,
1180    pub num_types: ::std::os::raw::c_uint,
1181}
1182#[test]
1183fn bindgen_test_layout_retro_controller_info() {
1184    assert_eq!(
1185        ::std::mem::size_of::<retro_controller_info>(),
1186        16usize,
1187        concat!("Size of: ", stringify!(retro_controller_info))
1188    );
1189    assert_eq!(
1190        ::std::mem::align_of::<retro_controller_info>(),
1191        8usize,
1192        concat!("Alignment of ", stringify!(retro_controller_info))
1193    );
1194    assert_eq!(
1195        unsafe { &(*(::std::ptr::null::<retro_controller_info>())).types as *const _ as usize },
1196        0usize,
1197        concat!(
1198            "Offset of field: ",
1199            stringify!(retro_controller_info),
1200            "::",
1201            stringify!(types)
1202        )
1203    );
1204    assert_eq!(
1205        unsafe { &(*(::std::ptr::null::<retro_controller_info>())).num_types as *const _ as usize },
1206        8usize,
1207        concat!(
1208            "Offset of field: ",
1209            stringify!(retro_controller_info),
1210            "::",
1211            stringify!(num_types)
1212        )
1213    );
1214}
1215#[repr(C)]
1216#[derive(Debug, Copy, Clone)]
1217pub struct retro_subsystem_memory_info {
1218    pub extension: *const ::std::os::raw::c_char,
1219    pub type_: ::std::os::raw::c_uint,
1220}
1221#[test]
1222fn bindgen_test_layout_retro_subsystem_memory_info() {
1223    assert_eq!(
1224        ::std::mem::size_of::<retro_subsystem_memory_info>(),
1225        16usize,
1226        concat!("Size of: ", stringify!(retro_subsystem_memory_info))
1227    );
1228    assert_eq!(
1229        ::std::mem::align_of::<retro_subsystem_memory_info>(),
1230        8usize,
1231        concat!("Alignment of ", stringify!(retro_subsystem_memory_info))
1232    );
1233    assert_eq!(
1234        unsafe {
1235            &(*(::std::ptr::null::<retro_subsystem_memory_info>())).extension as *const _ as usize
1236        },
1237        0usize,
1238        concat!(
1239            "Offset of field: ",
1240            stringify!(retro_subsystem_memory_info),
1241            "::",
1242            stringify!(extension)
1243        )
1244    );
1245    assert_eq!(
1246        unsafe {
1247            &(*(::std::ptr::null::<retro_subsystem_memory_info>())).type_ as *const _ as usize
1248        },
1249        8usize,
1250        concat!(
1251            "Offset of field: ",
1252            stringify!(retro_subsystem_memory_info),
1253            "::",
1254            stringify!(type_)
1255        )
1256    );
1257}
1258#[repr(C)]
1259#[derive(Debug, Copy, Clone)]
1260pub struct retro_subsystem_rom_info {
1261    pub desc: *const ::std::os::raw::c_char,
1262    pub valid_extensions: *const ::std::os::raw::c_char,
1263    pub need_fullpath: bool,
1264    pub block_extract: bool,
1265    pub required: bool,
1266    pub memory: *const retro_subsystem_memory_info,
1267    pub num_memory: ::std::os::raw::c_uint,
1268}
1269#[test]
1270fn bindgen_test_layout_retro_subsystem_rom_info() {
1271    assert_eq!(
1272        ::std::mem::size_of::<retro_subsystem_rom_info>(),
1273        40usize,
1274        concat!("Size of: ", stringify!(retro_subsystem_rom_info))
1275    );
1276    assert_eq!(
1277        ::std::mem::align_of::<retro_subsystem_rom_info>(),
1278        8usize,
1279        concat!("Alignment of ", stringify!(retro_subsystem_rom_info))
1280    );
1281    assert_eq!(
1282        unsafe { &(*(::std::ptr::null::<retro_subsystem_rom_info>())).desc as *const _ as usize },
1283        0usize,
1284        concat!(
1285            "Offset of field: ",
1286            stringify!(retro_subsystem_rom_info),
1287            "::",
1288            stringify!(desc)
1289        )
1290    );
1291    assert_eq!(
1292        unsafe {
1293            &(*(::std::ptr::null::<retro_subsystem_rom_info>())).valid_extensions as *const _
1294                as usize
1295        },
1296        8usize,
1297        concat!(
1298            "Offset of field: ",
1299            stringify!(retro_subsystem_rom_info),
1300            "::",
1301            stringify!(valid_extensions)
1302        )
1303    );
1304    assert_eq!(
1305        unsafe {
1306            &(*(::std::ptr::null::<retro_subsystem_rom_info>())).need_fullpath as *const _ as usize
1307        },
1308        16usize,
1309        concat!(
1310            "Offset of field: ",
1311            stringify!(retro_subsystem_rom_info),
1312            "::",
1313            stringify!(need_fullpath)
1314        )
1315    );
1316    assert_eq!(
1317        unsafe {
1318            &(*(::std::ptr::null::<retro_subsystem_rom_info>())).block_extract as *const _ as usize
1319        },
1320        17usize,
1321        concat!(
1322            "Offset of field: ",
1323            stringify!(retro_subsystem_rom_info),
1324            "::",
1325            stringify!(block_extract)
1326        )
1327    );
1328    assert_eq!(
1329        unsafe {
1330            &(*(::std::ptr::null::<retro_subsystem_rom_info>())).required as *const _ as usize
1331        },
1332        18usize,
1333        concat!(
1334            "Offset of field: ",
1335            stringify!(retro_subsystem_rom_info),
1336            "::",
1337            stringify!(required)
1338        )
1339    );
1340    assert_eq!(
1341        unsafe { &(*(::std::ptr::null::<retro_subsystem_rom_info>())).memory as *const _ as usize },
1342        24usize,
1343        concat!(
1344            "Offset of field: ",
1345            stringify!(retro_subsystem_rom_info),
1346            "::",
1347            stringify!(memory)
1348        )
1349    );
1350    assert_eq!(
1351        unsafe {
1352            &(*(::std::ptr::null::<retro_subsystem_rom_info>())).num_memory as *const _ as usize
1353        },
1354        32usize,
1355        concat!(
1356            "Offset of field: ",
1357            stringify!(retro_subsystem_rom_info),
1358            "::",
1359            stringify!(num_memory)
1360        )
1361    );
1362}
1363#[repr(C)]
1364#[derive(Debug, Copy, Clone)]
1365pub struct retro_subsystem_info {
1366    pub desc: *const ::std::os::raw::c_char,
1367    pub ident: *const ::std::os::raw::c_char,
1368    pub roms: *const retro_subsystem_rom_info,
1369    pub num_roms: ::std::os::raw::c_uint,
1370    pub id: ::std::os::raw::c_uint,
1371}
1372#[test]
1373fn bindgen_test_layout_retro_subsystem_info() {
1374    assert_eq!(
1375        ::std::mem::size_of::<retro_subsystem_info>(),
1376        32usize,
1377        concat!("Size of: ", stringify!(retro_subsystem_info))
1378    );
1379    assert_eq!(
1380        ::std::mem::align_of::<retro_subsystem_info>(),
1381        8usize,
1382        concat!("Alignment of ", stringify!(retro_subsystem_info))
1383    );
1384    assert_eq!(
1385        unsafe { &(*(::std::ptr::null::<retro_subsystem_info>())).desc as *const _ as usize },
1386        0usize,
1387        concat!(
1388            "Offset of field: ",
1389            stringify!(retro_subsystem_info),
1390            "::",
1391            stringify!(desc)
1392        )
1393    );
1394    assert_eq!(
1395        unsafe { &(*(::std::ptr::null::<retro_subsystem_info>())).ident as *const _ as usize },
1396        8usize,
1397        concat!(
1398            "Offset of field: ",
1399            stringify!(retro_subsystem_info),
1400            "::",
1401            stringify!(ident)
1402        )
1403    );
1404    assert_eq!(
1405        unsafe { &(*(::std::ptr::null::<retro_subsystem_info>())).roms as *const _ as usize },
1406        16usize,
1407        concat!(
1408            "Offset of field: ",
1409            stringify!(retro_subsystem_info),
1410            "::",
1411            stringify!(roms)
1412        )
1413    );
1414    assert_eq!(
1415        unsafe { &(*(::std::ptr::null::<retro_subsystem_info>())).num_roms as *const _ as usize },
1416        24usize,
1417        concat!(
1418            "Offset of field: ",
1419            stringify!(retro_subsystem_info),
1420            "::",
1421            stringify!(num_roms)
1422        )
1423    );
1424    assert_eq!(
1425        unsafe { &(*(::std::ptr::null::<retro_subsystem_info>())).id as *const _ as usize },
1426        28usize,
1427        concat!(
1428            "Offset of field: ",
1429            stringify!(retro_subsystem_info),
1430            "::",
1431            stringify!(id)
1432        )
1433    );
1434}
1435pub type retro_proc_address_t = ::std::option::Option<unsafe extern "C" fn()>;
1436pub type retro_get_proc_address_t = ::std::option::Option<
1437    unsafe extern "C" fn(sym: *const ::std::os::raw::c_char) -> retro_proc_address_t,
1438>;
1439#[repr(C)]
1440#[derive(Debug, Copy, Clone)]
1441pub struct retro_get_proc_address_interface {
1442    pub get_proc_address: retro_get_proc_address_t,
1443}
1444#[test]
1445fn bindgen_test_layout_retro_get_proc_address_interface() {
1446    assert_eq!(
1447        ::std::mem::size_of::<retro_get_proc_address_interface>(),
1448        8usize,
1449        concat!("Size of: ", stringify!(retro_get_proc_address_interface))
1450    );
1451    assert_eq!(
1452        ::std::mem::align_of::<retro_get_proc_address_interface>(),
1453        8usize,
1454        concat!(
1455            "Alignment of ",
1456            stringify!(retro_get_proc_address_interface)
1457        )
1458    );
1459    assert_eq!(
1460        unsafe {
1461            &(*(::std::ptr::null::<retro_get_proc_address_interface>())).get_proc_address
1462                as *const _ as usize
1463        },
1464        0usize,
1465        concat!(
1466            "Offset of field: ",
1467            stringify!(retro_get_proc_address_interface),
1468            "::",
1469            stringify!(get_proc_address)
1470        )
1471    );
1472}
1473pub const retro_log_level_RETRO_LOG_DEBUG: retro_log_level = 0;
1474pub const retro_log_level_RETRO_LOG_INFO: retro_log_level = 1;
1475pub const retro_log_level_RETRO_LOG_WARN: retro_log_level = 2;
1476pub const retro_log_level_RETRO_LOG_ERROR: retro_log_level = 3;
1477pub const retro_log_level_RETRO_LOG_DUMMY: retro_log_level = 2147483647;
1478pub type retro_log_level = ::std::os::raw::c_uint;
1479pub type retro_log_printf_t = ::std::option::Option<
1480    unsafe extern "C" fn(level: retro_log_level, fmt: *const ::std::os::raw::c_char, ...),
1481>;
1482#[repr(C)]
1483#[derive(Debug, Copy, Clone)]
1484pub struct retro_log_callback {
1485    pub log: retro_log_printf_t,
1486}
1487#[test]
1488fn bindgen_test_layout_retro_log_callback() {
1489    assert_eq!(
1490        ::std::mem::size_of::<retro_log_callback>(),
1491        8usize,
1492        concat!("Size of: ", stringify!(retro_log_callback))
1493    );
1494    assert_eq!(
1495        ::std::mem::align_of::<retro_log_callback>(),
1496        8usize,
1497        concat!("Alignment of ", stringify!(retro_log_callback))
1498    );
1499    assert_eq!(
1500        unsafe { &(*(::std::ptr::null::<retro_log_callback>())).log as *const _ as usize },
1501        0usize,
1502        concat!(
1503            "Offset of field: ",
1504            stringify!(retro_log_callback),
1505            "::",
1506            stringify!(log)
1507        )
1508    );
1509}
1510pub type retro_perf_tick_t = u64;
1511pub type retro_time_t = i64;
1512#[repr(C)]
1513#[derive(Debug, Copy, Clone)]
1514pub struct retro_perf_counter {
1515    pub ident: *const ::std::os::raw::c_char,
1516    pub start: retro_perf_tick_t,
1517    pub total: retro_perf_tick_t,
1518    pub call_cnt: retro_perf_tick_t,
1519    pub registered: bool,
1520}
1521#[test]
1522fn bindgen_test_layout_retro_perf_counter() {
1523    assert_eq!(
1524        ::std::mem::size_of::<retro_perf_counter>(),
1525        40usize,
1526        concat!("Size of: ", stringify!(retro_perf_counter))
1527    );
1528    assert_eq!(
1529        ::std::mem::align_of::<retro_perf_counter>(),
1530        8usize,
1531        concat!("Alignment of ", stringify!(retro_perf_counter))
1532    );
1533    assert_eq!(
1534        unsafe { &(*(::std::ptr::null::<retro_perf_counter>())).ident as *const _ as usize },
1535        0usize,
1536        concat!(
1537            "Offset of field: ",
1538            stringify!(retro_perf_counter),
1539            "::",
1540            stringify!(ident)
1541        )
1542    );
1543    assert_eq!(
1544        unsafe { &(*(::std::ptr::null::<retro_perf_counter>())).start as *const _ as usize },
1545        8usize,
1546        concat!(
1547            "Offset of field: ",
1548            stringify!(retro_perf_counter),
1549            "::",
1550            stringify!(start)
1551        )
1552    );
1553    assert_eq!(
1554        unsafe { &(*(::std::ptr::null::<retro_perf_counter>())).total as *const _ as usize },
1555        16usize,
1556        concat!(
1557            "Offset of field: ",
1558            stringify!(retro_perf_counter),
1559            "::",
1560            stringify!(total)
1561        )
1562    );
1563    assert_eq!(
1564        unsafe { &(*(::std::ptr::null::<retro_perf_counter>())).call_cnt as *const _ as usize },
1565        24usize,
1566        concat!(
1567            "Offset of field: ",
1568            stringify!(retro_perf_counter),
1569            "::",
1570            stringify!(call_cnt)
1571        )
1572    );
1573    assert_eq!(
1574        unsafe { &(*(::std::ptr::null::<retro_perf_counter>())).registered as *const _ as usize },
1575        32usize,
1576        concat!(
1577            "Offset of field: ",
1578            stringify!(retro_perf_counter),
1579            "::",
1580            stringify!(registered)
1581        )
1582    );
1583}
1584pub type retro_perf_get_time_usec_t = ::std::option::Option<unsafe extern "C" fn() -> retro_time_t>;
1585pub type retro_perf_get_counter_t =
1586    ::std::option::Option<unsafe extern "C" fn() -> retro_perf_tick_t>;
1587pub type retro_get_cpu_features_t = ::std::option::Option<unsafe extern "C" fn() -> u64>;
1588pub type retro_perf_log_t = ::std::option::Option<unsafe extern "C" fn()>;
1589pub type retro_perf_register_t =
1590    ::std::option::Option<unsafe extern "C" fn(counter: *mut retro_perf_counter)>;
1591pub type retro_perf_start_t =
1592    ::std::option::Option<unsafe extern "C" fn(counter: *mut retro_perf_counter)>;
1593pub type retro_perf_stop_t =
1594    ::std::option::Option<unsafe extern "C" fn(counter: *mut retro_perf_counter)>;
1595#[repr(C)]
1596#[derive(Debug, Copy, Clone)]
1597pub struct retro_perf_callback {
1598    pub get_time_usec: retro_perf_get_time_usec_t,
1599    pub get_cpu_features: retro_get_cpu_features_t,
1600    pub get_perf_counter: retro_perf_get_counter_t,
1601    pub perf_register: retro_perf_register_t,
1602    pub perf_start: retro_perf_start_t,
1603    pub perf_stop: retro_perf_stop_t,
1604    pub perf_log: retro_perf_log_t,
1605}
1606#[test]
1607fn bindgen_test_layout_retro_perf_callback() {
1608    assert_eq!(
1609        ::std::mem::size_of::<retro_perf_callback>(),
1610        56usize,
1611        concat!("Size of: ", stringify!(retro_perf_callback))
1612    );
1613    assert_eq!(
1614        ::std::mem::align_of::<retro_perf_callback>(),
1615        8usize,
1616        concat!("Alignment of ", stringify!(retro_perf_callback))
1617    );
1618    assert_eq!(
1619        unsafe {
1620            &(*(::std::ptr::null::<retro_perf_callback>())).get_time_usec as *const _ as usize
1621        },
1622        0usize,
1623        concat!(
1624            "Offset of field: ",
1625            stringify!(retro_perf_callback),
1626            "::",
1627            stringify!(get_time_usec)
1628        )
1629    );
1630    assert_eq!(
1631        unsafe {
1632            &(*(::std::ptr::null::<retro_perf_callback>())).get_cpu_features as *const _ as usize
1633        },
1634        8usize,
1635        concat!(
1636            "Offset of field: ",
1637            stringify!(retro_perf_callback),
1638            "::",
1639            stringify!(get_cpu_features)
1640        )
1641    );
1642    assert_eq!(
1643        unsafe {
1644            &(*(::std::ptr::null::<retro_perf_callback>())).get_perf_counter as *const _ as usize
1645        },
1646        16usize,
1647        concat!(
1648            "Offset of field: ",
1649            stringify!(retro_perf_callback),
1650            "::",
1651            stringify!(get_perf_counter)
1652        )
1653    );
1654    assert_eq!(
1655        unsafe {
1656            &(*(::std::ptr::null::<retro_perf_callback>())).perf_register as *const _ as usize
1657        },
1658        24usize,
1659        concat!(
1660            "Offset of field: ",
1661            stringify!(retro_perf_callback),
1662            "::",
1663            stringify!(perf_register)
1664        )
1665    );
1666    assert_eq!(
1667        unsafe { &(*(::std::ptr::null::<retro_perf_callback>())).perf_start as *const _ as usize },
1668        32usize,
1669        concat!(
1670            "Offset of field: ",
1671            stringify!(retro_perf_callback),
1672            "::",
1673            stringify!(perf_start)
1674        )
1675    );
1676    assert_eq!(
1677        unsafe { &(*(::std::ptr::null::<retro_perf_callback>())).perf_stop as *const _ as usize },
1678        40usize,
1679        concat!(
1680            "Offset of field: ",
1681            stringify!(retro_perf_callback),
1682            "::",
1683            stringify!(perf_stop)
1684        )
1685    );
1686    assert_eq!(
1687        unsafe { &(*(::std::ptr::null::<retro_perf_callback>())).perf_log as *const _ as usize },
1688        48usize,
1689        concat!(
1690            "Offset of field: ",
1691            stringify!(retro_perf_callback),
1692            "::",
1693            stringify!(perf_log)
1694        )
1695    );
1696}
1697pub const retro_sensor_action_RETRO_SENSOR_ACCELEROMETER_ENABLE: retro_sensor_action = 0;
1698pub const retro_sensor_action_RETRO_SENSOR_ACCELEROMETER_DISABLE: retro_sensor_action = 1;
1699pub const retro_sensor_action_RETRO_SENSOR_GYROSCOPE_ENABLE: retro_sensor_action = 2;
1700pub const retro_sensor_action_RETRO_SENSOR_GYROSCOPE_DISABLE: retro_sensor_action = 3;
1701pub const retro_sensor_action_RETRO_SENSOR_ILLUMINANCE_ENABLE: retro_sensor_action = 4;
1702pub const retro_sensor_action_RETRO_SENSOR_ILLUMINANCE_DISABLE: retro_sensor_action = 5;
1703pub const retro_sensor_action_RETRO_SENSOR_DUMMY: retro_sensor_action = 2147483647;
1704pub type retro_sensor_action = ::std::os::raw::c_uint;
1705pub type retro_set_sensor_state_t = ::std::option::Option<
1706    unsafe extern "C" fn(
1707        port: ::std::os::raw::c_uint,
1708        action: retro_sensor_action,
1709        rate: ::std::os::raw::c_uint,
1710    ) -> bool,
1711>;
1712pub type retro_sensor_get_input_t = ::std::option::Option<
1713    unsafe extern "C" fn(port: ::std::os::raw::c_uint, id: ::std::os::raw::c_uint) -> f32,
1714>;
1715#[repr(C)]
1716#[derive(Debug, Copy, Clone)]
1717pub struct retro_sensor_interface {
1718    pub set_sensor_state: retro_set_sensor_state_t,
1719    pub get_sensor_input: retro_sensor_get_input_t,
1720}
1721#[test]
1722fn bindgen_test_layout_retro_sensor_interface() {
1723    assert_eq!(
1724        ::std::mem::size_of::<retro_sensor_interface>(),
1725        16usize,
1726        concat!("Size of: ", stringify!(retro_sensor_interface))
1727    );
1728    assert_eq!(
1729        ::std::mem::align_of::<retro_sensor_interface>(),
1730        8usize,
1731        concat!("Alignment of ", stringify!(retro_sensor_interface))
1732    );
1733    assert_eq!(
1734        unsafe {
1735            &(*(::std::ptr::null::<retro_sensor_interface>())).set_sensor_state as *const _ as usize
1736        },
1737        0usize,
1738        concat!(
1739            "Offset of field: ",
1740            stringify!(retro_sensor_interface),
1741            "::",
1742            stringify!(set_sensor_state)
1743        )
1744    );
1745    assert_eq!(
1746        unsafe {
1747            &(*(::std::ptr::null::<retro_sensor_interface>())).get_sensor_input as *const _ as usize
1748        },
1749        8usize,
1750        concat!(
1751            "Offset of field: ",
1752            stringify!(retro_sensor_interface),
1753            "::",
1754            stringify!(get_sensor_input)
1755        )
1756    );
1757}
1758pub const retro_camera_buffer_RETRO_CAMERA_BUFFER_OPENGL_TEXTURE: retro_camera_buffer = 0;
1759pub const retro_camera_buffer_RETRO_CAMERA_BUFFER_RAW_FRAMEBUFFER: retro_camera_buffer = 1;
1760pub const retro_camera_buffer_RETRO_CAMERA_BUFFER_DUMMY: retro_camera_buffer = 2147483647;
1761pub type retro_camera_buffer = ::std::os::raw::c_uint;
1762pub type retro_camera_start_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
1763pub type retro_camera_stop_t = ::std::option::Option<unsafe extern "C" fn()>;
1764pub type retro_camera_lifetime_status_t = ::std::option::Option<unsafe extern "C" fn()>;
1765pub type retro_camera_frame_raw_framebuffer_t = ::std::option::Option<
1766    unsafe extern "C" fn(
1767        buffer: *const u32,
1768        width: ::std::os::raw::c_uint,
1769        height: ::std::os::raw::c_uint,
1770        pitch: size_t,
1771    ),
1772>;
1773pub type retro_camera_frame_opengl_texture_t = ::std::option::Option<
1774    unsafe extern "C" fn(
1775        texture_id: ::std::os::raw::c_uint,
1776        texture_target: ::std::os::raw::c_uint,
1777        affine: *const f32,
1778    ),
1779>;
1780#[repr(C)]
1781#[derive(Debug, Copy, Clone)]
1782pub struct retro_camera_callback {
1783    pub caps: u64,
1784    pub width: ::std::os::raw::c_uint,
1785    pub height: ::std::os::raw::c_uint,
1786    pub start: retro_camera_start_t,
1787    pub stop: retro_camera_stop_t,
1788    pub frame_raw_framebuffer: retro_camera_frame_raw_framebuffer_t,
1789    pub frame_opengl_texture: retro_camera_frame_opengl_texture_t,
1790    pub initialized: retro_camera_lifetime_status_t,
1791    pub deinitialized: retro_camera_lifetime_status_t,
1792}
1793#[test]
1794fn bindgen_test_layout_retro_camera_callback() {
1795    assert_eq!(
1796        ::std::mem::size_of::<retro_camera_callback>(),
1797        64usize,
1798        concat!("Size of: ", stringify!(retro_camera_callback))
1799    );
1800    assert_eq!(
1801        ::std::mem::align_of::<retro_camera_callback>(),
1802        8usize,
1803        concat!("Alignment of ", stringify!(retro_camera_callback))
1804    );
1805    assert_eq!(
1806        unsafe { &(*(::std::ptr::null::<retro_camera_callback>())).caps as *const _ as usize },
1807        0usize,
1808        concat!(
1809            "Offset of field: ",
1810            stringify!(retro_camera_callback),
1811            "::",
1812            stringify!(caps)
1813        )
1814    );
1815    assert_eq!(
1816        unsafe { &(*(::std::ptr::null::<retro_camera_callback>())).width as *const _ as usize },
1817        8usize,
1818        concat!(
1819            "Offset of field: ",
1820            stringify!(retro_camera_callback),
1821            "::",
1822            stringify!(width)
1823        )
1824    );
1825    assert_eq!(
1826        unsafe { &(*(::std::ptr::null::<retro_camera_callback>())).height as *const _ as usize },
1827        12usize,
1828        concat!(
1829            "Offset of field: ",
1830            stringify!(retro_camera_callback),
1831            "::",
1832            stringify!(height)
1833        )
1834    );
1835    assert_eq!(
1836        unsafe { &(*(::std::ptr::null::<retro_camera_callback>())).start as *const _ as usize },
1837        16usize,
1838        concat!(
1839            "Offset of field: ",
1840            stringify!(retro_camera_callback),
1841            "::",
1842            stringify!(start)
1843        )
1844    );
1845    assert_eq!(
1846        unsafe { &(*(::std::ptr::null::<retro_camera_callback>())).stop as *const _ as usize },
1847        24usize,
1848        concat!(
1849            "Offset of field: ",
1850            stringify!(retro_camera_callback),
1851            "::",
1852            stringify!(stop)
1853        )
1854    );
1855    assert_eq!(
1856        unsafe {
1857            &(*(::std::ptr::null::<retro_camera_callback>())).frame_raw_framebuffer as *const _
1858                as usize
1859        },
1860        32usize,
1861        concat!(
1862            "Offset of field: ",
1863            stringify!(retro_camera_callback),
1864            "::",
1865            stringify!(frame_raw_framebuffer)
1866        )
1867    );
1868    assert_eq!(
1869        unsafe {
1870            &(*(::std::ptr::null::<retro_camera_callback>())).frame_opengl_texture as *const _
1871                as usize
1872        },
1873        40usize,
1874        concat!(
1875            "Offset of field: ",
1876            stringify!(retro_camera_callback),
1877            "::",
1878            stringify!(frame_opengl_texture)
1879        )
1880    );
1881    assert_eq!(
1882        unsafe {
1883            &(*(::std::ptr::null::<retro_camera_callback>())).initialized as *const _ as usize
1884        },
1885        48usize,
1886        concat!(
1887            "Offset of field: ",
1888            stringify!(retro_camera_callback),
1889            "::",
1890            stringify!(initialized)
1891        )
1892    );
1893    assert_eq!(
1894        unsafe {
1895            &(*(::std::ptr::null::<retro_camera_callback>())).deinitialized as *const _ as usize
1896        },
1897        56usize,
1898        concat!(
1899            "Offset of field: ",
1900            stringify!(retro_camera_callback),
1901            "::",
1902            stringify!(deinitialized)
1903        )
1904    );
1905}
1906pub type retro_location_set_interval_t = ::std::option::Option<
1907    unsafe extern "C" fn(
1908        interval_ms: ::std::os::raw::c_uint,
1909        interval_distance: ::std::os::raw::c_uint,
1910    ),
1911>;
1912pub type retro_location_start_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
1913pub type retro_location_stop_t = ::std::option::Option<unsafe extern "C" fn()>;
1914pub type retro_location_get_position_t = ::std::option::Option<
1915    unsafe extern "C" fn(
1916        lat: *mut f64,
1917        lon: *mut f64,
1918        horiz_accuracy: *mut f64,
1919        vert_accuracy: *mut f64,
1920    ) -> bool,
1921>;
1922pub type retro_location_lifetime_status_t = ::std::option::Option<unsafe extern "C" fn()>;
1923#[repr(C)]
1924#[derive(Debug, Copy, Clone)]
1925pub struct retro_location_callback {
1926    pub start: retro_location_start_t,
1927    pub stop: retro_location_stop_t,
1928    pub get_position: retro_location_get_position_t,
1929    pub set_interval: retro_location_set_interval_t,
1930    pub initialized: retro_location_lifetime_status_t,
1931    pub deinitialized: retro_location_lifetime_status_t,
1932}
1933#[test]
1934fn bindgen_test_layout_retro_location_callback() {
1935    assert_eq!(
1936        ::std::mem::size_of::<retro_location_callback>(),
1937        48usize,
1938        concat!("Size of: ", stringify!(retro_location_callback))
1939    );
1940    assert_eq!(
1941        ::std::mem::align_of::<retro_location_callback>(),
1942        8usize,
1943        concat!("Alignment of ", stringify!(retro_location_callback))
1944    );
1945    assert_eq!(
1946        unsafe { &(*(::std::ptr::null::<retro_location_callback>())).start as *const _ as usize },
1947        0usize,
1948        concat!(
1949            "Offset of field: ",
1950            stringify!(retro_location_callback),
1951            "::",
1952            stringify!(start)
1953        )
1954    );
1955    assert_eq!(
1956        unsafe { &(*(::std::ptr::null::<retro_location_callback>())).stop as *const _ as usize },
1957        8usize,
1958        concat!(
1959            "Offset of field: ",
1960            stringify!(retro_location_callback),
1961            "::",
1962            stringify!(stop)
1963        )
1964    );
1965    assert_eq!(
1966        unsafe {
1967            &(*(::std::ptr::null::<retro_location_callback>())).get_position as *const _ as usize
1968        },
1969        16usize,
1970        concat!(
1971            "Offset of field: ",
1972            stringify!(retro_location_callback),
1973            "::",
1974            stringify!(get_position)
1975        )
1976    );
1977    assert_eq!(
1978        unsafe {
1979            &(*(::std::ptr::null::<retro_location_callback>())).set_interval as *const _ as usize
1980        },
1981        24usize,
1982        concat!(
1983            "Offset of field: ",
1984            stringify!(retro_location_callback),
1985            "::",
1986            stringify!(set_interval)
1987        )
1988    );
1989    assert_eq!(
1990        unsafe {
1991            &(*(::std::ptr::null::<retro_location_callback>())).initialized as *const _ as usize
1992        },
1993        32usize,
1994        concat!(
1995            "Offset of field: ",
1996            stringify!(retro_location_callback),
1997            "::",
1998            stringify!(initialized)
1999        )
2000    );
2001    assert_eq!(
2002        unsafe {
2003            &(*(::std::ptr::null::<retro_location_callback>())).deinitialized as *const _ as usize
2004        },
2005        40usize,
2006        concat!(
2007            "Offset of field: ",
2008            stringify!(retro_location_callback),
2009            "::",
2010            stringify!(deinitialized)
2011        )
2012    );
2013}
2014pub const retro_rumble_effect_RETRO_RUMBLE_STRONG: retro_rumble_effect = 0;
2015pub const retro_rumble_effect_RETRO_RUMBLE_WEAK: retro_rumble_effect = 1;
2016pub const retro_rumble_effect_RETRO_RUMBLE_DUMMY: retro_rumble_effect = 2147483647;
2017pub type retro_rumble_effect = ::std::os::raw::c_uint;
2018pub type retro_set_rumble_state_t = ::std::option::Option<
2019    unsafe extern "C" fn(
2020        port: ::std::os::raw::c_uint,
2021        effect: retro_rumble_effect,
2022        strength: u16,
2023    ) -> bool,
2024>;
2025#[repr(C)]
2026#[derive(Debug, Copy, Clone)]
2027pub struct retro_rumble_interface {
2028    pub set_rumble_state: retro_set_rumble_state_t,
2029}
2030#[test]
2031fn bindgen_test_layout_retro_rumble_interface() {
2032    assert_eq!(
2033        ::std::mem::size_of::<retro_rumble_interface>(),
2034        8usize,
2035        concat!("Size of: ", stringify!(retro_rumble_interface))
2036    );
2037    assert_eq!(
2038        ::std::mem::align_of::<retro_rumble_interface>(),
2039        8usize,
2040        concat!("Alignment of ", stringify!(retro_rumble_interface))
2041    );
2042    assert_eq!(
2043        unsafe {
2044            &(*(::std::ptr::null::<retro_rumble_interface>())).set_rumble_state as *const _ as usize
2045        },
2046        0usize,
2047        concat!(
2048            "Offset of field: ",
2049            stringify!(retro_rumble_interface),
2050            "::",
2051            stringify!(set_rumble_state)
2052        )
2053    );
2054}
2055pub type retro_audio_callback_t = ::std::option::Option<unsafe extern "C" fn()>;
2056pub type retro_audio_set_state_callback_t =
2057    ::std::option::Option<unsafe extern "C" fn(enabled: bool)>;
2058#[repr(C)]
2059#[derive(Debug, Copy, Clone)]
2060pub struct retro_audio_callback {
2061    pub callback: retro_audio_callback_t,
2062    pub set_state: retro_audio_set_state_callback_t,
2063}
2064#[test]
2065fn bindgen_test_layout_retro_audio_callback() {
2066    assert_eq!(
2067        ::std::mem::size_of::<retro_audio_callback>(),
2068        16usize,
2069        concat!("Size of: ", stringify!(retro_audio_callback))
2070    );
2071    assert_eq!(
2072        ::std::mem::align_of::<retro_audio_callback>(),
2073        8usize,
2074        concat!("Alignment of ", stringify!(retro_audio_callback))
2075    );
2076    assert_eq!(
2077        unsafe { &(*(::std::ptr::null::<retro_audio_callback>())).callback as *const _ as usize },
2078        0usize,
2079        concat!(
2080            "Offset of field: ",
2081            stringify!(retro_audio_callback),
2082            "::",
2083            stringify!(callback)
2084        )
2085    );
2086    assert_eq!(
2087        unsafe { &(*(::std::ptr::null::<retro_audio_callback>())).set_state as *const _ as usize },
2088        8usize,
2089        concat!(
2090            "Offset of field: ",
2091            stringify!(retro_audio_callback),
2092            "::",
2093            stringify!(set_state)
2094        )
2095    );
2096}
2097pub type retro_usec_t = i64;
2098pub type retro_frame_time_callback_t =
2099    ::std::option::Option<unsafe extern "C" fn(usec: retro_usec_t)>;
2100#[repr(C)]
2101#[derive(Debug, Copy, Clone)]
2102pub struct retro_frame_time_callback {
2103    pub callback: retro_frame_time_callback_t,
2104    pub reference: retro_usec_t,
2105}
2106#[test]
2107fn bindgen_test_layout_retro_frame_time_callback() {
2108    assert_eq!(
2109        ::std::mem::size_of::<retro_frame_time_callback>(),
2110        16usize,
2111        concat!("Size of: ", stringify!(retro_frame_time_callback))
2112    );
2113    assert_eq!(
2114        ::std::mem::align_of::<retro_frame_time_callback>(),
2115        8usize,
2116        concat!("Alignment of ", stringify!(retro_frame_time_callback))
2117    );
2118    assert_eq!(
2119        unsafe {
2120            &(*(::std::ptr::null::<retro_frame_time_callback>())).callback as *const _ as usize
2121        },
2122        0usize,
2123        concat!(
2124            "Offset of field: ",
2125            stringify!(retro_frame_time_callback),
2126            "::",
2127            stringify!(callback)
2128        )
2129    );
2130    assert_eq!(
2131        unsafe {
2132            &(*(::std::ptr::null::<retro_frame_time_callback>())).reference as *const _ as usize
2133        },
2134        8usize,
2135        concat!(
2136            "Offset of field: ",
2137            stringify!(retro_frame_time_callback),
2138            "::",
2139            stringify!(reference)
2140        )
2141    );
2142}
2143pub type retro_audio_buffer_status_callback_t = ::std::option::Option<
2144    unsafe extern "C" fn(active: bool, occupancy: ::std::os::raw::c_uint, underrun_likely: bool),
2145>;
2146#[repr(C)]
2147#[derive(Debug, Copy, Clone)]
2148pub struct retro_audio_buffer_status_callback {
2149    pub callback: retro_audio_buffer_status_callback_t,
2150}
2151#[test]
2152fn bindgen_test_layout_retro_audio_buffer_status_callback() {
2153    assert_eq!(
2154        ::std::mem::size_of::<retro_audio_buffer_status_callback>(),
2155        8usize,
2156        concat!("Size of: ", stringify!(retro_audio_buffer_status_callback))
2157    );
2158    assert_eq!(
2159        ::std::mem::align_of::<retro_audio_buffer_status_callback>(),
2160        8usize,
2161        concat!(
2162            "Alignment of ",
2163            stringify!(retro_audio_buffer_status_callback)
2164        )
2165    );
2166    assert_eq!(
2167        unsafe {
2168            &(*(::std::ptr::null::<retro_audio_buffer_status_callback>())).callback as *const _
2169                as usize
2170        },
2171        0usize,
2172        concat!(
2173            "Offset of field: ",
2174            stringify!(retro_audio_buffer_status_callback),
2175            "::",
2176            stringify!(callback)
2177        )
2178    );
2179}
2180pub type retro_hw_context_reset_t = ::std::option::Option<unsafe extern "C" fn()>;
2181pub type retro_hw_get_current_framebuffer_t =
2182    ::std::option::Option<unsafe extern "C" fn() -> usize>;
2183pub type retro_hw_get_proc_address_t = ::std::option::Option<
2184    unsafe extern "C" fn(sym: *const ::std::os::raw::c_char) -> retro_proc_address_t,
2185>;
2186pub const retro_hw_context_type_RETRO_HW_CONTEXT_NONE: retro_hw_context_type = 0;
2187pub const retro_hw_context_type_RETRO_HW_CONTEXT_OPENGL: retro_hw_context_type = 1;
2188pub const retro_hw_context_type_RETRO_HW_CONTEXT_OPENGLES2: retro_hw_context_type = 2;
2189pub const retro_hw_context_type_RETRO_HW_CONTEXT_OPENGL_CORE: retro_hw_context_type = 3;
2190pub const retro_hw_context_type_RETRO_HW_CONTEXT_OPENGLES3: retro_hw_context_type = 4;
2191pub const retro_hw_context_type_RETRO_HW_CONTEXT_OPENGLES_VERSION: retro_hw_context_type = 5;
2192pub const retro_hw_context_type_RETRO_HW_CONTEXT_VULKAN: retro_hw_context_type = 6;
2193pub const retro_hw_context_type_RETRO_HW_CONTEXT_DIRECT3D: retro_hw_context_type = 7;
2194pub const retro_hw_context_type_RETRO_HW_CONTEXT_DUMMY: retro_hw_context_type = 2147483647;
2195pub type retro_hw_context_type = ::std::os::raw::c_uint;
2196#[repr(C)]
2197#[derive(Debug, Copy, Clone)]
2198pub struct retro_hw_render_callback {
2199    pub context_type: retro_hw_context_type,
2200    pub context_reset: retro_hw_context_reset_t,
2201    pub get_current_framebuffer: retro_hw_get_current_framebuffer_t,
2202    pub get_proc_address: retro_hw_get_proc_address_t,
2203    pub depth: bool,
2204    pub stencil: bool,
2205    pub bottom_left_origin: bool,
2206    pub version_major: ::std::os::raw::c_uint,
2207    pub version_minor: ::std::os::raw::c_uint,
2208    pub cache_context: bool,
2209    pub context_destroy: retro_hw_context_reset_t,
2210    pub debug_context: bool,
2211}
2212#[test]
2213fn bindgen_test_layout_retro_hw_render_callback() {
2214    assert_eq!(
2215        ::std::mem::size_of::<retro_hw_render_callback>(),
2216        64usize,
2217        concat!("Size of: ", stringify!(retro_hw_render_callback))
2218    );
2219    assert_eq!(
2220        ::std::mem::align_of::<retro_hw_render_callback>(),
2221        8usize,
2222        concat!("Alignment of ", stringify!(retro_hw_render_callback))
2223    );
2224    assert_eq!(
2225        unsafe {
2226            &(*(::std::ptr::null::<retro_hw_render_callback>())).context_type as *const _ as usize
2227        },
2228        0usize,
2229        concat!(
2230            "Offset of field: ",
2231            stringify!(retro_hw_render_callback),
2232            "::",
2233            stringify!(context_type)
2234        )
2235    );
2236    assert_eq!(
2237        unsafe {
2238            &(*(::std::ptr::null::<retro_hw_render_callback>())).context_reset as *const _ as usize
2239        },
2240        8usize,
2241        concat!(
2242            "Offset of field: ",
2243            stringify!(retro_hw_render_callback),
2244            "::",
2245            stringify!(context_reset)
2246        )
2247    );
2248    assert_eq!(
2249        unsafe {
2250            &(*(::std::ptr::null::<retro_hw_render_callback>())).get_current_framebuffer as *const _
2251                as usize
2252        },
2253        16usize,
2254        concat!(
2255            "Offset of field: ",
2256            stringify!(retro_hw_render_callback),
2257            "::",
2258            stringify!(get_current_framebuffer)
2259        )
2260    );
2261    assert_eq!(
2262        unsafe {
2263            &(*(::std::ptr::null::<retro_hw_render_callback>())).get_proc_address as *const _
2264                as usize
2265        },
2266        24usize,
2267        concat!(
2268            "Offset of field: ",
2269            stringify!(retro_hw_render_callback),
2270            "::",
2271            stringify!(get_proc_address)
2272        )
2273    );
2274    assert_eq!(
2275        unsafe { &(*(::std::ptr::null::<retro_hw_render_callback>())).depth as *const _ as usize },
2276        32usize,
2277        concat!(
2278            "Offset of field: ",
2279            stringify!(retro_hw_render_callback),
2280            "::",
2281            stringify!(depth)
2282        )
2283    );
2284    assert_eq!(
2285        unsafe {
2286            &(*(::std::ptr::null::<retro_hw_render_callback>())).stencil as *const _ as usize
2287        },
2288        33usize,
2289        concat!(
2290            "Offset of field: ",
2291            stringify!(retro_hw_render_callback),
2292            "::",
2293            stringify!(stencil)
2294        )
2295    );
2296    assert_eq!(
2297        unsafe {
2298            &(*(::std::ptr::null::<retro_hw_render_callback>())).bottom_left_origin as *const _
2299                as usize
2300        },
2301        34usize,
2302        concat!(
2303            "Offset of field: ",
2304            stringify!(retro_hw_render_callback),
2305            "::",
2306            stringify!(bottom_left_origin)
2307        )
2308    );
2309    assert_eq!(
2310        unsafe {
2311            &(*(::std::ptr::null::<retro_hw_render_callback>())).version_major as *const _ as usize
2312        },
2313        36usize,
2314        concat!(
2315            "Offset of field: ",
2316            stringify!(retro_hw_render_callback),
2317            "::",
2318            stringify!(version_major)
2319        )
2320    );
2321    assert_eq!(
2322        unsafe {
2323            &(*(::std::ptr::null::<retro_hw_render_callback>())).version_minor as *const _ as usize
2324        },
2325        40usize,
2326        concat!(
2327            "Offset of field: ",
2328            stringify!(retro_hw_render_callback),
2329            "::",
2330            stringify!(version_minor)
2331        )
2332    );
2333    assert_eq!(
2334        unsafe {
2335            &(*(::std::ptr::null::<retro_hw_render_callback>())).cache_context as *const _ as usize
2336        },
2337        44usize,
2338        concat!(
2339            "Offset of field: ",
2340            stringify!(retro_hw_render_callback),
2341            "::",
2342            stringify!(cache_context)
2343        )
2344    );
2345    assert_eq!(
2346        unsafe {
2347            &(*(::std::ptr::null::<retro_hw_render_callback>())).context_destroy as *const _
2348                as usize
2349        },
2350        48usize,
2351        concat!(
2352            "Offset of field: ",
2353            stringify!(retro_hw_render_callback),
2354            "::",
2355            stringify!(context_destroy)
2356        )
2357    );
2358    assert_eq!(
2359        unsafe {
2360            &(*(::std::ptr::null::<retro_hw_render_callback>())).debug_context as *const _ as usize
2361        },
2362        56usize,
2363        concat!(
2364            "Offset of field: ",
2365            stringify!(retro_hw_render_callback),
2366            "::",
2367            stringify!(debug_context)
2368        )
2369    );
2370}
2371pub type retro_keyboard_event_t = ::std::option::Option<
2372    unsafe extern "C" fn(
2373        down: bool,
2374        keycode: ::std::os::raw::c_uint,
2375        character: u32,
2376        key_modifiers: u16,
2377    ),
2378>;
2379#[repr(C)]
2380#[derive(Debug, Copy, Clone)]
2381pub struct retro_keyboard_callback {
2382    pub callback: retro_keyboard_event_t,
2383}
2384#[test]
2385fn bindgen_test_layout_retro_keyboard_callback() {
2386    assert_eq!(
2387        ::std::mem::size_of::<retro_keyboard_callback>(),
2388        8usize,
2389        concat!("Size of: ", stringify!(retro_keyboard_callback))
2390    );
2391    assert_eq!(
2392        ::std::mem::align_of::<retro_keyboard_callback>(),
2393        8usize,
2394        concat!("Alignment of ", stringify!(retro_keyboard_callback))
2395    );
2396    assert_eq!(
2397        unsafe {
2398            &(*(::std::ptr::null::<retro_keyboard_callback>())).callback as *const _ as usize
2399        },
2400        0usize,
2401        concat!(
2402            "Offset of field: ",
2403            stringify!(retro_keyboard_callback),
2404            "::",
2405            stringify!(callback)
2406        )
2407    );
2408}
2409pub type retro_set_eject_state_t =
2410    ::std::option::Option<unsafe extern "C" fn(ejected: bool) -> bool>;
2411pub type retro_get_eject_state_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
2412pub type retro_get_image_index_t =
2413    ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_uint>;
2414pub type retro_set_image_index_t =
2415    ::std::option::Option<unsafe extern "C" fn(index: ::std::os::raw::c_uint) -> bool>;
2416pub type retro_get_num_images_t =
2417    ::std::option::Option<unsafe extern "C" fn() -> ::std::os::raw::c_uint>;
2418pub type retro_replace_image_index_t = ::std::option::Option<
2419    unsafe extern "C" fn(index: ::std::os::raw::c_uint, info: *const retro_game_info) -> bool,
2420>;
2421pub type retro_add_image_index_t = ::std::option::Option<unsafe extern "C" fn() -> bool>;
2422pub type retro_set_initial_image_t = ::std::option::Option<
2423    unsafe extern "C" fn(
2424        index: ::std::os::raw::c_uint,
2425        path: *const ::std::os::raw::c_char,
2426    ) -> bool,
2427>;
2428pub type retro_get_image_path_t = ::std::option::Option<
2429    unsafe extern "C" fn(
2430        index: ::std::os::raw::c_uint,
2431        path: *mut ::std::os::raw::c_char,
2432        len: size_t,
2433    ) -> bool,
2434>;
2435pub type retro_get_image_label_t = ::std::option::Option<
2436    unsafe extern "C" fn(
2437        index: ::std::os::raw::c_uint,
2438        label: *mut ::std::os::raw::c_char,
2439        len: size_t,
2440    ) -> bool,
2441>;
2442#[repr(C)]
2443#[derive(Debug, Copy, Clone)]
2444pub struct retro_disk_control_callback {
2445    pub set_eject_state: retro_set_eject_state_t,
2446    pub get_eject_state: retro_get_eject_state_t,
2447    pub get_image_index: retro_get_image_index_t,
2448    pub set_image_index: retro_set_image_index_t,
2449    pub get_num_images: retro_get_num_images_t,
2450    pub replace_image_index: retro_replace_image_index_t,
2451    pub add_image_index: retro_add_image_index_t,
2452}
2453#[test]
2454fn bindgen_test_layout_retro_disk_control_callback() {
2455    assert_eq!(
2456        ::std::mem::size_of::<retro_disk_control_callback>(),
2457        56usize,
2458        concat!("Size of: ", stringify!(retro_disk_control_callback))
2459    );
2460    assert_eq!(
2461        ::std::mem::align_of::<retro_disk_control_callback>(),
2462        8usize,
2463        concat!("Alignment of ", stringify!(retro_disk_control_callback))
2464    );
2465    assert_eq!(
2466        unsafe {
2467            &(*(::std::ptr::null::<retro_disk_control_callback>())).set_eject_state as *const _
2468                as usize
2469        },
2470        0usize,
2471        concat!(
2472            "Offset of field: ",
2473            stringify!(retro_disk_control_callback),
2474            "::",
2475            stringify!(set_eject_state)
2476        )
2477    );
2478    assert_eq!(
2479        unsafe {
2480            &(*(::std::ptr::null::<retro_disk_control_callback>())).get_eject_state as *const _
2481                as usize
2482        },
2483        8usize,
2484        concat!(
2485            "Offset of field: ",
2486            stringify!(retro_disk_control_callback),
2487            "::",
2488            stringify!(get_eject_state)
2489        )
2490    );
2491    assert_eq!(
2492        unsafe {
2493            &(*(::std::ptr::null::<retro_disk_control_callback>())).get_image_index as *const _
2494                as usize
2495        },
2496        16usize,
2497        concat!(
2498            "Offset of field: ",
2499            stringify!(retro_disk_control_callback),
2500            "::",
2501            stringify!(get_image_index)
2502        )
2503    );
2504    assert_eq!(
2505        unsafe {
2506            &(*(::std::ptr::null::<retro_disk_control_callback>())).set_image_index as *const _
2507                as usize
2508        },
2509        24usize,
2510        concat!(
2511            "Offset of field: ",
2512            stringify!(retro_disk_control_callback),
2513            "::",
2514            stringify!(set_image_index)
2515        )
2516    );
2517    assert_eq!(
2518        unsafe {
2519            &(*(::std::ptr::null::<retro_disk_control_callback>())).get_num_images as *const _
2520                as usize
2521        },
2522        32usize,
2523        concat!(
2524            "Offset of field: ",
2525            stringify!(retro_disk_control_callback),
2526            "::",
2527            stringify!(get_num_images)
2528        )
2529    );
2530    assert_eq!(
2531        unsafe {
2532            &(*(::std::ptr::null::<retro_disk_control_callback>())).replace_image_index as *const _
2533                as usize
2534        },
2535        40usize,
2536        concat!(
2537            "Offset of field: ",
2538            stringify!(retro_disk_control_callback),
2539            "::",
2540            stringify!(replace_image_index)
2541        )
2542    );
2543    assert_eq!(
2544        unsafe {
2545            &(*(::std::ptr::null::<retro_disk_control_callback>())).add_image_index as *const _
2546                as usize
2547        },
2548        48usize,
2549        concat!(
2550            "Offset of field: ",
2551            stringify!(retro_disk_control_callback),
2552            "::",
2553            stringify!(add_image_index)
2554        )
2555    );
2556}
2557#[repr(C)]
2558#[derive(Debug, Copy, Clone)]
2559pub struct retro_disk_control_ext_callback {
2560    pub set_eject_state: retro_set_eject_state_t,
2561    pub get_eject_state: retro_get_eject_state_t,
2562    pub get_image_index: retro_get_image_index_t,
2563    pub set_image_index: retro_set_image_index_t,
2564    pub get_num_images: retro_get_num_images_t,
2565    pub replace_image_index: retro_replace_image_index_t,
2566    pub add_image_index: retro_add_image_index_t,
2567    pub set_initial_image: retro_set_initial_image_t,
2568    pub get_image_path: retro_get_image_path_t,
2569    pub get_image_label: retro_get_image_label_t,
2570}
2571#[test]
2572fn bindgen_test_layout_retro_disk_control_ext_callback() {
2573    assert_eq!(
2574        ::std::mem::size_of::<retro_disk_control_ext_callback>(),
2575        80usize,
2576        concat!("Size of: ", stringify!(retro_disk_control_ext_callback))
2577    );
2578    assert_eq!(
2579        ::std::mem::align_of::<retro_disk_control_ext_callback>(),
2580        8usize,
2581        concat!("Alignment of ", stringify!(retro_disk_control_ext_callback))
2582    );
2583    assert_eq!(
2584        unsafe {
2585            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).set_eject_state as *const _
2586                as usize
2587        },
2588        0usize,
2589        concat!(
2590            "Offset of field: ",
2591            stringify!(retro_disk_control_ext_callback),
2592            "::",
2593            stringify!(set_eject_state)
2594        )
2595    );
2596    assert_eq!(
2597        unsafe {
2598            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).get_eject_state as *const _
2599                as usize
2600        },
2601        8usize,
2602        concat!(
2603            "Offset of field: ",
2604            stringify!(retro_disk_control_ext_callback),
2605            "::",
2606            stringify!(get_eject_state)
2607        )
2608    );
2609    assert_eq!(
2610        unsafe {
2611            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).get_image_index as *const _
2612                as usize
2613        },
2614        16usize,
2615        concat!(
2616            "Offset of field: ",
2617            stringify!(retro_disk_control_ext_callback),
2618            "::",
2619            stringify!(get_image_index)
2620        )
2621    );
2622    assert_eq!(
2623        unsafe {
2624            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).set_image_index as *const _
2625                as usize
2626        },
2627        24usize,
2628        concat!(
2629            "Offset of field: ",
2630            stringify!(retro_disk_control_ext_callback),
2631            "::",
2632            stringify!(set_image_index)
2633        )
2634    );
2635    assert_eq!(
2636        unsafe {
2637            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).get_num_images as *const _
2638                as usize
2639        },
2640        32usize,
2641        concat!(
2642            "Offset of field: ",
2643            stringify!(retro_disk_control_ext_callback),
2644            "::",
2645            stringify!(get_num_images)
2646        )
2647    );
2648    assert_eq!(
2649        unsafe {
2650            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).replace_image_index
2651                as *const _ as usize
2652        },
2653        40usize,
2654        concat!(
2655            "Offset of field: ",
2656            stringify!(retro_disk_control_ext_callback),
2657            "::",
2658            stringify!(replace_image_index)
2659        )
2660    );
2661    assert_eq!(
2662        unsafe {
2663            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).add_image_index as *const _
2664                as usize
2665        },
2666        48usize,
2667        concat!(
2668            "Offset of field: ",
2669            stringify!(retro_disk_control_ext_callback),
2670            "::",
2671            stringify!(add_image_index)
2672        )
2673    );
2674    assert_eq!(
2675        unsafe {
2676            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).set_initial_image
2677                as *const _ as usize
2678        },
2679        56usize,
2680        concat!(
2681            "Offset of field: ",
2682            stringify!(retro_disk_control_ext_callback),
2683            "::",
2684            stringify!(set_initial_image)
2685        )
2686    );
2687    assert_eq!(
2688        unsafe {
2689            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).get_image_path as *const _
2690                as usize
2691        },
2692        64usize,
2693        concat!(
2694            "Offset of field: ",
2695            stringify!(retro_disk_control_ext_callback),
2696            "::",
2697            stringify!(get_image_path)
2698        )
2699    );
2700    assert_eq!(
2701        unsafe {
2702            &(*(::std::ptr::null::<retro_disk_control_ext_callback>())).get_image_label as *const _
2703                as usize
2704        },
2705        72usize,
2706        concat!(
2707            "Offset of field: ",
2708            stringify!(retro_disk_control_ext_callback),
2709            "::",
2710            stringify!(get_image_label)
2711        )
2712    );
2713}
2714pub const retro_pixel_format_RETRO_PIXEL_FORMAT_0RGB1555: retro_pixel_format = 0;
2715pub const retro_pixel_format_RETRO_PIXEL_FORMAT_XRGB8888: retro_pixel_format = 1;
2716pub const retro_pixel_format_RETRO_PIXEL_FORMAT_RGB565: retro_pixel_format = 2;
2717pub const retro_pixel_format_RETRO_PIXEL_FORMAT_UNKNOWN: retro_pixel_format = 2147483647;
2718pub type retro_pixel_format = ::std::os::raw::c_uint;
2719#[repr(C)]
2720#[derive(Debug, Copy, Clone)]
2721pub struct retro_message {
2722    pub msg: *const ::std::os::raw::c_char,
2723    pub frames: ::std::os::raw::c_uint,
2724}
2725#[test]
2726fn bindgen_test_layout_retro_message() {
2727    assert_eq!(
2728        ::std::mem::size_of::<retro_message>(),
2729        16usize,
2730        concat!("Size of: ", stringify!(retro_message))
2731    );
2732    assert_eq!(
2733        ::std::mem::align_of::<retro_message>(),
2734        8usize,
2735        concat!("Alignment of ", stringify!(retro_message))
2736    );
2737    assert_eq!(
2738        unsafe { &(*(::std::ptr::null::<retro_message>())).msg as *const _ as usize },
2739        0usize,
2740        concat!(
2741            "Offset of field: ",
2742            stringify!(retro_message),
2743            "::",
2744            stringify!(msg)
2745        )
2746    );
2747    assert_eq!(
2748        unsafe { &(*(::std::ptr::null::<retro_message>())).frames as *const _ as usize },
2749        8usize,
2750        concat!(
2751            "Offset of field: ",
2752            stringify!(retro_message),
2753            "::",
2754            stringify!(frames)
2755        )
2756    );
2757}
2758pub const retro_message_target_RETRO_MESSAGE_TARGET_ALL: retro_message_target = 0;
2759pub const retro_message_target_RETRO_MESSAGE_TARGET_OSD: retro_message_target = 1;
2760pub const retro_message_target_RETRO_MESSAGE_TARGET_LOG: retro_message_target = 2;
2761pub type retro_message_target = ::std::os::raw::c_uint;
2762pub const retro_message_type_RETRO_MESSAGE_TYPE_NOTIFICATION: retro_message_type = 0;
2763pub const retro_message_type_RETRO_MESSAGE_TYPE_NOTIFICATION_ALT: retro_message_type = 1;
2764pub const retro_message_type_RETRO_MESSAGE_TYPE_STATUS: retro_message_type = 2;
2765pub const retro_message_type_RETRO_MESSAGE_TYPE_PROGRESS: retro_message_type = 3;
2766pub type retro_message_type = ::std::os::raw::c_uint;
2767#[repr(C)]
2768#[derive(Debug, Copy, Clone)]
2769pub struct retro_message_ext {
2770    pub msg: *const ::std::os::raw::c_char,
2771    pub duration: ::std::os::raw::c_uint,
2772    pub priority: ::std::os::raw::c_uint,
2773    pub level: retro_log_level,
2774    pub target: retro_message_target,
2775    pub type_: retro_message_type,
2776    pub progress: i8,
2777}
2778#[test]
2779fn bindgen_test_layout_retro_message_ext() {
2780    assert_eq!(
2781        ::std::mem::size_of::<retro_message_ext>(),
2782        32usize,
2783        concat!("Size of: ", stringify!(retro_message_ext))
2784    );
2785    assert_eq!(
2786        ::std::mem::align_of::<retro_message_ext>(),
2787        8usize,
2788        concat!("Alignment of ", stringify!(retro_message_ext))
2789    );
2790    assert_eq!(
2791        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).msg as *const _ as usize },
2792        0usize,
2793        concat!(
2794            "Offset of field: ",
2795            stringify!(retro_message_ext),
2796            "::",
2797            stringify!(msg)
2798        )
2799    );
2800    assert_eq!(
2801        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).duration as *const _ as usize },
2802        8usize,
2803        concat!(
2804            "Offset of field: ",
2805            stringify!(retro_message_ext),
2806            "::",
2807            stringify!(duration)
2808        )
2809    );
2810    assert_eq!(
2811        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).priority as *const _ as usize },
2812        12usize,
2813        concat!(
2814            "Offset of field: ",
2815            stringify!(retro_message_ext),
2816            "::",
2817            stringify!(priority)
2818        )
2819    );
2820    assert_eq!(
2821        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).level as *const _ as usize },
2822        16usize,
2823        concat!(
2824            "Offset of field: ",
2825            stringify!(retro_message_ext),
2826            "::",
2827            stringify!(level)
2828        )
2829    );
2830    assert_eq!(
2831        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).target as *const _ as usize },
2832        20usize,
2833        concat!(
2834            "Offset of field: ",
2835            stringify!(retro_message_ext),
2836            "::",
2837            stringify!(target)
2838        )
2839    );
2840    assert_eq!(
2841        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).type_ as *const _ as usize },
2842        24usize,
2843        concat!(
2844            "Offset of field: ",
2845            stringify!(retro_message_ext),
2846            "::",
2847            stringify!(type_)
2848        )
2849    );
2850    assert_eq!(
2851        unsafe { &(*(::std::ptr::null::<retro_message_ext>())).progress as *const _ as usize },
2852        28usize,
2853        concat!(
2854            "Offset of field: ",
2855            stringify!(retro_message_ext),
2856            "::",
2857            stringify!(progress)
2858        )
2859    );
2860}
2861#[repr(C)]
2862#[derive(Debug, Copy, Clone)]
2863pub struct retro_input_descriptor {
2864    pub port: ::std::os::raw::c_uint,
2865    pub device: ::std::os::raw::c_uint,
2866    pub index: ::std::os::raw::c_uint,
2867    pub id: ::std::os::raw::c_uint,
2868    pub description: *const ::std::os::raw::c_char,
2869}
2870#[test]
2871fn bindgen_test_layout_retro_input_descriptor() {
2872    assert_eq!(
2873        ::std::mem::size_of::<retro_input_descriptor>(),
2874        24usize,
2875        concat!("Size of: ", stringify!(retro_input_descriptor))
2876    );
2877    assert_eq!(
2878        ::std::mem::align_of::<retro_input_descriptor>(),
2879        8usize,
2880        concat!("Alignment of ", stringify!(retro_input_descriptor))
2881    );
2882    assert_eq!(
2883        unsafe { &(*(::std::ptr::null::<retro_input_descriptor>())).port as *const _ as usize },
2884        0usize,
2885        concat!(
2886            "Offset of field: ",
2887            stringify!(retro_input_descriptor),
2888            "::",
2889            stringify!(port)
2890        )
2891    );
2892    assert_eq!(
2893        unsafe { &(*(::std::ptr::null::<retro_input_descriptor>())).device as *const _ as usize },
2894        4usize,
2895        concat!(
2896            "Offset of field: ",
2897            stringify!(retro_input_descriptor),
2898            "::",
2899            stringify!(device)
2900        )
2901    );
2902    assert_eq!(
2903        unsafe { &(*(::std::ptr::null::<retro_input_descriptor>())).index as *const _ as usize },
2904        8usize,
2905        concat!(
2906            "Offset of field: ",
2907            stringify!(retro_input_descriptor),
2908            "::",
2909            stringify!(index)
2910        )
2911    );
2912    assert_eq!(
2913        unsafe { &(*(::std::ptr::null::<retro_input_descriptor>())).id as *const _ as usize },
2914        12usize,
2915        concat!(
2916            "Offset of field: ",
2917            stringify!(retro_input_descriptor),
2918            "::",
2919            stringify!(id)
2920        )
2921    );
2922    assert_eq!(
2923        unsafe {
2924            &(*(::std::ptr::null::<retro_input_descriptor>())).description as *const _ as usize
2925        },
2926        16usize,
2927        concat!(
2928            "Offset of field: ",
2929            stringify!(retro_input_descriptor),
2930            "::",
2931            stringify!(description)
2932        )
2933    );
2934}
2935#[repr(C)]
2936#[derive(Debug, Copy, Clone)]
2937pub struct retro_system_info {
2938    pub library_name: *const ::std::os::raw::c_char,
2939    pub library_version: *const ::std::os::raw::c_char,
2940    pub valid_extensions: *const ::std::os::raw::c_char,
2941    pub need_fullpath: bool,
2942    pub block_extract: bool,
2943}
2944#[test]
2945fn bindgen_test_layout_retro_system_info() {
2946    assert_eq!(
2947        ::std::mem::size_of::<retro_system_info>(),
2948        32usize,
2949        concat!("Size of: ", stringify!(retro_system_info))
2950    );
2951    assert_eq!(
2952        ::std::mem::align_of::<retro_system_info>(),
2953        8usize,
2954        concat!("Alignment of ", stringify!(retro_system_info))
2955    );
2956    assert_eq!(
2957        unsafe { &(*(::std::ptr::null::<retro_system_info>())).library_name as *const _ as usize },
2958        0usize,
2959        concat!(
2960            "Offset of field: ",
2961            stringify!(retro_system_info),
2962            "::",
2963            stringify!(library_name)
2964        )
2965    );
2966    assert_eq!(
2967        unsafe {
2968            &(*(::std::ptr::null::<retro_system_info>())).library_version as *const _ as usize
2969        },
2970        8usize,
2971        concat!(
2972            "Offset of field: ",
2973            stringify!(retro_system_info),
2974            "::",
2975            stringify!(library_version)
2976        )
2977    );
2978    assert_eq!(
2979        unsafe {
2980            &(*(::std::ptr::null::<retro_system_info>())).valid_extensions as *const _ as usize
2981        },
2982        16usize,
2983        concat!(
2984            "Offset of field: ",
2985            stringify!(retro_system_info),
2986            "::",
2987            stringify!(valid_extensions)
2988        )
2989    );
2990    assert_eq!(
2991        unsafe { &(*(::std::ptr::null::<retro_system_info>())).need_fullpath as *const _ as usize },
2992        24usize,
2993        concat!(
2994            "Offset of field: ",
2995            stringify!(retro_system_info),
2996            "::",
2997            stringify!(need_fullpath)
2998        )
2999    );
3000    assert_eq!(
3001        unsafe { &(*(::std::ptr::null::<retro_system_info>())).block_extract as *const _ as usize },
3002        25usize,
3003        concat!(
3004            "Offset of field: ",
3005            stringify!(retro_system_info),
3006            "::",
3007            stringify!(block_extract)
3008        )
3009    );
3010}
3011#[repr(C)]
3012#[derive(Debug, Copy, Clone)]
3013pub struct retro_system_content_info_override {
3014    pub extensions: *const ::std::os::raw::c_char,
3015    pub need_fullpath: bool,
3016    pub persistent_data: bool,
3017}
3018#[test]
3019fn bindgen_test_layout_retro_system_content_info_override() {
3020    assert_eq!(
3021        ::std::mem::size_of::<retro_system_content_info_override>(),
3022        16usize,
3023        concat!("Size of: ", stringify!(retro_system_content_info_override))
3024    );
3025    assert_eq!(
3026        ::std::mem::align_of::<retro_system_content_info_override>(),
3027        8usize,
3028        concat!(
3029            "Alignment of ",
3030            stringify!(retro_system_content_info_override)
3031        )
3032    );
3033    assert_eq!(
3034        unsafe {
3035            &(*(::std::ptr::null::<retro_system_content_info_override>())).extensions as *const _
3036                as usize
3037        },
3038        0usize,
3039        concat!(
3040            "Offset of field: ",
3041            stringify!(retro_system_content_info_override),
3042            "::",
3043            stringify!(extensions)
3044        )
3045    );
3046    assert_eq!(
3047        unsafe {
3048            &(*(::std::ptr::null::<retro_system_content_info_override>())).need_fullpath as *const _
3049                as usize
3050        },
3051        8usize,
3052        concat!(
3053            "Offset of field: ",
3054            stringify!(retro_system_content_info_override),
3055            "::",
3056            stringify!(need_fullpath)
3057        )
3058    );
3059    assert_eq!(
3060        unsafe {
3061            &(*(::std::ptr::null::<retro_system_content_info_override>())).persistent_data
3062                as *const _ as usize
3063        },
3064        9usize,
3065        concat!(
3066            "Offset of field: ",
3067            stringify!(retro_system_content_info_override),
3068            "::",
3069            stringify!(persistent_data)
3070        )
3071    );
3072}
3073#[repr(C)]
3074#[derive(Debug, Copy, Clone)]
3075pub struct retro_game_info_ext {
3076    pub full_path: *const ::std::os::raw::c_char,
3077    pub archive_path: *const ::std::os::raw::c_char,
3078    pub archive_file: *const ::std::os::raw::c_char,
3079    pub dir: *const ::std::os::raw::c_char,
3080    pub name: *const ::std::os::raw::c_char,
3081    pub ext: *const ::std::os::raw::c_char,
3082    pub meta: *const ::std::os::raw::c_char,
3083    pub data: *const ::std::os::raw::c_void,
3084    pub size: size_t,
3085    pub file_in_archive: bool,
3086    pub persistent_data: bool,
3087}
3088#[test]
3089fn bindgen_test_layout_retro_game_info_ext() {
3090    assert_eq!(
3091        ::std::mem::size_of::<retro_game_info_ext>(),
3092        80usize,
3093        concat!("Size of: ", stringify!(retro_game_info_ext))
3094    );
3095    assert_eq!(
3096        ::std::mem::align_of::<retro_game_info_ext>(),
3097        8usize,
3098        concat!("Alignment of ", stringify!(retro_game_info_ext))
3099    );
3100    assert_eq!(
3101        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).full_path as *const _ as usize },
3102        0usize,
3103        concat!(
3104            "Offset of field: ",
3105            stringify!(retro_game_info_ext),
3106            "::",
3107            stringify!(full_path)
3108        )
3109    );
3110    assert_eq!(
3111        unsafe {
3112            &(*(::std::ptr::null::<retro_game_info_ext>())).archive_path as *const _ as usize
3113        },
3114        8usize,
3115        concat!(
3116            "Offset of field: ",
3117            stringify!(retro_game_info_ext),
3118            "::",
3119            stringify!(archive_path)
3120        )
3121    );
3122    assert_eq!(
3123        unsafe {
3124            &(*(::std::ptr::null::<retro_game_info_ext>())).archive_file as *const _ as usize
3125        },
3126        16usize,
3127        concat!(
3128            "Offset of field: ",
3129            stringify!(retro_game_info_ext),
3130            "::",
3131            stringify!(archive_file)
3132        )
3133    );
3134    assert_eq!(
3135        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).dir as *const _ as usize },
3136        24usize,
3137        concat!(
3138            "Offset of field: ",
3139            stringify!(retro_game_info_ext),
3140            "::",
3141            stringify!(dir)
3142        )
3143    );
3144    assert_eq!(
3145        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).name as *const _ as usize },
3146        32usize,
3147        concat!(
3148            "Offset of field: ",
3149            stringify!(retro_game_info_ext),
3150            "::",
3151            stringify!(name)
3152        )
3153    );
3154    assert_eq!(
3155        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).ext as *const _ as usize },
3156        40usize,
3157        concat!(
3158            "Offset of field: ",
3159            stringify!(retro_game_info_ext),
3160            "::",
3161            stringify!(ext)
3162        )
3163    );
3164    assert_eq!(
3165        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).meta as *const _ as usize },
3166        48usize,
3167        concat!(
3168            "Offset of field: ",
3169            stringify!(retro_game_info_ext),
3170            "::",
3171            stringify!(meta)
3172        )
3173    );
3174    assert_eq!(
3175        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).data as *const _ as usize },
3176        56usize,
3177        concat!(
3178            "Offset of field: ",
3179            stringify!(retro_game_info_ext),
3180            "::",
3181            stringify!(data)
3182        )
3183    );
3184    assert_eq!(
3185        unsafe { &(*(::std::ptr::null::<retro_game_info_ext>())).size as *const _ as usize },
3186        64usize,
3187        concat!(
3188            "Offset of field: ",
3189            stringify!(retro_game_info_ext),
3190            "::",
3191            stringify!(size)
3192        )
3193    );
3194    assert_eq!(
3195        unsafe {
3196            &(*(::std::ptr::null::<retro_game_info_ext>())).file_in_archive as *const _ as usize
3197        },
3198        72usize,
3199        concat!(
3200            "Offset of field: ",
3201            stringify!(retro_game_info_ext),
3202            "::",
3203            stringify!(file_in_archive)
3204        )
3205    );
3206    assert_eq!(
3207        unsafe {
3208            &(*(::std::ptr::null::<retro_game_info_ext>())).persistent_data as *const _ as usize
3209        },
3210        73usize,
3211        concat!(
3212            "Offset of field: ",
3213            stringify!(retro_game_info_ext),
3214            "::",
3215            stringify!(persistent_data)
3216        )
3217    );
3218}
3219#[repr(C)]
3220#[derive(Debug, Copy, Clone)]
3221pub struct retro_game_geometry {
3222    pub base_width: ::std::os::raw::c_uint,
3223    pub base_height: ::std::os::raw::c_uint,
3224    pub max_width: ::std::os::raw::c_uint,
3225    pub max_height: ::std::os::raw::c_uint,
3226    pub aspect_ratio: f32,
3227}
3228#[test]
3229fn bindgen_test_layout_retro_game_geometry() {
3230    assert_eq!(
3231        ::std::mem::size_of::<retro_game_geometry>(),
3232        20usize,
3233        concat!("Size of: ", stringify!(retro_game_geometry))
3234    );
3235    assert_eq!(
3236        ::std::mem::align_of::<retro_game_geometry>(),
3237        4usize,
3238        concat!("Alignment of ", stringify!(retro_game_geometry))
3239    );
3240    assert_eq!(
3241        unsafe { &(*(::std::ptr::null::<retro_game_geometry>())).base_width as *const _ as usize },
3242        0usize,
3243        concat!(
3244            "Offset of field: ",
3245            stringify!(retro_game_geometry),
3246            "::",
3247            stringify!(base_width)
3248        )
3249    );
3250    assert_eq!(
3251        unsafe { &(*(::std::ptr::null::<retro_game_geometry>())).base_height as *const _ as usize },
3252        4usize,
3253        concat!(
3254            "Offset of field: ",
3255            stringify!(retro_game_geometry),
3256            "::",
3257            stringify!(base_height)
3258        )
3259    );
3260    assert_eq!(
3261        unsafe { &(*(::std::ptr::null::<retro_game_geometry>())).max_width as *const _ as usize },
3262        8usize,
3263        concat!(
3264            "Offset of field: ",
3265            stringify!(retro_game_geometry),
3266            "::",
3267            stringify!(max_width)
3268        )
3269    );
3270    assert_eq!(
3271        unsafe { &(*(::std::ptr::null::<retro_game_geometry>())).max_height as *const _ as usize },
3272        12usize,
3273        concat!(
3274            "Offset of field: ",
3275            stringify!(retro_game_geometry),
3276            "::",
3277            stringify!(max_height)
3278        )
3279    );
3280    assert_eq!(
3281        unsafe {
3282            &(*(::std::ptr::null::<retro_game_geometry>())).aspect_ratio as *const _ as usize
3283        },
3284        16usize,
3285        concat!(
3286            "Offset of field: ",
3287            stringify!(retro_game_geometry),
3288            "::",
3289            stringify!(aspect_ratio)
3290        )
3291    );
3292}
3293#[repr(C)]
3294#[derive(Debug, Copy, Clone)]
3295pub struct retro_system_timing {
3296    pub fps: f64,
3297    pub sample_rate: f64,
3298}
3299#[test]
3300fn bindgen_test_layout_retro_system_timing() {
3301    assert_eq!(
3302        ::std::mem::size_of::<retro_system_timing>(),
3303        16usize,
3304        concat!("Size of: ", stringify!(retro_system_timing))
3305    );
3306    assert_eq!(
3307        ::std::mem::align_of::<retro_system_timing>(),
3308        8usize,
3309        concat!("Alignment of ", stringify!(retro_system_timing))
3310    );
3311    assert_eq!(
3312        unsafe { &(*(::std::ptr::null::<retro_system_timing>())).fps as *const _ as usize },
3313        0usize,
3314        concat!(
3315            "Offset of field: ",
3316            stringify!(retro_system_timing),
3317            "::",
3318            stringify!(fps)
3319        )
3320    );
3321    assert_eq!(
3322        unsafe { &(*(::std::ptr::null::<retro_system_timing>())).sample_rate as *const _ as usize },
3323        8usize,
3324        concat!(
3325            "Offset of field: ",
3326            stringify!(retro_system_timing),
3327            "::",
3328            stringify!(sample_rate)
3329        )
3330    );
3331}
3332#[repr(C)]
3333#[derive(Debug, Copy, Clone)]
3334pub struct retro_system_av_info {
3335    pub geometry: retro_game_geometry,
3336    pub timing: retro_system_timing,
3337}
3338#[test]
3339fn bindgen_test_layout_retro_system_av_info() {
3340    assert_eq!(
3341        ::std::mem::size_of::<retro_system_av_info>(),
3342        40usize,
3343        concat!("Size of: ", stringify!(retro_system_av_info))
3344    );
3345    assert_eq!(
3346        ::std::mem::align_of::<retro_system_av_info>(),
3347        8usize,
3348        concat!("Alignment of ", stringify!(retro_system_av_info))
3349    );
3350    assert_eq!(
3351        unsafe { &(*(::std::ptr::null::<retro_system_av_info>())).geometry as *const _ as usize },
3352        0usize,
3353        concat!(
3354            "Offset of field: ",
3355            stringify!(retro_system_av_info),
3356            "::",
3357            stringify!(geometry)
3358        )
3359    );
3360    assert_eq!(
3361        unsafe { &(*(::std::ptr::null::<retro_system_av_info>())).timing as *const _ as usize },
3362        24usize,
3363        concat!(
3364            "Offset of field: ",
3365            stringify!(retro_system_av_info),
3366            "::",
3367            stringify!(timing)
3368        )
3369    );
3370}
3371#[repr(C)]
3372#[derive(Debug, Copy, Clone)]
3373pub struct retro_variable {
3374    pub key: *const ::std::os::raw::c_char,
3375    pub value: *const ::std::os::raw::c_char,
3376}
3377#[test]
3378fn bindgen_test_layout_retro_variable() {
3379    assert_eq!(
3380        ::std::mem::size_of::<retro_variable>(),
3381        16usize,
3382        concat!("Size of: ", stringify!(retro_variable))
3383    );
3384    assert_eq!(
3385        ::std::mem::align_of::<retro_variable>(),
3386        8usize,
3387        concat!("Alignment of ", stringify!(retro_variable))
3388    );
3389    assert_eq!(
3390        unsafe { &(*(::std::ptr::null::<retro_variable>())).key as *const _ as usize },
3391        0usize,
3392        concat!(
3393            "Offset of field: ",
3394            stringify!(retro_variable),
3395            "::",
3396            stringify!(key)
3397        )
3398    );
3399    assert_eq!(
3400        unsafe { &(*(::std::ptr::null::<retro_variable>())).value as *const _ as usize },
3401        8usize,
3402        concat!(
3403            "Offset of field: ",
3404            stringify!(retro_variable),
3405            "::",
3406            stringify!(value)
3407        )
3408    );
3409}
3410#[repr(C)]
3411#[derive(Debug, Copy, Clone)]
3412pub struct retro_core_option_display {
3413    pub key: *const ::std::os::raw::c_char,
3414    pub visible: bool,
3415}
3416#[test]
3417fn bindgen_test_layout_retro_core_option_display() {
3418    assert_eq!(
3419        ::std::mem::size_of::<retro_core_option_display>(),
3420        16usize,
3421        concat!("Size of: ", stringify!(retro_core_option_display))
3422    );
3423    assert_eq!(
3424        ::std::mem::align_of::<retro_core_option_display>(),
3425        8usize,
3426        concat!("Alignment of ", stringify!(retro_core_option_display))
3427    );
3428    assert_eq!(
3429        unsafe { &(*(::std::ptr::null::<retro_core_option_display>())).key as *const _ as usize },
3430        0usize,
3431        concat!(
3432            "Offset of field: ",
3433            stringify!(retro_core_option_display),
3434            "::",
3435            stringify!(key)
3436        )
3437    );
3438    assert_eq!(
3439        unsafe {
3440            &(*(::std::ptr::null::<retro_core_option_display>())).visible as *const _ as usize
3441        },
3442        8usize,
3443        concat!(
3444            "Offset of field: ",
3445            stringify!(retro_core_option_display),
3446            "::",
3447            stringify!(visible)
3448        )
3449    );
3450}
3451#[repr(C)]
3452#[derive(Debug, Copy, Clone)]
3453pub struct retro_core_option_value {
3454    pub value: *const ::std::os::raw::c_char,
3455    pub label: *const ::std::os::raw::c_char,
3456}
3457#[test]
3458fn bindgen_test_layout_retro_core_option_value() {
3459    assert_eq!(
3460        ::std::mem::size_of::<retro_core_option_value>(),
3461        16usize,
3462        concat!("Size of: ", stringify!(retro_core_option_value))
3463    );
3464    assert_eq!(
3465        ::std::mem::align_of::<retro_core_option_value>(),
3466        8usize,
3467        concat!("Alignment of ", stringify!(retro_core_option_value))
3468    );
3469    assert_eq!(
3470        unsafe { &(*(::std::ptr::null::<retro_core_option_value>())).value as *const _ as usize },
3471        0usize,
3472        concat!(
3473            "Offset of field: ",
3474            stringify!(retro_core_option_value),
3475            "::",
3476            stringify!(value)
3477        )
3478    );
3479    assert_eq!(
3480        unsafe { &(*(::std::ptr::null::<retro_core_option_value>())).label as *const _ as usize },
3481        8usize,
3482        concat!(
3483            "Offset of field: ",
3484            stringify!(retro_core_option_value),
3485            "::",
3486            stringify!(label)
3487        )
3488    );
3489}
3490#[repr(C)]
3491#[derive(Debug, Copy, Clone)]
3492pub struct retro_core_option_definition {
3493    pub key: *const ::std::os::raw::c_char,
3494    pub desc: *const ::std::os::raw::c_char,
3495    pub info: *const ::std::os::raw::c_char,
3496    pub values: [retro_core_option_value; 128usize],
3497    pub default_value: *const ::std::os::raw::c_char,
3498}
3499#[test]
3500fn bindgen_test_layout_retro_core_option_definition() {
3501    assert_eq!(
3502        ::std::mem::size_of::<retro_core_option_definition>(),
3503        2080usize,
3504        concat!("Size of: ", stringify!(retro_core_option_definition))
3505    );
3506    assert_eq!(
3507        ::std::mem::align_of::<retro_core_option_definition>(),
3508        8usize,
3509        concat!("Alignment of ", stringify!(retro_core_option_definition))
3510    );
3511    assert_eq!(
3512        unsafe {
3513            &(*(::std::ptr::null::<retro_core_option_definition>())).key as *const _ as usize
3514        },
3515        0usize,
3516        concat!(
3517            "Offset of field: ",
3518            stringify!(retro_core_option_definition),
3519            "::",
3520            stringify!(key)
3521        )
3522    );
3523    assert_eq!(
3524        unsafe {
3525            &(*(::std::ptr::null::<retro_core_option_definition>())).desc as *const _ as usize
3526        },
3527        8usize,
3528        concat!(
3529            "Offset of field: ",
3530            stringify!(retro_core_option_definition),
3531            "::",
3532            stringify!(desc)
3533        )
3534    );
3535    assert_eq!(
3536        unsafe {
3537            &(*(::std::ptr::null::<retro_core_option_definition>())).info as *const _ as usize
3538        },
3539        16usize,
3540        concat!(
3541            "Offset of field: ",
3542            stringify!(retro_core_option_definition),
3543            "::",
3544            stringify!(info)
3545        )
3546    );
3547    assert_eq!(
3548        unsafe {
3549            &(*(::std::ptr::null::<retro_core_option_definition>())).values as *const _ as usize
3550        },
3551        24usize,
3552        concat!(
3553            "Offset of field: ",
3554            stringify!(retro_core_option_definition),
3555            "::",
3556            stringify!(values)
3557        )
3558    );
3559    assert_eq!(
3560        unsafe {
3561            &(*(::std::ptr::null::<retro_core_option_definition>())).default_value as *const _
3562                as usize
3563        },
3564        2072usize,
3565        concat!(
3566            "Offset of field: ",
3567            stringify!(retro_core_option_definition),
3568            "::",
3569            stringify!(default_value)
3570        )
3571    );
3572}
3573#[repr(C)]
3574#[derive(Debug, Copy, Clone)]
3575pub struct retro_core_options_intl {
3576    pub us: *mut retro_core_option_definition,
3577    pub local: *mut retro_core_option_definition,
3578}
3579#[test]
3580fn bindgen_test_layout_retro_core_options_intl() {
3581    assert_eq!(
3582        ::std::mem::size_of::<retro_core_options_intl>(),
3583        16usize,
3584        concat!("Size of: ", stringify!(retro_core_options_intl))
3585    );
3586    assert_eq!(
3587        ::std::mem::align_of::<retro_core_options_intl>(),
3588        8usize,
3589        concat!("Alignment of ", stringify!(retro_core_options_intl))
3590    );
3591    assert_eq!(
3592        unsafe { &(*(::std::ptr::null::<retro_core_options_intl>())).us as *const _ as usize },
3593        0usize,
3594        concat!(
3595            "Offset of field: ",
3596            stringify!(retro_core_options_intl),
3597            "::",
3598            stringify!(us)
3599        )
3600    );
3601    assert_eq!(
3602        unsafe { &(*(::std::ptr::null::<retro_core_options_intl>())).local as *const _ as usize },
3603        8usize,
3604        concat!(
3605            "Offset of field: ",
3606            stringify!(retro_core_options_intl),
3607            "::",
3608            stringify!(local)
3609        )
3610    );
3611}
3612#[repr(C)]
3613#[derive(Debug, Copy, Clone)]
3614pub struct retro_core_option_v2_category {
3615    pub key: *const ::std::os::raw::c_char,
3616    pub desc: *const ::std::os::raw::c_char,
3617    pub info: *const ::std::os::raw::c_char,
3618}
3619#[test]
3620fn bindgen_test_layout_retro_core_option_v2_category() {
3621    assert_eq!(
3622        ::std::mem::size_of::<retro_core_option_v2_category>(),
3623        24usize,
3624        concat!("Size of: ", stringify!(retro_core_option_v2_category))
3625    );
3626    assert_eq!(
3627        ::std::mem::align_of::<retro_core_option_v2_category>(),
3628        8usize,
3629        concat!("Alignment of ", stringify!(retro_core_option_v2_category))
3630    );
3631    assert_eq!(
3632        unsafe {
3633            &(*(::std::ptr::null::<retro_core_option_v2_category>())).key as *const _ as usize
3634        },
3635        0usize,
3636        concat!(
3637            "Offset of field: ",
3638            stringify!(retro_core_option_v2_category),
3639            "::",
3640            stringify!(key)
3641        )
3642    );
3643    assert_eq!(
3644        unsafe {
3645            &(*(::std::ptr::null::<retro_core_option_v2_category>())).desc as *const _ as usize
3646        },
3647        8usize,
3648        concat!(
3649            "Offset of field: ",
3650            stringify!(retro_core_option_v2_category),
3651            "::",
3652            stringify!(desc)
3653        )
3654    );
3655    assert_eq!(
3656        unsafe {
3657            &(*(::std::ptr::null::<retro_core_option_v2_category>())).info as *const _ as usize
3658        },
3659        16usize,
3660        concat!(
3661            "Offset of field: ",
3662            stringify!(retro_core_option_v2_category),
3663            "::",
3664            stringify!(info)
3665        )
3666    );
3667}
3668#[repr(C)]
3669#[derive(Debug, Copy, Clone)]
3670pub struct retro_core_option_v2_definition {
3671    pub key: *const ::std::os::raw::c_char,
3672    pub desc: *const ::std::os::raw::c_char,
3673    pub desc_categorized: *const ::std::os::raw::c_char,
3674    pub info: *const ::std::os::raw::c_char,
3675    pub info_categorized: *const ::std::os::raw::c_char,
3676    pub category_key: *const ::std::os::raw::c_char,
3677    pub values: [retro_core_option_value; 128usize],
3678    pub default_value: *const ::std::os::raw::c_char,
3679}
3680#[test]
3681fn bindgen_test_layout_retro_core_option_v2_definition() {
3682    assert_eq!(
3683        ::std::mem::size_of::<retro_core_option_v2_definition>(),
3684        2104usize,
3685        concat!("Size of: ", stringify!(retro_core_option_v2_definition))
3686    );
3687    assert_eq!(
3688        ::std::mem::align_of::<retro_core_option_v2_definition>(),
3689        8usize,
3690        concat!("Alignment of ", stringify!(retro_core_option_v2_definition))
3691    );
3692    assert_eq!(
3693        unsafe {
3694            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).key as *const _ as usize
3695        },
3696        0usize,
3697        concat!(
3698            "Offset of field: ",
3699            stringify!(retro_core_option_v2_definition),
3700            "::",
3701            stringify!(key)
3702        )
3703    );
3704    assert_eq!(
3705        unsafe {
3706            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).desc as *const _ as usize
3707        },
3708        8usize,
3709        concat!(
3710            "Offset of field: ",
3711            stringify!(retro_core_option_v2_definition),
3712            "::",
3713            stringify!(desc)
3714        )
3715    );
3716    assert_eq!(
3717        unsafe {
3718            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).desc_categorized as *const _
3719                as usize
3720        },
3721        16usize,
3722        concat!(
3723            "Offset of field: ",
3724            stringify!(retro_core_option_v2_definition),
3725            "::",
3726            stringify!(desc_categorized)
3727        )
3728    );
3729    assert_eq!(
3730        unsafe {
3731            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).info as *const _ as usize
3732        },
3733        24usize,
3734        concat!(
3735            "Offset of field: ",
3736            stringify!(retro_core_option_v2_definition),
3737            "::",
3738            stringify!(info)
3739        )
3740    );
3741    assert_eq!(
3742        unsafe {
3743            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).info_categorized as *const _
3744                as usize
3745        },
3746        32usize,
3747        concat!(
3748            "Offset of field: ",
3749            stringify!(retro_core_option_v2_definition),
3750            "::",
3751            stringify!(info_categorized)
3752        )
3753    );
3754    assert_eq!(
3755        unsafe {
3756            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).category_key as *const _
3757                as usize
3758        },
3759        40usize,
3760        concat!(
3761            "Offset of field: ",
3762            stringify!(retro_core_option_v2_definition),
3763            "::",
3764            stringify!(category_key)
3765        )
3766    );
3767    assert_eq!(
3768        unsafe {
3769            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).values as *const _ as usize
3770        },
3771        48usize,
3772        concat!(
3773            "Offset of field: ",
3774            stringify!(retro_core_option_v2_definition),
3775            "::",
3776            stringify!(values)
3777        )
3778    );
3779    assert_eq!(
3780        unsafe {
3781            &(*(::std::ptr::null::<retro_core_option_v2_definition>())).default_value as *const _
3782                as usize
3783        },
3784        2096usize,
3785        concat!(
3786            "Offset of field: ",
3787            stringify!(retro_core_option_v2_definition),
3788            "::",
3789            stringify!(default_value)
3790        )
3791    );
3792}
3793#[repr(C)]
3794#[derive(Debug, Copy, Clone)]
3795pub struct retro_core_options_v2 {
3796    pub categories: *mut retro_core_option_v2_category,
3797    pub definitions: *mut retro_core_option_v2_definition,
3798}
3799#[test]
3800fn bindgen_test_layout_retro_core_options_v2() {
3801    assert_eq!(
3802        ::std::mem::size_of::<retro_core_options_v2>(),
3803        16usize,
3804        concat!("Size of: ", stringify!(retro_core_options_v2))
3805    );
3806    assert_eq!(
3807        ::std::mem::align_of::<retro_core_options_v2>(),
3808        8usize,
3809        concat!("Alignment of ", stringify!(retro_core_options_v2))
3810    );
3811    assert_eq!(
3812        unsafe {
3813            &(*(::std::ptr::null::<retro_core_options_v2>())).categories as *const _ as usize
3814        },
3815        0usize,
3816        concat!(
3817            "Offset of field: ",
3818            stringify!(retro_core_options_v2),
3819            "::",
3820            stringify!(categories)
3821        )
3822    );
3823    assert_eq!(
3824        unsafe {
3825            &(*(::std::ptr::null::<retro_core_options_v2>())).definitions as *const _ as usize
3826        },
3827        8usize,
3828        concat!(
3829            "Offset of field: ",
3830            stringify!(retro_core_options_v2),
3831            "::",
3832            stringify!(definitions)
3833        )
3834    );
3835}
3836#[repr(C)]
3837#[derive(Debug, Copy, Clone)]
3838pub struct retro_core_options_v2_intl {
3839    pub us: *mut retro_core_options_v2,
3840    pub local: *mut retro_core_options_v2,
3841}
3842#[test]
3843fn bindgen_test_layout_retro_core_options_v2_intl() {
3844    assert_eq!(
3845        ::std::mem::size_of::<retro_core_options_v2_intl>(),
3846        16usize,
3847        concat!("Size of: ", stringify!(retro_core_options_v2_intl))
3848    );
3849    assert_eq!(
3850        ::std::mem::align_of::<retro_core_options_v2_intl>(),
3851        8usize,
3852        concat!("Alignment of ", stringify!(retro_core_options_v2_intl))
3853    );
3854    assert_eq!(
3855        unsafe { &(*(::std::ptr::null::<retro_core_options_v2_intl>())).us as *const _ as usize },
3856        0usize,
3857        concat!(
3858            "Offset of field: ",
3859            stringify!(retro_core_options_v2_intl),
3860            "::",
3861            stringify!(us)
3862        )
3863    );
3864    assert_eq!(
3865        unsafe {
3866            &(*(::std::ptr::null::<retro_core_options_v2_intl>())).local as *const _ as usize
3867        },
3868        8usize,
3869        concat!(
3870            "Offset of field: ",
3871            stringify!(retro_core_options_v2_intl),
3872            "::",
3873            stringify!(local)
3874        )
3875    );
3876}
3877pub type retro_core_options_update_display_callback_t =
3878    ::std::option::Option<unsafe extern "C" fn() -> bool>;
3879#[repr(C)]
3880#[derive(Debug, Copy, Clone)]
3881pub struct retro_core_options_update_display_callback {
3882    pub callback: retro_core_options_update_display_callback_t,
3883}
3884#[test]
3885fn bindgen_test_layout_retro_core_options_update_display_callback() {
3886    assert_eq!(
3887        ::std::mem::size_of::<retro_core_options_update_display_callback>(),
3888        8usize,
3889        concat!(
3890            "Size of: ",
3891            stringify!(retro_core_options_update_display_callback)
3892        )
3893    );
3894    assert_eq!(
3895        ::std::mem::align_of::<retro_core_options_update_display_callback>(),
3896        8usize,
3897        concat!(
3898            "Alignment of ",
3899            stringify!(retro_core_options_update_display_callback)
3900        )
3901    );
3902    assert_eq!(
3903        unsafe {
3904            &(*(::std::ptr::null::<retro_core_options_update_display_callback>())).callback
3905                as *const _ as usize
3906        },
3907        0usize,
3908        concat!(
3909            "Offset of field: ",
3910            stringify!(retro_core_options_update_display_callback),
3911            "::",
3912            stringify!(callback)
3913        )
3914    );
3915}
3916#[repr(C)]
3917#[derive(Debug, Copy, Clone)]
3918pub struct retro_game_info {
3919    pub path: *const ::std::os::raw::c_char,
3920    pub data: *const ::std::os::raw::c_void,
3921    pub size: size_t,
3922    pub meta: *const ::std::os::raw::c_char,
3923}
3924#[test]
3925fn bindgen_test_layout_retro_game_info() {
3926    assert_eq!(
3927        ::std::mem::size_of::<retro_game_info>(),
3928        32usize,
3929        concat!("Size of: ", stringify!(retro_game_info))
3930    );
3931    assert_eq!(
3932        ::std::mem::align_of::<retro_game_info>(),
3933        8usize,
3934        concat!("Alignment of ", stringify!(retro_game_info))
3935    );
3936    assert_eq!(
3937        unsafe { &(*(::std::ptr::null::<retro_game_info>())).path as *const _ as usize },
3938        0usize,
3939        concat!(
3940            "Offset of field: ",
3941            stringify!(retro_game_info),
3942            "::",
3943            stringify!(path)
3944        )
3945    );
3946    assert_eq!(
3947        unsafe { &(*(::std::ptr::null::<retro_game_info>())).data as *const _ as usize },
3948        8usize,
3949        concat!(
3950            "Offset of field: ",
3951            stringify!(retro_game_info),
3952            "::",
3953            stringify!(data)
3954        )
3955    );
3956    assert_eq!(
3957        unsafe { &(*(::std::ptr::null::<retro_game_info>())).size as *const _ as usize },
3958        16usize,
3959        concat!(
3960            "Offset of field: ",
3961            stringify!(retro_game_info),
3962            "::",
3963            stringify!(size)
3964        )
3965    );
3966    assert_eq!(
3967        unsafe { &(*(::std::ptr::null::<retro_game_info>())).meta as *const _ as usize },
3968        24usize,
3969        concat!(
3970            "Offset of field: ",
3971            stringify!(retro_game_info),
3972            "::",
3973            stringify!(meta)
3974        )
3975    );
3976}
3977#[repr(C)]
3978#[derive(Debug, Copy, Clone)]
3979pub struct retro_framebuffer {
3980    pub data: *mut ::std::os::raw::c_void,
3981    pub width: ::std::os::raw::c_uint,
3982    pub height: ::std::os::raw::c_uint,
3983    pub pitch: size_t,
3984    pub format: retro_pixel_format,
3985    pub access_flags: ::std::os::raw::c_uint,
3986    pub memory_flags: ::std::os::raw::c_uint,
3987}
3988#[test]
3989fn bindgen_test_layout_retro_framebuffer() {
3990    assert_eq!(
3991        ::std::mem::size_of::<retro_framebuffer>(),
3992        40usize,
3993        concat!("Size of: ", stringify!(retro_framebuffer))
3994    );
3995    assert_eq!(
3996        ::std::mem::align_of::<retro_framebuffer>(),
3997        8usize,
3998        concat!("Alignment of ", stringify!(retro_framebuffer))
3999    );
4000    assert_eq!(
4001        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).data as *const _ as usize },
4002        0usize,
4003        concat!(
4004            "Offset of field: ",
4005            stringify!(retro_framebuffer),
4006            "::",
4007            stringify!(data)
4008        )
4009    );
4010    assert_eq!(
4011        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).width as *const _ as usize },
4012        8usize,
4013        concat!(
4014            "Offset of field: ",
4015            stringify!(retro_framebuffer),
4016            "::",
4017            stringify!(width)
4018        )
4019    );
4020    assert_eq!(
4021        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).height as *const _ as usize },
4022        12usize,
4023        concat!(
4024            "Offset of field: ",
4025            stringify!(retro_framebuffer),
4026            "::",
4027            stringify!(height)
4028        )
4029    );
4030    assert_eq!(
4031        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).pitch as *const _ as usize },
4032        16usize,
4033        concat!(
4034            "Offset of field: ",
4035            stringify!(retro_framebuffer),
4036            "::",
4037            stringify!(pitch)
4038        )
4039    );
4040    assert_eq!(
4041        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).format as *const _ as usize },
4042        24usize,
4043        concat!(
4044            "Offset of field: ",
4045            stringify!(retro_framebuffer),
4046            "::",
4047            stringify!(format)
4048        )
4049    );
4050    assert_eq!(
4051        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).access_flags as *const _ as usize },
4052        28usize,
4053        concat!(
4054            "Offset of field: ",
4055            stringify!(retro_framebuffer),
4056            "::",
4057            stringify!(access_flags)
4058        )
4059    );
4060    assert_eq!(
4061        unsafe { &(*(::std::ptr::null::<retro_framebuffer>())).memory_flags as *const _ as usize },
4062        32usize,
4063        concat!(
4064            "Offset of field: ",
4065            stringify!(retro_framebuffer),
4066            "::",
4067            stringify!(memory_flags)
4068        )
4069    );
4070}
4071#[repr(C)]
4072#[derive(Debug, Copy, Clone)]
4073pub struct retro_fastforwarding_override {
4074    pub ratio: f32,
4075    pub fastforward: bool,
4076    pub notification: bool,
4077    pub inhibit_toggle: bool,
4078}
4079#[test]
4080fn bindgen_test_layout_retro_fastforwarding_override() {
4081    assert_eq!(
4082        ::std::mem::size_of::<retro_fastforwarding_override>(),
4083        8usize,
4084        concat!("Size of: ", stringify!(retro_fastforwarding_override))
4085    );
4086    assert_eq!(
4087        ::std::mem::align_of::<retro_fastforwarding_override>(),
4088        4usize,
4089        concat!("Alignment of ", stringify!(retro_fastforwarding_override))
4090    );
4091    assert_eq!(
4092        unsafe {
4093            &(*(::std::ptr::null::<retro_fastforwarding_override>())).ratio as *const _ as usize
4094        },
4095        0usize,
4096        concat!(
4097            "Offset of field: ",
4098            stringify!(retro_fastforwarding_override),
4099            "::",
4100            stringify!(ratio)
4101        )
4102    );
4103    assert_eq!(
4104        unsafe {
4105            &(*(::std::ptr::null::<retro_fastforwarding_override>())).fastforward as *const _
4106                as usize
4107        },
4108        4usize,
4109        concat!(
4110            "Offset of field: ",
4111            stringify!(retro_fastforwarding_override),
4112            "::",
4113            stringify!(fastforward)
4114        )
4115    );
4116    assert_eq!(
4117        unsafe {
4118            &(*(::std::ptr::null::<retro_fastforwarding_override>())).notification as *const _
4119                as usize
4120        },
4121        5usize,
4122        concat!(
4123            "Offset of field: ",
4124            stringify!(retro_fastforwarding_override),
4125            "::",
4126            stringify!(notification)
4127        )
4128    );
4129    assert_eq!(
4130        unsafe {
4131            &(*(::std::ptr::null::<retro_fastforwarding_override>())).inhibit_toggle as *const _
4132                as usize
4133        },
4134        6usize,
4135        concat!(
4136            "Offset of field: ",
4137            stringify!(retro_fastforwarding_override),
4138            "::",
4139            stringify!(inhibit_toggle)
4140        )
4141    );
4142}
4143pub type retro_environment_t = ::std::option::Option<
4144    unsafe extern "C" fn(cmd: ::std::os::raw::c_uint, data: *mut ::std::os::raw::c_void) -> bool,
4145>;
4146pub type retro_video_refresh_t = ::std::option::Option<
4147    unsafe extern "C" fn(
4148        data: *const ::std::os::raw::c_void,
4149        width: ::std::os::raw::c_uint,
4150        height: ::std::os::raw::c_uint,
4151        pitch: size_t,
4152    ),
4153>;
4154pub type retro_audio_sample_t = ::std::option::Option<unsafe extern "C" fn(left: i16, right: i16)>;
4155pub type retro_audio_sample_batch_t =
4156    ::std::option::Option<unsafe extern "C" fn(data: *const i16, frames: size_t) -> size_t>;
4157pub type retro_input_poll_t = ::std::option::Option<unsafe extern "C" fn()>;
4158pub type retro_input_state_t = ::std::option::Option<
4159    unsafe extern "C" fn(
4160        port: ::std::os::raw::c_uint,
4161        device: ::std::os::raw::c_uint,
4162        index: ::std::os::raw::c_uint,
4163        id: ::std::os::raw::c_uint,
4164    ) -> i16,
4165>;
4166extern "C" {
4167    pub fn retro_set_environment(arg1: retro_environment_t);
4168}
4169extern "C" {
4170    pub fn retro_set_video_refresh(arg1: retro_video_refresh_t);
4171}
4172extern "C" {
4173    pub fn retro_set_audio_sample(arg1: retro_audio_sample_t);
4174}
4175extern "C" {
4176    pub fn retro_set_audio_sample_batch(arg1: retro_audio_sample_batch_t);
4177}
4178extern "C" {
4179    pub fn retro_set_input_poll(arg1: retro_input_poll_t);
4180}
4181extern "C" {
4182    pub fn retro_set_input_state(arg1: retro_input_state_t);
4183}
4184extern "C" {
4185    pub fn retro_init();
4186}
4187extern "C" {
4188    pub fn retro_deinit();
4189}
4190extern "C" {
4191    pub fn retro_api_version() -> ::std::os::raw::c_uint;
4192}
4193extern "C" {
4194    pub fn retro_get_system_info(info: *mut retro_system_info);
4195}
4196extern "C" {
4197    pub fn retro_get_system_av_info(info: *mut retro_system_av_info);
4198}
4199extern "C" {
4200    pub fn retro_set_controller_port_device(
4201        port: ::std::os::raw::c_uint,
4202        device: ::std::os::raw::c_uint,
4203    );
4204}
4205extern "C" {
4206    pub fn retro_reset();
4207}
4208extern "C" {
4209    pub fn retro_run();
4210}
4211extern "C" {
4212    pub fn retro_serialize_size() -> size_t;
4213}
4214extern "C" {
4215    pub fn retro_serialize(data: *mut ::std::os::raw::c_void, size: size_t) -> bool;
4216}
4217extern "C" {
4218    pub fn retro_unserialize(data: *const ::std::os::raw::c_void, size: size_t) -> bool;
4219}
4220extern "C" {
4221    pub fn retro_cheat_reset();
4222}
4223extern "C" {
4224    pub fn retro_cheat_set(
4225        index: ::std::os::raw::c_uint,
4226        enabled: bool,
4227        code: *const ::std::os::raw::c_char,
4228    );
4229}
4230extern "C" {
4231    pub fn retro_load_game(game: *const retro_game_info) -> bool;
4232}
4233extern "C" {
4234    pub fn retro_load_game_special(
4235        game_type: ::std::os::raw::c_uint,
4236        info: *const retro_game_info,
4237        num_info: size_t,
4238    ) -> bool;
4239}
4240extern "C" {
4241    pub fn retro_unload_game();
4242}
4243extern "C" {
4244    pub fn retro_get_region() -> ::std::os::raw::c_uint;
4245}
4246extern "C" {
4247    pub fn retro_get_memory_data(id: ::std::os::raw::c_uint) -> *mut ::std::os::raw::c_void;
4248}
4249extern "C" {
4250    pub fn retro_get_memory_size(id: ::std::os::raw::c_uint) -> size_t;
4251}