1 /* automatically generated by rust-bindgen */
2 
3 pub type __dev_t = libc::c_ulong;
4 pub type __uid_t = libc::c_uint;
5 pub type __gid_t = libc::c_uint;
6 pub type __ino_t = libc::c_ulong;
7 pub type __mode_t = libc::c_uint;
8 pub type __nlink_t = libc::c_ulong;
9 pub type __off_t = libc::c_long;
10 pub type __off64_t = libc::c_long;
11 pub type __time_t = libc::c_long;
12 pub type __blksize_t = libc::c_long;
13 pub type __blkcnt_t = libc::c_long;
14 pub type __syscall_slong_t = libc::c_long;
15 pub type FILE = _IO_FILE;
16 pub type va_list = __builtin_va_list;
17 pub type _IO_lock_t = libc::c_void;
18 #[repr(C)]
19 #[derive(Debug, Copy, Clone)]
20 pub struct _IO_marker {
21     pub _next: *mut _IO_marker,
22     pub _sbuf: *mut _IO_FILE,
23     pub _pos: libc::c_int,
24 }
25 #[test]
bindgen_test_layout__IO_marker()26 fn bindgen_test_layout__IO_marker() {
27     assert_eq!(
28         ::std::mem::size_of::<_IO_marker>(),
29         24usize,
30         concat!("Size of: ", stringify!(_IO_marker))
31     );
32     assert_eq!(
33         ::std::mem::align_of::<_IO_marker>(),
34         8usize,
35         concat!("Alignment of ", stringify!(_IO_marker))
36     );
37     assert_eq!(
38         unsafe { &(*(::std::ptr::null::<_IO_marker>()))._next as *const _ as usize },
39         0usize,
40         concat!(
41             "Offset of field: ",
42             stringify!(_IO_marker),
43             "::",
44             stringify!(_next)
45         )
46     );
47     assert_eq!(
48         unsafe { &(*(::std::ptr::null::<_IO_marker>()))._sbuf as *const _ as usize },
49         8usize,
50         concat!(
51             "Offset of field: ",
52             stringify!(_IO_marker),
53             "::",
54             stringify!(_sbuf)
55         )
56     );
57     assert_eq!(
58         unsafe { &(*(::std::ptr::null::<_IO_marker>()))._pos as *const _ as usize },
59         16usize,
60         concat!(
61             "Offset of field: ",
62             stringify!(_IO_marker),
63             "::",
64             stringify!(_pos)
65         )
66     );
67 }
68 #[repr(C)]
69 #[derive(Debug, Copy, Clone)]
70 pub struct _IO_FILE {
71     pub _flags: libc::c_int,
72     pub _IO_read_ptr: *mut libc::c_char,
73     pub _IO_read_end: *mut libc::c_char,
74     pub _IO_read_base: *mut libc::c_char,
75     pub _IO_write_base: *mut libc::c_char,
76     pub _IO_write_ptr: *mut libc::c_char,
77     pub _IO_write_end: *mut libc::c_char,
78     pub _IO_buf_base: *mut libc::c_char,
79     pub _IO_buf_end: *mut libc::c_char,
80     pub _IO_save_base: *mut libc::c_char,
81     pub _IO_backup_base: *mut libc::c_char,
82     pub _IO_save_end: *mut libc::c_char,
83     pub _markers: *mut _IO_marker,
84     pub _chain: *mut _IO_FILE,
85     pub _fileno: libc::c_int,
86     pub _flags2: libc::c_int,
87     pub _old_offset: __off_t,
88     pub _cur_column: libc::c_ushort,
89     pub _vtable_offset: libc::c_schar,
90     pub _shortbuf: [libc::c_char; 1usize],
91     pub _lock: *mut _IO_lock_t,
92     pub _offset: __off64_t,
93     pub __pad1: *mut libc::c_void,
94     pub __pad2: *mut libc::c_void,
95     pub __pad3: *mut libc::c_void,
96     pub __pad4: *mut libc::c_void,
97     pub __pad5: usize,
98     pub _mode: libc::c_int,
99     pub _unused2: [libc::c_char; 20usize],
100 }
101 #[test]
bindgen_test_layout__IO_FILE()102 fn bindgen_test_layout__IO_FILE() {
103     assert_eq!(
104         ::std::mem::size_of::<_IO_FILE>(),
105         216usize,
106         concat!("Size of: ", stringify!(_IO_FILE))
107     );
108     assert_eq!(
109         ::std::mem::align_of::<_IO_FILE>(),
110         8usize,
111         concat!("Alignment of ", stringify!(_IO_FILE))
112     );
113     assert_eq!(
114         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags as *const _ as usize },
115         0usize,
116         concat!(
117             "Offset of field: ",
118             stringify!(_IO_FILE),
119             "::",
120             stringify!(_flags)
121         )
122     );
123     assert_eq!(
124         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_ptr as *const _ as usize },
125         8usize,
126         concat!(
127             "Offset of field: ",
128             stringify!(_IO_FILE),
129             "::",
130             stringify!(_IO_read_ptr)
131         )
132     );
133     assert_eq!(
134         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_end as *const _ as usize },
135         16usize,
136         concat!(
137             "Offset of field: ",
138             stringify!(_IO_FILE),
139             "::",
140             stringify!(_IO_read_end)
141         )
142     );
143     assert_eq!(
144         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_read_base as *const _ as usize },
145         24usize,
146         concat!(
147             "Offset of field: ",
148             stringify!(_IO_FILE),
149             "::",
150             stringify!(_IO_read_base)
151         )
152     );
153     assert_eq!(
154         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_base as *const _ as usize },
155         32usize,
156         concat!(
157             "Offset of field: ",
158             stringify!(_IO_FILE),
159             "::",
160             stringify!(_IO_write_base)
161         )
162     );
163     assert_eq!(
164         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_ptr as *const _ as usize },
165         40usize,
166         concat!(
167             "Offset of field: ",
168             stringify!(_IO_FILE),
169             "::",
170             stringify!(_IO_write_ptr)
171         )
172     );
173     assert_eq!(
174         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_write_end as *const _ as usize },
175         48usize,
176         concat!(
177             "Offset of field: ",
178             stringify!(_IO_FILE),
179             "::",
180             stringify!(_IO_write_end)
181         )
182     );
183     assert_eq!(
184         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_base as *const _ as usize },
185         56usize,
186         concat!(
187             "Offset of field: ",
188             stringify!(_IO_FILE),
189             "::",
190             stringify!(_IO_buf_base)
191         )
192     );
193     assert_eq!(
194         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_buf_end as *const _ as usize },
195         64usize,
196         concat!(
197             "Offset of field: ",
198             stringify!(_IO_FILE),
199             "::",
200             stringify!(_IO_buf_end)
201         )
202     );
203     assert_eq!(
204         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_base as *const _ as usize },
205         72usize,
206         concat!(
207             "Offset of field: ",
208             stringify!(_IO_FILE),
209             "::",
210             stringify!(_IO_save_base)
211         )
212     );
213     assert_eq!(
214         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_backup_base as *const _ as usize },
215         80usize,
216         concat!(
217             "Offset of field: ",
218             stringify!(_IO_FILE),
219             "::",
220             stringify!(_IO_backup_base)
221         )
222     );
223     assert_eq!(
224         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._IO_save_end as *const _ as usize },
225         88usize,
226         concat!(
227             "Offset of field: ",
228             stringify!(_IO_FILE),
229             "::",
230             stringify!(_IO_save_end)
231         )
232     );
233     assert_eq!(
234         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._markers as *const _ as usize },
235         96usize,
236         concat!(
237             "Offset of field: ",
238             stringify!(_IO_FILE),
239             "::",
240             stringify!(_markers)
241         )
242     );
243     assert_eq!(
244         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._chain as *const _ as usize },
245         104usize,
246         concat!(
247             "Offset of field: ",
248             stringify!(_IO_FILE),
249             "::",
250             stringify!(_chain)
251         )
252     );
253     assert_eq!(
254         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._fileno as *const _ as usize },
255         112usize,
256         concat!(
257             "Offset of field: ",
258             stringify!(_IO_FILE),
259             "::",
260             stringify!(_fileno)
261         )
262     );
263     assert_eq!(
264         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._flags2 as *const _ as usize },
265         116usize,
266         concat!(
267             "Offset of field: ",
268             stringify!(_IO_FILE),
269             "::",
270             stringify!(_flags2)
271         )
272     );
273     assert_eq!(
274         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._old_offset as *const _ as usize },
275         120usize,
276         concat!(
277             "Offset of field: ",
278             stringify!(_IO_FILE),
279             "::",
280             stringify!(_old_offset)
281         )
282     );
283     assert_eq!(
284         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._cur_column as *const _ as usize },
285         128usize,
286         concat!(
287             "Offset of field: ",
288             stringify!(_IO_FILE),
289             "::",
290             stringify!(_cur_column)
291         )
292     );
293     assert_eq!(
294         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._vtable_offset as *const _ as usize },
295         130usize,
296         concat!(
297             "Offset of field: ",
298             stringify!(_IO_FILE),
299             "::",
300             stringify!(_vtable_offset)
301         )
302     );
303     assert_eq!(
304         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._shortbuf as *const _ as usize },
305         131usize,
306         concat!(
307             "Offset of field: ",
308             stringify!(_IO_FILE),
309             "::",
310             stringify!(_shortbuf)
311         )
312     );
313     assert_eq!(
314         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._lock as *const _ as usize },
315         136usize,
316         concat!(
317             "Offset of field: ",
318             stringify!(_IO_FILE),
319             "::",
320             stringify!(_lock)
321         )
322     );
323     assert_eq!(
324         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._offset as *const _ as usize },
325         144usize,
326         concat!(
327             "Offset of field: ",
328             stringify!(_IO_FILE),
329             "::",
330             stringify!(_offset)
331         )
332     );
333     assert_eq!(
334         unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad1 as *const _ as usize },
335         152usize,
336         concat!(
337             "Offset of field: ",
338             stringify!(_IO_FILE),
339             "::",
340             stringify!(__pad1)
341         )
342     );
343     assert_eq!(
344         unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad2 as *const _ as usize },
345         160usize,
346         concat!(
347             "Offset of field: ",
348             stringify!(_IO_FILE),
349             "::",
350             stringify!(__pad2)
351         )
352     );
353     assert_eq!(
354         unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad3 as *const _ as usize },
355         168usize,
356         concat!(
357             "Offset of field: ",
358             stringify!(_IO_FILE),
359             "::",
360             stringify!(__pad3)
361         )
362     );
363     assert_eq!(
364         unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad4 as *const _ as usize },
365         176usize,
366         concat!(
367             "Offset of field: ",
368             stringify!(_IO_FILE),
369             "::",
370             stringify!(__pad4)
371         )
372     );
373     assert_eq!(
374         unsafe { &(*(::std::ptr::null::<_IO_FILE>())).__pad5 as *const _ as usize },
375         184usize,
376         concat!(
377             "Offset of field: ",
378             stringify!(_IO_FILE),
379             "::",
380             stringify!(__pad5)
381         )
382     );
383     assert_eq!(
384         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._mode as *const _ as usize },
385         192usize,
386         concat!(
387             "Offset of field: ",
388             stringify!(_IO_FILE),
389             "::",
390             stringify!(_mode)
391         )
392     );
393     assert_eq!(
394         unsafe { &(*(::std::ptr::null::<_IO_FILE>()))._unused2 as *const _ as usize },
395         196usize,
396         concat!(
397             "Offset of field: ",
398             stringify!(_IO_FILE),
399             "::",
400             stringify!(_unused2)
401         )
402     );
403 }
404 pub type time_t = __time_t;
405 #[repr(C)]
406 #[derive(Debug, Copy, Clone)]
407 pub struct timespec {
408     pub tv_sec: __time_t,
409     pub tv_nsec: __syscall_slong_t,
410 }
411 #[test]
bindgen_test_layout_timespec()412 fn bindgen_test_layout_timespec() {
413     assert_eq!(
414         ::std::mem::size_of::<timespec>(),
415         16usize,
416         concat!("Size of: ", stringify!(timespec))
417     );
418     assert_eq!(
419         ::std::mem::align_of::<timespec>(),
420         8usize,
421         concat!("Alignment of ", stringify!(timespec))
422     );
423     assert_eq!(
424         unsafe { &(*(::std::ptr::null::<timespec>())).tv_sec as *const _ as usize },
425         0usize,
426         concat!(
427             "Offset of field: ",
428             stringify!(timespec),
429             "::",
430             stringify!(tv_sec)
431         )
432     );
433     assert_eq!(
434         unsafe { &(*(::std::ptr::null::<timespec>())).tv_nsec as *const _ as usize },
435         8usize,
436         concat!(
437             "Offset of field: ",
438             stringify!(timespec),
439             "::",
440             stringify!(tv_nsec)
441         )
442     );
443 }
444 #[repr(C)]
445 #[derive(Debug, Copy, Clone)]
446 pub struct tm {
447     pub tm_sec: libc::c_int,
448     pub tm_min: libc::c_int,
449     pub tm_hour: libc::c_int,
450     pub tm_mday: libc::c_int,
451     pub tm_mon: libc::c_int,
452     pub tm_year: libc::c_int,
453     pub tm_wday: libc::c_int,
454     pub tm_yday: libc::c_int,
455     pub tm_isdst: libc::c_int,
456     pub tm_gmtoff: libc::c_long,
457     pub tm_zone: *const libc::c_char,
458 }
459 #[test]
bindgen_test_layout_tm()460 fn bindgen_test_layout_tm() {
461     assert_eq!(
462         ::std::mem::size_of::<tm>(),
463         56usize,
464         concat!("Size of: ", stringify!(tm))
465     );
466     assert_eq!(
467         ::std::mem::align_of::<tm>(),
468         8usize,
469         concat!("Alignment of ", stringify!(tm))
470     );
471     assert_eq!(
472         unsafe { &(*(::std::ptr::null::<tm>())).tm_sec as *const _ as usize },
473         0usize,
474         concat!(
475             "Offset of field: ",
476             stringify!(tm),
477             "::",
478             stringify!(tm_sec)
479         )
480     );
481     assert_eq!(
482         unsafe { &(*(::std::ptr::null::<tm>())).tm_min as *const _ as usize },
483         4usize,
484         concat!(
485             "Offset of field: ",
486             stringify!(tm),
487             "::",
488             stringify!(tm_min)
489         )
490     );
491     assert_eq!(
492         unsafe { &(*(::std::ptr::null::<tm>())).tm_hour as *const _ as usize },
493         8usize,
494         concat!(
495             "Offset of field: ",
496             stringify!(tm),
497             "::",
498             stringify!(tm_hour)
499         )
500     );
501     assert_eq!(
502         unsafe { &(*(::std::ptr::null::<tm>())).tm_mday as *const _ as usize },
503         12usize,
504         concat!(
505             "Offset of field: ",
506             stringify!(tm),
507             "::",
508             stringify!(tm_mday)
509         )
510     );
511     assert_eq!(
512         unsafe { &(*(::std::ptr::null::<tm>())).tm_mon as *const _ as usize },
513         16usize,
514         concat!(
515             "Offset of field: ",
516             stringify!(tm),
517             "::",
518             stringify!(tm_mon)
519         )
520     );
521     assert_eq!(
522         unsafe { &(*(::std::ptr::null::<tm>())).tm_year as *const _ as usize },
523         20usize,
524         concat!(
525             "Offset of field: ",
526             stringify!(tm),
527             "::",
528             stringify!(tm_year)
529         )
530     );
531     assert_eq!(
532         unsafe { &(*(::std::ptr::null::<tm>())).tm_wday as *const _ as usize },
533         24usize,
534         concat!(
535             "Offset of field: ",
536             stringify!(tm),
537             "::",
538             stringify!(tm_wday)
539         )
540     );
541     assert_eq!(
542         unsafe { &(*(::std::ptr::null::<tm>())).tm_yday as *const _ as usize },
543         28usize,
544         concat!(
545             "Offset of field: ",
546             stringify!(tm),
547             "::",
548             stringify!(tm_yday)
549         )
550     );
551     assert_eq!(
552         unsafe { &(*(::std::ptr::null::<tm>())).tm_isdst as *const _ as usize },
553         32usize,
554         concat!(
555             "Offset of field: ",
556             stringify!(tm),
557             "::",
558             stringify!(tm_isdst)
559         )
560     );
561     assert_eq!(
562         unsafe { &(*(::std::ptr::null::<tm>())).tm_gmtoff as *const _ as usize },
563         40usize,
564         concat!(
565             "Offset of field: ",
566             stringify!(tm),
567             "::",
568             stringify!(tm_gmtoff)
569         )
570     );
571     assert_eq!(
572         unsafe { &(*(::std::ptr::null::<tm>())).tm_zone as *const _ as usize },
573         48usize,
574         concat!(
575             "Offset of field: ",
576             stringify!(tm),
577             "::",
578             stringify!(tm_zone)
579         )
580     );
581 }
582 pub type GInt32 = libc::c_int;
583 pub type GUInt32 = libc::c_uint;
584 pub type GInt16 = libc::c_short;
585 pub type GByte = libc::c_uchar;
586 pub type GIntBig = libc::c_longlong;
587 pub type GUIntBig = libc::c_ulonglong;
588 #[repr(C)]
589 #[derive(Debug, Copy, Clone)]
590 pub struct stat {
591     pub st_dev: __dev_t,
592     pub st_ino: __ino_t,
593     pub st_nlink: __nlink_t,
594     pub st_mode: __mode_t,
595     pub st_uid: __uid_t,
596     pub st_gid: __gid_t,
597     pub __pad0: libc::c_int,
598     pub st_rdev: __dev_t,
599     pub st_size: __off_t,
600     pub st_blksize: __blksize_t,
601     pub st_blocks: __blkcnt_t,
602     pub st_atim: timespec,
603     pub st_mtim: timespec,
604     pub st_ctim: timespec,
605     pub __glibc_reserved: [__syscall_slong_t; 3usize],
606 }
607 #[test]
bindgen_test_layout_stat()608 fn bindgen_test_layout_stat() {
609     assert_eq!(
610         ::std::mem::size_of::<stat>(),
611         144usize,
612         concat!("Size of: ", stringify!(stat))
613     );
614     assert_eq!(
615         ::std::mem::align_of::<stat>(),
616         8usize,
617         concat!("Alignment of ", stringify!(stat))
618     );
619     assert_eq!(
620         unsafe { &(*(::std::ptr::null::<stat>())).st_dev as *const _ as usize },
621         0usize,
622         concat!(
623             "Offset of field: ",
624             stringify!(stat),
625             "::",
626             stringify!(st_dev)
627         )
628     );
629     assert_eq!(
630         unsafe { &(*(::std::ptr::null::<stat>())).st_ino as *const _ as usize },
631         8usize,
632         concat!(
633             "Offset of field: ",
634             stringify!(stat),
635             "::",
636             stringify!(st_ino)
637         )
638     );
639     assert_eq!(
640         unsafe { &(*(::std::ptr::null::<stat>())).st_nlink as *const _ as usize },
641         16usize,
642         concat!(
643             "Offset of field: ",
644             stringify!(stat),
645             "::",
646             stringify!(st_nlink)
647         )
648     );
649     assert_eq!(
650         unsafe { &(*(::std::ptr::null::<stat>())).st_mode as *const _ as usize },
651         24usize,
652         concat!(
653             "Offset of field: ",
654             stringify!(stat),
655             "::",
656             stringify!(st_mode)
657         )
658     );
659     assert_eq!(
660         unsafe { &(*(::std::ptr::null::<stat>())).st_uid as *const _ as usize },
661         28usize,
662         concat!(
663             "Offset of field: ",
664             stringify!(stat),
665             "::",
666             stringify!(st_uid)
667         )
668     );
669     assert_eq!(
670         unsafe { &(*(::std::ptr::null::<stat>())).st_gid as *const _ as usize },
671         32usize,
672         concat!(
673             "Offset of field: ",
674             stringify!(stat),
675             "::",
676             stringify!(st_gid)
677         )
678     );
679     assert_eq!(
680         unsafe { &(*(::std::ptr::null::<stat>())).__pad0 as *const _ as usize },
681         36usize,
682         concat!(
683             "Offset of field: ",
684             stringify!(stat),
685             "::",
686             stringify!(__pad0)
687         )
688     );
689     assert_eq!(
690         unsafe { &(*(::std::ptr::null::<stat>())).st_rdev as *const _ as usize },
691         40usize,
692         concat!(
693             "Offset of field: ",
694             stringify!(stat),
695             "::",
696             stringify!(st_rdev)
697         )
698     );
699     assert_eq!(
700         unsafe { &(*(::std::ptr::null::<stat>())).st_size as *const _ as usize },
701         48usize,
702         concat!(
703             "Offset of field: ",
704             stringify!(stat),
705             "::",
706             stringify!(st_size)
707         )
708     );
709     assert_eq!(
710         unsafe { &(*(::std::ptr::null::<stat>())).st_blksize as *const _ as usize },
711         56usize,
712         concat!(
713             "Offset of field: ",
714             stringify!(stat),
715             "::",
716             stringify!(st_blksize)
717         )
718     );
719     assert_eq!(
720         unsafe { &(*(::std::ptr::null::<stat>())).st_blocks as *const _ as usize },
721         64usize,
722         concat!(
723             "Offset of field: ",
724             stringify!(stat),
725             "::",
726             stringify!(st_blocks)
727         )
728     );
729     assert_eq!(
730         unsafe { &(*(::std::ptr::null::<stat>())).st_atim as *const _ as usize },
731         72usize,
732         concat!(
733             "Offset of field: ",
734             stringify!(stat),
735             "::",
736             stringify!(st_atim)
737         )
738     );
739     assert_eq!(
740         unsafe { &(*(::std::ptr::null::<stat>())).st_mtim as *const _ as usize },
741         88usize,
742         concat!(
743             "Offset of field: ",
744             stringify!(stat),
745             "::",
746             stringify!(st_mtim)
747         )
748     );
749     assert_eq!(
750         unsafe { &(*(::std::ptr::null::<stat>())).st_ctim as *const _ as usize },
751         104usize,
752         concat!(
753             "Offset of field: ",
754             stringify!(stat),
755             "::",
756             stringify!(st_ctim)
757         )
758     );
759     assert_eq!(
760         unsafe { &(*(::std::ptr::null::<stat>())).__glibc_reserved as *const _ as usize },
761         120usize,
762         concat!(
763             "Offset of field: ",
764             stringify!(stat),
765             "::",
766             stringify!(__glibc_reserved)
767         )
768     );
769 }
770 extern "C" {
VSIFOpen(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut FILE771     pub fn VSIFOpen(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut FILE;
772 }
773 extern "C" {
VSIFClose(arg1: *mut FILE) -> libc::c_int774     pub fn VSIFClose(arg1: *mut FILE) -> libc::c_int;
775 }
776 extern "C" {
VSIFSeek(arg1: *mut FILE, arg2: libc::c_long, arg3: libc::c_int) -> libc::c_int777     pub fn VSIFSeek(arg1: *mut FILE, arg2: libc::c_long, arg3: libc::c_int) -> libc::c_int;
778 }
779 extern "C" {
VSIFTell(arg1: *mut FILE) -> libc::c_long780     pub fn VSIFTell(arg1: *mut FILE) -> libc::c_long;
781 }
782 extern "C" {
VSIRewind(arg1: *mut FILE)783     pub fn VSIRewind(arg1: *mut FILE);
784 }
785 extern "C" {
VSIFFlush(arg1: *mut FILE)786     pub fn VSIFFlush(arg1: *mut FILE);
787 }
788 extern "C" {
VSIFRead(arg1: *mut libc::c_void, arg2: usize, arg3: usize, arg4: *mut FILE) -> usize789     pub fn VSIFRead(arg1: *mut libc::c_void, arg2: usize, arg3: usize, arg4: *mut FILE) -> usize;
790 }
791 extern "C" {
VSIFWrite(arg1: *const libc::c_void, arg2: usize, arg3: usize, arg4: *mut FILE) -> usize792     pub fn VSIFWrite(arg1: *const libc::c_void, arg2: usize, arg3: usize, arg4: *mut FILE)
793         -> usize;
794 }
795 extern "C" {
VSIFGets( arg1: *mut libc::c_char, arg2: libc::c_int, arg3: *mut FILE, ) -> *mut libc::c_char796     pub fn VSIFGets(
797         arg1: *mut libc::c_char,
798         arg2: libc::c_int,
799         arg3: *mut FILE,
800     ) -> *mut libc::c_char;
801 }
802 extern "C" {
VSIFPuts(arg1: *const libc::c_char, arg2: *mut FILE) -> libc::c_int803     pub fn VSIFPuts(arg1: *const libc::c_char, arg2: *mut FILE) -> libc::c_int;
804 }
805 extern "C" {
VSIFPrintf(arg1: *mut FILE, arg2: *const libc::c_char, ...) -> libc::c_int806     pub fn VSIFPrintf(arg1: *mut FILE, arg2: *const libc::c_char, ...) -> libc::c_int;
807 }
808 extern "C" {
VSIFGetc(arg1: *mut FILE) -> libc::c_int809     pub fn VSIFGetc(arg1: *mut FILE) -> libc::c_int;
810 }
811 extern "C" {
VSIFPutc(arg1: libc::c_int, arg2: *mut FILE) -> libc::c_int812     pub fn VSIFPutc(arg1: libc::c_int, arg2: *mut FILE) -> libc::c_int;
813 }
814 extern "C" {
VSIUngetc(arg1: libc::c_int, arg2: *mut FILE) -> libc::c_int815     pub fn VSIUngetc(arg1: libc::c_int, arg2: *mut FILE) -> libc::c_int;
816 }
817 extern "C" {
VSIFEof(arg1: *mut FILE) -> libc::c_int818     pub fn VSIFEof(arg1: *mut FILE) -> libc::c_int;
819 }
820 pub type VSIStatBuf = stat;
821 extern "C" {
VSIStat(arg1: *const libc::c_char, arg2: *mut VSIStatBuf) -> libc::c_int822     pub fn VSIStat(arg1: *const libc::c_char, arg2: *mut VSIStatBuf) -> libc::c_int;
823 }
824 pub type vsi_l_offset = GUIntBig;
825 pub type VSILFILE = FILE;
826 extern "C" {
VSIFOpenL(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut VSILFILE827     pub fn VSIFOpenL(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut VSILFILE;
828 }
829 extern "C" {
VSIFOpenExL( arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: libc::c_int, ) -> *mut VSILFILE830     pub fn VSIFOpenExL(
831         arg1: *const libc::c_char,
832         arg2: *const libc::c_char,
833         arg3: libc::c_int,
834     ) -> *mut VSILFILE;
835 }
836 extern "C" {
VSIFCloseL(arg1: *mut VSILFILE) -> libc::c_int837     pub fn VSIFCloseL(arg1: *mut VSILFILE) -> libc::c_int;
838 }
839 extern "C" {
VSIFSeekL(arg1: *mut VSILFILE, arg2: vsi_l_offset, arg3: libc::c_int) -> libc::c_int840     pub fn VSIFSeekL(arg1: *mut VSILFILE, arg2: vsi_l_offset, arg3: libc::c_int) -> libc::c_int;
841 }
842 extern "C" {
VSIFTellL(arg1: *mut VSILFILE) -> vsi_l_offset843     pub fn VSIFTellL(arg1: *mut VSILFILE) -> vsi_l_offset;
844 }
845 extern "C" {
VSIRewindL(arg1: *mut VSILFILE)846     pub fn VSIRewindL(arg1: *mut VSILFILE);
847 }
848 extern "C" {
VSIFReadL( arg1: *mut libc::c_void, arg2: usize, arg3: usize, arg4: *mut VSILFILE, ) -> usize849     pub fn VSIFReadL(
850         arg1: *mut libc::c_void,
851         arg2: usize,
852         arg3: usize,
853         arg4: *mut VSILFILE,
854     ) -> usize;
855 }
856 extern "C" {
VSIFReadMultiRangeL( nRanges: libc::c_int, ppData: *mut *mut libc::c_void, panOffsets: *const vsi_l_offset, panSizes: *const usize, arg1: *mut VSILFILE, ) -> libc::c_int857     pub fn VSIFReadMultiRangeL(
858         nRanges: libc::c_int,
859         ppData: *mut *mut libc::c_void,
860         panOffsets: *const vsi_l_offset,
861         panSizes: *const usize,
862         arg1: *mut VSILFILE,
863     ) -> libc::c_int;
864 }
865 extern "C" {
VSIFWriteL( arg1: *const libc::c_void, arg2: usize, arg3: usize, arg4: *mut VSILFILE, ) -> usize866     pub fn VSIFWriteL(
867         arg1: *const libc::c_void,
868         arg2: usize,
869         arg3: usize,
870         arg4: *mut VSILFILE,
871     ) -> usize;
872 }
873 extern "C" {
VSIFEofL(arg1: *mut VSILFILE) -> libc::c_int874     pub fn VSIFEofL(arg1: *mut VSILFILE) -> libc::c_int;
875 }
876 extern "C" {
VSIFTruncateL(arg1: *mut VSILFILE, arg2: vsi_l_offset) -> libc::c_int877     pub fn VSIFTruncateL(arg1: *mut VSILFILE, arg2: vsi_l_offset) -> libc::c_int;
878 }
879 extern "C" {
VSIFFlushL(arg1: *mut VSILFILE) -> libc::c_int880     pub fn VSIFFlushL(arg1: *mut VSILFILE) -> libc::c_int;
881 }
882 extern "C" {
VSIFPrintfL(arg1: *mut VSILFILE, arg2: *const libc::c_char, ...) -> libc::c_int883     pub fn VSIFPrintfL(arg1: *mut VSILFILE, arg2: *const libc::c_char, ...) -> libc::c_int;
884 }
885 extern "C" {
VSIFPutcL(arg1: libc::c_int, arg2: *mut VSILFILE) -> libc::c_int886     pub fn VSIFPutcL(arg1: libc::c_int, arg2: *mut VSILFILE) -> libc::c_int;
887 }
888 extern "C" {
VSIIngestFile( fp: *mut VSILFILE, pszFilename: *const libc::c_char, ppabyRet: *mut *mut GByte, pnSize: *mut vsi_l_offset, nMaxSize: GIntBig, ) -> libc::c_int889     pub fn VSIIngestFile(
890         fp: *mut VSILFILE,
891         pszFilename: *const libc::c_char,
892         ppabyRet: *mut *mut GByte,
893         pnSize: *mut vsi_l_offset,
894         nMaxSize: GIntBig,
895     ) -> libc::c_int;
896 }
897 #[repr(C)]
898 #[derive(Debug, Copy, Clone)]
899 pub struct stat64 {
900     _unused: [u8; 0],
901 }
902 pub type VSIStatBufL = stat64;
903 extern "C" {
VSIStatL(arg1: *const libc::c_char, arg2: *mut VSIStatBufL) -> libc::c_int904     pub fn VSIStatL(arg1: *const libc::c_char, arg2: *mut VSIStatBufL) -> libc::c_int;
905 }
906 extern "C" {
VSIStatExL( pszFilename: *const libc::c_char, psStatBuf: *mut VSIStatBufL, nFlags: libc::c_int, ) -> libc::c_int907     pub fn VSIStatExL(
908         pszFilename: *const libc::c_char,
909         psStatBuf: *mut VSIStatBufL,
910         nFlags: libc::c_int,
911     ) -> libc::c_int;
912 }
913 extern "C" {
VSIIsCaseSensitiveFS(pszFilename: *const libc::c_char) -> libc::c_int914     pub fn VSIIsCaseSensitiveFS(pszFilename: *const libc::c_char) -> libc::c_int;
915 }
916 extern "C" {
VSIFGetNativeFileDescriptorL(arg1: *mut VSILFILE) -> *mut libc::c_void917     pub fn VSIFGetNativeFileDescriptorL(arg1: *mut VSILFILE) -> *mut libc::c_void;
918 }
919 extern "C" {
VSICalloc(arg1: usize, arg2: usize) -> *mut libc::c_void920     pub fn VSICalloc(arg1: usize, arg2: usize) -> *mut libc::c_void;
921 }
922 extern "C" {
VSIMalloc(arg1: usize) -> *mut libc::c_void923     pub fn VSIMalloc(arg1: usize) -> *mut libc::c_void;
924 }
925 extern "C" {
VSIFree(arg1: *mut libc::c_void)926     pub fn VSIFree(arg1: *mut libc::c_void);
927 }
928 extern "C" {
VSIRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void929     pub fn VSIRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void;
930 }
931 extern "C" {
VSIStrdup(arg1: *const libc::c_char) -> *mut libc::c_char932     pub fn VSIStrdup(arg1: *const libc::c_char) -> *mut libc::c_char;
933 }
934 extern "C" {
935     /// VSIMalloc2 allocates (nSize1 * nSize2) bytes.
936     /// In case of overflow of the multiplication, or if memory allocation fails, a
937     /// NULL pointer is returned and a CE_Failure error is raised with CPLError().
938     /// If nSize1 == 0 || nSize2 == 0, a NULL pointer will also be returned.
939     /// CPLFree() or VSIFree() can be used to free memory allocated by this function.
VSIMalloc2(nSize1: usize, nSize2: usize) -> *mut libc::c_void940     pub fn VSIMalloc2(nSize1: usize, nSize2: usize) -> *mut libc::c_void;
941 }
942 extern "C" {
943     /// VSIMalloc3 allocates (nSize1 * nSize2 * nSize3) bytes.
944     /// In case of overflow of the multiplication, or if memory allocation fails, a
945     /// NULL pointer is returned and a CE_Failure error is raised with CPLError().
946     /// If nSize1 == 0 || nSize2 == 0 || nSize3 == 0, a NULL pointer will also be returned.
947     /// CPLFree() or VSIFree() can be used to free memory allocated by this function.
VSIMalloc3(nSize1: usize, nSize2: usize, nSize3: usize) -> *mut libc::c_void948     pub fn VSIMalloc3(nSize1: usize, nSize2: usize, nSize3: usize) -> *mut libc::c_void;
949 }
950 extern "C" {
VSIMallocVerbose( nSize: usize, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_void951     pub fn VSIMallocVerbose(
952         nSize: usize,
953         pszFile: *const libc::c_char,
954         nLine: libc::c_int,
955     ) -> *mut libc::c_void;
956 }
957 extern "C" {
VSIMalloc2Verbose( nSize1: usize, nSize2: usize, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_void958     pub fn VSIMalloc2Verbose(
959         nSize1: usize,
960         nSize2: usize,
961         pszFile: *const libc::c_char,
962         nLine: libc::c_int,
963     ) -> *mut libc::c_void;
964 }
965 extern "C" {
VSIMalloc3Verbose( nSize1: usize, nSize2: usize, nSize3: usize, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_void966     pub fn VSIMalloc3Verbose(
967         nSize1: usize,
968         nSize2: usize,
969         nSize3: usize,
970         pszFile: *const libc::c_char,
971         nLine: libc::c_int,
972     ) -> *mut libc::c_void;
973 }
974 extern "C" {
VSICallocVerbose( nCount: usize, nSize: usize, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_void975     pub fn VSICallocVerbose(
976         nCount: usize,
977         nSize: usize,
978         pszFile: *const libc::c_char,
979         nLine: libc::c_int,
980     ) -> *mut libc::c_void;
981 }
982 extern "C" {
VSIReallocVerbose( pOldPtr: *mut libc::c_void, nNewSize: usize, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_void983     pub fn VSIReallocVerbose(
984         pOldPtr: *mut libc::c_void,
985         nNewSize: usize,
986         pszFile: *const libc::c_char,
987         nLine: libc::c_int,
988     ) -> *mut libc::c_void;
989 }
990 extern "C" {
VSIStrdupVerbose( pszStr: *const libc::c_char, pszFile: *const libc::c_char, nLine: libc::c_int, ) -> *mut libc::c_char991     pub fn VSIStrdupVerbose(
992         pszStr: *const libc::c_char,
993         pszFile: *const libc::c_char,
994         nLine: libc::c_int,
995     ) -> *mut libc::c_char;
996 }
997 extern "C" {
CPLGetPhysicalRAM() -> GIntBig998     pub fn CPLGetPhysicalRAM() -> GIntBig;
999 }
1000 extern "C" {
CPLGetUsablePhysicalRAM() -> GIntBig1001     pub fn CPLGetUsablePhysicalRAM() -> GIntBig;
1002 }
1003 extern "C" {
VSIReadDir(arg1: *const libc::c_char) -> *mut *mut libc::c_char1004     pub fn VSIReadDir(arg1: *const libc::c_char) -> *mut *mut libc::c_char;
1005 }
1006 extern "C" {
VSIReadDirRecursive(pszPath: *const libc::c_char) -> *mut *mut libc::c_char1007     pub fn VSIReadDirRecursive(pszPath: *const libc::c_char) -> *mut *mut libc::c_char;
1008 }
1009 extern "C" {
VSIReadDirEx( pszPath: *const libc::c_char, nMaxFiles: libc::c_int, ) -> *mut *mut libc::c_char1010     pub fn VSIReadDirEx(
1011         pszPath: *const libc::c_char,
1012         nMaxFiles: libc::c_int,
1013     ) -> *mut *mut libc::c_char;
1014 }
1015 extern "C" {
VSIMkdir(pathname: *const libc::c_char, mode: libc::c_long) -> libc::c_int1016     pub fn VSIMkdir(pathname: *const libc::c_char, mode: libc::c_long) -> libc::c_int;
1017 }
1018 extern "C" {
VSIRmdir(pathname: *const libc::c_char) -> libc::c_int1019     pub fn VSIRmdir(pathname: *const libc::c_char) -> libc::c_int;
1020 }
1021 extern "C" {
VSIUnlink(pathname: *const libc::c_char) -> libc::c_int1022     pub fn VSIUnlink(pathname: *const libc::c_char) -> libc::c_int;
1023 }
1024 extern "C" {
VSIRename(oldpath: *const libc::c_char, newpath: *const libc::c_char) -> libc::c_int1025     pub fn VSIRename(oldpath: *const libc::c_char, newpath: *const libc::c_char) -> libc::c_int;
1026 }
1027 extern "C" {
VSIStrerror(arg1: libc::c_int) -> *mut libc::c_char1028     pub fn VSIStrerror(arg1: libc::c_int) -> *mut libc::c_char;
1029 }
1030 extern "C" {
VSIGetDiskFreeSpace(pszDirname: *const libc::c_char) -> GIntBig1031     pub fn VSIGetDiskFreeSpace(pszDirname: *const libc::c_char) -> GIntBig;
1032 }
1033 extern "C" {
VSIInstallMemFileHandler()1034     pub fn VSIInstallMemFileHandler();
1035 }
1036 extern "C" {
VSIInstallLargeFileHandler()1037     pub fn VSIInstallLargeFileHandler();
1038 }
1039 extern "C" {
VSIInstallSubFileHandler()1040     pub fn VSIInstallSubFileHandler();
1041 }
1042 extern "C" {
VSIInstallCurlFileHandler()1043     pub fn VSIInstallCurlFileHandler();
1044 }
1045 extern "C" {
VSIInstallCurlStreamingFileHandler()1046     pub fn VSIInstallCurlStreamingFileHandler();
1047 }
1048 extern "C" {
VSIInstallS3FileHandler()1049     pub fn VSIInstallS3FileHandler();
1050 }
1051 extern "C" {
VSIInstallS3StreamingFileHandler()1052     pub fn VSIInstallS3StreamingFileHandler();
1053 }
1054 extern "C" {
VSIInstallGZipFileHandler()1055     pub fn VSIInstallGZipFileHandler();
1056 }
1057 extern "C" {
VSIInstallZipFileHandler()1058     pub fn VSIInstallZipFileHandler();
1059 }
1060 extern "C" {
VSIInstallStdinHandler()1061     pub fn VSIInstallStdinHandler();
1062 }
1063 extern "C" {
VSIInstallStdoutHandler()1064     pub fn VSIInstallStdoutHandler();
1065 }
1066 extern "C" {
VSIInstallSparseFileHandler()1067     pub fn VSIInstallSparseFileHandler();
1068 }
1069 extern "C" {
VSIInstallTarFileHandler()1070     pub fn VSIInstallTarFileHandler();
1071 }
1072 extern "C" {
VSIInstallCryptFileHandler()1073     pub fn VSIInstallCryptFileHandler();
1074 }
1075 extern "C" {
VSISetCryptKey(pabyKey: *const GByte, nKeySize: libc::c_int)1076     pub fn VSISetCryptKey(pabyKey: *const GByte, nKeySize: libc::c_int);
1077 }
1078 extern "C" {
VSICleanupFileManager()1079     pub fn VSICleanupFileManager();
1080 }
1081 extern "C" {
VSIFileFromMemBuffer( pszFilename: *const libc::c_char, pabyData: *mut GByte, nDataLength: vsi_l_offset, bTakeOwnership: libc::c_int, ) -> *mut VSILFILE1082     pub fn VSIFileFromMemBuffer(
1083         pszFilename: *const libc::c_char,
1084         pabyData: *mut GByte,
1085         nDataLength: vsi_l_offset,
1086         bTakeOwnership: libc::c_int,
1087     ) -> *mut VSILFILE;
1088 }
1089 extern "C" {
VSIGetMemFileBuffer( pszFilename: *const libc::c_char, pnDataLength: *mut vsi_l_offset, bUnlinkAndSeize: libc::c_int, ) -> *mut GByte1090     pub fn VSIGetMemFileBuffer(
1091         pszFilename: *const libc::c_char,
1092         pnDataLength: *mut vsi_l_offset,
1093         bUnlinkAndSeize: libc::c_int,
1094     ) -> *mut GByte;
1095 }
1096 pub type VSIWriteFunction = ::std::option::Option<
1097     unsafe extern "C" fn(ptr: *const libc::c_void, size: usize, nmemb: usize, stream: *mut FILE)
1098         -> usize,
1099 >;
1100 extern "C" {
VSIStdoutSetRedirection(pFct: VSIWriteFunction, stream: *mut FILE)1101     pub fn VSIStdoutSetRedirection(pFct: VSIWriteFunction, stream: *mut FILE);
1102 }
1103 extern "C" {
VSITime(arg1: *mut libc::c_ulong) -> libc::c_ulong1104     pub fn VSITime(arg1: *mut libc::c_ulong) -> libc::c_ulong;
1105 }
1106 extern "C" {
VSICTime(arg1: libc::c_ulong) -> *const libc::c_char1107     pub fn VSICTime(arg1: libc::c_ulong) -> *const libc::c_char;
1108 }
1109 extern "C" {
VSIGMTime(pnTime: *const time_t, poBrokenTime: *mut tm) -> *mut tm1110     pub fn VSIGMTime(pnTime: *const time_t, poBrokenTime: *mut tm) -> *mut tm;
1111 }
1112 extern "C" {
VSILocalTime(pnTime: *const time_t, poBrokenTime: *mut tm) -> *mut tm1113     pub fn VSILocalTime(pnTime: *const time_t, poBrokenTime: *mut tm) -> *mut tm;
1114 }
1115 pub mod CPLErr {
1116     /// \file cpl_error.h
1117     ///
1118     /// CPL error handling services.
1119     pub type Type = u32;
1120     pub const CE_None: Type = 0;
1121     pub const CE_Debug: Type = 1;
1122     pub const CE_Warning: Type = 2;
1123     pub const CE_Failure: Type = 3;
1124     pub const CE_Fatal: Type = 4;
1125 }
1126 pub type CPLErrorNum = libc::c_int;
1127 extern "C" {
CPLError(eErrClass: CPLErr::Type, err_no: CPLErrorNum, fmt: *const libc::c_char, ...)1128     pub fn CPLError(eErrClass: CPLErr::Type, err_no: CPLErrorNum, fmt: *const libc::c_char, ...);
1129 }
1130 extern "C" {
CPLErrorV( arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char, arg4: *mut __va_list_tag, )1131     pub fn CPLErrorV(
1132         arg1: CPLErr::Type,
1133         arg2: CPLErrorNum,
1134         arg3: *const libc::c_char,
1135         arg4: *mut __va_list_tag,
1136     );
1137 }
1138 extern "C" {
CPLEmergencyError(arg1: *const libc::c_char)1139     pub fn CPLEmergencyError(arg1: *const libc::c_char);
1140 }
1141 extern "C" {
CPLErrorReset()1142     pub fn CPLErrorReset();
1143 }
1144 extern "C" {
CPLGetLastErrorNo() -> CPLErrorNum1145     pub fn CPLGetLastErrorNo() -> CPLErrorNum;
1146 }
1147 extern "C" {
CPLGetLastErrorType() -> CPLErr::Type1148     pub fn CPLGetLastErrorType() -> CPLErr::Type;
1149 }
1150 extern "C" {
CPLGetLastErrorMsg() -> *const libc::c_char1151     pub fn CPLGetLastErrorMsg() -> *const libc::c_char;
1152 }
1153 extern "C" {
CPLGetErrorHandlerUserData() -> *mut libc::c_void1154     pub fn CPLGetErrorHandlerUserData() -> *mut libc::c_void;
1155 }
1156 extern "C" {
CPLErrorSetState( eErrClass: CPLErr::Type, err_no: CPLErrorNum, pszMsg: *const libc::c_char, )1157     pub fn CPLErrorSetState(
1158         eErrClass: CPLErr::Type,
1159         err_no: CPLErrorNum,
1160         pszMsg: *const libc::c_char,
1161     );
1162 }
1163 extern "C" {
CPLCleanupErrorMutex()1164     pub fn CPLCleanupErrorMutex();
1165 }
1166 pub type CPLErrorHandler = ::std::option::Option<
1167     unsafe extern "C" fn(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char),
1168 >;
1169 extern "C" {
CPLLoggingErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char)1170     pub fn CPLLoggingErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char);
1171 }
1172 extern "C" {
CPLDefaultErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char)1173     pub fn CPLDefaultErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char);
1174 }
1175 extern "C" {
CPLQuietErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char)1176     pub fn CPLQuietErrorHandler(arg1: CPLErr::Type, arg2: CPLErrorNum, arg3: *const libc::c_char);
1177 }
1178 extern "C" {
CPLTurnFailureIntoWarning(bOn: libc::c_int)1179     pub fn CPLTurnFailureIntoWarning(bOn: libc::c_int);
1180 }
1181 extern "C" {
CPLSetErrorHandler(arg1: CPLErrorHandler) -> CPLErrorHandler1182     pub fn CPLSetErrorHandler(arg1: CPLErrorHandler) -> CPLErrorHandler;
1183 }
1184 extern "C" {
CPLSetErrorHandlerEx(arg1: CPLErrorHandler, arg2: *mut libc::c_void) -> CPLErrorHandler1185     pub fn CPLSetErrorHandlerEx(arg1: CPLErrorHandler, arg2: *mut libc::c_void) -> CPLErrorHandler;
1186 }
1187 extern "C" {
CPLPushErrorHandler(arg1: CPLErrorHandler)1188     pub fn CPLPushErrorHandler(arg1: CPLErrorHandler);
1189 }
1190 extern "C" {
CPLPushErrorHandlerEx(arg1: CPLErrorHandler, arg2: *mut libc::c_void)1191     pub fn CPLPushErrorHandlerEx(arg1: CPLErrorHandler, arg2: *mut libc::c_void);
1192 }
1193 extern "C" {
CPLSetCurrentErrorHandlerCatchDebug(bCatchDebug: libc::c_int)1194     pub fn CPLSetCurrentErrorHandlerCatchDebug(bCatchDebug: libc::c_int);
1195 }
1196 extern "C" {
CPLPopErrorHandler()1197     pub fn CPLPopErrorHandler();
1198 }
1199 extern "C" {
CPLDebug(arg1: *const libc::c_char, arg2: *const libc::c_char, ...)1200     pub fn CPLDebug(arg1: *const libc::c_char, arg2: *const libc::c_char, ...);
1201 }
1202 extern "C" {
1203     /// \file cpl_conv.h
1204     ///
1205     /// Various convenience functions for CPL.
1206     ///
CPLVerifyConfiguration()1207     pub fn CPLVerifyConfiguration();
1208 }
1209 extern "C" {
CPLGetConfigOption( arg1: *const libc::c_char, arg2: *const libc::c_char, ) -> *const libc::c_char1210     pub fn CPLGetConfigOption(
1211         arg1: *const libc::c_char,
1212         arg2: *const libc::c_char,
1213     ) -> *const libc::c_char;
1214 }
1215 extern "C" {
CPLGetThreadLocalConfigOption( arg1: *const libc::c_char, arg2: *const libc::c_char, ) -> *const libc::c_char1216     pub fn CPLGetThreadLocalConfigOption(
1217         arg1: *const libc::c_char,
1218         arg2: *const libc::c_char,
1219     ) -> *const libc::c_char;
1220 }
1221 extern "C" {
CPLSetConfigOption(arg1: *const libc::c_char, arg2: *const libc::c_char)1222     pub fn CPLSetConfigOption(arg1: *const libc::c_char, arg2: *const libc::c_char);
1223 }
1224 extern "C" {
CPLSetThreadLocalConfigOption( pszKey: *const libc::c_char, pszValue: *const libc::c_char, )1225     pub fn CPLSetThreadLocalConfigOption(
1226         pszKey: *const libc::c_char,
1227         pszValue: *const libc::c_char,
1228     );
1229 }
1230 extern "C" {
CPLFreeConfig()1231     pub fn CPLFreeConfig();
1232 }
1233 extern "C" {
CPLMalloc(arg1: usize) -> *mut libc::c_void1234     pub fn CPLMalloc(arg1: usize) -> *mut libc::c_void;
1235 }
1236 extern "C" {
CPLCalloc(arg1: usize, arg2: usize) -> *mut libc::c_void1237     pub fn CPLCalloc(arg1: usize, arg2: usize) -> *mut libc::c_void;
1238 }
1239 extern "C" {
CPLRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void1240     pub fn CPLRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void;
1241 }
1242 extern "C" {
CPLStrdup(arg1: *const libc::c_char) -> *mut libc::c_char1243     pub fn CPLStrdup(arg1: *const libc::c_char) -> *mut libc::c_char;
1244 }
1245 extern "C" {
CPLStrlwr(arg1: *mut libc::c_char) -> *mut libc::c_char1246     pub fn CPLStrlwr(arg1: *mut libc::c_char) -> *mut libc::c_char;
1247 }
1248 extern "C" {
CPLFGets( arg1: *mut libc::c_char, arg2: libc::c_int, arg3: *mut FILE, ) -> *mut libc::c_char1249     pub fn CPLFGets(
1250         arg1: *mut libc::c_char,
1251         arg2: libc::c_int,
1252         arg3: *mut FILE,
1253     ) -> *mut libc::c_char;
1254 }
1255 extern "C" {
CPLReadLine(arg1: *mut FILE) -> *const libc::c_char1256     pub fn CPLReadLine(arg1: *mut FILE) -> *const libc::c_char;
1257 }
1258 extern "C" {
CPLReadLineL(arg1: *mut VSILFILE) -> *const libc::c_char1259     pub fn CPLReadLineL(arg1: *mut VSILFILE) -> *const libc::c_char;
1260 }
1261 extern "C" {
CPLReadLine2L( arg1: *mut VSILFILE, nMaxCols: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> *const libc::c_char1262     pub fn CPLReadLine2L(
1263         arg1: *mut VSILFILE,
1264         nMaxCols: libc::c_int,
1265         papszOptions: *mut *mut libc::c_char,
1266     ) -> *const libc::c_char;
1267 }
1268 extern "C" {
CPLAtof(arg1: *const libc::c_char) -> f641269     pub fn CPLAtof(arg1: *const libc::c_char) -> f64;
1270 }
1271 extern "C" {
CPLAtofDelim(arg1: *const libc::c_char, arg2: libc::c_char) -> f641272     pub fn CPLAtofDelim(arg1: *const libc::c_char, arg2: libc::c_char) -> f64;
1273 }
1274 extern "C" {
CPLStrtod(arg1: *const libc::c_char, arg2: *mut *mut libc::c_char) -> f641275     pub fn CPLStrtod(arg1: *const libc::c_char, arg2: *mut *mut libc::c_char) -> f64;
1276 }
1277 extern "C" {
CPLStrtodDelim( arg1: *const libc::c_char, arg2: *mut *mut libc::c_char, arg3: libc::c_char, ) -> f641278     pub fn CPLStrtodDelim(
1279         arg1: *const libc::c_char,
1280         arg2: *mut *mut libc::c_char,
1281         arg3: libc::c_char,
1282     ) -> f64;
1283 }
1284 extern "C" {
CPLStrtof(arg1: *const libc::c_char, arg2: *mut *mut libc::c_char) -> f321285     pub fn CPLStrtof(arg1: *const libc::c_char, arg2: *mut *mut libc::c_char) -> f32;
1286 }
1287 extern "C" {
CPLStrtofDelim( arg1: *const libc::c_char, arg2: *mut *mut libc::c_char, arg3: libc::c_char, ) -> f321288     pub fn CPLStrtofDelim(
1289         arg1: *const libc::c_char,
1290         arg2: *mut *mut libc::c_char,
1291         arg3: libc::c_char,
1292     ) -> f32;
1293 }
1294 extern "C" {
CPLAtofM(arg1: *const libc::c_char) -> f641295     pub fn CPLAtofM(arg1: *const libc::c_char) -> f64;
1296 }
1297 extern "C" {
CPLScanString( arg1: *const libc::c_char, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, ) -> *mut libc::c_char1298     pub fn CPLScanString(
1299         arg1: *const libc::c_char,
1300         arg2: libc::c_int,
1301         arg3: libc::c_int,
1302         arg4: libc::c_int,
1303     ) -> *mut libc::c_char;
1304 }
1305 extern "C" {
CPLScanDouble(arg1: *const libc::c_char, arg2: libc::c_int) -> f641306     pub fn CPLScanDouble(arg1: *const libc::c_char, arg2: libc::c_int) -> f64;
1307 }
1308 extern "C" {
CPLScanLong(arg1: *const libc::c_char, arg2: libc::c_int) -> libc::c_long1309     pub fn CPLScanLong(arg1: *const libc::c_char, arg2: libc::c_int) -> libc::c_long;
1310 }
1311 extern "C" {
CPLScanULong(arg1: *const libc::c_char, arg2: libc::c_int) -> libc::c_ulong1312     pub fn CPLScanULong(arg1: *const libc::c_char, arg2: libc::c_int) -> libc::c_ulong;
1313 }
1314 extern "C" {
CPLScanUIntBig(arg1: *const libc::c_char, arg2: libc::c_int) -> GUIntBig1315     pub fn CPLScanUIntBig(arg1: *const libc::c_char, arg2: libc::c_int) -> GUIntBig;
1316 }
1317 extern "C" {
CPLAtoGIntBig(pszString: *const libc::c_char) -> GIntBig1318     pub fn CPLAtoGIntBig(pszString: *const libc::c_char) -> GIntBig;
1319 }
1320 extern "C" {
CPLAtoGIntBigEx( pszString: *const libc::c_char, bWarn: libc::c_int, pbOverflow: *mut libc::c_int, ) -> GIntBig1321     pub fn CPLAtoGIntBigEx(
1322         pszString: *const libc::c_char,
1323         bWarn: libc::c_int,
1324         pbOverflow: *mut libc::c_int,
1325     ) -> GIntBig;
1326 }
1327 extern "C" {
CPLScanPointer(arg1: *const libc::c_char, arg2: libc::c_int) -> *mut libc::c_void1328     pub fn CPLScanPointer(arg1: *const libc::c_char, arg2: libc::c_int) -> *mut libc::c_void;
1329 }
1330 extern "C" {
CPLPrintString( arg1: *mut libc::c_char, arg2: *const libc::c_char, arg3: libc::c_int, ) -> libc::c_int1331     pub fn CPLPrintString(
1332         arg1: *mut libc::c_char,
1333         arg2: *const libc::c_char,
1334         arg3: libc::c_int,
1335     ) -> libc::c_int;
1336 }
1337 extern "C" {
CPLPrintStringFill( arg1: *mut libc::c_char, arg2: *const libc::c_char, arg3: libc::c_int, ) -> libc::c_int1338     pub fn CPLPrintStringFill(
1339         arg1: *mut libc::c_char,
1340         arg2: *const libc::c_char,
1341         arg3: libc::c_int,
1342     ) -> libc::c_int;
1343 }
1344 extern "C" {
CPLPrintInt32(arg1: *mut libc::c_char, arg2: GInt32, arg3: libc::c_int) -> libc::c_int1345     pub fn CPLPrintInt32(arg1: *mut libc::c_char, arg2: GInt32, arg3: libc::c_int) -> libc::c_int;
1346 }
1347 extern "C" {
CPLPrintUIntBig( arg1: *mut libc::c_char, arg2: GUIntBig, arg3: libc::c_int, ) -> libc::c_int1348     pub fn CPLPrintUIntBig(
1349         arg1: *mut libc::c_char,
1350         arg2: GUIntBig,
1351         arg3: libc::c_int,
1352     ) -> libc::c_int;
1353 }
1354 extern "C" {
CPLPrintDouble( arg1: *mut libc::c_char, arg2: *const libc::c_char, arg3: f64, arg4: *const libc::c_char, ) -> libc::c_int1355     pub fn CPLPrintDouble(
1356         arg1: *mut libc::c_char,
1357         arg2: *const libc::c_char,
1358         arg3: f64,
1359         arg4: *const libc::c_char,
1360     ) -> libc::c_int;
1361 }
1362 extern "C" {
CPLPrintTime( arg1: *mut libc::c_char, arg2: libc::c_int, arg3: *const libc::c_char, arg4: *const tm, arg5: *const libc::c_char, ) -> libc::c_int1363     pub fn CPLPrintTime(
1364         arg1: *mut libc::c_char,
1365         arg2: libc::c_int,
1366         arg3: *const libc::c_char,
1367         arg4: *const tm,
1368         arg5: *const libc::c_char,
1369     ) -> libc::c_int;
1370 }
1371 extern "C" {
CPLPrintPointer( arg1: *mut libc::c_char, arg2: *mut libc::c_void, arg3: libc::c_int, ) -> libc::c_int1372     pub fn CPLPrintPointer(
1373         arg1: *mut libc::c_char,
1374         arg2: *mut libc::c_void,
1375         arg3: libc::c_int,
1376     ) -> libc::c_int;
1377 }
1378 extern "C" {
CPLGetSymbol(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut libc::c_void1379     pub fn CPLGetSymbol(arg1: *const libc::c_char, arg2: *const libc::c_char) -> *mut libc::c_void;
1380 }
1381 extern "C" {
CPLGetExecPath(pszPathBuf: *mut libc::c_char, nMaxLength: libc::c_int) -> libc::c_int1382     pub fn CPLGetExecPath(pszPathBuf: *mut libc::c_char, nMaxLength: libc::c_int) -> libc::c_int;
1383 }
1384 extern "C" {
CPLGetPath(arg1: *const libc::c_char) -> *const libc::c_char1385     pub fn CPLGetPath(arg1: *const libc::c_char) -> *const libc::c_char;
1386 }
1387 extern "C" {
CPLGetDirname(arg1: *const libc::c_char) -> *const libc::c_char1388     pub fn CPLGetDirname(arg1: *const libc::c_char) -> *const libc::c_char;
1389 }
1390 extern "C" {
CPLGetFilename(arg1: *const libc::c_char) -> *const libc::c_char1391     pub fn CPLGetFilename(arg1: *const libc::c_char) -> *const libc::c_char;
1392 }
1393 extern "C" {
CPLGetBasename(arg1: *const libc::c_char) -> *const libc::c_char1394     pub fn CPLGetBasename(arg1: *const libc::c_char) -> *const libc::c_char;
1395 }
1396 extern "C" {
CPLGetExtension(arg1: *const libc::c_char) -> *const libc::c_char1397     pub fn CPLGetExtension(arg1: *const libc::c_char) -> *const libc::c_char;
1398 }
1399 extern "C" {
CPLGetCurrentDir() -> *mut libc::c_char1400     pub fn CPLGetCurrentDir() -> *mut libc::c_char;
1401 }
1402 extern "C" {
CPLFormFilename( pszPath: *const libc::c_char, pszBasename: *const libc::c_char, pszExtension: *const libc::c_char, ) -> *const libc::c_char1403     pub fn CPLFormFilename(
1404         pszPath: *const libc::c_char,
1405         pszBasename: *const libc::c_char,
1406         pszExtension: *const libc::c_char,
1407     ) -> *const libc::c_char;
1408 }
1409 extern "C" {
CPLFormCIFilename( pszPath: *const libc::c_char, pszBasename: *const libc::c_char, pszExtension: *const libc::c_char, ) -> *const libc::c_char1410     pub fn CPLFormCIFilename(
1411         pszPath: *const libc::c_char,
1412         pszBasename: *const libc::c_char,
1413         pszExtension: *const libc::c_char,
1414     ) -> *const libc::c_char;
1415 }
1416 extern "C" {
CPLResetExtension( arg1: *const libc::c_char, arg2: *const libc::c_char, ) -> *const libc::c_char1417     pub fn CPLResetExtension(
1418         arg1: *const libc::c_char,
1419         arg2: *const libc::c_char,
1420     ) -> *const libc::c_char;
1421 }
1422 extern "C" {
CPLProjectRelativeFilename( pszProjectDir: *const libc::c_char, pszSecondaryFilename: *const libc::c_char, ) -> *const libc::c_char1423     pub fn CPLProjectRelativeFilename(
1424         pszProjectDir: *const libc::c_char,
1425         pszSecondaryFilename: *const libc::c_char,
1426     ) -> *const libc::c_char;
1427 }
1428 extern "C" {
CPLIsFilenameRelative(pszFilename: *const libc::c_char) -> libc::c_int1429     pub fn CPLIsFilenameRelative(pszFilename: *const libc::c_char) -> libc::c_int;
1430 }
1431 extern "C" {
CPLExtractRelativePath( arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: *mut libc::c_int, ) -> *const libc::c_char1432     pub fn CPLExtractRelativePath(
1433         arg1: *const libc::c_char,
1434         arg2: *const libc::c_char,
1435         arg3: *mut libc::c_int,
1436     ) -> *const libc::c_char;
1437 }
1438 extern "C" {
CPLCleanTrailingSlash(arg1: *const libc::c_char) -> *const libc::c_char1439     pub fn CPLCleanTrailingSlash(arg1: *const libc::c_char) -> *const libc::c_char;
1440 }
1441 extern "C" {
CPLCorrespondingPaths( pszOldFilename: *const libc::c_char, pszNewFilename: *const libc::c_char, papszFileList: *mut *mut libc::c_char, ) -> *mut *mut libc::c_char1442     pub fn CPLCorrespondingPaths(
1443         pszOldFilename: *const libc::c_char,
1444         pszNewFilename: *const libc::c_char,
1445         papszFileList: *mut *mut libc::c_char,
1446     ) -> *mut *mut libc::c_char;
1447 }
1448 extern "C" {
CPLCheckForFile( pszFilename: *mut libc::c_char, papszSiblingList: *mut *mut libc::c_char, ) -> libc::c_int1449     pub fn CPLCheckForFile(
1450         pszFilename: *mut libc::c_char,
1451         papszSiblingList: *mut *mut libc::c_char,
1452     ) -> libc::c_int;
1453 }
1454 extern "C" {
CPLGenerateTempFilename(pszStem: *const libc::c_char) -> *const libc::c_char1455     pub fn CPLGenerateTempFilename(pszStem: *const libc::c_char) -> *const libc::c_char;
1456 }
1457 pub type CPLFileFinder = ::std::option::Option<
1458     unsafe extern "C" fn(arg1: *const libc::c_char, arg2: *const libc::c_char)
1459         -> *const libc::c_char,
1460 >;
1461 extern "C" {
CPLFindFile( pszClass: *const libc::c_char, pszBasename: *const libc::c_char, ) -> *const libc::c_char1462     pub fn CPLFindFile(
1463         pszClass: *const libc::c_char,
1464         pszBasename: *const libc::c_char,
1465     ) -> *const libc::c_char;
1466 }
1467 extern "C" {
CPLDefaultFindFile( pszClass: *const libc::c_char, pszBasename: *const libc::c_char, ) -> *const libc::c_char1468     pub fn CPLDefaultFindFile(
1469         pszClass: *const libc::c_char,
1470         pszBasename: *const libc::c_char,
1471     ) -> *const libc::c_char;
1472 }
1473 extern "C" {
CPLPushFileFinder(pfnFinder: CPLFileFinder)1474     pub fn CPLPushFileFinder(pfnFinder: CPLFileFinder);
1475 }
1476 extern "C" {
CPLPopFileFinder() -> CPLFileFinder1477     pub fn CPLPopFileFinder() -> CPLFileFinder;
1478 }
1479 extern "C" {
CPLPushFinderLocation(arg1: *const libc::c_char)1480     pub fn CPLPushFinderLocation(arg1: *const libc::c_char);
1481 }
1482 extern "C" {
CPLPopFinderLocation()1483     pub fn CPLPopFinderLocation();
1484 }
1485 extern "C" {
CPLFinderClean()1486     pub fn CPLFinderClean();
1487 }
1488 extern "C" {
CPLStat(arg1: *const libc::c_char, arg2: *mut VSIStatBuf) -> libc::c_int1489     pub fn CPLStat(arg1: *const libc::c_char, arg2: *mut VSIStatBuf) -> libc::c_int;
1490 }
1491 #[repr(C)]
1492 #[derive(Debug, Copy, Clone)]
1493 pub struct CPLSharedFileInfo {
1494     pub fp: *mut FILE,
1495     pub nRefCount: libc::c_int,
1496     pub bLarge: libc::c_int,
1497     pub pszFilename: *mut libc::c_char,
1498     pub pszAccess: *mut libc::c_char,
1499 }
1500 #[test]
bindgen_test_layout_CPLSharedFileInfo()1501 fn bindgen_test_layout_CPLSharedFileInfo() {
1502     assert_eq!(
1503         ::std::mem::size_of::<CPLSharedFileInfo>(),
1504         32usize,
1505         concat!("Size of: ", stringify!(CPLSharedFileInfo))
1506     );
1507     assert_eq!(
1508         ::std::mem::align_of::<CPLSharedFileInfo>(),
1509         8usize,
1510         concat!("Alignment of ", stringify!(CPLSharedFileInfo))
1511     );
1512     assert_eq!(
1513         unsafe { &(*(::std::ptr::null::<CPLSharedFileInfo>())).fp as *const _ as usize },
1514         0usize,
1515         concat!(
1516             "Offset of field: ",
1517             stringify!(CPLSharedFileInfo),
1518             "::",
1519             stringify!(fp)
1520         )
1521     );
1522     assert_eq!(
1523         unsafe { &(*(::std::ptr::null::<CPLSharedFileInfo>())).nRefCount as *const _ as usize },
1524         8usize,
1525         concat!(
1526             "Offset of field: ",
1527             stringify!(CPLSharedFileInfo),
1528             "::",
1529             stringify!(nRefCount)
1530         )
1531     );
1532     assert_eq!(
1533         unsafe { &(*(::std::ptr::null::<CPLSharedFileInfo>())).bLarge as *const _ as usize },
1534         12usize,
1535         concat!(
1536             "Offset of field: ",
1537             stringify!(CPLSharedFileInfo),
1538             "::",
1539             stringify!(bLarge)
1540         )
1541     );
1542     assert_eq!(
1543         unsafe { &(*(::std::ptr::null::<CPLSharedFileInfo>())).pszFilename as *const _ as usize },
1544         16usize,
1545         concat!(
1546             "Offset of field: ",
1547             stringify!(CPLSharedFileInfo),
1548             "::",
1549             stringify!(pszFilename)
1550         )
1551     );
1552     assert_eq!(
1553         unsafe { &(*(::std::ptr::null::<CPLSharedFileInfo>())).pszAccess as *const _ as usize },
1554         24usize,
1555         concat!(
1556             "Offset of field: ",
1557             stringify!(CPLSharedFileInfo),
1558             "::",
1559             stringify!(pszAccess)
1560         )
1561     );
1562 }
1563 extern "C" {
CPLOpenShared( arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: libc::c_int, ) -> *mut FILE1564     pub fn CPLOpenShared(
1565         arg1: *const libc::c_char,
1566         arg2: *const libc::c_char,
1567         arg3: libc::c_int,
1568     ) -> *mut FILE;
1569 }
1570 extern "C" {
CPLCloseShared(arg1: *mut FILE)1571     pub fn CPLCloseShared(arg1: *mut FILE);
1572 }
1573 extern "C" {
CPLGetSharedList(arg1: *mut libc::c_int) -> *mut CPLSharedFileInfo1574     pub fn CPLGetSharedList(arg1: *mut libc::c_int) -> *mut CPLSharedFileInfo;
1575 }
1576 extern "C" {
CPLDumpSharedList(arg1: *mut FILE)1577     pub fn CPLDumpSharedList(arg1: *mut FILE);
1578 }
1579 extern "C" {
CPLCleanupSharedFileMutex()1580     pub fn CPLCleanupSharedFileMutex();
1581 }
1582 extern "C" {
CPLDMSToDec(is: *const libc::c_char) -> f641583     pub fn CPLDMSToDec(is: *const libc::c_char) -> f64;
1584 }
1585 extern "C" {
CPLDecToDMS( dfAngle: f64, pszAxis: *const libc::c_char, nPrecision: libc::c_int, ) -> *const libc::c_char1586     pub fn CPLDecToDMS(
1587         dfAngle: f64,
1588         pszAxis: *const libc::c_char,
1589         nPrecision: libc::c_int,
1590     ) -> *const libc::c_char;
1591 }
1592 extern "C" {
CPLPackedDMSToDec(arg1: f64) -> f641593     pub fn CPLPackedDMSToDec(arg1: f64) -> f64;
1594 }
1595 extern "C" {
CPLDecToPackedDMS(dfDec: f64) -> f641596     pub fn CPLDecToPackedDMS(dfDec: f64) -> f64;
1597 }
1598 extern "C" {
CPLStringToComplex(pszString: *const libc::c_char, pdfReal: *mut f64, pdfImag: *mut f64)1599     pub fn CPLStringToComplex(pszString: *const libc::c_char, pdfReal: *mut f64, pdfImag: *mut f64);
1600 }
1601 extern "C" {
CPLUnlinkTree(arg1: *const libc::c_char) -> libc::c_int1602     pub fn CPLUnlinkTree(arg1: *const libc::c_char) -> libc::c_int;
1603 }
1604 extern "C" {
CPLCopyFile( pszNewPath: *const libc::c_char, pszOldPath: *const libc::c_char, ) -> libc::c_int1605     pub fn CPLCopyFile(
1606         pszNewPath: *const libc::c_char,
1607         pszOldPath: *const libc::c_char,
1608     ) -> libc::c_int;
1609 }
1610 extern "C" {
CPLCopyTree( pszNewPath: *const libc::c_char, pszOldPath: *const libc::c_char, ) -> libc::c_int1611     pub fn CPLCopyTree(
1612         pszNewPath: *const libc::c_char,
1613         pszOldPath: *const libc::c_char,
1614     ) -> libc::c_int;
1615 }
1616 extern "C" {
CPLMoveFile( pszNewPath: *const libc::c_char, pszOldPath: *const libc::c_char, ) -> libc::c_int1617     pub fn CPLMoveFile(
1618         pszNewPath: *const libc::c_char,
1619         pszOldPath: *const libc::c_char,
1620     ) -> libc::c_int;
1621 }
1622 extern "C" {
CPLSymlink( pszOldPath: *const libc::c_char, pszNewPath: *const libc::c_char, papszOptions: *mut *mut libc::c_char, ) -> libc::c_int1623     pub fn CPLSymlink(
1624         pszOldPath: *const libc::c_char,
1625         pszNewPath: *const libc::c_char,
1626         papszOptions: *mut *mut libc::c_char,
1627     ) -> libc::c_int;
1628 }
1629 extern "C" {
CPLCreateZip( pszZipFilename: *const libc::c_char, papszOptions: *mut *mut libc::c_char, ) -> *mut libc::c_void1630     pub fn CPLCreateZip(
1631         pszZipFilename: *const libc::c_char,
1632         papszOptions: *mut *mut libc::c_char,
1633     ) -> *mut libc::c_void;
1634 }
1635 extern "C" {
CPLCreateFileInZip( hZip: *mut libc::c_void, pszFilename: *const libc::c_char, papszOptions: *mut *mut libc::c_char, ) -> CPLErr::Type1636     pub fn CPLCreateFileInZip(
1637         hZip: *mut libc::c_void,
1638         pszFilename: *const libc::c_char,
1639         papszOptions: *mut *mut libc::c_char,
1640     ) -> CPLErr::Type;
1641 }
1642 extern "C" {
CPLWriteFileInZip( hZip: *mut libc::c_void, pBuffer: *const libc::c_void, nBufferSize: libc::c_int, ) -> CPLErr::Type1643     pub fn CPLWriteFileInZip(
1644         hZip: *mut libc::c_void,
1645         pBuffer: *const libc::c_void,
1646         nBufferSize: libc::c_int,
1647     ) -> CPLErr::Type;
1648 }
1649 extern "C" {
CPLCloseFileInZip(hZip: *mut libc::c_void) -> CPLErr::Type1650     pub fn CPLCloseFileInZip(hZip: *mut libc::c_void) -> CPLErr::Type;
1651 }
1652 extern "C" {
CPLCloseZip(hZip: *mut libc::c_void) -> CPLErr::Type1653     pub fn CPLCloseZip(hZip: *mut libc::c_void) -> CPLErr::Type;
1654 }
1655 extern "C" {
CPLZLibDeflate( ptr: *const libc::c_void, nBytes: usize, nLevel: libc::c_int, outptr: *mut libc::c_void, nOutAvailableBytes: usize, pnOutBytes: *mut usize, ) -> *mut libc::c_void1656     pub fn CPLZLibDeflate(
1657         ptr: *const libc::c_void,
1658         nBytes: usize,
1659         nLevel: libc::c_int,
1660         outptr: *mut libc::c_void,
1661         nOutAvailableBytes: usize,
1662         pnOutBytes: *mut usize,
1663     ) -> *mut libc::c_void;
1664 }
1665 extern "C" {
CPLZLibInflate( ptr: *const libc::c_void, nBytes: usize, outptr: *mut libc::c_void, nOutAvailableBytes: usize, pnOutBytes: *mut usize, ) -> *mut libc::c_void1666     pub fn CPLZLibInflate(
1667         ptr: *const libc::c_void,
1668         nBytes: usize,
1669         outptr: *mut libc::c_void,
1670         nOutAvailableBytes: usize,
1671         pnOutBytes: *mut usize,
1672     ) -> *mut libc::c_void;
1673 }
1674 extern "C" {
CPLValidateXML( pszXMLFilename: *const libc::c_char, pszXSDFilename: *const libc::c_char, papszOptions: *mut *mut libc::c_char, ) -> libc::c_int1675     pub fn CPLValidateXML(
1676         pszXMLFilename: *const libc::c_char,
1677         pszXSDFilename: *const libc::c_char,
1678         papszOptions: *mut *mut libc::c_char,
1679     ) -> libc::c_int;
1680 }
1681 extern "C" {
CPLsetlocale(category: libc::c_int, locale: *const libc::c_char) -> *mut libc::c_char1682     pub fn CPLsetlocale(category: libc::c_int, locale: *const libc::c_char) -> *mut libc::c_char;
1683 }
1684 extern "C" {
CPLCleanupSetlocaleMutex()1685     pub fn CPLCleanupSetlocaleMutex();
1686 }
1687 pub type GDALProgressFunc = ::std::option::Option<
1688     unsafe extern "C" fn(
1689         dfComplete: f64,
1690         pszMessage: *const libc::c_char,
1691         pProgressArg: *mut libc::c_void,
1692     ) -> libc::c_int,
1693 >;
1694 extern "C" {
GDALDummyProgress( arg1: f64, arg2: *const libc::c_char, arg3: *mut libc::c_void, ) -> libc::c_int1695     pub fn GDALDummyProgress(
1696         arg1: f64,
1697         arg2: *const libc::c_char,
1698         arg3: *mut libc::c_void,
1699     ) -> libc::c_int;
1700 }
1701 extern "C" {
GDALTermProgress( arg1: f64, arg2: *const libc::c_char, arg3: *mut libc::c_void, ) -> libc::c_int1702     pub fn GDALTermProgress(
1703         arg1: f64,
1704         arg2: *const libc::c_char,
1705         arg3: *mut libc::c_void,
1706     ) -> libc::c_int;
1707 }
1708 extern "C" {
GDALScaledProgress( arg1: f64, arg2: *const libc::c_char, arg3: *mut libc::c_void, ) -> libc::c_int1709     pub fn GDALScaledProgress(
1710         arg1: f64,
1711         arg2: *const libc::c_char,
1712         arg3: *mut libc::c_void,
1713     ) -> libc::c_int;
1714 }
1715 extern "C" {
GDALCreateScaledProgress( arg1: f64, arg2: f64, arg3: GDALProgressFunc, arg4: *mut libc::c_void, ) -> *mut libc::c_void1716     pub fn GDALCreateScaledProgress(
1717         arg1: f64,
1718         arg2: f64,
1719         arg3: GDALProgressFunc,
1720         arg4: *mut libc::c_void,
1721     ) -> *mut libc::c_void;
1722 }
1723 extern "C" {
GDALDestroyScaledProgress(arg1: *mut libc::c_void)1724     pub fn GDALDestroyScaledProgress(arg1: *mut libc::c_void);
1725 }
1726 #[repr(C)]
1727 #[derive(Debug, Copy, Clone)]
1728 pub struct CPLVirtualMem {
1729     _unused: [u8; 0],
1730 }
1731 /// Callback triggered when a still unmapped page of virtual memory is accessed.
1732 /// The callback has the responsibility of filling the page with relevant values
1733 ///
1734 /// @param ctxt virtual memory handle.
1735 /// @param nOffset offset of the page in the memory mapping.
1736 /// @param pPageToFill address of the page to fill. Note that the address might
1737 /// be a temporary location, and not at CPLVirtualMemGetAddr() + nOffset.
1738 /// @param nToFill number of bytes of the page.
1739 /// @param pUserData user data that was passed to CPLVirtualMemNew().
1740 pub type CPLVirtualMemCachePageCbk = ::std::option::Option<
1741     unsafe extern "C" fn(
1742         ctxt: *mut CPLVirtualMem,
1743         nOffset: usize,
1744         pPageToFill: *mut libc::c_void,
1745         nToFill: usize,
1746         pUserData: *mut libc::c_void,
1747     ),
1748 >;
1749 /// Callback triggered when a dirty mapped page is going to be freed.
1750 /// (saturation of cache, or termination of the virtual memory mapping).
1751 ///
1752 /// @param ctxt virtual memory handle.
1753 /// @param nOffset offset of the page in the memory mapping.
1754 /// @param pPageToBeEvicted address of the page that will be flushed. Note that the address might
1755 /// be a temporary location, and not at CPLVirtualMemGetAddr() + nOffset.
1756 /// @param nToBeEvicted number of bytes of the page.
1757 /// @param pUserData user data that was passed to CPLVirtualMemNew().
1758 pub type CPLVirtualMemUnCachePageCbk = ::std::option::Option<
1759     unsafe extern "C" fn(
1760         ctxt: *mut CPLVirtualMem,
1761         nOffset: usize,
1762         pPageToBeEvicted: *const libc::c_void,
1763         nToBeEvicted: usize,
1764         pUserData: *mut libc::c_void,
1765     ),
1766 >;
1767 /// Callback triggered when a virtual memory mapping is destroyed.
1768 /// @param pUserData user data that was passed to CPLVirtualMemNew().
1769 pub type CPLVirtualMemFreeUserData =
1770     ::std::option::Option<unsafe extern "C" fn(pUserData: *mut libc::c_void)>;
1771 pub mod CPLVirtualMemAccessMode {
1772     /// Access mode of a virtual memory mapping.
1773     pub type Type = u32;
1774     /// The mapping is meant at being read-only, but writes will not be prevented.
1775     /// Note that any content written will be lost.
1776     pub const VIRTUALMEM_READONLY: Type = 0;
1777     /// The mapping is meant at being read-only, and this will be enforced
1778     /// through the operating system page protection mechanism.
1779     pub const VIRTUALMEM_READONLY_ENFORCED: Type = 1;
1780     /// The mapping is meant at being read-write, and modified pages can be saved
1781     /// thanks to the pfnUnCachePage callback
1782     pub const VIRTUALMEM_READWRITE: Type = 2;
1783 }
1784 extern "C" {
1785     /// Return the size of a page of virtual memory.
1786     ///
1787     /// @return the page size.
1788     ///
1789     /// @since GDAL 1.11
CPLGetPageSize() -> usize1790     pub fn CPLGetPageSize() -> usize;
1791 }
1792 extern "C" {
1793     /// Create a new virtual memory mapping.
1794     ///
1795     /// This will reserve an area of virtual memory of size nSize, whose size
1796     /// might be potentially much larger than the physical memory available. Initially,
1797     /// no physical memory will be allocated. As soon as memory pages will be accessed,
1798     /// they will be allocated transparently and filled with the pfnCachePage callback.
1799     /// When the allowed cache size is reached, the least recently used pages will
1800     /// be unallocated.
1801     ///
1802     /// On Linux AMD64 platforms, the maximum value for nSize is 128 TB.
1803     /// On Linux x86 platforms, the maximum value for nSize is 2 GB.
1804     ///
1805     /// Only supported on Linux for now.
1806     ///
1807     /// Note that on Linux, this function will install a SIGSEGV handler. The
1808     /// original handler will be restored by CPLVirtualMemManagerTerminate().
1809     ///
1810     /// @param nSize size in bytes of the virtual memory mapping.
1811     /// @param nCacheSize   size in bytes of the maximum memory that will be really
1812     /// allocated (must ideally fit into RAM).
1813     /// @param nPageSizeHint hint for the page size. Must be a multiple of the
1814     /// system page size, returned by CPLGetPageSize().
1815     /// Minimum value is generally 4096. Might be set to 0 to
1816     /// let the function determine a default page size.
1817     /// @param bSingleThreadUsage set to TRUE if there will be no concurrent threads
1818     /// that will access the virtual memory mapping. This can
1819     /// optimize performance a bit.
1820     /// @param eAccessMode permission to use for the virtual memory mapping.
1821     /// @param pfnCachePage callback triggered when a still unmapped page of virtual
1822     /// memory is accessed. The callback has the responsibility
1823     /// of filling the page with relevant values.
1824     /// @param pfnUnCachePage callback triggered when a dirty mapped page is going to
1825     /// be freed (saturation of cache, or termination of the
1826     /// virtual memory mapping). Might be NULL.
1827     /// @param pfnFreeUserData callback that can be used to free pCbkUserData. Might be
1828     /// NULL
1829     /// @param pCbkUserData user data passed to pfnCachePage and pfnUnCachePage.
1830     ///
1831     /// @return a virtual memory object that must be freed by CPLVirtualMemFree(),
1832     /// or NULL in case of failure.
1833     ///
1834     /// @since GDAL 1.11
CPLVirtualMemNew( nSize: usize, nCacheSize: usize, nPageSizeHint: usize, bSingleThreadUsage: libc::c_int, eAccessMode: CPLVirtualMemAccessMode::Type, pfnCachePage: CPLVirtualMemCachePageCbk, pfnUnCachePage: CPLVirtualMemUnCachePageCbk, pfnFreeUserData: CPLVirtualMemFreeUserData, pCbkUserData: *mut libc::c_void, ) -> *mut CPLVirtualMem1835     pub fn CPLVirtualMemNew(
1836         nSize: usize,
1837         nCacheSize: usize,
1838         nPageSizeHint: usize,
1839         bSingleThreadUsage: libc::c_int,
1840         eAccessMode: CPLVirtualMemAccessMode::Type,
1841         pfnCachePage: CPLVirtualMemCachePageCbk,
1842         pfnUnCachePage: CPLVirtualMemUnCachePageCbk,
1843         pfnFreeUserData: CPLVirtualMemFreeUserData,
1844         pCbkUserData: *mut libc::c_void,
1845     ) -> *mut CPLVirtualMem;
1846 }
1847 extern "C" {
1848     /// Return if virtual memory mapping of a file is available.
1849     ///
1850     /// @return TRUE if virtual memory mapping of a file is available.
1851     /// @since GDAL 1.11
CPLIsVirtualMemFileMapAvailable() -> libc::c_int1852     pub fn CPLIsVirtualMemFileMapAvailable() -> libc::c_int;
1853 }
1854 extern "C" {
1855     /// Create a new virtual memory mapping from a file.
1856     ///
1857     /// The file must be a "real" file recognized by the operating system, and not
1858     /// a VSI extended virtual file.
1859     ///
1860     /// In VIRTUALMEM_READWRITE mode, updates to the memory mapping will be written
1861     /// in the file.
1862     ///
1863     /// On Linux AMD64 platforms, the maximum value for nLength is 128 TB.
1864     /// On Linux x86 platforms, the maximum value for nLength is 2 GB.
1865     ///
1866     /// Supported on Linux only in GDAL <= 2.0, and all POSIX systems supporting
1867     /// mmap() in GDAL >= 2.1
1868     ///
1869     /// @param  fp       Virtual file handle.
1870     /// @param  nOffset  Offset in the file to start the mapping from.
1871     /// @param  nLength  Length of the portion of the file to map into memory.
1872     /// @param eAccessMode Permission to use for the virtual memory mapping. This must
1873     /// be consistent with how the file has been opened.
1874     /// @param pfnFreeUserData callback that is called when the object is destroyed.
1875     /// @param pCbkUserData user data passed to pfnFreeUserData.
1876     /// @return a virtual memory object that must be freed by CPLVirtualMemFree(),
1877     /// or NULL in case of failure.
1878     ///
1879     /// @since GDAL 1.11
CPLVirtualMemFileMapNew( fp: *mut VSILFILE, nOffset: vsi_l_offset, nLength: vsi_l_offset, eAccessMode: CPLVirtualMemAccessMode::Type, pfnFreeUserData: CPLVirtualMemFreeUserData, pCbkUserData: *mut libc::c_void, ) -> *mut CPLVirtualMem1880     pub fn CPLVirtualMemFileMapNew(
1881         fp: *mut VSILFILE,
1882         nOffset: vsi_l_offset,
1883         nLength: vsi_l_offset,
1884         eAccessMode: CPLVirtualMemAccessMode::Type,
1885         pfnFreeUserData: CPLVirtualMemFreeUserData,
1886         pCbkUserData: *mut libc::c_void,
1887     ) -> *mut CPLVirtualMem;
1888 }
1889 extern "C" {
1890     /// Create a new virtual memory mapping derived from an other virtual memory
1891     /// mapping.
1892     ///
1893     /// This may be useful in case of creating mapping for pixel interleaved data.
1894     ///
1895     /// The new mapping takes a reference on the base mapping.
1896     ///
1897     /// @param pVMemBase Base virtual memory mapping
1898     /// @param nOffset   Offset in the base virtual memory mapping from which to start
1899     /// the new mapping.
1900     /// @param nSize     Size of the base virtual memory mapping to expose in the
1901     /// the new mapping.
1902     /// @param pfnFreeUserData callback that is called when the object is destroyed.
1903     /// @param pCbkUserData user data passed to pfnFreeUserData.
1904     /// @return a virtual memory object that must be freed by CPLVirtualMemFree(),
1905     /// or NULL in case of failure.
1906     ///
1907     /// @since GDAL 1.11
CPLVirtualMemDerivedNew( pVMemBase: *mut CPLVirtualMem, nOffset: vsi_l_offset, nSize: vsi_l_offset, pfnFreeUserData: CPLVirtualMemFreeUserData, pCbkUserData: *mut libc::c_void, ) -> *mut CPLVirtualMem1908     pub fn CPLVirtualMemDerivedNew(
1909         pVMemBase: *mut CPLVirtualMem,
1910         nOffset: vsi_l_offset,
1911         nSize: vsi_l_offset,
1912         pfnFreeUserData: CPLVirtualMemFreeUserData,
1913         pCbkUserData: *mut libc::c_void,
1914     ) -> *mut CPLVirtualMem;
1915 }
1916 extern "C" {
1917     /// Free a virtual memory mapping.
1918     ///
1919     /// The pointer returned by CPLVirtualMemGetAddr() will no longer be valid.
1920     /// If the virtual memory mapping was created with read/write permissions and that
1921     /// they are dirty (i.e. modified) pages, they will be flushed through the
1922     /// pfnUnCachePage callback before being freed.
1923     ///
1924     /// @param ctxt context returned by CPLVirtualMemNew().
1925     ///
1926     /// @since GDAL 1.11
CPLVirtualMemFree(ctxt: *mut CPLVirtualMem)1927     pub fn CPLVirtualMemFree(ctxt: *mut CPLVirtualMem);
1928 }
1929 extern "C" {
1930     /// Return the pointer to the start of a virtual memory mapping.
1931     ///
1932     /// The bytes in the range [p:p+CPLVirtualMemGetSize()-1] where p is the pointer
1933     /// returned by this function will be valid, until CPLVirtualMemFree() is called.
1934     ///
1935     /// Note that if a range of bytes used as an argument of a system call
1936     /// (such as read() or write()) contains pages that have not been "realized", the
1937     /// system call will fail with EFAULT. CPLVirtualMemPin() can be used to work
1938     /// around this issue.
1939     ///
1940     /// @param ctxt context returned by CPLVirtualMemNew().
1941     /// @return the pointer to the start of a virtual memory mapping.
1942     ///
1943     /// @since GDAL 1.11
CPLVirtualMemGetAddr(ctxt: *mut CPLVirtualMem) -> *mut libc::c_void1944     pub fn CPLVirtualMemGetAddr(ctxt: *mut CPLVirtualMem) -> *mut libc::c_void;
1945 }
1946 extern "C" {
1947     /// Return the size of the virtual memory mapping.
1948     ///
1949     /// @param ctxt context returned by CPLVirtualMemNew().
1950     /// @return the size of the virtual memory mapping.
1951     ///
1952     /// @since GDAL 1.11
CPLVirtualMemGetSize(ctxt: *mut CPLVirtualMem) -> usize1953     pub fn CPLVirtualMemGetSize(ctxt: *mut CPLVirtualMem) -> usize;
1954 }
1955 extern "C" {
1956     /// Return if the virtual memory mapping is a direct file mapping.
1957     ///
1958     /// @param ctxt context returned by CPLVirtualMemNew().
1959     /// @return TRUE if the virtual memory mapping is a direct file mapping.
1960     ///
1961     /// @since GDAL 1.11
CPLVirtualMemIsFileMapping(ctxt: *mut CPLVirtualMem) -> libc::c_int1962     pub fn CPLVirtualMemIsFileMapping(ctxt: *mut CPLVirtualMem) -> libc::c_int;
1963 }
1964 extern "C" {
1965     /// Return the access mode of the virtual memory mapping.
1966     ///
1967     /// @param ctxt context returned by CPLVirtualMemNew().
1968     /// @return the access mode of the virtual memory mapping.
1969     ///
1970     /// @since GDAL 1.11
CPLVirtualMemGetAccessMode(ctxt: *mut CPLVirtualMem) -> CPLVirtualMemAccessMode::Type1971     pub fn CPLVirtualMemGetAccessMode(ctxt: *mut CPLVirtualMem) -> CPLVirtualMemAccessMode::Type;
1972 }
1973 extern "C" {
1974     /// Return the page size associated to a virtual memory mapping.
1975     ///
1976     /// The value returned will be at least CPLGetPageSize(), but potentially
1977     /// larger.
1978     ///
1979     /// @param ctxt context returned by CPLVirtualMemNew().
1980     /// @return the page size
1981     ///
1982     /// @since GDAL 1.11
CPLVirtualMemGetPageSize(ctxt: *mut CPLVirtualMem) -> usize1983     pub fn CPLVirtualMemGetPageSize(ctxt: *mut CPLVirtualMem) -> usize;
1984 }
1985 extern "C" {
1986     /// Return TRUE if this memory mapping can be accessed safely from concurrent
1987     /// threads.
1988     ///
1989     /// The situation that can cause problems is when several threads try to access
1990     /// a page of the mapping that is not yet mapped.
1991     ///
1992     /// The return value of this function depends on whether bSingleThreadUsage has
1993     /// been set of not in CPLVirtualMemNew() and/or the implementation.
1994     ///
1995     /// On Linux, this will always return TRUE if bSingleThreadUsage = FALSE.
1996     ///
1997     /// @param ctxt context returned by CPLVirtualMemNew().
1998     /// @return TRUE if this memory mapping can be accessed safely from concurrent
1999     /// threads.
2000     ///
2001     /// @since GDAL 1.11
CPLVirtualMemIsAccessThreadSafe(ctxt: *mut CPLVirtualMem) -> libc::c_int2002     pub fn CPLVirtualMemIsAccessThreadSafe(ctxt: *mut CPLVirtualMem) -> libc::c_int;
2003 }
2004 extern "C" {
2005     /// Declare that a thread will access a virtual memory mapping.
2006     ///
2007     /// This function must be called by a thread that wants to access the
2008     /// content of a virtual memory mapping, except if the virtual memory mapping has
2009     /// been created with bSingleThreadUsage = TRUE.
2010     ///
2011     /// This function must be paired with CPLVirtualMemUnDeclareThread().
2012     ///
2013     /// @param ctxt context returned by CPLVirtualMemNew().
2014     ///
2015     /// @since GDAL 1.11
CPLVirtualMemDeclareThread(ctxt: *mut CPLVirtualMem)2016     pub fn CPLVirtualMemDeclareThread(ctxt: *mut CPLVirtualMem);
2017 }
2018 extern "C" {
2019     /// Declare that a thread will stop accessing a virtual memory mapping.
2020     ///
2021     /// This function must be called by a thread that will no longer access the
2022     /// content of a virtual memory mapping, except if the virtual memory mapping has
2023     /// been created with bSingleThreadUsage = TRUE.
2024     ///
2025     /// This function must be paired with CPLVirtualMemDeclareThread().
2026     ///
2027     /// @param ctxt context returned by CPLVirtualMemNew().
2028     ///
2029     /// @since GDAL 1.11
CPLVirtualMemUnDeclareThread(ctxt: *mut CPLVirtualMem)2030     pub fn CPLVirtualMemUnDeclareThread(ctxt: *mut CPLVirtualMem);
2031 }
2032 extern "C" {
2033     /// Make sure that a region of virtual memory will be realized.
2034     ///
2035     /// Calling this function is not required, but might be useful when debugging
2036     /// a process with tools like gdb or valgrind that do not naturally like
2037     /// segmentation fault signals.
2038     ///
2039     /// It is also needed when wanting to provide part of virtual memory mapping
2040     /// to a system call such as read() or write(). If read() or write() is called
2041     /// on a memory region not yet realized, the call will fail with EFAULT.
2042     ///
2043     /// @param ctxt context returned by CPLVirtualMemNew().
2044     /// @param pAddr the memory region to pin.
2045     /// @param nSize the size of the memory region.
2046     /// @param bWriteOp set to TRUE if the memory are will be accessed in write mode.
2047     ///
2048     /// @since GDAL 1.11
CPLVirtualMemPin( ctxt: *mut CPLVirtualMem, pAddr: *mut libc::c_void, nSize: usize, bWriteOp: libc::c_int, )2049     pub fn CPLVirtualMemPin(
2050         ctxt: *mut CPLVirtualMem,
2051         pAddr: *mut libc::c_void,
2052         nSize: usize,
2053         bWriteOp: libc::c_int,
2054     );
2055 }
2056 extern "C" {
2057     /// Cleanup any resource and handlers related to virtual memory.
2058     ///
2059     /// This function must be called after the last CPLVirtualMem object has
2060     /// been freed.
2061     ///
2062     /// @since GDAL 2.0
CPLVirtualMemManagerTerminate()2063     pub fn CPLVirtualMemManagerTerminate();
2064 }
2065 pub mod CPLXMLNodeType {
2066     /// \file cpl_minixml.h
2067     ///
2068     /// Definitions for CPL mini XML Parser/Serializer.
2069     pub type Type = u32;
2070     /// Node is an element
2071     pub const CXT_Element: Type = 0;
2072     /// Node is a raw text value
2073     pub const CXT_Text: Type = 1;
2074     /// Node is attribute
2075     pub const CXT_Attribute: Type = 2;
2076     /// Node is an XML comment.
2077     pub const CXT_Comment: Type = 3;
2078     /// Node is a special literal
2079     pub const CXT_Literal: Type = 4;
2080 }
2081 /// Document node structure.
2082 ///
2083 /// This C structure is used to hold a single text fragment representing a
2084 /// component of the document when parsed.   It should be allocated with the
2085 /// appropriate CPL function, and freed with CPLDestroyXMLNode().  The structure
2086 /// contents should not normally be altered by application code, but may be
2087 /// freely examined by application code.
2088 ///
2089 /// Using the psChild and psNext pointers, a hierarchical tree structure
2090 /// for a document can be represented as a tree of CPLXMLNode structures.
2091 #[repr(C)]
2092 #[derive(Debug, Copy, Clone)]
2093 pub struct CPLXMLNode {
2094     /// \brief Node type
2095     ///
2096     /// One of CXT_Element, CXT_Text, CXT_Attribute, CXT_Comment,
2097     /// or CXT_Literal.
2098     pub eType: CPLXMLNodeType::Type,
2099     /// \brief Node value
2100     ///
2101     /// For CXT_Element this is the name of the element, without the angle
2102     /// brackets.  Note there is a single CXT_Element even when the document
2103     /// contains a start and end element tag.  The node represents the pair.
2104     /// All text or other elements between the start and end tag will appear
2105     /// as children nodes of this CXT_Element node.
2106     ///
2107     /// For CXT_Attribute the pszValue is the attribute name.  The value of
2108     /// the attribute will be a CXT_Text child.
2109     ///
2110     /// For CXT_Text this is the text itself (value of an attribute, or a
2111     /// text fragment between an element start and end tags.
2112     ///
2113     /// For CXT_Literal it is all the literal text.  Currently this is just
2114     /// used for !DOCTYPE lines, and the value would be the entire line.
2115     ///
2116     /// For CXT_Comment the value is all the literal text within the comment,
2117     /// but not including the comment start/end indicators ("<--" and "-->").
2118     pub pszValue: *mut libc::c_char,
2119     /// \brief Next sibling.
2120     ///
2121     /// Pointer to next sibling, that is the next node appearing after this
2122     /// one that has the same parent as this node.  NULL if this node is the
2123     /// last child of the parent element.
2124     pub psNext: *mut CPLXMLNode,
2125     /// \brief Child node.
2126     ///
2127     /// Pointer to first child node, if any.  Only CXT_Element and CXT_Attribute
2128     /// nodes should have children.  For CXT_Attribute it should be a single
2129     /// CXT_Text value node, while CXT_Element can have any kind of child.
2130     /// The full list of children for a node are identified by walking the
2131     /// psNext's starting with the psChild node.
2132     pub psChild: *mut CPLXMLNode,
2133 }
2134 #[test]
bindgen_test_layout_CPLXMLNode()2135 fn bindgen_test_layout_CPLXMLNode() {
2136     assert_eq!(
2137         ::std::mem::size_of::<CPLXMLNode>(),
2138         32usize,
2139         concat!("Size of: ", stringify!(CPLXMLNode))
2140     );
2141     assert_eq!(
2142         ::std::mem::align_of::<CPLXMLNode>(),
2143         8usize,
2144         concat!("Alignment of ", stringify!(CPLXMLNode))
2145     );
2146     assert_eq!(
2147         unsafe { &(*(::std::ptr::null::<CPLXMLNode>())).eType as *const _ as usize },
2148         0usize,
2149         concat!(
2150             "Offset of field: ",
2151             stringify!(CPLXMLNode),
2152             "::",
2153             stringify!(eType)
2154         )
2155     );
2156     assert_eq!(
2157         unsafe { &(*(::std::ptr::null::<CPLXMLNode>())).pszValue as *const _ as usize },
2158         8usize,
2159         concat!(
2160             "Offset of field: ",
2161             stringify!(CPLXMLNode),
2162             "::",
2163             stringify!(pszValue)
2164         )
2165     );
2166     assert_eq!(
2167         unsafe { &(*(::std::ptr::null::<CPLXMLNode>())).psNext as *const _ as usize },
2168         16usize,
2169         concat!(
2170             "Offset of field: ",
2171             stringify!(CPLXMLNode),
2172             "::",
2173             stringify!(psNext)
2174         )
2175     );
2176     assert_eq!(
2177         unsafe { &(*(::std::ptr::null::<CPLXMLNode>())).psChild as *const _ as usize },
2178         24usize,
2179         concat!(
2180             "Offset of field: ",
2181             stringify!(CPLXMLNode),
2182             "::",
2183             stringify!(psChild)
2184         )
2185     );
2186 }
2187 extern "C" {
CPLParseXMLString(arg1: *const libc::c_char) -> *mut CPLXMLNode2188     pub fn CPLParseXMLString(arg1: *const libc::c_char) -> *mut CPLXMLNode;
2189 }
2190 extern "C" {
CPLDestroyXMLNode(arg1: *mut CPLXMLNode)2191     pub fn CPLDestroyXMLNode(arg1: *mut CPLXMLNode);
2192 }
2193 extern "C" {
CPLGetXMLNode(poRoot: *mut CPLXMLNode, pszPath: *const libc::c_char) -> *mut CPLXMLNode2194     pub fn CPLGetXMLNode(poRoot: *mut CPLXMLNode, pszPath: *const libc::c_char) -> *mut CPLXMLNode;
2195 }
2196 extern "C" {
CPLSearchXMLNode( poRoot: *mut CPLXMLNode, pszTarget: *const libc::c_char, ) -> *mut CPLXMLNode2197     pub fn CPLSearchXMLNode(
2198         poRoot: *mut CPLXMLNode,
2199         pszTarget: *const libc::c_char,
2200     ) -> *mut CPLXMLNode;
2201 }
2202 extern "C" {
CPLGetXMLValue( poRoot: *mut CPLXMLNode, pszPath: *const libc::c_char, pszDefault: *const libc::c_char, ) -> *const libc::c_char2203     pub fn CPLGetXMLValue(
2204         poRoot: *mut CPLXMLNode,
2205         pszPath: *const libc::c_char,
2206         pszDefault: *const libc::c_char,
2207     ) -> *const libc::c_char;
2208 }
2209 extern "C" {
CPLCreateXMLNode( poParent: *mut CPLXMLNode, eType: CPLXMLNodeType::Type, pszText: *const libc::c_char, ) -> *mut CPLXMLNode2210     pub fn CPLCreateXMLNode(
2211         poParent: *mut CPLXMLNode,
2212         eType: CPLXMLNodeType::Type,
2213         pszText: *const libc::c_char,
2214     ) -> *mut CPLXMLNode;
2215 }
2216 extern "C" {
CPLSerializeXMLTree(psNode: *const CPLXMLNode) -> *mut libc::c_char2217     pub fn CPLSerializeXMLTree(psNode: *const CPLXMLNode) -> *mut libc::c_char;
2218 }
2219 extern "C" {
CPLAddXMLChild(psParent: *mut CPLXMLNode, psChild: *mut CPLXMLNode)2220     pub fn CPLAddXMLChild(psParent: *mut CPLXMLNode, psChild: *mut CPLXMLNode);
2221 }
2222 extern "C" {
CPLRemoveXMLChild(psParent: *mut CPLXMLNode, psChild: *mut CPLXMLNode) -> libc::c_int2223     pub fn CPLRemoveXMLChild(psParent: *mut CPLXMLNode, psChild: *mut CPLXMLNode) -> libc::c_int;
2224 }
2225 extern "C" {
CPLAddXMLSibling(psOlderSibling: *mut CPLXMLNode, psNewSibling: *mut CPLXMLNode)2226     pub fn CPLAddXMLSibling(psOlderSibling: *mut CPLXMLNode, psNewSibling: *mut CPLXMLNode);
2227 }
2228 extern "C" {
CPLCreateXMLElementAndValue( psParent: *mut CPLXMLNode, pszName: *const libc::c_char, pszValue: *const libc::c_char, ) -> *mut CPLXMLNode2229     pub fn CPLCreateXMLElementAndValue(
2230         psParent: *mut CPLXMLNode,
2231         pszName: *const libc::c_char,
2232         pszValue: *const libc::c_char,
2233     ) -> *mut CPLXMLNode;
2234 }
2235 extern "C" {
CPLAddXMLAttributeAndValue( psParent: *mut CPLXMLNode, pszName: *const libc::c_char, pszValue: *const libc::c_char, )2236     pub fn CPLAddXMLAttributeAndValue(
2237         psParent: *mut CPLXMLNode,
2238         pszName: *const libc::c_char,
2239         pszValue: *const libc::c_char,
2240     );
2241 }
2242 extern "C" {
CPLCloneXMLTree(psTree: *mut CPLXMLNode) -> *mut CPLXMLNode2243     pub fn CPLCloneXMLTree(psTree: *mut CPLXMLNode) -> *mut CPLXMLNode;
2244 }
2245 extern "C" {
CPLSetXMLValue( psRoot: *mut CPLXMLNode, pszPath: *const libc::c_char, pszValue: *const libc::c_char, ) -> libc::c_int2246     pub fn CPLSetXMLValue(
2247         psRoot: *mut CPLXMLNode,
2248         pszPath: *const libc::c_char,
2249         pszValue: *const libc::c_char,
2250     ) -> libc::c_int;
2251 }
2252 extern "C" {
CPLStripXMLNamespace( psRoot: *mut CPLXMLNode, pszNameSpace: *const libc::c_char, bRecurse: libc::c_int, )2253     pub fn CPLStripXMLNamespace(
2254         psRoot: *mut CPLXMLNode,
2255         pszNameSpace: *const libc::c_char,
2256         bRecurse: libc::c_int,
2257     );
2258 }
2259 extern "C" {
CPLCleanXMLElementName(arg1: *mut libc::c_char)2260     pub fn CPLCleanXMLElementName(arg1: *mut libc::c_char);
2261 }
2262 extern "C" {
CPLParseXMLFile(pszFilename: *const libc::c_char) -> *mut CPLXMLNode2263     pub fn CPLParseXMLFile(pszFilename: *const libc::c_char) -> *mut CPLXMLNode;
2264 }
2265 extern "C" {
CPLSerializeXMLTreeToFile( psTree: *const CPLXMLNode, pszFilename: *const libc::c_char, ) -> libc::c_int2266     pub fn CPLSerializeXMLTreeToFile(
2267         psTree: *const CPLXMLNode,
2268         pszFilename: *const libc::c_char,
2269     ) -> libc::c_int;
2270 }
2271 #[repr(C)]
2272 #[derive(Debug, Copy, Clone)]
2273 pub struct OGREnvelope {
2274     pub MinX: f64,
2275     pub MaxX: f64,
2276     pub MinY: f64,
2277     pub MaxY: f64,
2278 }
2279 #[test]
bindgen_test_layout_OGREnvelope()2280 fn bindgen_test_layout_OGREnvelope() {
2281     assert_eq!(
2282         ::std::mem::size_of::<OGREnvelope>(),
2283         32usize,
2284         concat!("Size of: ", stringify!(OGREnvelope))
2285     );
2286     assert_eq!(
2287         ::std::mem::align_of::<OGREnvelope>(),
2288         8usize,
2289         concat!("Alignment of ", stringify!(OGREnvelope))
2290     );
2291     assert_eq!(
2292         unsafe { &(*(::std::ptr::null::<OGREnvelope>())).MinX as *const _ as usize },
2293         0usize,
2294         concat!(
2295             "Offset of field: ",
2296             stringify!(OGREnvelope),
2297             "::",
2298             stringify!(MinX)
2299         )
2300     );
2301     assert_eq!(
2302         unsafe { &(*(::std::ptr::null::<OGREnvelope>())).MaxX as *const _ as usize },
2303         8usize,
2304         concat!(
2305             "Offset of field: ",
2306             stringify!(OGREnvelope),
2307             "::",
2308             stringify!(MaxX)
2309         )
2310     );
2311     assert_eq!(
2312         unsafe { &(*(::std::ptr::null::<OGREnvelope>())).MinY as *const _ as usize },
2313         16usize,
2314         concat!(
2315             "Offset of field: ",
2316             stringify!(OGREnvelope),
2317             "::",
2318             stringify!(MinY)
2319         )
2320     );
2321     assert_eq!(
2322         unsafe { &(*(::std::ptr::null::<OGREnvelope>())).MaxY as *const _ as usize },
2323         24usize,
2324         concat!(
2325             "Offset of field: ",
2326             stringify!(OGREnvelope),
2327             "::",
2328             stringify!(MaxY)
2329         )
2330     );
2331 }
2332 #[repr(C)]
2333 #[derive(Debug, Copy, Clone)]
2334 pub struct OGREnvelope3D {
2335     pub MinX: f64,
2336     pub MaxX: f64,
2337     pub MinY: f64,
2338     pub MaxY: f64,
2339     pub MinZ: f64,
2340     pub MaxZ: f64,
2341 }
2342 #[test]
bindgen_test_layout_OGREnvelope3D()2343 fn bindgen_test_layout_OGREnvelope3D() {
2344     assert_eq!(
2345         ::std::mem::size_of::<OGREnvelope3D>(),
2346         48usize,
2347         concat!("Size of: ", stringify!(OGREnvelope3D))
2348     );
2349     assert_eq!(
2350         ::std::mem::align_of::<OGREnvelope3D>(),
2351         8usize,
2352         concat!("Alignment of ", stringify!(OGREnvelope3D))
2353     );
2354     assert_eq!(
2355         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MinX as *const _ as usize },
2356         0usize,
2357         concat!(
2358             "Offset of field: ",
2359             stringify!(OGREnvelope3D),
2360             "::",
2361             stringify!(MinX)
2362         )
2363     );
2364     assert_eq!(
2365         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MaxX as *const _ as usize },
2366         8usize,
2367         concat!(
2368             "Offset of field: ",
2369             stringify!(OGREnvelope3D),
2370             "::",
2371             stringify!(MaxX)
2372         )
2373     );
2374     assert_eq!(
2375         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MinY as *const _ as usize },
2376         16usize,
2377         concat!(
2378             "Offset of field: ",
2379             stringify!(OGREnvelope3D),
2380             "::",
2381             stringify!(MinY)
2382         )
2383     );
2384     assert_eq!(
2385         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MaxY as *const _ as usize },
2386         24usize,
2387         concat!(
2388             "Offset of field: ",
2389             stringify!(OGREnvelope3D),
2390             "::",
2391             stringify!(MaxY)
2392         )
2393     );
2394     assert_eq!(
2395         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MinZ as *const _ as usize },
2396         32usize,
2397         concat!(
2398             "Offset of field: ",
2399             stringify!(OGREnvelope3D),
2400             "::",
2401             stringify!(MinZ)
2402         )
2403     );
2404     assert_eq!(
2405         unsafe { &(*(::std::ptr::null::<OGREnvelope3D>())).MaxZ as *const _ as usize },
2406         40usize,
2407         concat!(
2408             "Offset of field: ",
2409             stringify!(OGREnvelope3D),
2410             "::",
2411             stringify!(MaxZ)
2412         )
2413     );
2414 }
2415 extern "C" {
OGRMalloc(arg1: usize) -> *mut libc::c_void2416     pub fn OGRMalloc(arg1: usize) -> *mut libc::c_void;
2417 }
2418 extern "C" {
OGRCalloc(arg1: usize, arg2: usize) -> *mut libc::c_void2419     pub fn OGRCalloc(arg1: usize, arg2: usize) -> *mut libc::c_void;
2420 }
2421 extern "C" {
OGRRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void2422     pub fn OGRRealloc(arg1: *mut libc::c_void, arg2: usize) -> *mut libc::c_void;
2423 }
2424 extern "C" {
OGRStrdup(arg1: *const libc::c_char) -> *mut libc::c_char2425     pub fn OGRStrdup(arg1: *const libc::c_char) -> *mut libc::c_char;
2426 }
2427 extern "C" {
OGRFree(arg1: *mut libc::c_void)2428     pub fn OGRFree(arg1: *mut libc::c_void);
2429 }
2430 pub mod OGRwkbGeometryType {
2431     /// List of well known binary geometry types.  These are used within the BLOBs
2432     /// but are also returned from OGRGeometry::getGeometryType() to identify the
2433     /// type of a geometry object.
2434     pub type Type = u32;
2435     /// < unknown type, non-standard
2436     pub const wkbUnknown: Type = 0;
2437     /// < 0-dimensional geometric object, standard WKB
2438     pub const wkbPoint: Type = 1;
2439     /// < 1-dimensional geometric object with linear
2440     /// interpolation between Points, standard WKB
2441     pub const wkbLineString: Type = 2;
2442     /// < planar 2-dimensional geometric object defined
2443     /// by 1 exterior boundary and 0 or more interior
2444     /// boundaries, standard WKB
2445     pub const wkbPolygon: Type = 3;
2446     /// < GeometryCollection of Points, standard WKB
2447     pub const wkbMultiPoint: Type = 4;
2448     /// < GeometryCollection of LineStrings, standard WKB
2449     pub const wkbMultiLineString: Type = 5;
2450     /// < GeometryCollection of Polygons, standard WKB
2451     pub const wkbMultiPolygon: Type = 6;
2452     /// < geometric object that is a collection of 1
2453     /// or more geometric objects, standard WKB
2454     pub const wkbGeometryCollection: Type = 7;
2455     /// < one or more circular arc segments connected end to end,
2456     /// ISO SQL/MM Part 3. GDAL &gt;= 2.0
2457     pub const wkbCircularString: Type = 8;
2458     /// < sequence of contiguous curves, ISO SQL/MM Part 3. GDAL &gt;= 2.0
2459     pub const wkbCompoundCurve: Type = 9;
2460     /// < planar surface, defined by 1 exterior boundary
2461     /// and zero or more interior boundaries, that are curves.
2462     /// ISO SQL/MM Part 3. GDAL &gt;= 2.0
2463     pub const wkbCurvePolygon: Type = 10;
2464     /// < GeometryCollection of Curves, ISO SQL/MM Part 3. GDAL &gt;= 2.0
2465     pub const wkbMultiCurve: Type = 11;
2466     /// < GeometryCollection of Surfaces, ISO SQL/MM Part 3. GDAL &gt;= 2.0
2467     pub const wkbMultiSurface: Type = 12;
2468     /// < Curve (abstract type). ISO SQL/MM Part 3. GDAL &gt;= 2.1
2469     pub const wkbCurve: Type = 13;
2470     /// < Surface (abstract type). ISO SQL/MM Part 3. GDAL &gt;= 2.1
2471     pub const wkbSurface: Type = 14;
2472     /// < a contiguous collection of polygons, which share common boundary segments,
2473     /// ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2474     pub const wkbPolyhedralSurface: Type = 15;
2475     /// < a PolyhedralSurface consisting only of Triangle patches
2476     /// ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2477     pub const wkbTIN: Type = 16;
2478     pub const wkbTriangle: Type = 17;
2479     /// < non-standard, for pure attribute records
2480     pub const wkbNone: Type = 100;
2481     /// < non-standard, just for createGeometry()
2482     pub const wkbLinearRing: Type = 101;
2483     /// < wkbCircularString with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.0
2484     pub const wkbCircularStringZ: Type = 1008;
2485     /// < wkbCompoundCurve with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.0
2486     pub const wkbCompoundCurveZ: Type = 1009;
2487     /// < wkbCurvePolygon with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.0
2488     pub const wkbCurvePolygonZ: Type = 1010;
2489     /// < wkbMultiCurve with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.0
2490     pub const wkbMultiCurveZ: Type = 1011;
2491     /// < wkbMultiSurface with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.0
2492     pub const wkbMultiSurfaceZ: Type = 1012;
2493     /// < wkbCurve with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.1
2494     pub const wkbCurveZ: Type = 1013;
2495     /// < wkbSurface with Z component. ISO SQL/MM Part 3. GDAL &gt;= 2.1
2496     pub const wkbSurfaceZ: Type = 1014;
2497     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2498     pub const wkbPolyhedralSurfaceZ: Type = 1015;
2499     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2500     pub const wkbTINZ: Type = 1016;
2501     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2502     pub const wkbTriangleZ: Type = 1017;
2503     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2504     pub const wkbPointM: Type = 2001;
2505     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2506     pub const wkbLineStringM: Type = 2002;
2507     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2508     pub const wkbPolygonM: Type = 2003;
2509     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2510     pub const wkbMultiPointM: Type = 2004;
2511     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2512     pub const wkbMultiLineStringM: Type = 2005;
2513     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2514     pub const wkbMultiPolygonM: Type = 2006;
2515     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2516     pub const wkbGeometryCollectionM: Type = 2007;
2517     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2518     pub const wkbCircularStringM: Type = 2008;
2519     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2520     pub const wkbCompoundCurveM: Type = 2009;
2521     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2522     pub const wkbCurvePolygonM: Type = 2010;
2523     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2524     pub const wkbMultiCurveM: Type = 2011;
2525     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2526     pub const wkbMultiSurfaceM: Type = 2012;
2527     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2528     pub const wkbCurveM: Type = 2013;
2529     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2530     pub const wkbSurfaceM: Type = 2014;
2531     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2532     pub const wkbPolyhedralSurfaceM: Type = 2015;
2533     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2534     pub const wkbTINM: Type = 2016;
2535     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2536     pub const wkbTriangleM: Type = 2017;
2537     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2538     pub const wkbPointZM: Type = 3001;
2539     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2540     pub const wkbLineStringZM: Type = 3002;
2541     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2542     pub const wkbPolygonZM: Type = 3003;
2543     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2544     pub const wkbMultiPointZM: Type = 3004;
2545     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2546     pub const wkbMultiLineStringZM: Type = 3005;
2547     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2548     pub const wkbMultiPolygonZM: Type = 3006;
2549     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2550     pub const wkbGeometryCollectionZM: Type = 3007;
2551     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2552     pub const wkbCircularStringZM: Type = 3008;
2553     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2554     pub const wkbCompoundCurveZM: Type = 3009;
2555     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2556     pub const wkbCurvePolygonZM: Type = 3010;
2557     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2558     pub const wkbMultiCurveZM: Type = 3011;
2559     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2560     pub const wkbMultiSurfaceZM: Type = 3012;
2561     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2562     pub const wkbCurveZM: Type = 3013;
2563     /// < ISO SQL/MM Part 3. GDAL &gt;= 2.1
2564     pub const wkbSurfaceZM: Type = 3014;
2565     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2566     pub const wkbPolyhedralSurfaceZM: Type = 3015;
2567     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2568     pub const wkbTINZM: Type = 3016;
2569     /// < ISO SQL/MM Part 3. Reserved in GDAL &gt;= 2.1 but not yet implemented
2570     pub const wkbTriangleZM: Type = 3017;
2571     /// < 2.5D extension as per 99-402
2572     pub const wkbPoint25D: Type = 2147483649;
2573     /// < 2.5D extension as per 99-402
2574     pub const wkbLineString25D: Type = 2147483650;
2575     /// < 2.5D extension as per 99-402
2576     pub const wkbPolygon25D: Type = 2147483651;
2577     /// < 2.5D extension as per 99-402
2578     pub const wkbMultiPoint25D: Type = 2147483652;
2579     /// < 2.5D extension as per 99-402
2580     pub const wkbMultiLineString25D: Type = 2147483653;
2581     /// < 2.5D extension as per 99-402
2582     pub const wkbMultiPolygon25D: Type = 2147483654;
2583     /// < 2.5D extension as per 99-402
2584     pub const wkbGeometryCollection25D: Type = 2147483655;
2585 }
2586 extern "C" {
OGRGeometryTypeToName(eType: OGRwkbGeometryType::Type) -> *const libc::c_char2587     pub fn OGRGeometryTypeToName(eType: OGRwkbGeometryType::Type) -> *const libc::c_char;
2588 }
2589 extern "C" {
OGRMergeGeometryTypes( eMain: OGRwkbGeometryType::Type, eExtra: OGRwkbGeometryType::Type, ) -> OGRwkbGeometryType::Type2590     pub fn OGRMergeGeometryTypes(
2591         eMain: OGRwkbGeometryType::Type,
2592         eExtra: OGRwkbGeometryType::Type,
2593     ) -> OGRwkbGeometryType::Type;
2594 }
2595 extern "C" {
OGRMergeGeometryTypesEx( eMain: OGRwkbGeometryType::Type, eExtra: OGRwkbGeometryType::Type, bAllowPromotingToCurves: libc::c_int, ) -> OGRwkbGeometryType::Type2596     pub fn OGRMergeGeometryTypesEx(
2597         eMain: OGRwkbGeometryType::Type,
2598         eExtra: OGRwkbGeometryType::Type,
2599         bAllowPromotingToCurves: libc::c_int,
2600     ) -> OGRwkbGeometryType::Type;
2601 }
2602 extern "C" {
OGR_GT_Flatten(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2603     pub fn OGR_GT_Flatten(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2604 }
2605 extern "C" {
OGR_GT_SetZ(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2606     pub fn OGR_GT_SetZ(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2607 }
2608 extern "C" {
OGR_GT_SetM(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2609     pub fn OGR_GT_SetM(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2610 }
2611 extern "C" {
OGR_GT_SetModifier( eType: OGRwkbGeometryType::Type, bSetZ: libc::c_int, bSetM: libc::c_int, ) -> OGRwkbGeometryType::Type2612     pub fn OGR_GT_SetModifier(
2613         eType: OGRwkbGeometryType::Type,
2614         bSetZ: libc::c_int,
2615         bSetM: libc::c_int,
2616     ) -> OGRwkbGeometryType::Type;
2617 }
2618 extern "C" {
OGR_GT_HasZ(eType: OGRwkbGeometryType::Type) -> libc::c_int2619     pub fn OGR_GT_HasZ(eType: OGRwkbGeometryType::Type) -> libc::c_int;
2620 }
2621 extern "C" {
OGR_GT_HasM(eType: OGRwkbGeometryType::Type) -> libc::c_int2622     pub fn OGR_GT_HasM(eType: OGRwkbGeometryType::Type) -> libc::c_int;
2623 }
2624 extern "C" {
OGR_GT_IsSubClassOf( eType: OGRwkbGeometryType::Type, eSuperType: OGRwkbGeometryType::Type, ) -> libc::c_int2625     pub fn OGR_GT_IsSubClassOf(
2626         eType: OGRwkbGeometryType::Type,
2627         eSuperType: OGRwkbGeometryType::Type,
2628     ) -> libc::c_int;
2629 }
2630 extern "C" {
OGR_GT_IsCurve(arg1: OGRwkbGeometryType::Type) -> libc::c_int2631     pub fn OGR_GT_IsCurve(arg1: OGRwkbGeometryType::Type) -> libc::c_int;
2632 }
2633 extern "C" {
OGR_GT_IsSurface(arg1: OGRwkbGeometryType::Type) -> libc::c_int2634     pub fn OGR_GT_IsSurface(arg1: OGRwkbGeometryType::Type) -> libc::c_int;
2635 }
2636 extern "C" {
OGR_GT_IsNonLinear(arg1: OGRwkbGeometryType::Type) -> libc::c_int2637     pub fn OGR_GT_IsNonLinear(arg1: OGRwkbGeometryType::Type) -> libc::c_int;
2638 }
2639 extern "C" {
OGR_GT_GetCollection(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2640     pub fn OGR_GT_GetCollection(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2641 }
2642 extern "C" {
OGR_GT_GetCurve(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2643     pub fn OGR_GT_GetCurve(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2644 }
2645 extern "C" {
OGR_GT_GetLinear(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type2646     pub fn OGR_GT_GetLinear(eType: OGRwkbGeometryType::Type) -> OGRwkbGeometryType::Type;
2647 }
2648 pub mod OGRwkbByteOrder {
2649     pub type Type = u32;
2650     pub const wkbXDR: Type = 0;
2651     pub const wkbNDR: Type = 1;
2652 }
2653 pub mod OGRFieldType {
2654     /// List of feature field types.  This list is likely to be extended in the
2655     /// future ... avoid coding applications based on the assumption that all
2656     /// field types can be known.
2657     pub type Type = u32;
2658     /// Simple 32bit integer
2659     pub const OFTInteger: Type = 0;
2660     /// List of 32bit integers
2661     pub const OFTIntegerList: Type = 1;
2662     /// Double Precision floating point
2663     pub const OFTReal: Type = 2;
2664     /// List of doubles
2665     pub const OFTRealList: Type = 3;
2666     /// String of ASCII chars
2667     pub const OFTString: Type = 4;
2668     /// Array of strings
2669     pub const OFTStringList: Type = 5;
2670     /// deprecated
2671     pub const OFTWideString: Type = 6;
2672     /// deprecated
2673     pub const OFTWideStringList: Type = 7;
2674     /// Raw Binary data
2675     pub const OFTBinary: Type = 8;
2676     /// Date
2677     pub const OFTDate: Type = 9;
2678     /// Time
2679     pub const OFTTime: Type = 10;
2680     /// Date and Time
2681     pub const OFTDateTime: Type = 11;
2682     /// Single 64bit integer
2683     pub const OFTInteger64: Type = 12;
2684     /// List of 64bit integers
2685     pub const OFTInteger64List: Type = 13;
2686     /// List of 64bit integers
2687     pub const OFTMaxType: Type = 13;
2688 }
2689 pub mod OGRFieldSubType {
2690     /// List of field subtypes. A subtype represents a hint, a restriction of the
2691     /// main type, that is not strictly necessary to consult.
2692     /// This list is likely to be extended in the
2693     /// future ... avoid coding applications based on the assumption that all
2694     /// field types can be known.
2695     /// Most subtypes only make sense for a restricted set of main types.
2696     /// @since GDAL 2.0
2697     pub type Type = u32;
2698     /// No subtype. This is the default value
2699     pub const OFSTNone: Type = 0;
2700     /// Boolean integer. Only valid for OFTInteger and OFTIntegerList.
2701     pub const OFSTBoolean: Type = 1;
2702     /// Signed 16-bit integer. Only valid for OFTInteger and OFTIntegerList.
2703     pub const OFSTInt16: Type = 2;
2704     /// Single precision (32 bit) floating point. Only valid for OFTReal and OFTRealList.
2705     pub const OFSTFloat32: Type = 3;
2706     /// Single precision (32 bit) floating point. Only valid for OFTReal and OFTRealList.
2707     pub const OFSTMaxSubType: Type = 3;
2708 }
2709 pub mod OGRJustification {
2710     /// Display justification for field values.
2711     pub type Type = u32;
2712     pub const OJUndefined: Type = 0;
2713     pub const OJLeft: Type = 1;
2714     pub const OJRight: Type = 2;
2715 }
2716 /// OGRFeature field attribute value union.
2717 #[repr(C)]
2718 #[derive(Copy, Clone)]
2719 pub union OGRField {
2720     pub Integer: libc::c_int,
2721     pub Integer64: GIntBig,
2722     pub Real: f64,
2723     pub String: *mut libc::c_char,
2724     pub IntegerList: OGRField__bindgen_ty_1,
2725     pub Integer64List: OGRField__bindgen_ty_2,
2726     pub RealList: OGRField__bindgen_ty_3,
2727     pub StringList: OGRField__bindgen_ty_4,
2728     pub Binary: OGRField__bindgen_ty_5,
2729     pub Set: OGRField__bindgen_ty_6,
2730     pub Date: OGRField__bindgen_ty_7,
2731     _bindgen_union_align: [u64; 2usize],
2732 }
2733 #[repr(C)]
2734 #[derive(Debug, Copy, Clone)]
2735 pub struct OGRField__bindgen_ty_1 {
2736     pub nCount: libc::c_int,
2737     pub paList: *mut libc::c_int,
2738 }
2739 #[test]
bindgen_test_layout_OGRField__bindgen_ty_1()2740 fn bindgen_test_layout_OGRField__bindgen_ty_1() {
2741     assert_eq!(
2742         ::std::mem::size_of::<OGRField__bindgen_ty_1>(),
2743         16usize,
2744         concat!("Size of: ", stringify!(OGRField__bindgen_ty_1))
2745     );
2746     assert_eq!(
2747         ::std::mem::align_of::<OGRField__bindgen_ty_1>(),
2748         8usize,
2749         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_1))
2750     );
2751     assert_eq!(
2752         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_1>())).nCount as *const _ as usize },
2753         0usize,
2754         concat!(
2755             "Offset of field: ",
2756             stringify!(OGRField__bindgen_ty_1),
2757             "::",
2758             stringify!(nCount)
2759         )
2760     );
2761     assert_eq!(
2762         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_1>())).paList as *const _ as usize },
2763         8usize,
2764         concat!(
2765             "Offset of field: ",
2766             stringify!(OGRField__bindgen_ty_1),
2767             "::",
2768             stringify!(paList)
2769         )
2770     );
2771 }
2772 #[repr(C)]
2773 #[derive(Debug, Copy, Clone)]
2774 pub struct OGRField__bindgen_ty_2 {
2775     pub nCount: libc::c_int,
2776     pub paList: *mut GIntBig,
2777 }
2778 #[test]
bindgen_test_layout_OGRField__bindgen_ty_2()2779 fn bindgen_test_layout_OGRField__bindgen_ty_2() {
2780     assert_eq!(
2781         ::std::mem::size_of::<OGRField__bindgen_ty_2>(),
2782         16usize,
2783         concat!("Size of: ", stringify!(OGRField__bindgen_ty_2))
2784     );
2785     assert_eq!(
2786         ::std::mem::align_of::<OGRField__bindgen_ty_2>(),
2787         8usize,
2788         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_2))
2789     );
2790     assert_eq!(
2791         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_2>())).nCount as *const _ as usize },
2792         0usize,
2793         concat!(
2794             "Offset of field: ",
2795             stringify!(OGRField__bindgen_ty_2),
2796             "::",
2797             stringify!(nCount)
2798         )
2799     );
2800     assert_eq!(
2801         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_2>())).paList as *const _ as usize },
2802         8usize,
2803         concat!(
2804             "Offset of field: ",
2805             stringify!(OGRField__bindgen_ty_2),
2806             "::",
2807             stringify!(paList)
2808         )
2809     );
2810 }
2811 #[repr(C)]
2812 #[derive(Debug, Copy, Clone)]
2813 pub struct OGRField__bindgen_ty_3 {
2814     pub nCount: libc::c_int,
2815     pub paList: *mut f64,
2816 }
2817 #[test]
bindgen_test_layout_OGRField__bindgen_ty_3()2818 fn bindgen_test_layout_OGRField__bindgen_ty_3() {
2819     assert_eq!(
2820         ::std::mem::size_of::<OGRField__bindgen_ty_3>(),
2821         16usize,
2822         concat!("Size of: ", stringify!(OGRField__bindgen_ty_3))
2823     );
2824     assert_eq!(
2825         ::std::mem::align_of::<OGRField__bindgen_ty_3>(),
2826         8usize,
2827         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_3))
2828     );
2829     assert_eq!(
2830         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_3>())).nCount as *const _ as usize },
2831         0usize,
2832         concat!(
2833             "Offset of field: ",
2834             stringify!(OGRField__bindgen_ty_3),
2835             "::",
2836             stringify!(nCount)
2837         )
2838     );
2839     assert_eq!(
2840         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_3>())).paList as *const _ as usize },
2841         8usize,
2842         concat!(
2843             "Offset of field: ",
2844             stringify!(OGRField__bindgen_ty_3),
2845             "::",
2846             stringify!(paList)
2847         )
2848     );
2849 }
2850 #[repr(C)]
2851 #[derive(Debug, Copy, Clone)]
2852 pub struct OGRField__bindgen_ty_4 {
2853     pub nCount: libc::c_int,
2854     pub paList: *mut *mut libc::c_char,
2855 }
2856 #[test]
bindgen_test_layout_OGRField__bindgen_ty_4()2857 fn bindgen_test_layout_OGRField__bindgen_ty_4() {
2858     assert_eq!(
2859         ::std::mem::size_of::<OGRField__bindgen_ty_4>(),
2860         16usize,
2861         concat!("Size of: ", stringify!(OGRField__bindgen_ty_4))
2862     );
2863     assert_eq!(
2864         ::std::mem::align_of::<OGRField__bindgen_ty_4>(),
2865         8usize,
2866         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_4))
2867     );
2868     assert_eq!(
2869         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_4>())).nCount as *const _ as usize },
2870         0usize,
2871         concat!(
2872             "Offset of field: ",
2873             stringify!(OGRField__bindgen_ty_4),
2874             "::",
2875             stringify!(nCount)
2876         )
2877     );
2878     assert_eq!(
2879         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_4>())).paList as *const _ as usize },
2880         8usize,
2881         concat!(
2882             "Offset of field: ",
2883             stringify!(OGRField__bindgen_ty_4),
2884             "::",
2885             stringify!(paList)
2886         )
2887     );
2888 }
2889 #[repr(C)]
2890 #[derive(Debug, Copy, Clone)]
2891 pub struct OGRField__bindgen_ty_5 {
2892     pub nCount: libc::c_int,
2893     pub paData: *mut GByte,
2894 }
2895 #[test]
bindgen_test_layout_OGRField__bindgen_ty_5()2896 fn bindgen_test_layout_OGRField__bindgen_ty_5() {
2897     assert_eq!(
2898         ::std::mem::size_of::<OGRField__bindgen_ty_5>(),
2899         16usize,
2900         concat!("Size of: ", stringify!(OGRField__bindgen_ty_5))
2901     );
2902     assert_eq!(
2903         ::std::mem::align_of::<OGRField__bindgen_ty_5>(),
2904         8usize,
2905         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_5))
2906     );
2907     assert_eq!(
2908         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_5>())).nCount as *const _ as usize },
2909         0usize,
2910         concat!(
2911             "Offset of field: ",
2912             stringify!(OGRField__bindgen_ty_5),
2913             "::",
2914             stringify!(nCount)
2915         )
2916     );
2917     assert_eq!(
2918         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_5>())).paData as *const _ as usize },
2919         8usize,
2920         concat!(
2921             "Offset of field: ",
2922             stringify!(OGRField__bindgen_ty_5),
2923             "::",
2924             stringify!(paData)
2925         )
2926     );
2927 }
2928 #[repr(C)]
2929 #[derive(Debug, Copy, Clone)]
2930 pub struct OGRField__bindgen_ty_6 {
2931     pub nMarker1: libc::c_int,
2932     pub nMarker2: libc::c_int,
2933 }
2934 #[test]
bindgen_test_layout_OGRField__bindgen_ty_6()2935 fn bindgen_test_layout_OGRField__bindgen_ty_6() {
2936     assert_eq!(
2937         ::std::mem::size_of::<OGRField__bindgen_ty_6>(),
2938         8usize,
2939         concat!("Size of: ", stringify!(OGRField__bindgen_ty_6))
2940     );
2941     assert_eq!(
2942         ::std::mem::align_of::<OGRField__bindgen_ty_6>(),
2943         4usize,
2944         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_6))
2945     );
2946     assert_eq!(
2947         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_6>())).nMarker1 as *const _ as usize },
2948         0usize,
2949         concat!(
2950             "Offset of field: ",
2951             stringify!(OGRField__bindgen_ty_6),
2952             "::",
2953             stringify!(nMarker1)
2954         )
2955     );
2956     assert_eq!(
2957         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_6>())).nMarker2 as *const _ as usize },
2958         4usize,
2959         concat!(
2960             "Offset of field: ",
2961             stringify!(OGRField__bindgen_ty_6),
2962             "::",
2963             stringify!(nMarker2)
2964         )
2965     );
2966 }
2967 #[repr(C)]
2968 #[derive(Debug, Copy, Clone)]
2969 pub struct OGRField__bindgen_ty_7 {
2970     pub Year: GInt16,
2971     pub Month: GByte,
2972     pub Day: GByte,
2973     pub Hour: GByte,
2974     pub Minute: GByte,
2975     pub TZFlag: GByte,
2976     pub Reserved: GByte,
2977     pub Second: f32,
2978 }
2979 #[test]
bindgen_test_layout_OGRField__bindgen_ty_7()2980 fn bindgen_test_layout_OGRField__bindgen_ty_7() {
2981     assert_eq!(
2982         ::std::mem::size_of::<OGRField__bindgen_ty_7>(),
2983         12usize,
2984         concat!("Size of: ", stringify!(OGRField__bindgen_ty_7))
2985     );
2986     assert_eq!(
2987         ::std::mem::align_of::<OGRField__bindgen_ty_7>(),
2988         4usize,
2989         concat!("Alignment of ", stringify!(OGRField__bindgen_ty_7))
2990     );
2991     assert_eq!(
2992         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Year as *const _ as usize },
2993         0usize,
2994         concat!(
2995             "Offset of field: ",
2996             stringify!(OGRField__bindgen_ty_7),
2997             "::",
2998             stringify!(Year)
2999         )
3000     );
3001     assert_eq!(
3002         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Month as *const _ as usize },
3003         2usize,
3004         concat!(
3005             "Offset of field: ",
3006             stringify!(OGRField__bindgen_ty_7),
3007             "::",
3008             stringify!(Month)
3009         )
3010     );
3011     assert_eq!(
3012         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Day as *const _ as usize },
3013         3usize,
3014         concat!(
3015             "Offset of field: ",
3016             stringify!(OGRField__bindgen_ty_7),
3017             "::",
3018             stringify!(Day)
3019         )
3020     );
3021     assert_eq!(
3022         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Hour as *const _ as usize },
3023         4usize,
3024         concat!(
3025             "Offset of field: ",
3026             stringify!(OGRField__bindgen_ty_7),
3027             "::",
3028             stringify!(Hour)
3029         )
3030     );
3031     assert_eq!(
3032         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Minute as *const _ as usize },
3033         5usize,
3034         concat!(
3035             "Offset of field: ",
3036             stringify!(OGRField__bindgen_ty_7),
3037             "::",
3038             stringify!(Minute)
3039         )
3040     );
3041     assert_eq!(
3042         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).TZFlag as *const _ as usize },
3043         6usize,
3044         concat!(
3045             "Offset of field: ",
3046             stringify!(OGRField__bindgen_ty_7),
3047             "::",
3048             stringify!(TZFlag)
3049         )
3050     );
3051     assert_eq!(
3052         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Reserved as *const _ as usize },
3053         7usize,
3054         concat!(
3055             "Offset of field: ",
3056             stringify!(OGRField__bindgen_ty_7),
3057             "::",
3058             stringify!(Reserved)
3059         )
3060     );
3061     assert_eq!(
3062         unsafe { &(*(::std::ptr::null::<OGRField__bindgen_ty_7>())).Second as *const _ as usize },
3063         8usize,
3064         concat!(
3065             "Offset of field: ",
3066             stringify!(OGRField__bindgen_ty_7),
3067             "::",
3068             stringify!(Second)
3069         )
3070     );
3071 }
3072 #[test]
bindgen_test_layout_OGRField()3073 fn bindgen_test_layout_OGRField() {
3074     assert_eq!(
3075         ::std::mem::size_of::<OGRField>(),
3076         16usize,
3077         concat!("Size of: ", stringify!(OGRField))
3078     );
3079     assert_eq!(
3080         ::std::mem::align_of::<OGRField>(),
3081         8usize,
3082         concat!("Alignment of ", stringify!(OGRField))
3083     );
3084     assert_eq!(
3085         unsafe { &(*(::std::ptr::null::<OGRField>())).Integer as *const _ as usize },
3086         0usize,
3087         concat!(
3088             "Offset of field: ",
3089             stringify!(OGRField),
3090             "::",
3091             stringify!(Integer)
3092         )
3093     );
3094     assert_eq!(
3095         unsafe { &(*(::std::ptr::null::<OGRField>())).Integer64 as *const _ as usize },
3096         0usize,
3097         concat!(
3098             "Offset of field: ",
3099             stringify!(OGRField),
3100             "::",
3101             stringify!(Integer64)
3102         )
3103     );
3104     assert_eq!(
3105         unsafe { &(*(::std::ptr::null::<OGRField>())).Real as *const _ as usize },
3106         0usize,
3107         concat!(
3108             "Offset of field: ",
3109             stringify!(OGRField),
3110             "::",
3111             stringify!(Real)
3112         )
3113     );
3114     assert_eq!(
3115         unsafe { &(*(::std::ptr::null::<OGRField>())).String as *const _ as usize },
3116         0usize,
3117         concat!(
3118             "Offset of field: ",
3119             stringify!(OGRField),
3120             "::",
3121             stringify!(String)
3122         )
3123     );
3124     assert_eq!(
3125         unsafe { &(*(::std::ptr::null::<OGRField>())).IntegerList as *const _ as usize },
3126         0usize,
3127         concat!(
3128             "Offset of field: ",
3129             stringify!(OGRField),
3130             "::",
3131             stringify!(IntegerList)
3132         )
3133     );
3134     assert_eq!(
3135         unsafe { &(*(::std::ptr::null::<OGRField>())).Integer64List as *const _ as usize },
3136         0usize,
3137         concat!(
3138             "Offset of field: ",
3139             stringify!(OGRField),
3140             "::",
3141             stringify!(Integer64List)
3142         )
3143     );
3144     assert_eq!(
3145         unsafe { &(*(::std::ptr::null::<OGRField>())).RealList as *const _ as usize },
3146         0usize,
3147         concat!(
3148             "Offset of field: ",
3149             stringify!(OGRField),
3150             "::",
3151             stringify!(RealList)
3152         )
3153     );
3154     assert_eq!(
3155         unsafe { &(*(::std::ptr::null::<OGRField>())).StringList as *const _ as usize },
3156         0usize,
3157         concat!(
3158             "Offset of field: ",
3159             stringify!(OGRField),
3160             "::",
3161             stringify!(StringList)
3162         )
3163     );
3164     assert_eq!(
3165         unsafe { &(*(::std::ptr::null::<OGRField>())).Binary as *const _ as usize },
3166         0usize,
3167         concat!(
3168             "Offset of field: ",
3169             stringify!(OGRField),
3170             "::",
3171             stringify!(Binary)
3172         )
3173     );
3174     assert_eq!(
3175         unsafe { &(*(::std::ptr::null::<OGRField>())).Set as *const _ as usize },
3176         0usize,
3177         concat!(
3178             "Offset of field: ",
3179             stringify!(OGRField),
3180             "::",
3181             stringify!(Set)
3182         )
3183     );
3184     assert_eq!(
3185         unsafe { &(*(::std::ptr::null::<OGRField>())).Date as *const _ as usize },
3186         0usize,
3187         concat!(
3188             "Offset of field: ",
3189             stringify!(OGRField),
3190             "::",
3191             stringify!(Date)
3192         )
3193     );
3194 }
3195 extern "C" {
OGRParseDate( pszInput: *const libc::c_char, psOutput: *mut OGRField, nOptions: libc::c_int, ) -> libc::c_int3196     pub fn OGRParseDate(
3197         pszInput: *const libc::c_char,
3198         psOutput: *mut OGRField,
3199         nOptions: libc::c_int,
3200     ) -> libc::c_int;
3201 }
3202 pub mod ogr_style_tool_class_id {
3203     /// OGRStyleTool derived class types (returned by GetType()).
3204     pub type Type = u32;
3205     pub const OGRSTCNone: Type = 0;
3206     pub const OGRSTCPen: Type = 1;
3207     pub const OGRSTCBrush: Type = 2;
3208     pub const OGRSTCSymbol: Type = 3;
3209     pub const OGRSTCLabel: Type = 4;
3210     pub const OGRSTCVector: Type = 5;
3211 }
3212 pub use self::ogr_style_tool_class_id::Type as OGRSTClassId;
3213 pub mod ogr_style_tool_units_id {
3214     /// List of units supported by OGRStyleTools.
3215     pub type Type = u32;
3216     pub const OGRSTUGround: Type = 0;
3217     pub const OGRSTUPixel: Type = 1;
3218     pub const OGRSTUPoints: Type = 2;
3219     pub const OGRSTUMM: Type = 3;
3220     pub const OGRSTUCM: Type = 4;
3221     pub const OGRSTUInches: Type = 5;
3222 }
3223 pub use self::ogr_style_tool_units_id::Type as OGRSTUnitId;
3224 extern "C" {
GDALVersionInfo(arg1: *const libc::c_char) -> *const libc::c_char3225     pub fn GDALVersionInfo(arg1: *const libc::c_char) -> *const libc::c_char;
3226 }
3227 extern "C" {
3228     /// Return TRUE if GDAL library version at runtime matches nVersionMajor.nVersionMinor.
3229     ///
3230     /// The purpose of this method is to ensure that calling code will run with the GDAL
3231     /// version it is compiled for. It is primarily indented for external plugins.
3232     ///
3233     /// @param nVersionMajor Major version to be tested against
3234     /// @param nVersionMinor Minor version to be tested against
3235     /// @param pszCallingComponentName If not NULL, in case of version mismatch, the method
3236     /// will issue a failure mentioning the name of
3237     /// the calling component.
GDALCheckVersion( nVersionMajor: libc::c_int, nVersionMinor: libc::c_int, pszCallingComponentName: *const libc::c_char, ) -> libc::c_int3238     pub fn GDALCheckVersion(
3239         nVersionMajor: libc::c_int,
3240         nVersionMinor: libc::c_int,
3241         pszCallingComponentName: *const libc::c_char,
3242     ) -> libc::c_int;
3243 }
3244 pub type OGRGeometryH = *mut libc::c_void;
3245 pub type OGRSpatialReferenceH = *mut libc::c_void;
3246 pub type OGRCoordinateTransformationH = *mut libc::c_void;
3247 extern "C" {
OGR_G_CreateFromWkb( arg1: *mut libc::c_uchar, arg2: OGRSpatialReferenceH, arg3: *mut OGRGeometryH, arg4: libc::c_int, ) -> OGRErr::Type3248     pub fn OGR_G_CreateFromWkb(
3249         arg1: *mut libc::c_uchar,
3250         arg2: OGRSpatialReferenceH,
3251         arg3: *mut OGRGeometryH,
3252         arg4: libc::c_int,
3253     ) -> OGRErr::Type;
3254 }
3255 extern "C" {
OGR_G_CreateFromWkt( arg1: *mut *mut libc::c_char, arg2: OGRSpatialReferenceH, arg3: *mut OGRGeometryH, ) -> OGRErr::Type3256     pub fn OGR_G_CreateFromWkt(
3257         arg1: *mut *mut libc::c_char,
3258         arg2: OGRSpatialReferenceH,
3259         arg3: *mut OGRGeometryH,
3260     ) -> OGRErr::Type;
3261 }
3262 extern "C" {
OGR_G_CreateFromFgf( arg1: *mut libc::c_uchar, arg2: OGRSpatialReferenceH, arg3: *mut OGRGeometryH, arg4: libc::c_int, arg5: *mut libc::c_int, ) -> OGRErr::Type3263     pub fn OGR_G_CreateFromFgf(
3264         arg1: *mut libc::c_uchar,
3265         arg2: OGRSpatialReferenceH,
3266         arg3: *mut OGRGeometryH,
3267         arg4: libc::c_int,
3268         arg5: *mut libc::c_int,
3269     ) -> OGRErr::Type;
3270 }
3271 extern "C" {
OGR_G_DestroyGeometry(arg1: OGRGeometryH)3272     pub fn OGR_G_DestroyGeometry(arg1: OGRGeometryH);
3273 }
3274 extern "C" {
OGR_G_CreateGeometry(arg1: OGRwkbGeometryType::Type) -> OGRGeometryH3275     pub fn OGR_G_CreateGeometry(arg1: OGRwkbGeometryType::Type) -> OGRGeometryH;
3276 }
3277 extern "C" {
OGR_G_ApproximateArcAngles( dfCenterX: f64, dfCenterY: f64, dfZ: f64, dfPrimaryRadius: f64, dfSecondaryAxis: f64, dfRotation: f64, dfStartAngle: f64, dfEndAngle: f64, dfMaxAngleStepSizeDegrees: f64, ) -> OGRGeometryH3278     pub fn OGR_G_ApproximateArcAngles(
3279         dfCenterX: f64,
3280         dfCenterY: f64,
3281         dfZ: f64,
3282         dfPrimaryRadius: f64,
3283         dfSecondaryAxis: f64,
3284         dfRotation: f64,
3285         dfStartAngle: f64,
3286         dfEndAngle: f64,
3287         dfMaxAngleStepSizeDegrees: f64,
3288     ) -> OGRGeometryH;
3289 }
3290 extern "C" {
OGR_G_ForceToPolygon(arg1: OGRGeometryH) -> OGRGeometryH3291     pub fn OGR_G_ForceToPolygon(arg1: OGRGeometryH) -> OGRGeometryH;
3292 }
3293 extern "C" {
OGR_G_ForceToLineString(arg1: OGRGeometryH) -> OGRGeometryH3294     pub fn OGR_G_ForceToLineString(arg1: OGRGeometryH) -> OGRGeometryH;
3295 }
3296 extern "C" {
OGR_G_ForceToMultiPolygon(arg1: OGRGeometryH) -> OGRGeometryH3297     pub fn OGR_G_ForceToMultiPolygon(arg1: OGRGeometryH) -> OGRGeometryH;
3298 }
3299 extern "C" {
OGR_G_ForceToMultiPoint(arg1: OGRGeometryH) -> OGRGeometryH3300     pub fn OGR_G_ForceToMultiPoint(arg1: OGRGeometryH) -> OGRGeometryH;
3301 }
3302 extern "C" {
OGR_G_ForceToMultiLineString(arg1: OGRGeometryH) -> OGRGeometryH3303     pub fn OGR_G_ForceToMultiLineString(arg1: OGRGeometryH) -> OGRGeometryH;
3304 }
3305 extern "C" {
OGR_G_ForceTo( hGeom: OGRGeometryH, eTargetType: OGRwkbGeometryType::Type, papszOptions: *mut *mut libc::c_char, ) -> OGRGeometryH3306     pub fn OGR_G_ForceTo(
3307         hGeom: OGRGeometryH,
3308         eTargetType: OGRwkbGeometryType::Type,
3309         papszOptions: *mut *mut libc::c_char,
3310     ) -> OGRGeometryH;
3311 }
3312 extern "C" {
OGR_G_GetDimension(arg1: OGRGeometryH) -> libc::c_int3313     pub fn OGR_G_GetDimension(arg1: OGRGeometryH) -> libc::c_int;
3314 }
3315 extern "C" {
OGR_G_GetCoordinateDimension(arg1: OGRGeometryH) -> libc::c_int3316     pub fn OGR_G_GetCoordinateDimension(arg1: OGRGeometryH) -> libc::c_int;
3317 }
3318 extern "C" {
OGR_G_CoordinateDimension(arg1: OGRGeometryH) -> libc::c_int3319     pub fn OGR_G_CoordinateDimension(arg1: OGRGeometryH) -> libc::c_int;
3320 }
3321 extern "C" {
OGR_G_SetCoordinateDimension(arg1: OGRGeometryH, arg2: libc::c_int)3322     pub fn OGR_G_SetCoordinateDimension(arg1: OGRGeometryH, arg2: libc::c_int);
3323 }
3324 extern "C" {
OGR_G_Is3D(arg1: OGRGeometryH) -> libc::c_int3325     pub fn OGR_G_Is3D(arg1: OGRGeometryH) -> libc::c_int;
3326 }
3327 extern "C" {
OGR_G_IsMeasured(arg1: OGRGeometryH) -> libc::c_int3328     pub fn OGR_G_IsMeasured(arg1: OGRGeometryH) -> libc::c_int;
3329 }
3330 extern "C" {
OGR_G_Set3D(arg1: OGRGeometryH, arg2: libc::c_int)3331     pub fn OGR_G_Set3D(arg1: OGRGeometryH, arg2: libc::c_int);
3332 }
3333 extern "C" {
OGR_G_SetMeasured(arg1: OGRGeometryH, arg2: libc::c_int)3334     pub fn OGR_G_SetMeasured(arg1: OGRGeometryH, arg2: libc::c_int);
3335 }
3336 extern "C" {
OGR_G_Clone(arg1: OGRGeometryH) -> OGRGeometryH3337     pub fn OGR_G_Clone(arg1: OGRGeometryH) -> OGRGeometryH;
3338 }
3339 extern "C" {
OGR_G_GetEnvelope(arg1: OGRGeometryH, arg2: *mut OGREnvelope)3340     pub fn OGR_G_GetEnvelope(arg1: OGRGeometryH, arg2: *mut OGREnvelope);
3341 }
3342 extern "C" {
OGR_G_GetEnvelope3D(arg1: OGRGeometryH, arg2: *mut OGREnvelope3D)3343     pub fn OGR_G_GetEnvelope3D(arg1: OGRGeometryH, arg2: *mut OGREnvelope3D);
3344 }
3345 extern "C" {
OGR_G_ImportFromWkb( arg1: OGRGeometryH, arg2: *mut libc::c_uchar, arg3: libc::c_int, ) -> OGRErr::Type3346     pub fn OGR_G_ImportFromWkb(
3347         arg1: OGRGeometryH,
3348         arg2: *mut libc::c_uchar,
3349         arg3: libc::c_int,
3350     ) -> OGRErr::Type;
3351 }
3352 extern "C" {
OGR_G_ExportToWkb( arg1: OGRGeometryH, arg2: OGRwkbByteOrder::Type, arg3: *mut libc::c_uchar, ) -> OGRErr::Type3353     pub fn OGR_G_ExportToWkb(
3354         arg1: OGRGeometryH,
3355         arg2: OGRwkbByteOrder::Type,
3356         arg3: *mut libc::c_uchar,
3357     ) -> OGRErr::Type;
3358 }
3359 extern "C" {
OGR_G_ExportToIsoWkb( arg1: OGRGeometryH, arg2: OGRwkbByteOrder::Type, arg3: *mut libc::c_uchar, ) -> OGRErr::Type3360     pub fn OGR_G_ExportToIsoWkb(
3361         arg1: OGRGeometryH,
3362         arg2: OGRwkbByteOrder::Type,
3363         arg3: *mut libc::c_uchar,
3364     ) -> OGRErr::Type;
3365 }
3366 extern "C" {
OGR_G_WkbSize(hGeom: OGRGeometryH) -> libc::c_int3367     pub fn OGR_G_WkbSize(hGeom: OGRGeometryH) -> libc::c_int;
3368 }
3369 extern "C" {
OGR_G_ImportFromWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type3370     pub fn OGR_G_ImportFromWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type;
3371 }
3372 extern "C" {
OGR_G_ExportToWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type3373     pub fn OGR_G_ExportToWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type;
3374 }
3375 extern "C" {
OGR_G_ExportToIsoWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type3376     pub fn OGR_G_ExportToIsoWkt(arg1: OGRGeometryH, arg2: *mut *mut libc::c_char) -> OGRErr::Type;
3377 }
3378 extern "C" {
OGR_G_GetGeometryType(arg1: OGRGeometryH) -> OGRwkbGeometryType::Type3379     pub fn OGR_G_GetGeometryType(arg1: OGRGeometryH) -> OGRwkbGeometryType::Type;
3380 }
3381 extern "C" {
OGR_G_GetGeometryName(arg1: OGRGeometryH) -> *const libc::c_char3382     pub fn OGR_G_GetGeometryName(arg1: OGRGeometryH) -> *const libc::c_char;
3383 }
3384 extern "C" {
OGR_G_DumpReadable(arg1: OGRGeometryH, arg2: *mut FILE, arg3: *const libc::c_char)3385     pub fn OGR_G_DumpReadable(arg1: OGRGeometryH, arg2: *mut FILE, arg3: *const libc::c_char);
3386 }
3387 extern "C" {
OGR_G_FlattenTo2D(arg1: OGRGeometryH)3388     pub fn OGR_G_FlattenTo2D(arg1: OGRGeometryH);
3389 }
3390 extern "C" {
OGR_G_CloseRings(arg1: OGRGeometryH)3391     pub fn OGR_G_CloseRings(arg1: OGRGeometryH);
3392 }
3393 extern "C" {
OGR_G_CreateFromGML(arg1: *const libc::c_char) -> OGRGeometryH3394     pub fn OGR_G_CreateFromGML(arg1: *const libc::c_char) -> OGRGeometryH;
3395 }
3396 extern "C" {
OGR_G_ExportToGML(arg1: OGRGeometryH) -> *mut libc::c_char3397     pub fn OGR_G_ExportToGML(arg1: OGRGeometryH) -> *mut libc::c_char;
3398 }
3399 extern "C" {
OGR_G_ExportToGMLEx( arg1: OGRGeometryH, papszOptions: *mut *mut libc::c_char, ) -> *mut libc::c_char3400     pub fn OGR_G_ExportToGMLEx(
3401         arg1: OGRGeometryH,
3402         papszOptions: *mut *mut libc::c_char,
3403     ) -> *mut libc::c_char;
3404 }
3405 extern "C" {
OGR_G_CreateFromGMLTree(arg1: *const CPLXMLNode) -> OGRGeometryH3406     pub fn OGR_G_CreateFromGMLTree(arg1: *const CPLXMLNode) -> OGRGeometryH;
3407 }
3408 extern "C" {
OGR_G_ExportToGMLTree(arg1: OGRGeometryH) -> *mut CPLXMLNode3409     pub fn OGR_G_ExportToGMLTree(arg1: OGRGeometryH) -> *mut CPLXMLNode;
3410 }
3411 extern "C" {
OGR_G_ExportEnvelopeToGMLTree(arg1: OGRGeometryH) -> *mut CPLXMLNode3412     pub fn OGR_G_ExportEnvelopeToGMLTree(arg1: OGRGeometryH) -> *mut CPLXMLNode;
3413 }
3414 extern "C" {
OGR_G_ExportToKML( arg1: OGRGeometryH, pszAltitudeMode: *const libc::c_char, ) -> *mut libc::c_char3415     pub fn OGR_G_ExportToKML(
3416         arg1: OGRGeometryH,
3417         pszAltitudeMode: *const libc::c_char,
3418     ) -> *mut libc::c_char;
3419 }
3420 extern "C" {
OGR_G_ExportToJson(arg1: OGRGeometryH) -> *mut libc::c_char3421     pub fn OGR_G_ExportToJson(arg1: OGRGeometryH) -> *mut libc::c_char;
3422 }
3423 extern "C" {
OGR_G_ExportToJsonEx( arg1: OGRGeometryH, papszOptions: *mut *mut libc::c_char, ) -> *mut libc::c_char3424     pub fn OGR_G_ExportToJsonEx(
3425         arg1: OGRGeometryH,
3426         papszOptions: *mut *mut libc::c_char,
3427     ) -> *mut libc::c_char;
3428 }
3429 extern "C" {
OGR_G_CreateGeometryFromJson(arg1: *const libc::c_char) -> OGRGeometryH3430     pub fn OGR_G_CreateGeometryFromJson(arg1: *const libc::c_char) -> OGRGeometryH;
3431 }
3432 extern "C" {
OGR_G_AssignSpatialReference(arg1: OGRGeometryH, arg2: OGRSpatialReferenceH)3433     pub fn OGR_G_AssignSpatialReference(arg1: OGRGeometryH, arg2: OGRSpatialReferenceH);
3434 }
3435 extern "C" {
OGR_G_GetSpatialReference(arg1: OGRGeometryH) -> OGRSpatialReferenceH3436     pub fn OGR_G_GetSpatialReference(arg1: OGRGeometryH) -> OGRSpatialReferenceH;
3437 }
3438 extern "C" {
OGR_G_Transform(arg1: OGRGeometryH, arg2: OGRCoordinateTransformationH) -> OGRErr::Type3439     pub fn OGR_G_Transform(arg1: OGRGeometryH, arg2: OGRCoordinateTransformationH) -> OGRErr::Type;
3440 }
3441 extern "C" {
OGR_G_TransformTo(arg1: OGRGeometryH, arg2: OGRSpatialReferenceH) -> OGRErr::Type3442     pub fn OGR_G_TransformTo(arg1: OGRGeometryH, arg2: OGRSpatialReferenceH) -> OGRErr::Type;
3443 }
3444 extern "C" {
OGR_G_Simplify(hThis: OGRGeometryH, tolerance: f64) -> OGRGeometryH3445     pub fn OGR_G_Simplify(hThis: OGRGeometryH, tolerance: f64) -> OGRGeometryH;
3446 }
3447 extern "C" {
OGR_G_SimplifyPreserveTopology(hThis: OGRGeometryH, tolerance: f64) -> OGRGeometryH3448     pub fn OGR_G_SimplifyPreserveTopology(hThis: OGRGeometryH, tolerance: f64) -> OGRGeometryH;
3449 }
3450 extern "C" {
OGR_G_DelaunayTriangulation( hThis: OGRGeometryH, dfTolerance: f64, bOnlyEdges: libc::c_int, ) -> OGRGeometryH3451     pub fn OGR_G_DelaunayTriangulation(
3452         hThis: OGRGeometryH,
3453         dfTolerance: f64,
3454         bOnlyEdges: libc::c_int,
3455     ) -> OGRGeometryH;
3456 }
3457 extern "C" {
OGR_G_Segmentize(hGeom: OGRGeometryH, dfMaxLength: f64)3458     pub fn OGR_G_Segmentize(hGeom: OGRGeometryH, dfMaxLength: f64);
3459 }
3460 extern "C" {
OGR_G_Intersects(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3461     pub fn OGR_G_Intersects(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3462 }
3463 extern "C" {
OGR_G_Equals(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3464     pub fn OGR_G_Equals(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3465 }
3466 extern "C" {
OGR_G_Disjoint(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3467     pub fn OGR_G_Disjoint(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3468 }
3469 extern "C" {
OGR_G_Touches(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3470     pub fn OGR_G_Touches(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3471 }
3472 extern "C" {
OGR_G_Crosses(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3473     pub fn OGR_G_Crosses(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3474 }
3475 extern "C" {
OGR_G_Within(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3476     pub fn OGR_G_Within(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3477 }
3478 extern "C" {
OGR_G_Contains(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3479     pub fn OGR_G_Contains(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3480 }
3481 extern "C" {
OGR_G_Overlaps(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3482     pub fn OGR_G_Overlaps(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3483 }
3484 extern "C" {
OGR_G_Boundary(arg1: OGRGeometryH) -> OGRGeometryH3485     pub fn OGR_G_Boundary(arg1: OGRGeometryH) -> OGRGeometryH;
3486 }
3487 extern "C" {
OGR_G_ConvexHull(arg1: OGRGeometryH) -> OGRGeometryH3488     pub fn OGR_G_ConvexHull(arg1: OGRGeometryH) -> OGRGeometryH;
3489 }
3490 extern "C" {
OGR_G_Buffer(arg1: OGRGeometryH, arg2: f64, arg3: libc::c_int) -> OGRGeometryH3491     pub fn OGR_G_Buffer(arg1: OGRGeometryH, arg2: f64, arg3: libc::c_int) -> OGRGeometryH;
3492 }
3493 extern "C" {
OGR_G_Intersection(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH3494     pub fn OGR_G_Intersection(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH;
3495 }
3496 extern "C" {
OGR_G_Union(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH3497     pub fn OGR_G_Union(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH;
3498 }
3499 extern "C" {
OGR_G_UnionCascaded(arg1: OGRGeometryH) -> OGRGeometryH3500     pub fn OGR_G_UnionCascaded(arg1: OGRGeometryH) -> OGRGeometryH;
3501 }
3502 extern "C" {
OGR_G_PointOnSurface(arg1: OGRGeometryH) -> OGRGeometryH3503     pub fn OGR_G_PointOnSurface(arg1: OGRGeometryH) -> OGRGeometryH;
3504 }
3505 extern "C" {
OGR_G_Difference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH3506     pub fn OGR_G_Difference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH;
3507 }
3508 extern "C" {
OGR_G_SymDifference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH3509     pub fn OGR_G_SymDifference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH;
3510 }
3511 extern "C" {
OGR_G_Distance(arg1: OGRGeometryH, arg2: OGRGeometryH) -> f643512     pub fn OGR_G_Distance(arg1: OGRGeometryH, arg2: OGRGeometryH) -> f64;
3513 }
3514 extern "C" {
OGR_G_Length(arg1: OGRGeometryH) -> f643515     pub fn OGR_G_Length(arg1: OGRGeometryH) -> f64;
3516 }
3517 extern "C" {
OGR_G_Area(arg1: OGRGeometryH) -> f643518     pub fn OGR_G_Area(arg1: OGRGeometryH) -> f64;
3519 }
3520 extern "C" {
OGR_G_Centroid(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3521     pub fn OGR_G_Centroid(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3522 }
3523 extern "C" {
OGR_G_Value(arg1: OGRGeometryH, dfDistance: f64) -> OGRGeometryH3524     pub fn OGR_G_Value(arg1: OGRGeometryH, dfDistance: f64) -> OGRGeometryH;
3525 }
3526 extern "C" {
OGR_G_Empty(arg1: OGRGeometryH)3527     pub fn OGR_G_Empty(arg1: OGRGeometryH);
3528 }
3529 extern "C" {
OGR_G_IsEmpty(arg1: OGRGeometryH) -> libc::c_int3530     pub fn OGR_G_IsEmpty(arg1: OGRGeometryH) -> libc::c_int;
3531 }
3532 extern "C" {
OGR_G_IsValid(arg1: OGRGeometryH) -> libc::c_int3533     pub fn OGR_G_IsValid(arg1: OGRGeometryH) -> libc::c_int;
3534 }
3535 extern "C" {
OGR_G_IsSimple(arg1: OGRGeometryH) -> libc::c_int3536     pub fn OGR_G_IsSimple(arg1: OGRGeometryH) -> libc::c_int;
3537 }
3538 extern "C" {
OGR_G_IsRing(arg1: OGRGeometryH) -> libc::c_int3539     pub fn OGR_G_IsRing(arg1: OGRGeometryH) -> libc::c_int;
3540 }
3541 extern "C" {
OGR_G_Polygonize(arg1: OGRGeometryH) -> OGRGeometryH3542     pub fn OGR_G_Polygonize(arg1: OGRGeometryH) -> OGRGeometryH;
3543 }
3544 extern "C" {
OGR_G_Intersect(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3545     pub fn OGR_G_Intersect(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3546 }
3547 extern "C" {
OGR_G_Equal(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int3548     pub fn OGR_G_Equal(arg1: OGRGeometryH, arg2: OGRGeometryH) -> libc::c_int;
3549 }
3550 extern "C" {
OGR_G_SymmetricDifference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH3551     pub fn OGR_G_SymmetricDifference(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRGeometryH;
3552 }
3553 extern "C" {
OGR_G_GetArea(arg1: OGRGeometryH) -> f643554     pub fn OGR_G_GetArea(arg1: OGRGeometryH) -> f64;
3555 }
3556 extern "C" {
OGR_G_GetBoundary(arg1: OGRGeometryH) -> OGRGeometryH3557     pub fn OGR_G_GetBoundary(arg1: OGRGeometryH) -> OGRGeometryH;
3558 }
3559 extern "C" {
OGR_G_GetPointCount(arg1: OGRGeometryH) -> libc::c_int3560     pub fn OGR_G_GetPointCount(arg1: OGRGeometryH) -> libc::c_int;
3561 }
3562 extern "C" {
OGR_G_GetPoints( hGeom: OGRGeometryH, pabyX: *mut libc::c_void, nXStride: libc::c_int, pabyY: *mut libc::c_void, nYStride: libc::c_int, pabyZ: *mut libc::c_void, nZStride: libc::c_int, ) -> libc::c_int3563     pub fn OGR_G_GetPoints(
3564         hGeom: OGRGeometryH,
3565         pabyX: *mut libc::c_void,
3566         nXStride: libc::c_int,
3567         pabyY: *mut libc::c_void,
3568         nYStride: libc::c_int,
3569         pabyZ: *mut libc::c_void,
3570         nZStride: libc::c_int,
3571     ) -> libc::c_int;
3572 }
3573 extern "C" {
OGR_G_GetPointsZM( hGeom: OGRGeometryH, pabyX: *mut libc::c_void, nXStride: libc::c_int, pabyY: *mut libc::c_void, nYStride: libc::c_int, pabyZ: *mut libc::c_void, nZStride: libc::c_int, pabyM: *mut libc::c_void, nMStride: libc::c_int, ) -> libc::c_int3574     pub fn OGR_G_GetPointsZM(
3575         hGeom: OGRGeometryH,
3576         pabyX: *mut libc::c_void,
3577         nXStride: libc::c_int,
3578         pabyY: *mut libc::c_void,
3579         nYStride: libc::c_int,
3580         pabyZ: *mut libc::c_void,
3581         nZStride: libc::c_int,
3582         pabyM: *mut libc::c_void,
3583         nMStride: libc::c_int,
3584     ) -> libc::c_int;
3585 }
3586 extern "C" {
OGR_G_GetX(arg1: OGRGeometryH, arg2: libc::c_int) -> f643587     pub fn OGR_G_GetX(arg1: OGRGeometryH, arg2: libc::c_int) -> f64;
3588 }
3589 extern "C" {
OGR_G_GetY(arg1: OGRGeometryH, arg2: libc::c_int) -> f643590     pub fn OGR_G_GetY(arg1: OGRGeometryH, arg2: libc::c_int) -> f64;
3591 }
3592 extern "C" {
OGR_G_GetZ(arg1: OGRGeometryH, arg2: libc::c_int) -> f643593     pub fn OGR_G_GetZ(arg1: OGRGeometryH, arg2: libc::c_int) -> f64;
3594 }
3595 extern "C" {
OGR_G_GetM(arg1: OGRGeometryH, arg2: libc::c_int) -> f643596     pub fn OGR_G_GetM(arg1: OGRGeometryH, arg2: libc::c_int) -> f64;
3597 }
3598 extern "C" {
OGR_G_GetPoint( arg1: OGRGeometryH, iPoint: libc::c_int, arg2: *mut f64, arg3: *mut f64, arg4: *mut f64, )3599     pub fn OGR_G_GetPoint(
3600         arg1: OGRGeometryH,
3601         iPoint: libc::c_int,
3602         arg2: *mut f64,
3603         arg3: *mut f64,
3604         arg4: *mut f64,
3605     );
3606 }
3607 extern "C" {
OGR_G_GetPointZM( arg1: OGRGeometryH, iPoint: libc::c_int, arg2: *mut f64, arg3: *mut f64, arg4: *mut f64, arg5: *mut f64, )3608     pub fn OGR_G_GetPointZM(
3609         arg1: OGRGeometryH,
3610         iPoint: libc::c_int,
3611         arg2: *mut f64,
3612         arg3: *mut f64,
3613         arg4: *mut f64,
3614         arg5: *mut f64,
3615     );
3616 }
3617 extern "C" {
OGR_G_SetPointCount(hGeom: OGRGeometryH, nNewPointCount: libc::c_int)3618     pub fn OGR_G_SetPointCount(hGeom: OGRGeometryH, nNewPointCount: libc::c_int);
3619 }
3620 extern "C" {
OGR_G_SetPoint(arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64, arg4: f64)3621     pub fn OGR_G_SetPoint(arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64, arg4: f64);
3622 }
3623 extern "C" {
OGR_G_SetPoint_2D(arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64)3624     pub fn OGR_G_SetPoint_2D(arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64);
3625 }
3626 extern "C" {
OGR_G_SetPointM( arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64, arg4: f64, )3627     pub fn OGR_G_SetPointM(
3628         arg1: OGRGeometryH,
3629         iPoint: libc::c_int,
3630         arg2: f64,
3631         arg3: f64,
3632         arg4: f64,
3633     );
3634 }
3635 extern "C" {
OGR_G_SetPointZM( arg1: OGRGeometryH, iPoint: libc::c_int, arg2: f64, arg3: f64, arg4: f64, arg5: f64, )3636     pub fn OGR_G_SetPointZM(
3637         arg1: OGRGeometryH,
3638         iPoint: libc::c_int,
3639         arg2: f64,
3640         arg3: f64,
3641         arg4: f64,
3642         arg5: f64,
3643     );
3644 }
3645 extern "C" {
OGR_G_AddPoint(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64)3646     pub fn OGR_G_AddPoint(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64);
3647 }
3648 extern "C" {
OGR_G_AddPoint_2D(arg1: OGRGeometryH, arg2: f64, arg3: f64)3649     pub fn OGR_G_AddPoint_2D(arg1: OGRGeometryH, arg2: f64, arg3: f64);
3650 }
3651 extern "C" {
OGR_G_AddPointM(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64)3652     pub fn OGR_G_AddPointM(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64);
3653 }
3654 extern "C" {
OGR_G_AddPointZM(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64, arg5: f64)3655     pub fn OGR_G_AddPointZM(arg1: OGRGeometryH, arg2: f64, arg3: f64, arg4: f64, arg5: f64);
3656 }
3657 extern "C" {
OGR_G_SetPoints( hGeom: OGRGeometryH, nPointsIn: libc::c_int, pabyX: *mut libc::c_void, nXStride: libc::c_int, pabyY: *mut libc::c_void, nYStride: libc::c_int, pabyZ: *mut libc::c_void, nZStride: libc::c_int, )3658     pub fn OGR_G_SetPoints(
3659         hGeom: OGRGeometryH,
3660         nPointsIn: libc::c_int,
3661         pabyX: *mut libc::c_void,
3662         nXStride: libc::c_int,
3663         pabyY: *mut libc::c_void,
3664         nYStride: libc::c_int,
3665         pabyZ: *mut libc::c_void,
3666         nZStride: libc::c_int,
3667     );
3668 }
3669 extern "C" {
OGR_G_SetPointsZM( hGeom: OGRGeometryH, nPointsIn: libc::c_int, pabyX: *mut libc::c_void, nXStride: libc::c_int, pabyY: *mut libc::c_void, nYStride: libc::c_int, pabyZ: *mut libc::c_void, nZStride: libc::c_int, pabyM: *mut libc::c_void, nMStride: libc::c_int, )3670     pub fn OGR_G_SetPointsZM(
3671         hGeom: OGRGeometryH,
3672         nPointsIn: libc::c_int,
3673         pabyX: *mut libc::c_void,
3674         nXStride: libc::c_int,
3675         pabyY: *mut libc::c_void,
3676         nYStride: libc::c_int,
3677         pabyZ: *mut libc::c_void,
3678         nZStride: libc::c_int,
3679         pabyM: *mut libc::c_void,
3680         nMStride: libc::c_int,
3681     );
3682 }
3683 extern "C" {
OGR_G_GetGeometryCount(arg1: OGRGeometryH) -> libc::c_int3684     pub fn OGR_G_GetGeometryCount(arg1: OGRGeometryH) -> libc::c_int;
3685 }
3686 extern "C" {
OGR_G_GetGeometryRef(arg1: OGRGeometryH, arg2: libc::c_int) -> OGRGeometryH3687     pub fn OGR_G_GetGeometryRef(arg1: OGRGeometryH, arg2: libc::c_int) -> OGRGeometryH;
3688 }
3689 extern "C" {
OGR_G_AddGeometry(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRErr::Type3690     pub fn OGR_G_AddGeometry(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRErr::Type;
3691 }
3692 extern "C" {
OGR_G_AddGeometryDirectly(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRErr::Type3693     pub fn OGR_G_AddGeometryDirectly(arg1: OGRGeometryH, arg2: OGRGeometryH) -> OGRErr::Type;
3694 }
3695 extern "C" {
OGR_G_RemoveGeometry( arg1: OGRGeometryH, arg2: libc::c_int, arg3: libc::c_int, ) -> OGRErr::Type3696     pub fn OGR_G_RemoveGeometry(
3697         arg1: OGRGeometryH,
3698         arg2: libc::c_int,
3699         arg3: libc::c_int,
3700     ) -> OGRErr::Type;
3701 }
3702 extern "C" {
OGR_G_HasCurveGeometry( arg1: OGRGeometryH, bLookForNonLinear: libc::c_int, ) -> libc::c_int3703     pub fn OGR_G_HasCurveGeometry(
3704         arg1: OGRGeometryH,
3705         bLookForNonLinear: libc::c_int,
3706     ) -> libc::c_int;
3707 }
3708 extern "C" {
OGR_G_GetLinearGeometry( hGeom: OGRGeometryH, dfMaxAngleStepSizeDegrees: f64, papszOptions: *mut *mut libc::c_char, ) -> OGRGeometryH3709     pub fn OGR_G_GetLinearGeometry(
3710         hGeom: OGRGeometryH,
3711         dfMaxAngleStepSizeDegrees: f64,
3712         papszOptions: *mut *mut libc::c_char,
3713     ) -> OGRGeometryH;
3714 }
3715 extern "C" {
OGR_G_GetCurveGeometry( hGeom: OGRGeometryH, papszOptions: *mut *mut libc::c_char, ) -> OGRGeometryH3716     pub fn OGR_G_GetCurveGeometry(
3717         hGeom: OGRGeometryH,
3718         papszOptions: *mut *mut libc::c_char,
3719     ) -> OGRGeometryH;
3720 }
3721 extern "C" {
OGRBuildPolygonFromEdges( hLinesAsCollection: OGRGeometryH, bBestEffort: libc::c_int, bAutoClose: libc::c_int, dfTolerance: f64, peErr: *mut OGRErr::Type, ) -> OGRGeometryH3722     pub fn OGRBuildPolygonFromEdges(
3723         hLinesAsCollection: OGRGeometryH,
3724         bBestEffort: libc::c_int,
3725         bAutoClose: libc::c_int,
3726         dfTolerance: f64,
3727         peErr: *mut OGRErr::Type,
3728     ) -> OGRGeometryH;
3729 }
3730 extern "C" {
OGRSetGenerate_DB2_V72_BYTE_ORDER( bGenerate_DB2_V72_BYTE_ORDER: libc::c_int, ) -> OGRErr::Type3731     pub fn OGRSetGenerate_DB2_V72_BYTE_ORDER(
3732         bGenerate_DB2_V72_BYTE_ORDER: libc::c_int,
3733     ) -> OGRErr::Type;
3734 }
3735 extern "C" {
OGRGetGenerate_DB2_V72_BYTE_ORDER() -> libc::c_int3736     pub fn OGRGetGenerate_DB2_V72_BYTE_ORDER() -> libc::c_int;
3737 }
3738 extern "C" {
OGRSetNonLinearGeometriesEnabledFlag(bFlag: libc::c_int)3739     pub fn OGRSetNonLinearGeometriesEnabledFlag(bFlag: libc::c_int);
3740 }
3741 extern "C" {
OGRGetNonLinearGeometriesEnabledFlag() -> libc::c_int3742     pub fn OGRGetNonLinearGeometriesEnabledFlag() -> libc::c_int;
3743 }
3744 pub type OGRFieldDefnH = *mut libc::c_void;
3745 pub type OGRFeatureDefnH = *mut libc::c_void;
3746 pub type OGRFeatureH = *mut libc::c_void;
3747 pub type OGRStyleTableH = *mut libc::c_void;
3748 #[repr(C)]
3749 #[derive(Debug, Copy, Clone)]
3750 pub struct OGRGeomFieldDefnHS {
3751     _unused: [u8; 0],
3752 }
3753 pub type OGRGeomFieldDefnH = *mut OGRGeomFieldDefnHS;
3754 extern "C" {
OGR_Fld_Create(arg1: *const libc::c_char, arg2: OGRFieldType::Type) -> OGRFieldDefnH3755     pub fn OGR_Fld_Create(arg1: *const libc::c_char, arg2: OGRFieldType::Type) -> OGRFieldDefnH;
3756 }
3757 extern "C" {
OGR_Fld_Destroy(arg1: OGRFieldDefnH)3758     pub fn OGR_Fld_Destroy(arg1: OGRFieldDefnH);
3759 }
3760 extern "C" {
OGR_Fld_SetName(arg1: OGRFieldDefnH, arg2: *const libc::c_char)3761     pub fn OGR_Fld_SetName(arg1: OGRFieldDefnH, arg2: *const libc::c_char);
3762 }
3763 extern "C" {
OGR_Fld_GetNameRef(arg1: OGRFieldDefnH) -> *const libc::c_char3764     pub fn OGR_Fld_GetNameRef(arg1: OGRFieldDefnH) -> *const libc::c_char;
3765 }
3766 extern "C" {
OGR_Fld_GetType(arg1: OGRFieldDefnH) -> OGRFieldType::Type3767     pub fn OGR_Fld_GetType(arg1: OGRFieldDefnH) -> OGRFieldType::Type;
3768 }
3769 extern "C" {
OGR_Fld_SetType(arg1: OGRFieldDefnH, arg2: OGRFieldType::Type)3770     pub fn OGR_Fld_SetType(arg1: OGRFieldDefnH, arg2: OGRFieldType::Type);
3771 }
3772 extern "C" {
OGR_Fld_GetSubType(arg1: OGRFieldDefnH) -> OGRFieldSubType::Type3773     pub fn OGR_Fld_GetSubType(arg1: OGRFieldDefnH) -> OGRFieldSubType::Type;
3774 }
3775 extern "C" {
OGR_Fld_SetSubType(arg1: OGRFieldDefnH, arg2: OGRFieldSubType::Type)3776     pub fn OGR_Fld_SetSubType(arg1: OGRFieldDefnH, arg2: OGRFieldSubType::Type);
3777 }
3778 extern "C" {
OGR_Fld_GetJustify(arg1: OGRFieldDefnH) -> OGRJustification::Type3779     pub fn OGR_Fld_GetJustify(arg1: OGRFieldDefnH) -> OGRJustification::Type;
3780 }
3781 extern "C" {
OGR_Fld_SetJustify(arg1: OGRFieldDefnH, arg2: OGRJustification::Type)3782     pub fn OGR_Fld_SetJustify(arg1: OGRFieldDefnH, arg2: OGRJustification::Type);
3783 }
3784 extern "C" {
OGR_Fld_GetWidth(arg1: OGRFieldDefnH) -> libc::c_int3785     pub fn OGR_Fld_GetWidth(arg1: OGRFieldDefnH) -> libc::c_int;
3786 }
3787 extern "C" {
OGR_Fld_SetWidth(arg1: OGRFieldDefnH, arg2: libc::c_int)3788     pub fn OGR_Fld_SetWidth(arg1: OGRFieldDefnH, arg2: libc::c_int);
3789 }
3790 extern "C" {
OGR_Fld_GetPrecision(arg1: OGRFieldDefnH) -> libc::c_int3791     pub fn OGR_Fld_GetPrecision(arg1: OGRFieldDefnH) -> libc::c_int;
3792 }
3793 extern "C" {
OGR_Fld_SetPrecision(arg1: OGRFieldDefnH, arg2: libc::c_int)3794     pub fn OGR_Fld_SetPrecision(arg1: OGRFieldDefnH, arg2: libc::c_int);
3795 }
3796 extern "C" {
OGR_Fld_Set( arg1: OGRFieldDefnH, arg2: *const libc::c_char, arg3: OGRFieldType::Type, arg4: libc::c_int, arg5: libc::c_int, arg6: OGRJustification::Type, )3797     pub fn OGR_Fld_Set(
3798         arg1: OGRFieldDefnH,
3799         arg2: *const libc::c_char,
3800         arg3: OGRFieldType::Type,
3801         arg4: libc::c_int,
3802         arg5: libc::c_int,
3803         arg6: OGRJustification::Type,
3804     );
3805 }
3806 extern "C" {
OGR_Fld_IsIgnored(hDefn: OGRFieldDefnH) -> libc::c_int3807     pub fn OGR_Fld_IsIgnored(hDefn: OGRFieldDefnH) -> libc::c_int;
3808 }
3809 extern "C" {
OGR_Fld_SetIgnored(hDefn: OGRFieldDefnH, arg1: libc::c_int)3810     pub fn OGR_Fld_SetIgnored(hDefn: OGRFieldDefnH, arg1: libc::c_int);
3811 }
3812 extern "C" {
OGR_Fld_IsNullable(hDefn: OGRFieldDefnH) -> libc::c_int3813     pub fn OGR_Fld_IsNullable(hDefn: OGRFieldDefnH) -> libc::c_int;
3814 }
3815 extern "C" {
OGR_Fld_SetNullable(hDefn: OGRFieldDefnH, arg1: libc::c_int)3816     pub fn OGR_Fld_SetNullable(hDefn: OGRFieldDefnH, arg1: libc::c_int);
3817 }
3818 extern "C" {
OGR_Fld_GetDefault(hDefn: OGRFieldDefnH) -> *const libc::c_char3819     pub fn OGR_Fld_GetDefault(hDefn: OGRFieldDefnH) -> *const libc::c_char;
3820 }
3821 extern "C" {
OGR_Fld_SetDefault(hDefn: OGRFieldDefnH, arg1: *const libc::c_char)3822     pub fn OGR_Fld_SetDefault(hDefn: OGRFieldDefnH, arg1: *const libc::c_char);
3823 }
3824 extern "C" {
OGR_Fld_IsDefaultDriverSpecific(hDefn: OGRFieldDefnH) -> libc::c_int3825     pub fn OGR_Fld_IsDefaultDriverSpecific(hDefn: OGRFieldDefnH) -> libc::c_int;
3826 }
3827 extern "C" {
OGR_GetFieldTypeName(arg1: OGRFieldType::Type) -> *const libc::c_char3828     pub fn OGR_GetFieldTypeName(arg1: OGRFieldType::Type) -> *const libc::c_char;
3829 }
3830 extern "C" {
OGR_GetFieldSubTypeName(arg1: OGRFieldSubType::Type) -> *const libc::c_char3831     pub fn OGR_GetFieldSubTypeName(arg1: OGRFieldSubType::Type) -> *const libc::c_char;
3832 }
3833 extern "C" {
OGR_AreTypeSubTypeCompatible( eType: OGRFieldType::Type, eSubType: OGRFieldSubType::Type, ) -> libc::c_int3834     pub fn OGR_AreTypeSubTypeCompatible(
3835         eType: OGRFieldType::Type,
3836         eSubType: OGRFieldSubType::Type,
3837     ) -> libc::c_int;
3838 }
3839 extern "C" {
OGR_GFld_Create( arg1: *const libc::c_char, arg2: OGRwkbGeometryType::Type, ) -> OGRGeomFieldDefnH3840     pub fn OGR_GFld_Create(
3841         arg1: *const libc::c_char,
3842         arg2: OGRwkbGeometryType::Type,
3843     ) -> OGRGeomFieldDefnH;
3844 }
3845 extern "C" {
OGR_GFld_Destroy(arg1: OGRGeomFieldDefnH)3846     pub fn OGR_GFld_Destroy(arg1: OGRGeomFieldDefnH);
3847 }
3848 extern "C" {
OGR_GFld_SetName(arg1: OGRGeomFieldDefnH, arg2: *const libc::c_char)3849     pub fn OGR_GFld_SetName(arg1: OGRGeomFieldDefnH, arg2: *const libc::c_char);
3850 }
3851 extern "C" {
OGR_GFld_GetNameRef(arg1: OGRGeomFieldDefnH) -> *const libc::c_char3852     pub fn OGR_GFld_GetNameRef(arg1: OGRGeomFieldDefnH) -> *const libc::c_char;
3853 }
3854 extern "C" {
OGR_GFld_GetType(arg1: OGRGeomFieldDefnH) -> OGRwkbGeometryType::Type3855     pub fn OGR_GFld_GetType(arg1: OGRGeomFieldDefnH) -> OGRwkbGeometryType::Type;
3856 }
3857 extern "C" {
OGR_GFld_SetType(arg1: OGRGeomFieldDefnH, arg2: OGRwkbGeometryType::Type)3858     pub fn OGR_GFld_SetType(arg1: OGRGeomFieldDefnH, arg2: OGRwkbGeometryType::Type);
3859 }
3860 extern "C" {
OGR_GFld_GetSpatialRef(arg1: OGRGeomFieldDefnH) -> OGRSpatialReferenceH3861     pub fn OGR_GFld_GetSpatialRef(arg1: OGRGeomFieldDefnH) -> OGRSpatialReferenceH;
3862 }
3863 extern "C" {
OGR_GFld_SetSpatialRef(arg1: OGRGeomFieldDefnH, hSRS: OGRSpatialReferenceH)3864     pub fn OGR_GFld_SetSpatialRef(arg1: OGRGeomFieldDefnH, hSRS: OGRSpatialReferenceH);
3865 }
3866 extern "C" {
OGR_GFld_IsNullable(hDefn: OGRGeomFieldDefnH) -> libc::c_int3867     pub fn OGR_GFld_IsNullable(hDefn: OGRGeomFieldDefnH) -> libc::c_int;
3868 }
3869 extern "C" {
OGR_GFld_SetNullable(hDefn: OGRGeomFieldDefnH, arg1: libc::c_int)3870     pub fn OGR_GFld_SetNullable(hDefn: OGRGeomFieldDefnH, arg1: libc::c_int);
3871 }
3872 extern "C" {
OGR_GFld_IsIgnored(hDefn: OGRGeomFieldDefnH) -> libc::c_int3873     pub fn OGR_GFld_IsIgnored(hDefn: OGRGeomFieldDefnH) -> libc::c_int;
3874 }
3875 extern "C" {
OGR_GFld_SetIgnored(hDefn: OGRGeomFieldDefnH, arg1: libc::c_int)3876     pub fn OGR_GFld_SetIgnored(hDefn: OGRGeomFieldDefnH, arg1: libc::c_int);
3877 }
3878 extern "C" {
OGR_FD_Create(arg1: *const libc::c_char) -> OGRFeatureDefnH3879     pub fn OGR_FD_Create(arg1: *const libc::c_char) -> OGRFeatureDefnH;
3880 }
3881 extern "C" {
OGR_FD_Destroy(arg1: OGRFeatureDefnH)3882     pub fn OGR_FD_Destroy(arg1: OGRFeatureDefnH);
3883 }
3884 extern "C" {
OGR_FD_Release(arg1: OGRFeatureDefnH)3885     pub fn OGR_FD_Release(arg1: OGRFeatureDefnH);
3886 }
3887 extern "C" {
OGR_FD_GetName(arg1: OGRFeatureDefnH) -> *const libc::c_char3888     pub fn OGR_FD_GetName(arg1: OGRFeatureDefnH) -> *const libc::c_char;
3889 }
3890 extern "C" {
OGR_FD_GetFieldCount(arg1: OGRFeatureDefnH) -> libc::c_int3891     pub fn OGR_FD_GetFieldCount(arg1: OGRFeatureDefnH) -> libc::c_int;
3892 }
3893 extern "C" {
OGR_FD_GetFieldDefn(arg1: OGRFeatureDefnH, arg2: libc::c_int) -> OGRFieldDefnH3894     pub fn OGR_FD_GetFieldDefn(arg1: OGRFeatureDefnH, arg2: libc::c_int) -> OGRFieldDefnH;
3895 }
3896 extern "C" {
OGR_FD_GetFieldIndex(arg1: OGRFeatureDefnH, arg2: *const libc::c_char) -> libc::c_int3897     pub fn OGR_FD_GetFieldIndex(arg1: OGRFeatureDefnH, arg2: *const libc::c_char) -> libc::c_int;
3898 }
3899 extern "C" {
OGR_FD_AddFieldDefn(arg1: OGRFeatureDefnH, arg2: OGRFieldDefnH)3900     pub fn OGR_FD_AddFieldDefn(arg1: OGRFeatureDefnH, arg2: OGRFieldDefnH);
3901 }
3902 extern "C" {
OGR_FD_DeleteFieldDefn(hDefn: OGRFeatureDefnH, iField: libc::c_int) -> OGRErr::Type3903     pub fn OGR_FD_DeleteFieldDefn(hDefn: OGRFeatureDefnH, iField: libc::c_int) -> OGRErr::Type;
3904 }
3905 extern "C" {
OGR_FD_ReorderFieldDefns( hDefn: OGRFeatureDefnH, panMap: *mut libc::c_int, ) -> OGRErr::Type3906     pub fn OGR_FD_ReorderFieldDefns(
3907         hDefn: OGRFeatureDefnH,
3908         panMap: *mut libc::c_int,
3909     ) -> OGRErr::Type;
3910 }
3911 extern "C" {
OGR_FD_GetGeomType(arg1: OGRFeatureDefnH) -> OGRwkbGeometryType::Type3912     pub fn OGR_FD_GetGeomType(arg1: OGRFeatureDefnH) -> OGRwkbGeometryType::Type;
3913 }
3914 extern "C" {
OGR_FD_SetGeomType(arg1: OGRFeatureDefnH, arg2: OGRwkbGeometryType::Type)3915     pub fn OGR_FD_SetGeomType(arg1: OGRFeatureDefnH, arg2: OGRwkbGeometryType::Type);
3916 }
3917 extern "C" {
OGR_FD_IsGeometryIgnored(arg1: OGRFeatureDefnH) -> libc::c_int3918     pub fn OGR_FD_IsGeometryIgnored(arg1: OGRFeatureDefnH) -> libc::c_int;
3919 }
3920 extern "C" {
OGR_FD_SetGeometryIgnored(arg1: OGRFeatureDefnH, arg2: libc::c_int)3921     pub fn OGR_FD_SetGeometryIgnored(arg1: OGRFeatureDefnH, arg2: libc::c_int);
3922 }
3923 extern "C" {
OGR_FD_IsStyleIgnored(arg1: OGRFeatureDefnH) -> libc::c_int3924     pub fn OGR_FD_IsStyleIgnored(arg1: OGRFeatureDefnH) -> libc::c_int;
3925 }
3926 extern "C" {
OGR_FD_SetStyleIgnored(arg1: OGRFeatureDefnH, arg2: libc::c_int)3927     pub fn OGR_FD_SetStyleIgnored(arg1: OGRFeatureDefnH, arg2: libc::c_int);
3928 }
3929 extern "C" {
OGR_FD_Reference(arg1: OGRFeatureDefnH) -> libc::c_int3930     pub fn OGR_FD_Reference(arg1: OGRFeatureDefnH) -> libc::c_int;
3931 }
3932 extern "C" {
OGR_FD_Dereference(arg1: OGRFeatureDefnH) -> libc::c_int3933     pub fn OGR_FD_Dereference(arg1: OGRFeatureDefnH) -> libc::c_int;
3934 }
3935 extern "C" {
OGR_FD_GetReferenceCount(arg1: OGRFeatureDefnH) -> libc::c_int3936     pub fn OGR_FD_GetReferenceCount(arg1: OGRFeatureDefnH) -> libc::c_int;
3937 }
3938 extern "C" {
OGR_FD_GetGeomFieldCount(hFDefn: OGRFeatureDefnH) -> libc::c_int3939     pub fn OGR_FD_GetGeomFieldCount(hFDefn: OGRFeatureDefnH) -> libc::c_int;
3940 }
3941 extern "C" {
OGR_FD_GetGeomFieldDefn(hFDefn: OGRFeatureDefnH, i: libc::c_int) -> OGRGeomFieldDefnH3942     pub fn OGR_FD_GetGeomFieldDefn(hFDefn: OGRFeatureDefnH, i: libc::c_int) -> OGRGeomFieldDefnH;
3943 }
3944 extern "C" {
OGR_FD_GetGeomFieldIndex( hFDefn: OGRFeatureDefnH, pszName: *const libc::c_char, ) -> libc::c_int3945     pub fn OGR_FD_GetGeomFieldIndex(
3946         hFDefn: OGRFeatureDefnH,
3947         pszName: *const libc::c_char,
3948     ) -> libc::c_int;
3949 }
3950 extern "C" {
OGR_FD_AddGeomFieldDefn(hFDefn: OGRFeatureDefnH, hGFldDefn: OGRGeomFieldDefnH)3951     pub fn OGR_FD_AddGeomFieldDefn(hFDefn: OGRFeatureDefnH, hGFldDefn: OGRGeomFieldDefnH);
3952 }
3953 extern "C" {
OGR_FD_DeleteGeomFieldDefn( hFDefn: OGRFeatureDefnH, iGeomField: libc::c_int, ) -> OGRErr::Type3954     pub fn OGR_FD_DeleteGeomFieldDefn(
3955         hFDefn: OGRFeatureDefnH,
3956         iGeomField: libc::c_int,
3957     ) -> OGRErr::Type;
3958 }
3959 extern "C" {
OGR_FD_IsSame(hFDefn: OGRFeatureDefnH, hOtherFDefn: OGRFeatureDefnH) -> libc::c_int3960     pub fn OGR_FD_IsSame(hFDefn: OGRFeatureDefnH, hOtherFDefn: OGRFeatureDefnH) -> libc::c_int;
3961 }
3962 extern "C" {
OGR_F_Create(arg1: OGRFeatureDefnH) -> OGRFeatureH3963     pub fn OGR_F_Create(arg1: OGRFeatureDefnH) -> OGRFeatureH;
3964 }
3965 extern "C" {
OGR_F_Destroy(arg1: OGRFeatureH)3966     pub fn OGR_F_Destroy(arg1: OGRFeatureH);
3967 }
3968 extern "C" {
OGR_F_GetDefnRef(arg1: OGRFeatureH) -> OGRFeatureDefnH3969     pub fn OGR_F_GetDefnRef(arg1: OGRFeatureH) -> OGRFeatureDefnH;
3970 }
3971 extern "C" {
OGR_F_SetGeometryDirectly(arg1: OGRFeatureH, arg2: OGRGeometryH) -> OGRErr::Type3972     pub fn OGR_F_SetGeometryDirectly(arg1: OGRFeatureH, arg2: OGRGeometryH) -> OGRErr::Type;
3973 }
3974 extern "C" {
OGR_F_SetGeometry(arg1: OGRFeatureH, arg2: OGRGeometryH) -> OGRErr::Type3975     pub fn OGR_F_SetGeometry(arg1: OGRFeatureH, arg2: OGRGeometryH) -> OGRErr::Type;
3976 }
3977 extern "C" {
OGR_F_GetGeometryRef(arg1: OGRFeatureH) -> OGRGeometryH3978     pub fn OGR_F_GetGeometryRef(arg1: OGRFeatureH) -> OGRGeometryH;
3979 }
3980 extern "C" {
OGR_F_StealGeometry(arg1: OGRFeatureH) -> OGRGeometryH3981     pub fn OGR_F_StealGeometry(arg1: OGRFeatureH) -> OGRGeometryH;
3982 }
3983 extern "C" {
OGR_F_Clone(arg1: OGRFeatureH) -> OGRFeatureH3984     pub fn OGR_F_Clone(arg1: OGRFeatureH) -> OGRFeatureH;
3985 }
3986 extern "C" {
OGR_F_Equal(arg1: OGRFeatureH, arg2: OGRFeatureH) -> libc::c_int3987     pub fn OGR_F_Equal(arg1: OGRFeatureH, arg2: OGRFeatureH) -> libc::c_int;
3988 }
3989 extern "C" {
OGR_F_GetFieldCount(arg1: OGRFeatureH) -> libc::c_int3990     pub fn OGR_F_GetFieldCount(arg1: OGRFeatureH) -> libc::c_int;
3991 }
3992 extern "C" {
OGR_F_GetFieldDefnRef(arg1: OGRFeatureH, arg2: libc::c_int) -> OGRFieldDefnH3993     pub fn OGR_F_GetFieldDefnRef(arg1: OGRFeatureH, arg2: libc::c_int) -> OGRFieldDefnH;
3994 }
3995 extern "C" {
OGR_F_GetFieldIndex(arg1: OGRFeatureH, arg2: *const libc::c_char) -> libc::c_int3996     pub fn OGR_F_GetFieldIndex(arg1: OGRFeatureH, arg2: *const libc::c_char) -> libc::c_int;
3997 }
3998 extern "C" {
OGR_F_IsFieldSet(arg1: OGRFeatureH, arg2: libc::c_int) -> libc::c_int3999     pub fn OGR_F_IsFieldSet(arg1: OGRFeatureH, arg2: libc::c_int) -> libc::c_int;
4000 }
4001 extern "C" {
OGR_F_UnsetField(arg1: OGRFeatureH, arg2: libc::c_int)4002     pub fn OGR_F_UnsetField(arg1: OGRFeatureH, arg2: libc::c_int);
4003 }
4004 extern "C" {
OGR_F_GetRawFieldRef(arg1: OGRFeatureH, arg2: libc::c_int) -> *mut OGRField4005     pub fn OGR_F_GetRawFieldRef(arg1: OGRFeatureH, arg2: libc::c_int) -> *mut OGRField;
4006 }
4007 extern "C" {
OGR_F_GetFieldAsInteger(arg1: OGRFeatureH, arg2: libc::c_int) -> libc::c_int4008     pub fn OGR_F_GetFieldAsInteger(arg1: OGRFeatureH, arg2: libc::c_int) -> libc::c_int;
4009 }
4010 extern "C" {
OGR_F_GetFieldAsInteger64(arg1: OGRFeatureH, arg2: libc::c_int) -> GIntBig4011     pub fn OGR_F_GetFieldAsInteger64(arg1: OGRFeatureH, arg2: libc::c_int) -> GIntBig;
4012 }
4013 extern "C" {
OGR_F_GetFieldAsDouble(arg1: OGRFeatureH, arg2: libc::c_int) -> f644014     pub fn OGR_F_GetFieldAsDouble(arg1: OGRFeatureH, arg2: libc::c_int) -> f64;
4015 }
4016 extern "C" {
OGR_F_GetFieldAsString(arg1: OGRFeatureH, arg2: libc::c_int) -> *const libc::c_char4017     pub fn OGR_F_GetFieldAsString(arg1: OGRFeatureH, arg2: libc::c_int) -> *const libc::c_char;
4018 }
4019 extern "C" {
OGR_F_GetFieldAsIntegerList( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut libc::c_int, ) -> *const libc::c_int4020     pub fn OGR_F_GetFieldAsIntegerList(
4021         arg1: OGRFeatureH,
4022         arg2: libc::c_int,
4023         arg3: *mut libc::c_int,
4024     ) -> *const libc::c_int;
4025 }
4026 extern "C" {
OGR_F_GetFieldAsInteger64List( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut libc::c_int, ) -> *const GIntBig4027     pub fn OGR_F_GetFieldAsInteger64List(
4028         arg1: OGRFeatureH,
4029         arg2: libc::c_int,
4030         arg3: *mut libc::c_int,
4031     ) -> *const GIntBig;
4032 }
4033 extern "C" {
OGR_F_GetFieldAsDoubleList( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut libc::c_int, ) -> *const f644034     pub fn OGR_F_GetFieldAsDoubleList(
4035         arg1: OGRFeatureH,
4036         arg2: libc::c_int,
4037         arg3: *mut libc::c_int,
4038     ) -> *const f64;
4039 }
4040 extern "C" {
OGR_F_GetFieldAsStringList( arg1: OGRFeatureH, arg2: libc::c_int, ) -> *mut *mut libc::c_char4041     pub fn OGR_F_GetFieldAsStringList(
4042         arg1: OGRFeatureH,
4043         arg2: libc::c_int,
4044     ) -> *mut *mut libc::c_char;
4045 }
4046 extern "C" {
OGR_F_GetFieldAsBinary( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut libc::c_int, ) -> *mut GByte4047     pub fn OGR_F_GetFieldAsBinary(
4048         arg1: OGRFeatureH,
4049         arg2: libc::c_int,
4050         arg3: *mut libc::c_int,
4051     ) -> *mut GByte;
4052 }
4053 extern "C" {
OGR_F_GetFieldAsDateTime( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut libc::c_int, arg4: *mut libc::c_int, arg5: *mut libc::c_int, arg6: *mut libc::c_int, arg7: *mut libc::c_int, arg8: *mut libc::c_int, arg9: *mut libc::c_int, ) -> libc::c_int4054     pub fn OGR_F_GetFieldAsDateTime(
4055         arg1: OGRFeatureH,
4056         arg2: libc::c_int,
4057         arg3: *mut libc::c_int,
4058         arg4: *mut libc::c_int,
4059         arg5: *mut libc::c_int,
4060         arg6: *mut libc::c_int,
4061         arg7: *mut libc::c_int,
4062         arg8: *mut libc::c_int,
4063         arg9: *mut libc::c_int,
4064     ) -> libc::c_int;
4065 }
4066 extern "C" {
OGR_F_GetFieldAsDateTimeEx( hFeat: OGRFeatureH, iField: libc::c_int, pnYear: *mut libc::c_int, pnMonth: *mut libc::c_int, pnDay: *mut libc::c_int, pnHour: *mut libc::c_int, pnMinute: *mut libc::c_int, pfSecond: *mut f32, pnTZFlag: *mut libc::c_int, ) -> libc::c_int4067     pub fn OGR_F_GetFieldAsDateTimeEx(
4068         hFeat: OGRFeatureH,
4069         iField: libc::c_int,
4070         pnYear: *mut libc::c_int,
4071         pnMonth: *mut libc::c_int,
4072         pnDay: *mut libc::c_int,
4073         pnHour: *mut libc::c_int,
4074         pnMinute: *mut libc::c_int,
4075         pfSecond: *mut f32,
4076         pnTZFlag: *mut libc::c_int,
4077     ) -> libc::c_int;
4078 }
4079 extern "C" {
OGR_F_SetFieldInteger(arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int)4080     pub fn OGR_F_SetFieldInteger(arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int);
4081 }
4082 extern "C" {
OGR_F_SetFieldInteger64(arg1: OGRFeatureH, arg2: libc::c_int, arg3: GIntBig)4083     pub fn OGR_F_SetFieldInteger64(arg1: OGRFeatureH, arg2: libc::c_int, arg3: GIntBig);
4084 }
4085 extern "C" {
OGR_F_SetFieldDouble(arg1: OGRFeatureH, arg2: libc::c_int, arg3: f64)4086     pub fn OGR_F_SetFieldDouble(arg1: OGRFeatureH, arg2: libc::c_int, arg3: f64);
4087 }
4088 extern "C" {
OGR_F_SetFieldString(arg1: OGRFeatureH, arg2: libc::c_int, arg3: *const libc::c_char)4089     pub fn OGR_F_SetFieldString(arg1: OGRFeatureH, arg2: libc::c_int, arg3: *const libc::c_char);
4090 }
4091 extern "C" {
OGR_F_SetFieldIntegerList( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: *mut libc::c_int, )4092     pub fn OGR_F_SetFieldIntegerList(
4093         arg1: OGRFeatureH,
4094         arg2: libc::c_int,
4095         arg3: libc::c_int,
4096         arg4: *mut libc::c_int,
4097     );
4098 }
4099 extern "C" {
OGR_F_SetFieldInteger64List( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: *const GIntBig, )4100     pub fn OGR_F_SetFieldInteger64List(
4101         arg1: OGRFeatureH,
4102         arg2: libc::c_int,
4103         arg3: libc::c_int,
4104         arg4: *const GIntBig,
4105     );
4106 }
4107 extern "C" {
OGR_F_SetFieldDoubleList( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: *mut f64, )4108     pub fn OGR_F_SetFieldDoubleList(
4109         arg1: OGRFeatureH,
4110         arg2: libc::c_int,
4111         arg3: libc::c_int,
4112         arg4: *mut f64,
4113     );
4114 }
4115 extern "C" {
OGR_F_SetFieldStringList( arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut *mut libc::c_char, )4116     pub fn OGR_F_SetFieldStringList(
4117         arg1: OGRFeatureH,
4118         arg2: libc::c_int,
4119         arg3: *mut *mut libc::c_char,
4120     );
4121 }
4122 extern "C" {
OGR_F_SetFieldRaw(arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut OGRField)4123     pub fn OGR_F_SetFieldRaw(arg1: OGRFeatureH, arg2: libc::c_int, arg3: *mut OGRField);
4124 }
4125 extern "C" {
OGR_F_SetFieldBinary( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: *mut GByte, )4126     pub fn OGR_F_SetFieldBinary(
4127         arg1: OGRFeatureH,
4128         arg2: libc::c_int,
4129         arg3: libc::c_int,
4130         arg4: *mut GByte,
4131     );
4132 }
4133 extern "C" {
OGR_F_SetFieldDateTime( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, arg6: libc::c_int, arg7: libc::c_int, arg8: libc::c_int, arg9: libc::c_int, )4134     pub fn OGR_F_SetFieldDateTime(
4135         arg1: OGRFeatureH,
4136         arg2: libc::c_int,
4137         arg3: libc::c_int,
4138         arg4: libc::c_int,
4139         arg5: libc::c_int,
4140         arg6: libc::c_int,
4141         arg7: libc::c_int,
4142         arg8: libc::c_int,
4143         arg9: libc::c_int,
4144     );
4145 }
4146 extern "C" {
OGR_F_SetFieldDateTimeEx( arg1: OGRFeatureH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, arg6: libc::c_int, arg7: libc::c_int, arg8: f32, arg9: libc::c_int, )4147     pub fn OGR_F_SetFieldDateTimeEx(
4148         arg1: OGRFeatureH,
4149         arg2: libc::c_int,
4150         arg3: libc::c_int,
4151         arg4: libc::c_int,
4152         arg5: libc::c_int,
4153         arg6: libc::c_int,
4154         arg7: libc::c_int,
4155         arg8: f32,
4156         arg9: libc::c_int,
4157     );
4158 }
4159 extern "C" {
OGR_F_GetGeomFieldCount(hFeat: OGRFeatureH) -> libc::c_int4160     pub fn OGR_F_GetGeomFieldCount(hFeat: OGRFeatureH) -> libc::c_int;
4161 }
4162 extern "C" {
OGR_F_GetGeomFieldDefnRef(hFeat: OGRFeatureH, iField: libc::c_int) -> OGRGeomFieldDefnH4163     pub fn OGR_F_GetGeomFieldDefnRef(hFeat: OGRFeatureH, iField: libc::c_int) -> OGRGeomFieldDefnH;
4164 }
4165 extern "C" {
OGR_F_GetGeomFieldIndex(hFeat: OGRFeatureH, pszName: *const libc::c_char) -> libc::c_int4166     pub fn OGR_F_GetGeomFieldIndex(hFeat: OGRFeatureH, pszName: *const libc::c_char)
4167         -> libc::c_int;
4168 }
4169 extern "C" {
OGR_F_GetGeomFieldRef(hFeat: OGRFeatureH, iField: libc::c_int) -> OGRGeometryH4170     pub fn OGR_F_GetGeomFieldRef(hFeat: OGRFeatureH, iField: libc::c_int) -> OGRGeometryH;
4171 }
4172 extern "C" {
OGR_F_SetGeomFieldDirectly( hFeat: OGRFeatureH, iField: libc::c_int, hGeom: OGRGeometryH, ) -> OGRErr::Type4173     pub fn OGR_F_SetGeomFieldDirectly(
4174         hFeat: OGRFeatureH,
4175         iField: libc::c_int,
4176         hGeom: OGRGeometryH,
4177     ) -> OGRErr::Type;
4178 }
4179 extern "C" {
OGR_F_SetGeomField( hFeat: OGRFeatureH, iField: libc::c_int, hGeom: OGRGeometryH, ) -> OGRErr::Type4180     pub fn OGR_F_SetGeomField(
4181         hFeat: OGRFeatureH,
4182         iField: libc::c_int,
4183         hGeom: OGRGeometryH,
4184     ) -> OGRErr::Type;
4185 }
4186 extern "C" {
OGR_F_GetFID(arg1: OGRFeatureH) -> GIntBig4187     pub fn OGR_F_GetFID(arg1: OGRFeatureH) -> GIntBig;
4188 }
4189 extern "C" {
OGR_F_SetFID(arg1: OGRFeatureH, arg2: GIntBig) -> OGRErr::Type4190     pub fn OGR_F_SetFID(arg1: OGRFeatureH, arg2: GIntBig) -> OGRErr::Type;
4191 }
4192 extern "C" {
OGR_F_DumpReadable(arg1: OGRFeatureH, arg2: *mut FILE)4193     pub fn OGR_F_DumpReadable(arg1: OGRFeatureH, arg2: *mut FILE);
4194 }
4195 extern "C" {
OGR_F_SetFrom(arg1: OGRFeatureH, arg2: OGRFeatureH, arg3: libc::c_int) -> OGRErr::Type4196     pub fn OGR_F_SetFrom(arg1: OGRFeatureH, arg2: OGRFeatureH, arg3: libc::c_int) -> OGRErr::Type;
4197 }
4198 extern "C" {
OGR_F_SetFromWithMap( arg1: OGRFeatureH, arg2: OGRFeatureH, arg3: libc::c_int, arg4: *mut libc::c_int, ) -> OGRErr::Type4199     pub fn OGR_F_SetFromWithMap(
4200         arg1: OGRFeatureH,
4201         arg2: OGRFeatureH,
4202         arg3: libc::c_int,
4203         arg4: *mut libc::c_int,
4204     ) -> OGRErr::Type;
4205 }
4206 extern "C" {
OGR_F_GetStyleString(arg1: OGRFeatureH) -> *const libc::c_char4207     pub fn OGR_F_GetStyleString(arg1: OGRFeatureH) -> *const libc::c_char;
4208 }
4209 extern "C" {
OGR_F_SetStyleString(arg1: OGRFeatureH, arg2: *const libc::c_char)4210     pub fn OGR_F_SetStyleString(arg1: OGRFeatureH, arg2: *const libc::c_char);
4211 }
4212 extern "C" {
OGR_F_SetStyleStringDirectly(arg1: OGRFeatureH, arg2: *mut libc::c_char)4213     pub fn OGR_F_SetStyleStringDirectly(arg1: OGRFeatureH, arg2: *mut libc::c_char);
4214 }
4215 extern "C" {
OGR_F_GetStyleTable(arg1: OGRFeatureH) -> OGRStyleTableH4216     pub fn OGR_F_GetStyleTable(arg1: OGRFeatureH) -> OGRStyleTableH;
4217 }
4218 extern "C" {
OGR_F_SetStyleTableDirectly(arg1: OGRFeatureH, arg2: OGRStyleTableH)4219     pub fn OGR_F_SetStyleTableDirectly(arg1: OGRFeatureH, arg2: OGRStyleTableH);
4220 }
4221 extern "C" {
OGR_F_SetStyleTable(arg1: OGRFeatureH, arg2: OGRStyleTableH)4222     pub fn OGR_F_SetStyleTable(arg1: OGRFeatureH, arg2: OGRStyleTableH);
4223 }
4224 extern "C" {
OGR_F_GetNativeData(arg1: OGRFeatureH) -> *const libc::c_char4225     pub fn OGR_F_GetNativeData(arg1: OGRFeatureH) -> *const libc::c_char;
4226 }
4227 extern "C" {
OGR_F_SetNativeData(arg1: OGRFeatureH, arg2: *const libc::c_char)4228     pub fn OGR_F_SetNativeData(arg1: OGRFeatureH, arg2: *const libc::c_char);
4229 }
4230 extern "C" {
OGR_F_GetNativeMediaType(arg1: OGRFeatureH) -> *const libc::c_char4231     pub fn OGR_F_GetNativeMediaType(arg1: OGRFeatureH) -> *const libc::c_char;
4232 }
4233 extern "C" {
OGR_F_SetNativeMediaType(arg1: OGRFeatureH, arg2: *const libc::c_char)4234     pub fn OGR_F_SetNativeMediaType(arg1: OGRFeatureH, arg2: *const libc::c_char);
4235 }
4236 extern "C" {
OGR_F_FillUnsetWithDefault( hFeat: OGRFeatureH, bNotNullableOnly: libc::c_int, papszOptions: *mut *mut libc::c_char, )4237     pub fn OGR_F_FillUnsetWithDefault(
4238         hFeat: OGRFeatureH,
4239         bNotNullableOnly: libc::c_int,
4240         papszOptions: *mut *mut libc::c_char,
4241     );
4242 }
4243 extern "C" {
OGR_F_Validate( arg1: OGRFeatureH, nValidateFlags: libc::c_int, bEmitError: libc::c_int, ) -> libc::c_int4244     pub fn OGR_F_Validate(
4245         arg1: OGRFeatureH,
4246         nValidateFlags: libc::c_int,
4247         bEmitError: libc::c_int,
4248     ) -> libc::c_int;
4249 }
4250 pub type OGRLayerH = *mut libc::c_void;
4251 pub type OGRDataSourceH = *mut libc::c_void;
4252 pub type OGRSFDriverH = *mut libc::c_void;
4253 extern "C" {
OGR_L_GetName(arg1: OGRLayerH) -> *const libc::c_char4254     pub fn OGR_L_GetName(arg1: OGRLayerH) -> *const libc::c_char;
4255 }
4256 extern "C" {
OGR_L_GetGeomType(arg1: OGRLayerH) -> OGRwkbGeometryType::Type4257     pub fn OGR_L_GetGeomType(arg1: OGRLayerH) -> OGRwkbGeometryType::Type;
4258 }
4259 extern "C" {
OGR_L_GetSpatialFilter(arg1: OGRLayerH) -> OGRGeometryH4260     pub fn OGR_L_GetSpatialFilter(arg1: OGRLayerH) -> OGRGeometryH;
4261 }
4262 extern "C" {
OGR_L_SetSpatialFilter(arg1: OGRLayerH, arg2: OGRGeometryH)4263     pub fn OGR_L_SetSpatialFilter(arg1: OGRLayerH, arg2: OGRGeometryH);
4264 }
4265 extern "C" {
OGR_L_SetSpatialFilterRect(arg1: OGRLayerH, arg2: f64, arg3: f64, arg4: f64, arg5: f64)4266     pub fn OGR_L_SetSpatialFilterRect(arg1: OGRLayerH, arg2: f64, arg3: f64, arg4: f64, arg5: f64);
4267 }
4268 extern "C" {
OGR_L_SetSpatialFilterEx(arg1: OGRLayerH, iGeomField: libc::c_int, hGeom: OGRGeometryH)4269     pub fn OGR_L_SetSpatialFilterEx(arg1: OGRLayerH, iGeomField: libc::c_int, hGeom: OGRGeometryH);
4270 }
4271 extern "C" {
OGR_L_SetSpatialFilterRectEx( arg1: OGRLayerH, iGeomField: libc::c_int, dfMinX: f64, dfMinY: f64, dfMaxX: f64, dfMaxY: f64, )4272     pub fn OGR_L_SetSpatialFilterRectEx(
4273         arg1: OGRLayerH,
4274         iGeomField: libc::c_int,
4275         dfMinX: f64,
4276         dfMinY: f64,
4277         dfMaxX: f64,
4278         dfMaxY: f64,
4279     );
4280 }
4281 extern "C" {
OGR_L_SetAttributeFilter(arg1: OGRLayerH, arg2: *const libc::c_char) -> OGRErr::Type4282     pub fn OGR_L_SetAttributeFilter(arg1: OGRLayerH, arg2: *const libc::c_char) -> OGRErr::Type;
4283 }
4284 extern "C" {
OGR_L_ResetReading(arg1: OGRLayerH)4285     pub fn OGR_L_ResetReading(arg1: OGRLayerH);
4286 }
4287 extern "C" {
OGR_L_GetNextFeature(arg1: OGRLayerH) -> OGRFeatureH4288     pub fn OGR_L_GetNextFeature(arg1: OGRLayerH) -> OGRFeatureH;
4289 }
4290 extern "C" {
OGR_L_SetNextByIndex(arg1: OGRLayerH, arg2: GIntBig) -> OGRErr::Type4291     pub fn OGR_L_SetNextByIndex(arg1: OGRLayerH, arg2: GIntBig) -> OGRErr::Type;
4292 }
4293 extern "C" {
OGR_L_GetFeature(arg1: OGRLayerH, arg2: GIntBig) -> OGRFeatureH4294     pub fn OGR_L_GetFeature(arg1: OGRLayerH, arg2: GIntBig) -> OGRFeatureH;
4295 }
4296 extern "C" {
OGR_L_SetFeature(arg1: OGRLayerH, arg2: OGRFeatureH) -> OGRErr::Type4297     pub fn OGR_L_SetFeature(arg1: OGRLayerH, arg2: OGRFeatureH) -> OGRErr::Type;
4298 }
4299 extern "C" {
OGR_L_CreateFeature(arg1: OGRLayerH, arg2: OGRFeatureH) -> OGRErr::Type4300     pub fn OGR_L_CreateFeature(arg1: OGRLayerH, arg2: OGRFeatureH) -> OGRErr::Type;
4301 }
4302 extern "C" {
OGR_L_DeleteFeature(arg1: OGRLayerH, arg2: GIntBig) -> OGRErr::Type4303     pub fn OGR_L_DeleteFeature(arg1: OGRLayerH, arg2: GIntBig) -> OGRErr::Type;
4304 }
4305 extern "C" {
OGR_L_GetLayerDefn(arg1: OGRLayerH) -> OGRFeatureDefnH4306     pub fn OGR_L_GetLayerDefn(arg1: OGRLayerH) -> OGRFeatureDefnH;
4307 }
4308 extern "C" {
OGR_L_GetSpatialRef(arg1: OGRLayerH) -> OGRSpatialReferenceH4309     pub fn OGR_L_GetSpatialRef(arg1: OGRLayerH) -> OGRSpatialReferenceH;
4310 }
4311 extern "C" {
OGR_L_FindFieldIndex( arg1: OGRLayerH, arg2: *const libc::c_char, bExactMatch: libc::c_int, ) -> libc::c_int4312     pub fn OGR_L_FindFieldIndex(
4313         arg1: OGRLayerH,
4314         arg2: *const libc::c_char,
4315         bExactMatch: libc::c_int,
4316     ) -> libc::c_int;
4317 }
4318 extern "C" {
OGR_L_GetFeatureCount(arg1: OGRLayerH, arg2: libc::c_int) -> GIntBig4319     pub fn OGR_L_GetFeatureCount(arg1: OGRLayerH, arg2: libc::c_int) -> GIntBig;
4320 }
4321 extern "C" {
OGR_L_GetExtent( arg1: OGRLayerH, arg2: *mut OGREnvelope, arg3: libc::c_int, ) -> OGRErr::Type4322     pub fn OGR_L_GetExtent(
4323         arg1: OGRLayerH,
4324         arg2: *mut OGREnvelope,
4325         arg3: libc::c_int,
4326     ) -> OGRErr::Type;
4327 }
4328 extern "C" {
OGR_L_GetExtentEx( arg1: OGRLayerH, iGeomField: libc::c_int, psExtent: *mut OGREnvelope, bForce: libc::c_int, ) -> OGRErr::Type4329     pub fn OGR_L_GetExtentEx(
4330         arg1: OGRLayerH,
4331         iGeomField: libc::c_int,
4332         psExtent: *mut OGREnvelope,
4333         bForce: libc::c_int,
4334     ) -> OGRErr::Type;
4335 }
4336 extern "C" {
OGR_L_TestCapability(arg1: OGRLayerH, arg2: *const libc::c_char) -> libc::c_int4337     pub fn OGR_L_TestCapability(arg1: OGRLayerH, arg2: *const libc::c_char) -> libc::c_int;
4338 }
4339 extern "C" {
OGR_L_CreateField( arg1: OGRLayerH, arg2: OGRFieldDefnH, arg3: libc::c_int, ) -> OGRErr::Type4340     pub fn OGR_L_CreateField(
4341         arg1: OGRLayerH,
4342         arg2: OGRFieldDefnH,
4343         arg3: libc::c_int,
4344     ) -> OGRErr::Type;
4345 }
4346 extern "C" {
OGR_L_CreateGeomField( hLayer: OGRLayerH, hFieldDefn: OGRGeomFieldDefnH, bForce: libc::c_int, ) -> OGRErr::Type4347     pub fn OGR_L_CreateGeomField(
4348         hLayer: OGRLayerH,
4349         hFieldDefn: OGRGeomFieldDefnH,
4350         bForce: libc::c_int,
4351     ) -> OGRErr::Type;
4352 }
4353 extern "C" {
OGR_L_DeleteField(arg1: OGRLayerH, iField: libc::c_int) -> OGRErr::Type4354     pub fn OGR_L_DeleteField(arg1: OGRLayerH, iField: libc::c_int) -> OGRErr::Type;
4355 }
4356 extern "C" {
OGR_L_ReorderFields(arg1: OGRLayerH, panMap: *mut libc::c_int) -> OGRErr::Type4357     pub fn OGR_L_ReorderFields(arg1: OGRLayerH, panMap: *mut libc::c_int) -> OGRErr::Type;
4358 }
4359 extern "C" {
OGR_L_ReorderField( arg1: OGRLayerH, iOldFieldPos: libc::c_int, iNewFieldPos: libc::c_int, ) -> OGRErr::Type4360     pub fn OGR_L_ReorderField(
4361         arg1: OGRLayerH,
4362         iOldFieldPos: libc::c_int,
4363         iNewFieldPos: libc::c_int,
4364     ) -> OGRErr::Type;
4365 }
4366 extern "C" {
OGR_L_AlterFieldDefn( arg1: OGRLayerH, iField: libc::c_int, hNewFieldDefn: OGRFieldDefnH, nFlags: libc::c_int, ) -> OGRErr::Type4367     pub fn OGR_L_AlterFieldDefn(
4368         arg1: OGRLayerH,
4369         iField: libc::c_int,
4370         hNewFieldDefn: OGRFieldDefnH,
4371         nFlags: libc::c_int,
4372     ) -> OGRErr::Type;
4373 }
4374 extern "C" {
OGR_L_StartTransaction(arg1: OGRLayerH) -> OGRErr::Type4375     pub fn OGR_L_StartTransaction(arg1: OGRLayerH) -> OGRErr::Type;
4376 }
4377 extern "C" {
OGR_L_CommitTransaction(arg1: OGRLayerH) -> OGRErr::Type4378     pub fn OGR_L_CommitTransaction(arg1: OGRLayerH) -> OGRErr::Type;
4379 }
4380 extern "C" {
OGR_L_RollbackTransaction(arg1: OGRLayerH) -> OGRErr::Type4381     pub fn OGR_L_RollbackTransaction(arg1: OGRLayerH) -> OGRErr::Type;
4382 }
4383 extern "C" {
OGR_L_Reference(arg1: OGRLayerH) -> libc::c_int4384     pub fn OGR_L_Reference(arg1: OGRLayerH) -> libc::c_int;
4385 }
4386 extern "C" {
OGR_L_Dereference(arg1: OGRLayerH) -> libc::c_int4387     pub fn OGR_L_Dereference(arg1: OGRLayerH) -> libc::c_int;
4388 }
4389 extern "C" {
OGR_L_GetRefCount(arg1: OGRLayerH) -> libc::c_int4390     pub fn OGR_L_GetRefCount(arg1: OGRLayerH) -> libc::c_int;
4391 }
4392 extern "C" {
OGR_L_SyncToDisk(arg1: OGRLayerH) -> OGRErr::Type4393     pub fn OGR_L_SyncToDisk(arg1: OGRLayerH) -> OGRErr::Type;
4394 }
4395 extern "C" {
OGR_L_GetFeaturesRead(arg1: OGRLayerH) -> GIntBig4396     pub fn OGR_L_GetFeaturesRead(arg1: OGRLayerH) -> GIntBig;
4397 }
4398 extern "C" {
OGR_L_GetFIDColumn(arg1: OGRLayerH) -> *const libc::c_char4399     pub fn OGR_L_GetFIDColumn(arg1: OGRLayerH) -> *const libc::c_char;
4400 }
4401 extern "C" {
OGR_L_GetGeometryColumn(arg1: OGRLayerH) -> *const libc::c_char4402     pub fn OGR_L_GetGeometryColumn(arg1: OGRLayerH) -> *const libc::c_char;
4403 }
4404 extern "C" {
OGR_L_GetStyleTable(arg1: OGRLayerH) -> OGRStyleTableH4405     pub fn OGR_L_GetStyleTable(arg1: OGRLayerH) -> OGRStyleTableH;
4406 }
4407 extern "C" {
OGR_L_SetStyleTableDirectly(arg1: OGRLayerH, arg2: OGRStyleTableH)4408     pub fn OGR_L_SetStyleTableDirectly(arg1: OGRLayerH, arg2: OGRStyleTableH);
4409 }
4410 extern "C" {
OGR_L_SetStyleTable(arg1: OGRLayerH, arg2: OGRStyleTableH)4411     pub fn OGR_L_SetStyleTable(arg1: OGRLayerH, arg2: OGRStyleTableH);
4412 }
4413 extern "C" {
OGR_L_SetIgnoredFields(arg1: OGRLayerH, arg2: *mut *const libc::c_char) -> OGRErr::Type4414     pub fn OGR_L_SetIgnoredFields(arg1: OGRLayerH, arg2: *mut *const libc::c_char) -> OGRErr::Type;
4415 }
4416 extern "C" {
OGR_L_Intersection( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4417     pub fn OGR_L_Intersection(
4418         arg1: OGRLayerH,
4419         arg2: OGRLayerH,
4420         arg3: OGRLayerH,
4421         arg4: *mut *mut libc::c_char,
4422         arg5: GDALProgressFunc,
4423         arg6: *mut libc::c_void,
4424     ) -> OGRErr::Type;
4425 }
4426 extern "C" {
OGR_L_Union( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4427     pub fn OGR_L_Union(
4428         arg1: OGRLayerH,
4429         arg2: OGRLayerH,
4430         arg3: OGRLayerH,
4431         arg4: *mut *mut libc::c_char,
4432         arg5: GDALProgressFunc,
4433         arg6: *mut libc::c_void,
4434     ) -> OGRErr::Type;
4435 }
4436 extern "C" {
OGR_L_SymDifference( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4437     pub fn OGR_L_SymDifference(
4438         arg1: OGRLayerH,
4439         arg2: OGRLayerH,
4440         arg3: OGRLayerH,
4441         arg4: *mut *mut libc::c_char,
4442         arg5: GDALProgressFunc,
4443         arg6: *mut libc::c_void,
4444     ) -> OGRErr::Type;
4445 }
4446 extern "C" {
OGR_L_Identity( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4447     pub fn OGR_L_Identity(
4448         arg1: OGRLayerH,
4449         arg2: OGRLayerH,
4450         arg3: OGRLayerH,
4451         arg4: *mut *mut libc::c_char,
4452         arg5: GDALProgressFunc,
4453         arg6: *mut libc::c_void,
4454     ) -> OGRErr::Type;
4455 }
4456 extern "C" {
OGR_L_Update( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4457     pub fn OGR_L_Update(
4458         arg1: OGRLayerH,
4459         arg2: OGRLayerH,
4460         arg3: OGRLayerH,
4461         arg4: *mut *mut libc::c_char,
4462         arg5: GDALProgressFunc,
4463         arg6: *mut libc::c_void,
4464     ) -> OGRErr::Type;
4465 }
4466 extern "C" {
OGR_L_Clip( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4467     pub fn OGR_L_Clip(
4468         arg1: OGRLayerH,
4469         arg2: OGRLayerH,
4470         arg3: OGRLayerH,
4471         arg4: *mut *mut libc::c_char,
4472         arg5: GDALProgressFunc,
4473         arg6: *mut libc::c_void,
4474     ) -> OGRErr::Type;
4475 }
4476 extern "C" {
OGR_L_Erase( arg1: OGRLayerH, arg2: OGRLayerH, arg3: OGRLayerH, arg4: *mut *mut libc::c_char, arg5: GDALProgressFunc, arg6: *mut libc::c_void, ) -> OGRErr::Type4477     pub fn OGR_L_Erase(
4478         arg1: OGRLayerH,
4479         arg2: OGRLayerH,
4480         arg3: OGRLayerH,
4481         arg4: *mut *mut libc::c_char,
4482         arg5: GDALProgressFunc,
4483         arg6: *mut libc::c_void,
4484     ) -> OGRErr::Type;
4485 }
4486 extern "C" {
OGR_DS_Destroy(arg1: OGRDataSourceH)4487     pub fn OGR_DS_Destroy(arg1: OGRDataSourceH);
4488 }
4489 extern "C" {
OGR_DS_GetName(arg1: OGRDataSourceH) -> *const libc::c_char4490     pub fn OGR_DS_GetName(arg1: OGRDataSourceH) -> *const libc::c_char;
4491 }
4492 extern "C" {
OGR_DS_GetLayerCount(arg1: OGRDataSourceH) -> libc::c_int4493     pub fn OGR_DS_GetLayerCount(arg1: OGRDataSourceH) -> libc::c_int;
4494 }
4495 extern "C" {
OGR_DS_GetLayer(arg1: OGRDataSourceH, arg2: libc::c_int) -> OGRLayerH4496     pub fn OGR_DS_GetLayer(arg1: OGRDataSourceH, arg2: libc::c_int) -> OGRLayerH;
4497 }
4498 extern "C" {
OGR_DS_GetLayerByName(arg1: OGRDataSourceH, arg2: *const libc::c_char) -> OGRLayerH4499     pub fn OGR_DS_GetLayerByName(arg1: OGRDataSourceH, arg2: *const libc::c_char) -> OGRLayerH;
4500 }
4501 extern "C" {
OGR_DS_DeleteLayer(arg1: OGRDataSourceH, arg2: libc::c_int) -> OGRErr::Type4502     pub fn OGR_DS_DeleteLayer(arg1: OGRDataSourceH, arg2: libc::c_int) -> OGRErr::Type;
4503 }
4504 extern "C" {
OGR_DS_GetDriver(arg1: OGRDataSourceH) -> OGRSFDriverH4505     pub fn OGR_DS_GetDriver(arg1: OGRDataSourceH) -> OGRSFDriverH;
4506 }
4507 extern "C" {
OGR_DS_CreateLayer( arg1: OGRDataSourceH, arg2: *const libc::c_char, arg3: OGRSpatialReferenceH, arg4: OGRwkbGeometryType::Type, arg5: *mut *mut libc::c_char, ) -> OGRLayerH4508     pub fn OGR_DS_CreateLayer(
4509         arg1: OGRDataSourceH,
4510         arg2: *const libc::c_char,
4511         arg3: OGRSpatialReferenceH,
4512         arg4: OGRwkbGeometryType::Type,
4513         arg5: *mut *mut libc::c_char,
4514     ) -> OGRLayerH;
4515 }
4516 extern "C" {
OGR_DS_CopyLayer( arg1: OGRDataSourceH, arg2: OGRLayerH, arg3: *const libc::c_char, arg4: *mut *mut libc::c_char, ) -> OGRLayerH4517     pub fn OGR_DS_CopyLayer(
4518         arg1: OGRDataSourceH,
4519         arg2: OGRLayerH,
4520         arg3: *const libc::c_char,
4521         arg4: *mut *mut libc::c_char,
4522     ) -> OGRLayerH;
4523 }
4524 extern "C" {
OGR_DS_TestCapability(arg1: OGRDataSourceH, arg2: *const libc::c_char) -> libc::c_int4525     pub fn OGR_DS_TestCapability(arg1: OGRDataSourceH, arg2: *const libc::c_char) -> libc::c_int;
4526 }
4527 extern "C" {
OGR_DS_ExecuteSQL( arg1: OGRDataSourceH, arg2: *const libc::c_char, arg3: OGRGeometryH, arg4: *const libc::c_char, ) -> OGRLayerH4528     pub fn OGR_DS_ExecuteSQL(
4529         arg1: OGRDataSourceH,
4530         arg2: *const libc::c_char,
4531         arg3: OGRGeometryH,
4532         arg4: *const libc::c_char,
4533     ) -> OGRLayerH;
4534 }
4535 extern "C" {
OGR_DS_ReleaseResultSet(arg1: OGRDataSourceH, arg2: OGRLayerH)4536     pub fn OGR_DS_ReleaseResultSet(arg1: OGRDataSourceH, arg2: OGRLayerH);
4537 }
4538 extern "C" {
OGR_DS_Reference(arg1: OGRDataSourceH) -> libc::c_int4539     pub fn OGR_DS_Reference(arg1: OGRDataSourceH) -> libc::c_int;
4540 }
4541 extern "C" {
OGR_DS_Dereference(arg1: OGRDataSourceH) -> libc::c_int4542     pub fn OGR_DS_Dereference(arg1: OGRDataSourceH) -> libc::c_int;
4543 }
4544 extern "C" {
OGR_DS_GetRefCount(arg1: OGRDataSourceH) -> libc::c_int4545     pub fn OGR_DS_GetRefCount(arg1: OGRDataSourceH) -> libc::c_int;
4546 }
4547 extern "C" {
OGR_DS_GetSummaryRefCount(arg1: OGRDataSourceH) -> libc::c_int4548     pub fn OGR_DS_GetSummaryRefCount(arg1: OGRDataSourceH) -> libc::c_int;
4549 }
4550 extern "C" {
OGR_DS_SyncToDisk(arg1: OGRDataSourceH) -> OGRErr::Type4551     pub fn OGR_DS_SyncToDisk(arg1: OGRDataSourceH) -> OGRErr::Type;
4552 }
4553 extern "C" {
OGR_DS_GetStyleTable(arg1: OGRDataSourceH) -> OGRStyleTableH4554     pub fn OGR_DS_GetStyleTable(arg1: OGRDataSourceH) -> OGRStyleTableH;
4555 }
4556 extern "C" {
OGR_DS_SetStyleTableDirectly(arg1: OGRDataSourceH, arg2: OGRStyleTableH)4557     pub fn OGR_DS_SetStyleTableDirectly(arg1: OGRDataSourceH, arg2: OGRStyleTableH);
4558 }
4559 extern "C" {
OGR_DS_SetStyleTable(arg1: OGRDataSourceH, arg2: OGRStyleTableH)4560     pub fn OGR_DS_SetStyleTable(arg1: OGRDataSourceH, arg2: OGRStyleTableH);
4561 }
4562 extern "C" {
OGR_Dr_GetName(arg1: OGRSFDriverH) -> *const libc::c_char4563     pub fn OGR_Dr_GetName(arg1: OGRSFDriverH) -> *const libc::c_char;
4564 }
4565 extern "C" {
OGR_Dr_Open( arg1: OGRSFDriverH, arg2: *const libc::c_char, arg3: libc::c_int, ) -> OGRDataSourceH4566     pub fn OGR_Dr_Open(
4567         arg1: OGRSFDriverH,
4568         arg2: *const libc::c_char,
4569         arg3: libc::c_int,
4570     ) -> OGRDataSourceH;
4571 }
4572 extern "C" {
OGR_Dr_TestCapability(arg1: OGRSFDriverH, arg2: *const libc::c_char) -> libc::c_int4573     pub fn OGR_Dr_TestCapability(arg1: OGRSFDriverH, arg2: *const libc::c_char) -> libc::c_int;
4574 }
4575 extern "C" {
OGR_Dr_CreateDataSource( arg1: OGRSFDriverH, arg2: *const libc::c_char, arg3: *mut *mut libc::c_char, ) -> OGRDataSourceH4576     pub fn OGR_Dr_CreateDataSource(
4577         arg1: OGRSFDriverH,
4578         arg2: *const libc::c_char,
4579         arg3: *mut *mut libc::c_char,
4580     ) -> OGRDataSourceH;
4581 }
4582 extern "C" {
OGR_Dr_CopyDataSource( arg1: OGRSFDriverH, arg2: OGRDataSourceH, arg3: *const libc::c_char, arg4: *mut *mut libc::c_char, ) -> OGRDataSourceH4583     pub fn OGR_Dr_CopyDataSource(
4584         arg1: OGRSFDriverH,
4585         arg2: OGRDataSourceH,
4586         arg3: *const libc::c_char,
4587         arg4: *mut *mut libc::c_char,
4588     ) -> OGRDataSourceH;
4589 }
4590 extern "C" {
OGR_Dr_DeleteDataSource(arg1: OGRSFDriverH, arg2: *const libc::c_char) -> OGRErr::Type4591     pub fn OGR_Dr_DeleteDataSource(arg1: OGRSFDriverH, arg2: *const libc::c_char) -> OGRErr::Type;
4592 }
4593 extern "C" {
OGROpen( arg1: *const libc::c_char, arg2: libc::c_int, arg3: *mut OGRSFDriverH, ) -> OGRDataSourceH4594     pub fn OGROpen(
4595         arg1: *const libc::c_char,
4596         arg2: libc::c_int,
4597         arg3: *mut OGRSFDriverH,
4598     ) -> OGRDataSourceH;
4599 }
4600 extern "C" {
OGROpenShared( arg1: *const libc::c_char, arg2: libc::c_int, arg3: *mut OGRSFDriverH, ) -> OGRDataSourceH4601     pub fn OGROpenShared(
4602         arg1: *const libc::c_char,
4603         arg2: libc::c_int,
4604         arg3: *mut OGRSFDriverH,
4605     ) -> OGRDataSourceH;
4606 }
4607 extern "C" {
OGRReleaseDataSource(arg1: OGRDataSourceH) -> OGRErr::Type4608     pub fn OGRReleaseDataSource(arg1: OGRDataSourceH) -> OGRErr::Type;
4609 }
4610 extern "C" {
OGRRegisterDriver(arg1: OGRSFDriverH)4611     pub fn OGRRegisterDriver(arg1: OGRSFDriverH);
4612 }
4613 extern "C" {
OGRDeregisterDriver(arg1: OGRSFDriverH)4614     pub fn OGRDeregisterDriver(arg1: OGRSFDriverH);
4615 }
4616 extern "C" {
OGRGetDriverCount() -> libc::c_int4617     pub fn OGRGetDriverCount() -> libc::c_int;
4618 }
4619 extern "C" {
OGRGetDriver(arg1: libc::c_int) -> OGRSFDriverH4620     pub fn OGRGetDriver(arg1: libc::c_int) -> OGRSFDriverH;
4621 }
4622 extern "C" {
OGRGetDriverByName(arg1: *const libc::c_char) -> OGRSFDriverH4623     pub fn OGRGetDriverByName(arg1: *const libc::c_char) -> OGRSFDriverH;
4624 }
4625 extern "C" {
OGRGetOpenDSCount() -> libc::c_int4626     pub fn OGRGetOpenDSCount() -> libc::c_int;
4627 }
4628 extern "C" {
OGRGetOpenDS(iDS: libc::c_int) -> OGRDataSourceH4629     pub fn OGRGetOpenDS(iDS: libc::c_int) -> OGRDataSourceH;
4630 }
4631 extern "C" {
OGRRegisterAll()4632     pub fn OGRRegisterAll();
4633 }
4634 extern "C" {
OGRCleanupAll()4635     pub fn OGRCleanupAll();
4636 }
4637 pub type OGRStyleMgrH = *mut libc::c_void;
4638 pub type OGRStyleToolH = *mut libc::c_void;
4639 extern "C" {
OGR_SM_Create(hStyleTable: OGRStyleTableH) -> OGRStyleMgrH4640     pub fn OGR_SM_Create(hStyleTable: OGRStyleTableH) -> OGRStyleMgrH;
4641 }
4642 extern "C" {
OGR_SM_Destroy(hSM: OGRStyleMgrH)4643     pub fn OGR_SM_Destroy(hSM: OGRStyleMgrH);
4644 }
4645 extern "C" {
OGR_SM_InitFromFeature(hSM: OGRStyleMgrH, hFeat: OGRFeatureH) -> *const libc::c_char4646     pub fn OGR_SM_InitFromFeature(hSM: OGRStyleMgrH, hFeat: OGRFeatureH) -> *const libc::c_char;
4647 }
4648 extern "C" {
OGR_SM_InitStyleString( hSM: OGRStyleMgrH, pszStyleString: *const libc::c_char, ) -> libc::c_int4649     pub fn OGR_SM_InitStyleString(
4650         hSM: OGRStyleMgrH,
4651         pszStyleString: *const libc::c_char,
4652     ) -> libc::c_int;
4653 }
4654 extern "C" {
OGR_SM_GetPartCount( hSM: OGRStyleMgrH, pszStyleString: *const libc::c_char, ) -> libc::c_int4655     pub fn OGR_SM_GetPartCount(
4656         hSM: OGRStyleMgrH,
4657         pszStyleString: *const libc::c_char,
4658     ) -> libc::c_int;
4659 }
4660 extern "C" {
OGR_SM_GetPart( hSM: OGRStyleMgrH, nPartId: libc::c_int, pszStyleString: *const libc::c_char, ) -> OGRStyleToolH4661     pub fn OGR_SM_GetPart(
4662         hSM: OGRStyleMgrH,
4663         nPartId: libc::c_int,
4664         pszStyleString: *const libc::c_char,
4665     ) -> OGRStyleToolH;
4666 }
4667 extern "C" {
OGR_SM_AddPart(hSM: OGRStyleMgrH, hST: OGRStyleToolH) -> libc::c_int4668     pub fn OGR_SM_AddPart(hSM: OGRStyleMgrH, hST: OGRStyleToolH) -> libc::c_int;
4669 }
4670 extern "C" {
OGR_SM_AddStyle( hSM: OGRStyleMgrH, pszStyleName: *const libc::c_char, pszStyleString: *const libc::c_char, ) -> libc::c_int4671     pub fn OGR_SM_AddStyle(
4672         hSM: OGRStyleMgrH,
4673         pszStyleName: *const libc::c_char,
4674         pszStyleString: *const libc::c_char,
4675     ) -> libc::c_int;
4676 }
4677 extern "C" {
OGR_ST_Create(eClassId: OGRSTClassId) -> OGRStyleToolH4678     pub fn OGR_ST_Create(eClassId: OGRSTClassId) -> OGRStyleToolH;
4679 }
4680 extern "C" {
OGR_ST_Destroy(hST: OGRStyleToolH)4681     pub fn OGR_ST_Destroy(hST: OGRStyleToolH);
4682 }
4683 extern "C" {
OGR_ST_GetType(hST: OGRStyleToolH) -> OGRSTClassId4684     pub fn OGR_ST_GetType(hST: OGRStyleToolH) -> OGRSTClassId;
4685 }
4686 extern "C" {
OGR_ST_GetUnit(hST: OGRStyleToolH) -> OGRSTUnitId4687     pub fn OGR_ST_GetUnit(hST: OGRStyleToolH) -> OGRSTUnitId;
4688 }
4689 extern "C" {
OGR_ST_SetUnit(hST: OGRStyleToolH, eUnit: OGRSTUnitId, dfGroundPaperScale: f64)4690     pub fn OGR_ST_SetUnit(hST: OGRStyleToolH, eUnit: OGRSTUnitId, dfGroundPaperScale: f64);
4691 }
4692 extern "C" {
OGR_ST_GetParamStr( hST: OGRStyleToolH, eParam: libc::c_int, bValueIsNull: *mut libc::c_int, ) -> *const libc::c_char4693     pub fn OGR_ST_GetParamStr(
4694         hST: OGRStyleToolH,
4695         eParam: libc::c_int,
4696         bValueIsNull: *mut libc::c_int,
4697     ) -> *const libc::c_char;
4698 }
4699 extern "C" {
OGR_ST_GetParamNum( hST: OGRStyleToolH, eParam: libc::c_int, bValueIsNull: *mut libc::c_int, ) -> libc::c_int4700     pub fn OGR_ST_GetParamNum(
4701         hST: OGRStyleToolH,
4702         eParam: libc::c_int,
4703         bValueIsNull: *mut libc::c_int,
4704     ) -> libc::c_int;
4705 }
4706 extern "C" {
OGR_ST_GetParamDbl( hST: OGRStyleToolH, eParam: libc::c_int, bValueIsNull: *mut libc::c_int, ) -> f644707     pub fn OGR_ST_GetParamDbl(
4708         hST: OGRStyleToolH,
4709         eParam: libc::c_int,
4710         bValueIsNull: *mut libc::c_int,
4711     ) -> f64;
4712 }
4713 extern "C" {
OGR_ST_SetParamStr( hST: OGRStyleToolH, eParam: libc::c_int, pszValue: *const libc::c_char, )4714     pub fn OGR_ST_SetParamStr(
4715         hST: OGRStyleToolH,
4716         eParam: libc::c_int,
4717         pszValue: *const libc::c_char,
4718     );
4719 }
4720 extern "C" {
OGR_ST_SetParamNum(hST: OGRStyleToolH, eParam: libc::c_int, nValue: libc::c_int)4721     pub fn OGR_ST_SetParamNum(hST: OGRStyleToolH, eParam: libc::c_int, nValue: libc::c_int);
4722 }
4723 extern "C" {
OGR_ST_SetParamDbl(hST: OGRStyleToolH, eParam: libc::c_int, dfValue: f64)4724     pub fn OGR_ST_SetParamDbl(hST: OGRStyleToolH, eParam: libc::c_int, dfValue: f64);
4725 }
4726 extern "C" {
OGR_ST_GetStyleString(hST: OGRStyleToolH) -> *const libc::c_char4727     pub fn OGR_ST_GetStyleString(hST: OGRStyleToolH) -> *const libc::c_char;
4728 }
4729 extern "C" {
OGR_ST_GetRGBFromString( hST: OGRStyleToolH, pszColor: *const libc::c_char, pnRed: *mut libc::c_int, pnGreen: *mut libc::c_int, pnBlue: *mut libc::c_int, pnAlpha: *mut libc::c_int, ) -> libc::c_int4730     pub fn OGR_ST_GetRGBFromString(
4731         hST: OGRStyleToolH,
4732         pszColor: *const libc::c_char,
4733         pnRed: *mut libc::c_int,
4734         pnGreen: *mut libc::c_int,
4735         pnBlue: *mut libc::c_int,
4736         pnAlpha: *mut libc::c_int,
4737     ) -> libc::c_int;
4738 }
4739 extern "C" {
OGR_STBL_Create() -> OGRStyleTableH4740     pub fn OGR_STBL_Create() -> OGRStyleTableH;
4741 }
4742 extern "C" {
OGR_STBL_Destroy(hSTBL: OGRStyleTableH)4743     pub fn OGR_STBL_Destroy(hSTBL: OGRStyleTableH);
4744 }
4745 extern "C" {
OGR_STBL_AddStyle( hStyleTable: OGRStyleTableH, pszName: *const libc::c_char, pszStyleString: *const libc::c_char, ) -> libc::c_int4746     pub fn OGR_STBL_AddStyle(
4747         hStyleTable: OGRStyleTableH,
4748         pszName: *const libc::c_char,
4749         pszStyleString: *const libc::c_char,
4750     ) -> libc::c_int;
4751 }
4752 extern "C" {
OGR_STBL_SaveStyleTable( hStyleTable: OGRStyleTableH, pszFilename: *const libc::c_char, ) -> libc::c_int4753     pub fn OGR_STBL_SaveStyleTable(
4754         hStyleTable: OGRStyleTableH,
4755         pszFilename: *const libc::c_char,
4756     ) -> libc::c_int;
4757 }
4758 extern "C" {
OGR_STBL_LoadStyleTable( hStyleTable: OGRStyleTableH, pszFilename: *const libc::c_char, ) -> libc::c_int4759     pub fn OGR_STBL_LoadStyleTable(
4760         hStyleTable: OGRStyleTableH,
4761         pszFilename: *const libc::c_char,
4762     ) -> libc::c_int;
4763 }
4764 extern "C" {
OGR_STBL_Find( hStyleTable: OGRStyleTableH, pszName: *const libc::c_char, ) -> *const libc::c_char4765     pub fn OGR_STBL_Find(
4766         hStyleTable: OGRStyleTableH,
4767         pszName: *const libc::c_char,
4768     ) -> *const libc::c_char;
4769 }
4770 extern "C" {
OGR_STBL_ResetStyleStringReading(hStyleTable: OGRStyleTableH)4771     pub fn OGR_STBL_ResetStyleStringReading(hStyleTable: OGRStyleTableH);
4772 }
4773 extern "C" {
OGR_STBL_GetNextStyle(hStyleTable: OGRStyleTableH) -> *const libc::c_char4774     pub fn OGR_STBL_GetNextStyle(hStyleTable: OGRStyleTableH) -> *const libc::c_char;
4775 }
4776 extern "C" {
OGR_STBL_GetLastStyleName(hStyleTable: OGRStyleTableH) -> *const libc::c_char4777     pub fn OGR_STBL_GetLastStyleName(hStyleTable: OGRStyleTableH) -> *const libc::c_char;
4778 }
4779 pub mod GDALDataType {
4780     /// Pixel data types
4781     pub type Type = u32;
4782     /// Unknown or unspecified type
4783     pub const GDT_Unknown: Type = 0;
4784     /// Eight bit unsigned integer
4785     pub const GDT_Byte: Type = 1;
4786     /// Sixteen bit unsigned integer
4787     pub const GDT_UInt16: Type = 2;
4788     /// Sixteen bit signed integer
4789     pub const GDT_Int16: Type = 3;
4790     /// Thirty two bit unsigned integer
4791     pub const GDT_UInt32: Type = 4;
4792     /// Thirty two bit signed integer
4793     pub const GDT_Int32: Type = 5;
4794     /// Thirty two bit floating point
4795     pub const GDT_Float32: Type = 6;
4796     /// Sixty four bit floating point
4797     pub const GDT_Float64: Type = 7;
4798     /// Complex Int16
4799     pub const GDT_CInt16: Type = 8;
4800     /// Complex Int32
4801     pub const GDT_CInt32: Type = 9;
4802     /// Complex Float32
4803     pub const GDT_CFloat32: Type = 10;
4804     /// Complex Float64
4805     pub const GDT_CFloat64: Type = 11;
4806     /// Complex Float64
4807     pub const GDT_TypeCount: Type = 12;
4808 }
4809 extern "C" {
GDALGetDataTypeSize(arg1: GDALDataType::Type) -> libc::c_int4810     pub fn GDALGetDataTypeSize(arg1: GDALDataType::Type) -> libc::c_int;
4811 }
4812 extern "C" {
GDALGetDataTypeSizeBits(eDataType: GDALDataType::Type) -> libc::c_int4813     pub fn GDALGetDataTypeSizeBits(eDataType: GDALDataType::Type) -> libc::c_int;
4814 }
4815 extern "C" {
GDALGetDataTypeSizeBytes(arg1: GDALDataType::Type) -> libc::c_int4816     pub fn GDALGetDataTypeSizeBytes(arg1: GDALDataType::Type) -> libc::c_int;
4817 }
4818 extern "C" {
GDALDataTypeIsComplex(arg1: GDALDataType::Type) -> libc::c_int4819     pub fn GDALDataTypeIsComplex(arg1: GDALDataType::Type) -> libc::c_int;
4820 }
4821 extern "C" {
GDALGetDataTypeName(arg1: GDALDataType::Type) -> *const libc::c_char4822     pub fn GDALGetDataTypeName(arg1: GDALDataType::Type) -> *const libc::c_char;
4823 }
4824 extern "C" {
GDALGetDataTypeByName(arg1: *const libc::c_char) -> GDALDataType::Type4825     pub fn GDALGetDataTypeByName(arg1: *const libc::c_char) -> GDALDataType::Type;
4826 }
4827 extern "C" {
GDALDataTypeUnion( arg1: GDALDataType::Type, arg2: GDALDataType::Type, ) -> GDALDataType::Type4828     pub fn GDALDataTypeUnion(
4829         arg1: GDALDataType::Type,
4830         arg2: GDALDataType::Type,
4831     ) -> GDALDataType::Type;
4832 }
4833 extern "C" {
GDALAdjustValueToDataType( eDT: GDALDataType::Type, dfValue: f64, pbClamped: *mut libc::c_int, pbRounded: *mut libc::c_int, ) -> f644834     pub fn GDALAdjustValueToDataType(
4835         eDT: GDALDataType::Type,
4836         dfValue: f64,
4837         pbClamped: *mut libc::c_int,
4838         pbRounded: *mut libc::c_int,
4839     ) -> f64;
4840 }
4841 pub mod GDALAsyncStatusType {
4842     /// status of the asynchronous stream
4843     pub type Type = u32;
4844     pub const GARIO_PENDING: Type = 0;
4845     pub const GARIO_UPDATE: Type = 1;
4846     pub const GARIO_ERROR: Type = 2;
4847     pub const GARIO_COMPLETE: Type = 3;
4848     pub const GARIO_TypeCount: Type = 4;
4849 }
4850 extern "C" {
GDALGetAsyncStatusTypeName(arg1: GDALAsyncStatusType::Type) -> *const libc::c_char4851     pub fn GDALGetAsyncStatusTypeName(arg1: GDALAsyncStatusType::Type) -> *const libc::c_char;
4852 }
4853 extern "C" {
GDALGetAsyncStatusTypeByName(arg1: *const libc::c_char) -> GDALAsyncStatusType::Type4854     pub fn GDALGetAsyncStatusTypeByName(arg1: *const libc::c_char) -> GDALAsyncStatusType::Type;
4855 }
4856 pub mod GDALAccess {
4857     /// Flag indicating read/write, or read-only access to data.
4858     pub type Type = u32;
4859     /// Read only (no update) access
4860     pub const GA_ReadOnly: Type = 0;
4861     /// Read/write access.
4862     pub const GA_Update: Type = 1;
4863 }
4864 pub mod GDALRWFlag {
4865     /// Read/Write flag for RasterIO() method
4866     pub type Type = u32;
4867     /// Read data
4868     pub const GF_Read: Type = 0;
4869     /// Write data
4870     pub const GF_Write: Type = 1;
4871 }
4872 pub mod GDALRIOResampleAlg {
4873     /// RasterIO() resampling method.
4874     /// @since GDAL 2.0
4875     pub type Type = u32;
4876     /// Nearest neighbour
4877     pub const GRIORA_NearestNeighbour: Type = 0;
4878     /// Bilinear (2x2 kernel)
4879     pub const GRIORA_Bilinear: Type = 1;
4880     /// Cubic Convolution Approximation (4x4 kernel)
4881     pub const GRIORA_Cubic: Type = 2;
4882     /// Cubic B-Spline Approximation (4x4 kernel)
4883     pub const GRIORA_CubicSpline: Type = 3;
4884     /// Lanczos windowed sinc interpolation (6x6 kernel)
4885     pub const GRIORA_Lanczos: Type = 4;
4886     /// Average
4887     pub const GRIORA_Average: Type = 5;
4888     /// Mode (selects the value which appears most often of all the sampled points)
4889     pub const GRIORA_Mode: Type = 6;
4890     /// Gauss blurring
4891     pub const GRIORA_Gauss: Type = 7;
4892 }
4893 /// Structure to pass extra arguments to RasterIO() method
4894 /// @since GDAL 2.0
4895 #[repr(C)]
4896 #[derive(Debug, Copy, Clone)]
4897 pub struct GDALRasterIOExtraArg {
4898     /// Version of structure (to allow future extensions of the structure)
4899     pub nVersion: libc::c_int,
4900     /// Resampling algorithm
4901     pub eResampleAlg: GDALRIOResampleAlg::Type,
4902     /// Progress callback
4903     pub pfnProgress: GDALProgressFunc,
4904     /// Progress callback user data
4905     pub pProgressData: *mut libc::c_void,
4906     /// Indicate if dfXOff, dfYOff, dfXSize and dfYSize are set.
4907     /// Mostly reserved from the VRT driver to communicate a more precise
4908     /// source window. Must be such that dfXOff - nXOff < 1.0 and
4909     /// dfYOff - nYOff < 1.0 and nXSize - dfXSize < 1.0 and nYSize - dfYSize < 1.0
4910     pub bFloatingPointWindowValidity: libc::c_int,
4911     /// Pixel offset to the top left corner. Only valid if bFloatingPointWindowValidity = TRUE
4912     pub dfXOff: f64,
4913     /// Line offset to the top left corner. Only valid if bFloatingPointWindowValidity = TRUE
4914     pub dfYOff: f64,
4915     /// Width in pixels of the area of interest. Only valid if bFloatingPointWindowValidity = TRUE
4916     pub dfXSize: f64,
4917     /// Height in pixels of the area of interest. Only valid if bFloatingPointWindowValidity = TRUE
4918     pub dfYSize: f64,
4919 }
4920 #[test]
bindgen_test_layout_GDALRasterIOExtraArg()4921 fn bindgen_test_layout_GDALRasterIOExtraArg() {
4922     assert_eq!(
4923         ::std::mem::size_of::<GDALRasterIOExtraArg>(),
4924         64usize,
4925         concat!("Size of: ", stringify!(GDALRasterIOExtraArg))
4926     );
4927     assert_eq!(
4928         ::std::mem::align_of::<GDALRasterIOExtraArg>(),
4929         8usize,
4930         concat!("Alignment of ", stringify!(GDALRasterIOExtraArg))
4931     );
4932     assert_eq!(
4933         unsafe { &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).nVersion as *const _ as usize },
4934         0usize,
4935         concat!(
4936             "Offset of field: ",
4937             stringify!(GDALRasterIOExtraArg),
4938             "::",
4939             stringify!(nVersion)
4940         )
4941     );
4942     assert_eq!(
4943         unsafe {
4944             &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).eResampleAlg as *const _ as usize
4945         },
4946         4usize,
4947         concat!(
4948             "Offset of field: ",
4949             stringify!(GDALRasterIOExtraArg),
4950             "::",
4951             stringify!(eResampleAlg)
4952         )
4953     );
4954     assert_eq!(
4955         unsafe {
4956             &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).pfnProgress as *const _ as usize
4957         },
4958         8usize,
4959         concat!(
4960             "Offset of field: ",
4961             stringify!(GDALRasterIOExtraArg),
4962             "::",
4963             stringify!(pfnProgress)
4964         )
4965     );
4966     assert_eq!(
4967         unsafe {
4968             &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).pProgressData as *const _ as usize
4969         },
4970         16usize,
4971         concat!(
4972             "Offset of field: ",
4973             stringify!(GDALRasterIOExtraArg),
4974             "::",
4975             stringify!(pProgressData)
4976         )
4977     );
4978     assert_eq!(
4979         unsafe {
4980             &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).bFloatingPointWindowValidity
4981                 as *const _ as usize
4982         },
4983         24usize,
4984         concat!(
4985             "Offset of field: ",
4986             stringify!(GDALRasterIOExtraArg),
4987             "::",
4988             stringify!(bFloatingPointWindowValidity)
4989         )
4990     );
4991     assert_eq!(
4992         unsafe { &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).dfXOff as *const _ as usize },
4993         32usize,
4994         concat!(
4995             "Offset of field: ",
4996             stringify!(GDALRasterIOExtraArg),
4997             "::",
4998             stringify!(dfXOff)
4999         )
5000     );
5001     assert_eq!(
5002         unsafe { &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).dfYOff as *const _ as usize },
5003         40usize,
5004         concat!(
5005             "Offset of field: ",
5006             stringify!(GDALRasterIOExtraArg),
5007             "::",
5008             stringify!(dfYOff)
5009         )
5010     );
5011     assert_eq!(
5012         unsafe { &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).dfXSize as *const _ as usize },
5013         48usize,
5014         concat!(
5015             "Offset of field: ",
5016             stringify!(GDALRasterIOExtraArg),
5017             "::",
5018             stringify!(dfXSize)
5019         )
5020     );
5021     assert_eq!(
5022         unsafe { &(*(::std::ptr::null::<GDALRasterIOExtraArg>())).dfYSize as *const _ as usize },
5023         56usize,
5024         concat!(
5025             "Offset of field: ",
5026             stringify!(GDALRasterIOExtraArg),
5027             "::",
5028             stringify!(dfYSize)
5029         )
5030     );
5031 }
5032 pub mod GDALColorInterp {
5033     /// Types of color interpretation for raster bands.
5034     pub type Type = u32;
5035     pub const GCI_Undefined: Type = 0;
5036     /// Greyscale
5037     pub const GCI_GrayIndex: Type = 1;
5038     /// Paletted (see associated color table)
5039     pub const GCI_PaletteIndex: Type = 2;
5040     /// Red band of RGBA image
5041     pub const GCI_RedBand: Type = 3;
5042     /// Green band of RGBA image
5043     pub const GCI_GreenBand: Type = 4;
5044     /// Blue band of RGBA image
5045     pub const GCI_BlueBand: Type = 5;
5046     /// Alpha (0=transparent, 255=opaque)
5047     pub const GCI_AlphaBand: Type = 6;
5048     /// Hue band of HLS image
5049     pub const GCI_HueBand: Type = 7;
5050     /// Saturation band of HLS image
5051     pub const GCI_SaturationBand: Type = 8;
5052     /// Lightness band of HLS image
5053     pub const GCI_LightnessBand: Type = 9;
5054     /// Cyan band of CMYK image
5055     pub const GCI_CyanBand: Type = 10;
5056     /// Magenta band of CMYK image
5057     pub const GCI_MagentaBand: Type = 11;
5058     /// Yellow band of CMYK image
5059     pub const GCI_YellowBand: Type = 12;
5060     /// Black band of CMLY image
5061     pub const GCI_BlackBand: Type = 13;
5062     /// Y Luminance
5063     pub const GCI_YCbCr_YBand: Type = 14;
5064     /// Cb Chroma
5065     pub const GCI_YCbCr_CbBand: Type = 15;
5066     /// Cr Chroma
5067     pub const GCI_YCbCr_CrBand: Type = 16;
5068     /// Max current value
5069     pub const GCI_Max: Type = 16;
5070 }
5071 extern "C" {
GDALGetColorInterpretationName(arg1: GDALColorInterp::Type) -> *const libc::c_char5072     pub fn GDALGetColorInterpretationName(arg1: GDALColorInterp::Type) -> *const libc::c_char;
5073 }
5074 extern "C" {
GDALGetColorInterpretationByName(pszName: *const libc::c_char) -> GDALColorInterp::Type5075     pub fn GDALGetColorInterpretationByName(pszName: *const libc::c_char) -> GDALColorInterp::Type;
5076 }
5077 pub mod GDALPaletteInterp {
5078     /// Types of color interpretations for a GDALColorTable.
5079     pub type Type = u32;
5080     /// Grayscale (in GDALColorEntry.c1)
5081     pub const GPI_Gray: Type = 0;
5082     /// Red, Green, Blue and Alpha in (in c1, c2, c3 and c4)
5083     pub const GPI_RGB: Type = 1;
5084     /// Cyan, Magenta, Yellow and Black (in c1, c2, c3 and c4)
5085     pub const GPI_CMYK: Type = 2;
5086     /// Hue, Lightness and Saturation (in c1, c2, and c3)
5087     pub const GPI_HLS: Type = 3;
5088 }
5089 extern "C" {
GDALGetPaletteInterpretationName(arg1: GDALPaletteInterp::Type) -> *const libc::c_char5090     pub fn GDALGetPaletteInterpretationName(arg1: GDALPaletteInterp::Type) -> *const libc::c_char;
5091 }
5092 /// Opaque type used for the C bindings of the C++ GDALMajorObject class
5093 pub type GDALMajorObjectH = *mut libc::c_void;
5094 /// Opaque type used for the C bindings of the C++ GDALDataset class
5095 pub type GDALDatasetH = *mut libc::c_void;
5096 /// Opaque type used for the C bindings of the C++ GDALRasterBand class
5097 pub type GDALRasterBandH = *mut libc::c_void;
5098 /// Opaque type used for the C bindings of the C++ GDALDriver class
5099 pub type GDALDriverH = *mut libc::c_void;
5100 /// Opaque type used for the C bindings of the C++ GDALColorTable class
5101 pub type GDALColorTableH = *mut libc::c_void;
5102 /// Opaque type used for the C bindings of the C++ GDALRasterAttributeTable class
5103 pub type GDALRasterAttributeTableH = *mut libc::c_void;
5104 /// Opaque type used for the C bindings of the C++ GDALAsyncReader class
5105 pub type GDALAsyncReaderH = *mut libc::c_void;
5106 /// Type to express pixel, line or band spacing. Signed 64 bit integer.
5107 pub type GSpacing = GIntBig;
5108 extern "C" {
GDALAllRegister()5109     pub fn GDALAllRegister();
5110 }
5111 extern "C" {
GDALCreate( hDriver: GDALDriverH, arg1: *const libc::c_char, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: GDALDataType::Type, arg6: *mut *mut libc::c_char, ) -> GDALDatasetH5112     pub fn GDALCreate(
5113         hDriver: GDALDriverH,
5114         arg1: *const libc::c_char,
5115         arg2: libc::c_int,
5116         arg3: libc::c_int,
5117         arg4: libc::c_int,
5118         arg5: GDALDataType::Type,
5119         arg6: *mut *mut libc::c_char,
5120     ) -> GDALDatasetH;
5121 }
5122 extern "C" {
GDALCreateCopy( arg1: GDALDriverH, arg2: *const libc::c_char, arg3: GDALDatasetH, arg4: libc::c_int, arg5: *mut *mut libc::c_char, arg6: GDALProgressFunc, arg7: *mut libc::c_void, ) -> GDALDatasetH5123     pub fn GDALCreateCopy(
5124         arg1: GDALDriverH,
5125         arg2: *const libc::c_char,
5126         arg3: GDALDatasetH,
5127         arg4: libc::c_int,
5128         arg5: *mut *mut libc::c_char,
5129         arg6: GDALProgressFunc,
5130         arg7: *mut libc::c_void,
5131     ) -> GDALDatasetH;
5132 }
5133 extern "C" {
GDALIdentifyDriver( pszFilename: *const libc::c_char, papszFileList: *mut *mut libc::c_char, ) -> GDALDriverH5134     pub fn GDALIdentifyDriver(
5135         pszFilename: *const libc::c_char,
5136         papszFileList: *mut *mut libc::c_char,
5137     ) -> GDALDriverH;
5138 }
5139 extern "C" {
GDALOpen(pszFilename: *const libc::c_char, eAccess: GDALAccess::Type) -> GDALDatasetH5140     pub fn GDALOpen(pszFilename: *const libc::c_char, eAccess: GDALAccess::Type) -> GDALDatasetH;
5141 }
5142 extern "C" {
GDALOpenShared(arg1: *const libc::c_char, arg2: GDALAccess::Type) -> GDALDatasetH5143     pub fn GDALOpenShared(arg1: *const libc::c_char, arg2: GDALAccess::Type) -> GDALDatasetH;
5144 }
5145 extern "C" {
GDALOpenEx( pszFilename: *const libc::c_char, nOpenFlags: libc::c_uint, papszAllowedDrivers: *const *const libc::c_char, papszOpenOptions: *const *const libc::c_char, papszSiblingFiles: *const *const libc::c_char, ) -> GDALDatasetH5146     pub fn GDALOpenEx(
5147         pszFilename: *const libc::c_char,
5148         nOpenFlags: libc::c_uint,
5149         papszAllowedDrivers: *const *const libc::c_char,
5150         papszOpenOptions: *const *const libc::c_char,
5151         papszSiblingFiles: *const *const libc::c_char,
5152     ) -> GDALDatasetH;
5153 }
5154 extern "C" {
GDALDumpOpenDatasets(arg1: *mut FILE) -> libc::c_int5155     pub fn GDALDumpOpenDatasets(arg1: *mut FILE) -> libc::c_int;
5156 }
5157 extern "C" {
GDALGetDriverByName(arg1: *const libc::c_char) -> GDALDriverH5158     pub fn GDALGetDriverByName(arg1: *const libc::c_char) -> GDALDriverH;
5159 }
5160 extern "C" {
GDALGetDriverCount() -> libc::c_int5161     pub fn GDALGetDriverCount() -> libc::c_int;
5162 }
5163 extern "C" {
GDALGetDriver(arg1: libc::c_int) -> GDALDriverH5164     pub fn GDALGetDriver(arg1: libc::c_int) -> GDALDriverH;
5165 }
5166 extern "C" {
GDALDestroyDriver(arg1: GDALDriverH)5167     pub fn GDALDestroyDriver(arg1: GDALDriverH);
5168 }
5169 extern "C" {
GDALRegisterDriver(arg1: GDALDriverH) -> libc::c_int5170     pub fn GDALRegisterDriver(arg1: GDALDriverH) -> libc::c_int;
5171 }
5172 extern "C" {
GDALDeregisterDriver(arg1: GDALDriverH)5173     pub fn GDALDeregisterDriver(arg1: GDALDriverH);
5174 }
5175 extern "C" {
GDALDestroyDriverManager()5176     pub fn GDALDestroyDriverManager();
5177 }
5178 extern "C" {
GDALDestroy()5179     pub fn GDALDestroy();
5180 }
5181 extern "C" {
GDALDeleteDataset(arg1: GDALDriverH, arg2: *const libc::c_char) -> CPLErr::Type5182     pub fn GDALDeleteDataset(arg1: GDALDriverH, arg2: *const libc::c_char) -> CPLErr::Type;
5183 }
5184 extern "C" {
GDALRenameDataset( arg1: GDALDriverH, pszNewName: *const libc::c_char, pszOldName: *const libc::c_char, ) -> CPLErr::Type5185     pub fn GDALRenameDataset(
5186         arg1: GDALDriverH,
5187         pszNewName: *const libc::c_char,
5188         pszOldName: *const libc::c_char,
5189     ) -> CPLErr::Type;
5190 }
5191 extern "C" {
GDALCopyDatasetFiles( arg1: GDALDriverH, pszNewName: *const libc::c_char, pszOldName: *const libc::c_char, ) -> CPLErr::Type5192     pub fn GDALCopyDatasetFiles(
5193         arg1: GDALDriverH,
5194         pszNewName: *const libc::c_char,
5195         pszOldName: *const libc::c_char,
5196     ) -> CPLErr::Type;
5197 }
5198 extern "C" {
GDALValidateCreationOptions( arg1: GDALDriverH, papszCreationOptions: *mut *mut libc::c_char, ) -> libc::c_int5199     pub fn GDALValidateCreationOptions(
5200         arg1: GDALDriverH,
5201         papszCreationOptions: *mut *mut libc::c_char,
5202     ) -> libc::c_int;
5203 }
5204 extern "C" {
GDALGetDriverShortName(arg1: GDALDriverH) -> *const libc::c_char5205     pub fn GDALGetDriverShortName(arg1: GDALDriverH) -> *const libc::c_char;
5206 }
5207 extern "C" {
GDALGetDriverLongName(arg1: GDALDriverH) -> *const libc::c_char5208     pub fn GDALGetDriverLongName(arg1: GDALDriverH) -> *const libc::c_char;
5209 }
5210 extern "C" {
GDALGetDriverHelpTopic(arg1: GDALDriverH) -> *const libc::c_char5211     pub fn GDALGetDriverHelpTopic(arg1: GDALDriverH) -> *const libc::c_char;
5212 }
5213 extern "C" {
GDALGetDriverCreationOptionList(arg1: GDALDriverH) -> *const libc::c_char5214     pub fn GDALGetDriverCreationOptionList(arg1: GDALDriverH) -> *const libc::c_char;
5215 }
5216 /// Ground Control Point
5217 #[repr(C)]
5218 #[derive(Debug, Copy, Clone)]
5219 pub struct GDAL_GCP {
5220     /// Unique identifier, often numeric
5221     pub pszId: *mut libc::c_char,
5222     /// Informational message or ""
5223     pub pszInfo: *mut libc::c_char,
5224     /// Pixel (x) location of GCP on raster
5225     pub dfGCPPixel: f64,
5226     /// Line (y) location of GCP on raster
5227     pub dfGCPLine: f64,
5228     /// X position of GCP in georeferenced space
5229     pub dfGCPX: f64,
5230     /// Y position of GCP in georeferenced space
5231     pub dfGCPY: f64,
5232     /// Elevation of GCP, or zero if not known
5233     pub dfGCPZ: f64,
5234 }
5235 #[test]
bindgen_test_layout_GDAL_GCP()5236 fn bindgen_test_layout_GDAL_GCP() {
5237     assert_eq!(
5238         ::std::mem::size_of::<GDAL_GCP>(),
5239         56usize,
5240         concat!("Size of: ", stringify!(GDAL_GCP))
5241     );
5242     assert_eq!(
5243         ::std::mem::align_of::<GDAL_GCP>(),
5244         8usize,
5245         concat!("Alignment of ", stringify!(GDAL_GCP))
5246     );
5247     assert_eq!(
5248         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).pszId as *const _ as usize },
5249         0usize,
5250         concat!(
5251             "Offset of field: ",
5252             stringify!(GDAL_GCP),
5253             "::",
5254             stringify!(pszId)
5255         )
5256     );
5257     assert_eq!(
5258         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).pszInfo as *const _ as usize },
5259         8usize,
5260         concat!(
5261             "Offset of field: ",
5262             stringify!(GDAL_GCP),
5263             "::",
5264             stringify!(pszInfo)
5265         )
5266     );
5267     assert_eq!(
5268         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).dfGCPPixel as *const _ as usize },
5269         16usize,
5270         concat!(
5271             "Offset of field: ",
5272             stringify!(GDAL_GCP),
5273             "::",
5274             stringify!(dfGCPPixel)
5275         )
5276     );
5277     assert_eq!(
5278         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).dfGCPLine as *const _ as usize },
5279         24usize,
5280         concat!(
5281             "Offset of field: ",
5282             stringify!(GDAL_GCP),
5283             "::",
5284             stringify!(dfGCPLine)
5285         )
5286     );
5287     assert_eq!(
5288         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).dfGCPX as *const _ as usize },
5289         32usize,
5290         concat!(
5291             "Offset of field: ",
5292             stringify!(GDAL_GCP),
5293             "::",
5294             stringify!(dfGCPX)
5295         )
5296     );
5297     assert_eq!(
5298         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).dfGCPY as *const _ as usize },
5299         40usize,
5300         concat!(
5301             "Offset of field: ",
5302             stringify!(GDAL_GCP),
5303             "::",
5304             stringify!(dfGCPY)
5305         )
5306     );
5307     assert_eq!(
5308         unsafe { &(*(::std::ptr::null::<GDAL_GCP>())).dfGCPZ as *const _ as usize },
5309         48usize,
5310         concat!(
5311             "Offset of field: ",
5312             stringify!(GDAL_GCP),
5313             "::",
5314             stringify!(dfGCPZ)
5315         )
5316     );
5317 }
5318 extern "C" {
GDALInitGCPs(arg1: libc::c_int, arg2: *mut GDAL_GCP)5319     pub fn GDALInitGCPs(arg1: libc::c_int, arg2: *mut GDAL_GCP);
5320 }
5321 extern "C" {
GDALDeinitGCPs(arg1: libc::c_int, arg2: *mut GDAL_GCP)5322     pub fn GDALDeinitGCPs(arg1: libc::c_int, arg2: *mut GDAL_GCP);
5323 }
5324 extern "C" {
GDALDuplicateGCPs(arg1: libc::c_int, arg2: *const GDAL_GCP) -> *mut GDAL_GCP5325     pub fn GDALDuplicateGCPs(arg1: libc::c_int, arg2: *const GDAL_GCP) -> *mut GDAL_GCP;
5326 }
5327 extern "C" {
GDALGCPsToGeoTransform( nGCPCount: libc::c_int, pasGCPs: *const GDAL_GCP, padfGeoTransform: *mut f64, bApproxOK: libc::c_int, ) -> libc::c_int5328     pub fn GDALGCPsToGeoTransform(
5329         nGCPCount: libc::c_int,
5330         pasGCPs: *const GDAL_GCP,
5331         padfGeoTransform: *mut f64,
5332         bApproxOK: libc::c_int,
5333     ) -> libc::c_int;
5334 }
5335 extern "C" {
GDALInvGeoTransform( padfGeoTransformIn: *mut f64, padfInvGeoTransformOut: *mut f64, ) -> libc::c_int5336     pub fn GDALInvGeoTransform(
5337         padfGeoTransformIn: *mut f64,
5338         padfInvGeoTransformOut: *mut f64,
5339     ) -> libc::c_int;
5340 }
5341 extern "C" {
GDALApplyGeoTransform( arg1: *mut f64, arg2: f64, arg3: f64, arg4: *mut f64, arg5: *mut f64, )5342     pub fn GDALApplyGeoTransform(
5343         arg1: *mut f64,
5344         arg2: f64,
5345         arg3: f64,
5346         arg4: *mut f64,
5347         arg5: *mut f64,
5348     );
5349 }
5350 extern "C" {
GDALComposeGeoTransforms( padfGeoTransform1: *const f64, padfGeoTransform2: *const f64, padfGeoTransformOut: *mut f64, )5351     pub fn GDALComposeGeoTransforms(
5352         padfGeoTransform1: *const f64,
5353         padfGeoTransform2: *const f64,
5354         padfGeoTransformOut: *mut f64,
5355     );
5356 }
5357 extern "C" {
GDALGetMetadataDomainList(hObject: GDALMajorObjectH) -> *mut *mut libc::c_char5358     pub fn GDALGetMetadataDomainList(hObject: GDALMajorObjectH) -> *mut *mut libc::c_char;
5359 }
5360 extern "C" {
GDALGetMetadata( arg1: GDALMajorObjectH, arg2: *const libc::c_char, ) -> *mut *mut libc::c_char5361     pub fn GDALGetMetadata(
5362         arg1: GDALMajorObjectH,
5363         arg2: *const libc::c_char,
5364     ) -> *mut *mut libc::c_char;
5365 }
5366 extern "C" {
GDALSetMetadata( arg1: GDALMajorObjectH, arg2: *mut *mut libc::c_char, arg3: *const libc::c_char, ) -> CPLErr::Type5367     pub fn GDALSetMetadata(
5368         arg1: GDALMajorObjectH,
5369         arg2: *mut *mut libc::c_char,
5370         arg3: *const libc::c_char,
5371     ) -> CPLErr::Type;
5372 }
5373 extern "C" {
GDALGetMetadataItem( arg1: GDALMajorObjectH, arg2: *const libc::c_char, arg3: *const libc::c_char, ) -> *const libc::c_char5374     pub fn GDALGetMetadataItem(
5375         arg1: GDALMajorObjectH,
5376         arg2: *const libc::c_char,
5377         arg3: *const libc::c_char,
5378     ) -> *const libc::c_char;
5379 }
5380 extern "C" {
GDALSetMetadataItem( arg1: GDALMajorObjectH, arg2: *const libc::c_char, arg3: *const libc::c_char, arg4: *const libc::c_char, ) -> CPLErr::Type5381     pub fn GDALSetMetadataItem(
5382         arg1: GDALMajorObjectH,
5383         arg2: *const libc::c_char,
5384         arg3: *const libc::c_char,
5385         arg4: *const libc::c_char,
5386     ) -> CPLErr::Type;
5387 }
5388 extern "C" {
GDALGetDescription(arg1: GDALMajorObjectH) -> *const libc::c_char5389     pub fn GDALGetDescription(arg1: GDALMajorObjectH) -> *const libc::c_char;
5390 }
5391 extern "C" {
GDALSetDescription(arg1: GDALMajorObjectH, arg2: *const libc::c_char)5392     pub fn GDALSetDescription(arg1: GDALMajorObjectH, arg2: *const libc::c_char);
5393 }
5394 extern "C" {
GDALGetDatasetDriver(arg1: GDALDatasetH) -> GDALDriverH5395     pub fn GDALGetDatasetDriver(arg1: GDALDatasetH) -> GDALDriverH;
5396 }
5397 extern "C" {
GDALGetFileList(arg1: GDALDatasetH) -> *mut *mut libc::c_char5398     pub fn GDALGetFileList(arg1: GDALDatasetH) -> *mut *mut libc::c_char;
5399 }
5400 extern "C" {
GDALClose(arg1: GDALDatasetH)5401     pub fn GDALClose(arg1: GDALDatasetH);
5402 }
5403 extern "C" {
GDALGetRasterXSize(arg1: GDALDatasetH) -> libc::c_int5404     pub fn GDALGetRasterXSize(arg1: GDALDatasetH) -> libc::c_int;
5405 }
5406 extern "C" {
GDALGetRasterYSize(arg1: GDALDatasetH) -> libc::c_int5407     pub fn GDALGetRasterYSize(arg1: GDALDatasetH) -> libc::c_int;
5408 }
5409 extern "C" {
GDALGetRasterCount(arg1: GDALDatasetH) -> libc::c_int5410     pub fn GDALGetRasterCount(arg1: GDALDatasetH) -> libc::c_int;
5411 }
5412 extern "C" {
GDALGetRasterBand(arg1: GDALDatasetH, arg2: libc::c_int) -> GDALRasterBandH5413     pub fn GDALGetRasterBand(arg1: GDALDatasetH, arg2: libc::c_int) -> GDALRasterBandH;
5414 }
5415 extern "C" {
GDALAddBand( hDS: GDALDatasetH, eType: GDALDataType::Type, papszOptions: *mut *mut libc::c_char, ) -> CPLErr::Type5416     pub fn GDALAddBand(
5417         hDS: GDALDatasetH,
5418         eType: GDALDataType::Type,
5419         papszOptions: *mut *mut libc::c_char,
5420     ) -> CPLErr::Type;
5421 }
5422 extern "C" {
GDALBeginAsyncReader( hDS: GDALDatasetH, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, pBuf: *mut libc::c_void, nBufXSize: libc::c_int, nBufYSize: libc::c_int, eBufType: GDALDataType::Type, nBandCount: libc::c_int, panBandMap: *mut libc::c_int, nPixelSpace: libc::c_int, nLineSpace: libc::c_int, nBandSpace: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> GDALAsyncReaderH5423     pub fn GDALBeginAsyncReader(
5424         hDS: GDALDatasetH,
5425         nXOff: libc::c_int,
5426         nYOff: libc::c_int,
5427         nXSize: libc::c_int,
5428         nYSize: libc::c_int,
5429         pBuf: *mut libc::c_void,
5430         nBufXSize: libc::c_int,
5431         nBufYSize: libc::c_int,
5432         eBufType: GDALDataType::Type,
5433         nBandCount: libc::c_int,
5434         panBandMap: *mut libc::c_int,
5435         nPixelSpace: libc::c_int,
5436         nLineSpace: libc::c_int,
5437         nBandSpace: libc::c_int,
5438         papszOptions: *mut *mut libc::c_char,
5439     ) -> GDALAsyncReaderH;
5440 }
5441 extern "C" {
GDALEndAsyncReader(hDS: GDALDatasetH, hAsynchReaderH: GDALAsyncReaderH)5442     pub fn GDALEndAsyncReader(hDS: GDALDatasetH, hAsynchReaderH: GDALAsyncReaderH);
5443 }
5444 extern "C" {
GDALDatasetRasterIO( hDS: GDALDatasetH, eRWFlag: GDALRWFlag::Type, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, pBuffer: *mut libc::c_void, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, nBandCount: libc::c_int, panBandCount: *mut libc::c_int, nPixelSpace: libc::c_int, nLineSpace: libc::c_int, nBandSpace: libc::c_int, ) -> CPLErr::Type5445     pub fn GDALDatasetRasterIO(
5446         hDS: GDALDatasetH,
5447         eRWFlag: GDALRWFlag::Type,
5448         nDSXOff: libc::c_int,
5449         nDSYOff: libc::c_int,
5450         nDSXSize: libc::c_int,
5451         nDSYSize: libc::c_int,
5452         pBuffer: *mut libc::c_void,
5453         nBXSize: libc::c_int,
5454         nBYSize: libc::c_int,
5455         eBDataType: GDALDataType::Type,
5456         nBandCount: libc::c_int,
5457         panBandCount: *mut libc::c_int,
5458         nPixelSpace: libc::c_int,
5459         nLineSpace: libc::c_int,
5460         nBandSpace: libc::c_int,
5461     ) -> CPLErr::Type;
5462 }
5463 extern "C" {
GDALDatasetRasterIOEx( hDS: GDALDatasetH, eRWFlag: GDALRWFlag::Type, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, pBuffer: *mut libc::c_void, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, nBandCount: libc::c_int, panBandCount: *mut libc::c_int, nPixelSpace: GSpacing, nLineSpace: GSpacing, nBandSpace: GSpacing, psExtraArg: *mut GDALRasterIOExtraArg, ) -> CPLErr::Type5464     pub fn GDALDatasetRasterIOEx(
5465         hDS: GDALDatasetH,
5466         eRWFlag: GDALRWFlag::Type,
5467         nDSXOff: libc::c_int,
5468         nDSYOff: libc::c_int,
5469         nDSXSize: libc::c_int,
5470         nDSYSize: libc::c_int,
5471         pBuffer: *mut libc::c_void,
5472         nBXSize: libc::c_int,
5473         nBYSize: libc::c_int,
5474         eBDataType: GDALDataType::Type,
5475         nBandCount: libc::c_int,
5476         panBandCount: *mut libc::c_int,
5477         nPixelSpace: GSpacing,
5478         nLineSpace: GSpacing,
5479         nBandSpace: GSpacing,
5480         psExtraArg: *mut GDALRasterIOExtraArg,
5481     ) -> CPLErr::Type;
5482 }
5483 extern "C" {
GDALDatasetAdviseRead( hDS: GDALDatasetH, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, nBandCount: libc::c_int, panBandCount: *mut libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> CPLErr::Type5484     pub fn GDALDatasetAdviseRead(
5485         hDS: GDALDatasetH,
5486         nDSXOff: libc::c_int,
5487         nDSYOff: libc::c_int,
5488         nDSXSize: libc::c_int,
5489         nDSYSize: libc::c_int,
5490         nBXSize: libc::c_int,
5491         nBYSize: libc::c_int,
5492         eBDataType: GDALDataType::Type,
5493         nBandCount: libc::c_int,
5494         panBandCount: *mut libc::c_int,
5495         papszOptions: *mut *mut libc::c_char,
5496     ) -> CPLErr::Type;
5497 }
5498 extern "C" {
GDALGetProjectionRef(arg1: GDALDatasetH) -> *const libc::c_char5499     pub fn GDALGetProjectionRef(arg1: GDALDatasetH) -> *const libc::c_char;
5500 }
5501 extern "C" {
GDALSetProjection(arg1: GDALDatasetH, arg2: *const libc::c_char) -> CPLErr::Type5502     pub fn GDALSetProjection(arg1: GDALDatasetH, arg2: *const libc::c_char) -> CPLErr::Type;
5503 }
5504 extern "C" {
GDALGetGeoTransform(arg1: GDALDatasetH, arg2: *mut f64) -> CPLErr::Type5505     pub fn GDALGetGeoTransform(arg1: GDALDatasetH, arg2: *mut f64) -> CPLErr::Type;
5506 }
5507 extern "C" {
GDALSetGeoTransform(arg1: GDALDatasetH, arg2: *mut f64) -> CPLErr::Type5508     pub fn GDALSetGeoTransform(arg1: GDALDatasetH, arg2: *mut f64) -> CPLErr::Type;
5509 }
5510 extern "C" {
GDALGetGCPCount(arg1: GDALDatasetH) -> libc::c_int5511     pub fn GDALGetGCPCount(arg1: GDALDatasetH) -> libc::c_int;
5512 }
5513 extern "C" {
GDALGetGCPProjection(arg1: GDALDatasetH) -> *const libc::c_char5514     pub fn GDALGetGCPProjection(arg1: GDALDatasetH) -> *const libc::c_char;
5515 }
5516 extern "C" {
GDALGetGCPs(arg1: GDALDatasetH) -> *const GDAL_GCP5517     pub fn GDALGetGCPs(arg1: GDALDatasetH) -> *const GDAL_GCP;
5518 }
5519 extern "C" {
GDALSetGCPs( arg1: GDALDatasetH, arg2: libc::c_int, arg3: *const GDAL_GCP, arg4: *const libc::c_char, ) -> CPLErr::Type5520     pub fn GDALSetGCPs(
5521         arg1: GDALDatasetH,
5522         arg2: libc::c_int,
5523         arg3: *const GDAL_GCP,
5524         arg4: *const libc::c_char,
5525     ) -> CPLErr::Type;
5526 }
5527 extern "C" {
GDALGetInternalHandle( arg1: GDALDatasetH, arg2: *const libc::c_char, ) -> *mut libc::c_void5528     pub fn GDALGetInternalHandle(
5529         arg1: GDALDatasetH,
5530         arg2: *const libc::c_char,
5531     ) -> *mut libc::c_void;
5532 }
5533 extern "C" {
GDALReferenceDataset(arg1: GDALDatasetH) -> libc::c_int5534     pub fn GDALReferenceDataset(arg1: GDALDatasetH) -> libc::c_int;
5535 }
5536 extern "C" {
GDALDereferenceDataset(arg1: GDALDatasetH) -> libc::c_int5537     pub fn GDALDereferenceDataset(arg1: GDALDatasetH) -> libc::c_int;
5538 }
5539 extern "C" {
GDALBuildOverviews( arg1: GDALDatasetH, arg2: *const libc::c_char, arg3: libc::c_int, arg4: *mut libc::c_int, arg5: libc::c_int, arg6: *mut libc::c_int, arg7: GDALProgressFunc, arg8: *mut libc::c_void, ) -> CPLErr::Type5540     pub fn GDALBuildOverviews(
5541         arg1: GDALDatasetH,
5542         arg2: *const libc::c_char,
5543         arg3: libc::c_int,
5544         arg4: *mut libc::c_int,
5545         arg5: libc::c_int,
5546         arg6: *mut libc::c_int,
5547         arg7: GDALProgressFunc,
5548         arg8: *mut libc::c_void,
5549     ) -> CPLErr::Type;
5550 }
5551 extern "C" {
GDALGetOpenDatasets(hDS: *mut *mut GDALDatasetH, pnCount: *mut libc::c_int)5552     pub fn GDALGetOpenDatasets(hDS: *mut *mut GDALDatasetH, pnCount: *mut libc::c_int);
5553 }
5554 extern "C" {
GDALGetAccess(hDS: GDALDatasetH) -> libc::c_int5555     pub fn GDALGetAccess(hDS: GDALDatasetH) -> libc::c_int;
5556 }
5557 extern "C" {
GDALFlushCache(hDS: GDALDatasetH)5558     pub fn GDALFlushCache(hDS: GDALDatasetH);
5559 }
5560 extern "C" {
GDALCreateDatasetMaskBand(hDS: GDALDatasetH, nFlags: libc::c_int) -> CPLErr::Type5561     pub fn GDALCreateDatasetMaskBand(hDS: GDALDatasetH, nFlags: libc::c_int) -> CPLErr::Type;
5562 }
5563 extern "C" {
GDALDatasetCopyWholeRaster( hSrcDS: GDALDatasetH, hDstDS: GDALDatasetH, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5564     pub fn GDALDatasetCopyWholeRaster(
5565         hSrcDS: GDALDatasetH,
5566         hDstDS: GDALDatasetH,
5567         papszOptions: *mut *mut libc::c_char,
5568         pfnProgress: GDALProgressFunc,
5569         pProgressData: *mut libc::c_void,
5570     ) -> CPLErr::Type;
5571 }
5572 extern "C" {
GDALRasterBandCopyWholeRaster( hSrcBand: GDALRasterBandH, hDstBand: GDALRasterBandH, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5573     pub fn GDALRasterBandCopyWholeRaster(
5574         hSrcBand: GDALRasterBandH,
5575         hDstBand: GDALRasterBandH,
5576         papszOptions: *mut *mut libc::c_char,
5577         pfnProgress: GDALProgressFunc,
5578         pProgressData: *mut libc::c_void,
5579     ) -> CPLErr::Type;
5580 }
5581 extern "C" {
GDALRegenerateOverviews( hSrcBand: GDALRasterBandH, nOverviewCount: libc::c_int, pahOverviewBands: *mut GDALRasterBandH, pszResampling: *const libc::c_char, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5582     pub fn GDALRegenerateOverviews(
5583         hSrcBand: GDALRasterBandH,
5584         nOverviewCount: libc::c_int,
5585         pahOverviewBands: *mut GDALRasterBandH,
5586         pszResampling: *const libc::c_char,
5587         pfnProgress: GDALProgressFunc,
5588         pProgressData: *mut libc::c_void,
5589     ) -> CPLErr::Type;
5590 }
5591 extern "C" {
GDALDatasetGetLayerCount(arg1: GDALDatasetH) -> libc::c_int5592     pub fn GDALDatasetGetLayerCount(arg1: GDALDatasetH) -> libc::c_int;
5593 }
5594 extern "C" {
GDALDatasetGetLayer(arg1: GDALDatasetH, arg2: libc::c_int) -> OGRLayerH5595     pub fn GDALDatasetGetLayer(arg1: GDALDatasetH, arg2: libc::c_int) -> OGRLayerH;
5596 }
5597 extern "C" {
GDALDatasetGetLayerByName(arg1: GDALDatasetH, arg2: *const libc::c_char) -> OGRLayerH5598     pub fn GDALDatasetGetLayerByName(arg1: GDALDatasetH, arg2: *const libc::c_char) -> OGRLayerH;
5599 }
5600 extern "C" {
GDALDatasetDeleteLayer(arg1: GDALDatasetH, arg2: libc::c_int) -> OGRErr::Type5601     pub fn GDALDatasetDeleteLayer(arg1: GDALDatasetH, arg2: libc::c_int) -> OGRErr::Type;
5602 }
5603 extern "C" {
GDALDatasetCreateLayer( arg1: GDALDatasetH, arg2: *const libc::c_char, arg3: OGRSpatialReferenceH, arg4: OGRwkbGeometryType::Type, arg5: *mut *mut libc::c_char, ) -> OGRLayerH5604     pub fn GDALDatasetCreateLayer(
5605         arg1: GDALDatasetH,
5606         arg2: *const libc::c_char,
5607         arg3: OGRSpatialReferenceH,
5608         arg4: OGRwkbGeometryType::Type,
5609         arg5: *mut *mut libc::c_char,
5610     ) -> OGRLayerH;
5611 }
5612 extern "C" {
GDALDatasetCopyLayer( arg1: GDALDatasetH, arg2: OGRLayerH, arg3: *const libc::c_char, arg4: *mut *mut libc::c_char, ) -> OGRLayerH5613     pub fn GDALDatasetCopyLayer(
5614         arg1: GDALDatasetH,
5615         arg2: OGRLayerH,
5616         arg3: *const libc::c_char,
5617         arg4: *mut *mut libc::c_char,
5618     ) -> OGRLayerH;
5619 }
5620 extern "C" {
GDALDatasetTestCapability(arg1: GDALDatasetH, arg2: *const libc::c_char) -> libc::c_int5621     pub fn GDALDatasetTestCapability(arg1: GDALDatasetH, arg2: *const libc::c_char) -> libc::c_int;
5622 }
5623 extern "C" {
GDALDatasetExecuteSQL( arg1: GDALDatasetH, arg2: *const libc::c_char, arg3: OGRGeometryH, arg4: *const libc::c_char, ) -> OGRLayerH5624     pub fn GDALDatasetExecuteSQL(
5625         arg1: GDALDatasetH,
5626         arg2: *const libc::c_char,
5627         arg3: OGRGeometryH,
5628         arg4: *const libc::c_char,
5629     ) -> OGRLayerH;
5630 }
5631 extern "C" {
GDALDatasetReleaseResultSet(arg1: GDALDatasetH, arg2: OGRLayerH)5632     pub fn GDALDatasetReleaseResultSet(arg1: GDALDatasetH, arg2: OGRLayerH);
5633 }
5634 extern "C" {
GDALDatasetGetStyleTable(arg1: GDALDatasetH) -> OGRStyleTableH5635     pub fn GDALDatasetGetStyleTable(arg1: GDALDatasetH) -> OGRStyleTableH;
5636 }
5637 extern "C" {
GDALDatasetSetStyleTableDirectly(arg1: GDALDatasetH, arg2: OGRStyleTableH)5638     pub fn GDALDatasetSetStyleTableDirectly(arg1: GDALDatasetH, arg2: OGRStyleTableH);
5639 }
5640 extern "C" {
GDALDatasetSetStyleTable(arg1: GDALDatasetH, arg2: OGRStyleTableH)5641     pub fn GDALDatasetSetStyleTable(arg1: GDALDatasetH, arg2: OGRStyleTableH);
5642 }
5643 extern "C" {
GDALDatasetStartTransaction(hDS: GDALDatasetH, bForce: libc::c_int) -> OGRErr::Type5644     pub fn GDALDatasetStartTransaction(hDS: GDALDatasetH, bForce: libc::c_int) -> OGRErr::Type;
5645 }
5646 extern "C" {
GDALDatasetCommitTransaction(hDS: GDALDatasetH) -> OGRErr::Type5647     pub fn GDALDatasetCommitTransaction(hDS: GDALDatasetH) -> OGRErr::Type;
5648 }
5649 extern "C" {
GDALDatasetRollbackTransaction(hDS: GDALDatasetH) -> OGRErr::Type5650     pub fn GDALDatasetRollbackTransaction(hDS: GDALDatasetH) -> OGRErr::Type;
5651 }
5652 pub type GDALDerivedPixelFunc = ::std::option::Option<
5653     unsafe extern "C" fn(
5654         papoSources: *mut *mut libc::c_void,
5655         nSources: libc::c_int,
5656         pData: *mut libc::c_void,
5657         nBufXSize: libc::c_int,
5658         nBufYSize: libc::c_int,
5659         eSrcType: GDALDataType::Type,
5660         eBufType: GDALDataType::Type,
5661         nPixelSpace: libc::c_int,
5662         nLineSpace: libc::c_int,
5663     ) -> CPLErr::Type,
5664 >;
5665 extern "C" {
GDALGetRasterDataType(arg1: GDALRasterBandH) -> GDALDataType::Type5666     pub fn GDALGetRasterDataType(arg1: GDALRasterBandH) -> GDALDataType::Type;
5667 }
5668 extern "C" {
GDALGetBlockSize( arg1: GDALRasterBandH, pnXSize: *mut libc::c_int, pnYSize: *mut libc::c_int, )5669     pub fn GDALGetBlockSize(
5670         arg1: GDALRasterBandH,
5671         pnXSize: *mut libc::c_int,
5672         pnYSize: *mut libc::c_int,
5673     );
5674 }
5675 extern "C" {
GDALRasterAdviseRead( hRB: GDALRasterBandH, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, papszOptions: *mut *mut libc::c_char, ) -> CPLErr::Type5676     pub fn GDALRasterAdviseRead(
5677         hRB: GDALRasterBandH,
5678         nDSXOff: libc::c_int,
5679         nDSYOff: libc::c_int,
5680         nDSXSize: libc::c_int,
5681         nDSYSize: libc::c_int,
5682         nBXSize: libc::c_int,
5683         nBYSize: libc::c_int,
5684         eBDataType: GDALDataType::Type,
5685         papszOptions: *mut *mut libc::c_char,
5686     ) -> CPLErr::Type;
5687 }
5688 extern "C" {
GDALRasterIO( hRBand: GDALRasterBandH, eRWFlag: GDALRWFlag::Type, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, pBuffer: *mut libc::c_void, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, nPixelSpace: libc::c_int, nLineSpace: libc::c_int, ) -> CPLErr::Type5689     pub fn GDALRasterIO(
5690         hRBand: GDALRasterBandH,
5691         eRWFlag: GDALRWFlag::Type,
5692         nDSXOff: libc::c_int,
5693         nDSYOff: libc::c_int,
5694         nDSXSize: libc::c_int,
5695         nDSYSize: libc::c_int,
5696         pBuffer: *mut libc::c_void,
5697         nBXSize: libc::c_int,
5698         nBYSize: libc::c_int,
5699         eBDataType: GDALDataType::Type,
5700         nPixelSpace: libc::c_int,
5701         nLineSpace: libc::c_int,
5702     ) -> CPLErr::Type;
5703 }
5704 extern "C" {
GDALRasterIOEx( hRBand: GDALRasterBandH, eRWFlag: GDALRWFlag::Type, nDSXOff: libc::c_int, nDSYOff: libc::c_int, nDSXSize: libc::c_int, nDSYSize: libc::c_int, pBuffer: *mut libc::c_void, nBXSize: libc::c_int, nBYSize: libc::c_int, eBDataType: GDALDataType::Type, nPixelSpace: GSpacing, nLineSpace: GSpacing, psExtraArg: *mut GDALRasterIOExtraArg, ) -> CPLErr::Type5705     pub fn GDALRasterIOEx(
5706         hRBand: GDALRasterBandH,
5707         eRWFlag: GDALRWFlag::Type,
5708         nDSXOff: libc::c_int,
5709         nDSYOff: libc::c_int,
5710         nDSXSize: libc::c_int,
5711         nDSYSize: libc::c_int,
5712         pBuffer: *mut libc::c_void,
5713         nBXSize: libc::c_int,
5714         nBYSize: libc::c_int,
5715         eBDataType: GDALDataType::Type,
5716         nPixelSpace: GSpacing,
5717         nLineSpace: GSpacing,
5718         psExtraArg: *mut GDALRasterIOExtraArg,
5719     ) -> CPLErr::Type;
5720 }
5721 extern "C" {
GDALReadBlock( arg1: GDALRasterBandH, arg2: libc::c_int, arg3: libc::c_int, arg4: *mut libc::c_void, ) -> CPLErr::Type5722     pub fn GDALReadBlock(
5723         arg1: GDALRasterBandH,
5724         arg2: libc::c_int,
5725         arg3: libc::c_int,
5726         arg4: *mut libc::c_void,
5727     ) -> CPLErr::Type;
5728 }
5729 extern "C" {
GDALWriteBlock( arg1: GDALRasterBandH, arg2: libc::c_int, arg3: libc::c_int, arg4: *mut libc::c_void, ) -> CPLErr::Type5730     pub fn GDALWriteBlock(
5731         arg1: GDALRasterBandH,
5732         arg2: libc::c_int,
5733         arg3: libc::c_int,
5734         arg4: *mut libc::c_void,
5735     ) -> CPLErr::Type;
5736 }
5737 extern "C" {
GDALGetRasterBandXSize(arg1: GDALRasterBandH) -> libc::c_int5738     pub fn GDALGetRasterBandXSize(arg1: GDALRasterBandH) -> libc::c_int;
5739 }
5740 extern "C" {
GDALGetRasterBandYSize(arg1: GDALRasterBandH) -> libc::c_int5741     pub fn GDALGetRasterBandYSize(arg1: GDALRasterBandH) -> libc::c_int;
5742 }
5743 extern "C" {
GDALGetRasterAccess(arg1: GDALRasterBandH) -> GDALAccess::Type5744     pub fn GDALGetRasterAccess(arg1: GDALRasterBandH) -> GDALAccess::Type;
5745 }
5746 extern "C" {
GDALGetBandNumber(arg1: GDALRasterBandH) -> libc::c_int5747     pub fn GDALGetBandNumber(arg1: GDALRasterBandH) -> libc::c_int;
5748 }
5749 extern "C" {
GDALGetBandDataset(arg1: GDALRasterBandH) -> GDALDatasetH5750     pub fn GDALGetBandDataset(arg1: GDALRasterBandH) -> GDALDatasetH;
5751 }
5752 extern "C" {
GDALGetRasterColorInterpretation(arg1: GDALRasterBandH) -> GDALColorInterp::Type5753     pub fn GDALGetRasterColorInterpretation(arg1: GDALRasterBandH) -> GDALColorInterp::Type;
5754 }
5755 extern "C" {
GDALSetRasterColorInterpretation( arg1: GDALRasterBandH, arg2: GDALColorInterp::Type, ) -> CPLErr::Type5756     pub fn GDALSetRasterColorInterpretation(
5757         arg1: GDALRasterBandH,
5758         arg2: GDALColorInterp::Type,
5759     ) -> CPLErr::Type;
5760 }
5761 extern "C" {
GDALGetRasterColorTable(arg1: GDALRasterBandH) -> GDALColorTableH5762     pub fn GDALGetRasterColorTable(arg1: GDALRasterBandH) -> GDALColorTableH;
5763 }
5764 extern "C" {
GDALSetRasterColorTable(arg1: GDALRasterBandH, arg2: GDALColorTableH) -> CPLErr::Type5765     pub fn GDALSetRasterColorTable(arg1: GDALRasterBandH, arg2: GDALColorTableH) -> CPLErr::Type;
5766 }
5767 extern "C" {
GDALHasArbitraryOverviews(arg1: GDALRasterBandH) -> libc::c_int5768     pub fn GDALHasArbitraryOverviews(arg1: GDALRasterBandH) -> libc::c_int;
5769 }
5770 extern "C" {
GDALGetOverviewCount(arg1: GDALRasterBandH) -> libc::c_int5771     pub fn GDALGetOverviewCount(arg1: GDALRasterBandH) -> libc::c_int;
5772 }
5773 extern "C" {
GDALGetOverview(arg1: GDALRasterBandH, arg2: libc::c_int) -> GDALRasterBandH5774     pub fn GDALGetOverview(arg1: GDALRasterBandH, arg2: libc::c_int) -> GDALRasterBandH;
5775 }
5776 extern "C" {
GDALGetRasterNoDataValue(arg1: GDALRasterBandH, arg2: *mut libc::c_int) -> f645777     pub fn GDALGetRasterNoDataValue(arg1: GDALRasterBandH, arg2: *mut libc::c_int) -> f64;
5778 }
5779 extern "C" {
GDALSetRasterNoDataValue(arg1: GDALRasterBandH, arg2: f64) -> CPLErr::Type5780     pub fn GDALSetRasterNoDataValue(arg1: GDALRasterBandH, arg2: f64) -> CPLErr::Type;
5781 }
5782 extern "C" {
GDALDeleteRasterNoDataValue(arg1: GDALRasterBandH) -> CPLErr::Type5783     pub fn GDALDeleteRasterNoDataValue(arg1: GDALRasterBandH) -> CPLErr::Type;
5784 }
5785 extern "C" {
GDALGetRasterCategoryNames(arg1: GDALRasterBandH) -> *mut *mut libc::c_char5786     pub fn GDALGetRasterCategoryNames(arg1: GDALRasterBandH) -> *mut *mut libc::c_char;
5787 }
5788 extern "C" {
GDALSetRasterCategoryNames( arg1: GDALRasterBandH, arg2: *mut *mut libc::c_char, ) -> CPLErr::Type5789     pub fn GDALSetRasterCategoryNames(
5790         arg1: GDALRasterBandH,
5791         arg2: *mut *mut libc::c_char,
5792     ) -> CPLErr::Type;
5793 }
5794 extern "C" {
GDALGetRasterMinimum(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f645795     pub fn GDALGetRasterMinimum(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f64;
5796 }
5797 extern "C" {
GDALGetRasterMaximum(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f645798     pub fn GDALGetRasterMaximum(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f64;
5799 }
5800 extern "C" {
GDALGetRasterStatistics( arg1: GDALRasterBandH, bApproxOK: libc::c_int, bForce: libc::c_int, pdfMin: *mut f64, pdfMax: *mut f64, pdfMean: *mut f64, pdfStdDev: *mut f64, ) -> CPLErr::Type5801     pub fn GDALGetRasterStatistics(
5802         arg1: GDALRasterBandH,
5803         bApproxOK: libc::c_int,
5804         bForce: libc::c_int,
5805         pdfMin: *mut f64,
5806         pdfMax: *mut f64,
5807         pdfMean: *mut f64,
5808         pdfStdDev: *mut f64,
5809     ) -> CPLErr::Type;
5810 }
5811 extern "C" {
GDALComputeRasterStatistics( arg1: GDALRasterBandH, bApproxOK: libc::c_int, pdfMin: *mut f64, pdfMax: *mut f64, pdfMean: *mut f64, pdfStdDev: *mut f64, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5812     pub fn GDALComputeRasterStatistics(
5813         arg1: GDALRasterBandH,
5814         bApproxOK: libc::c_int,
5815         pdfMin: *mut f64,
5816         pdfMax: *mut f64,
5817         pdfMean: *mut f64,
5818         pdfStdDev: *mut f64,
5819         pfnProgress: GDALProgressFunc,
5820         pProgressData: *mut libc::c_void,
5821     ) -> CPLErr::Type;
5822 }
5823 extern "C" {
GDALSetRasterStatistics( hBand: GDALRasterBandH, dfMin: f64, dfMax: f64, dfMean: f64, dfStdDev: f64, ) -> CPLErr::Type5824     pub fn GDALSetRasterStatistics(
5825         hBand: GDALRasterBandH,
5826         dfMin: f64,
5827         dfMax: f64,
5828         dfMean: f64,
5829         dfStdDev: f64,
5830     ) -> CPLErr::Type;
5831 }
5832 extern "C" {
GDALGetRasterUnitType(arg1: GDALRasterBandH) -> *const libc::c_char5833     pub fn GDALGetRasterUnitType(arg1: GDALRasterBandH) -> *const libc::c_char;
5834 }
5835 extern "C" {
GDALSetRasterUnitType( hBand: GDALRasterBandH, pszNewValue: *const libc::c_char, ) -> CPLErr::Type5836     pub fn GDALSetRasterUnitType(
5837         hBand: GDALRasterBandH,
5838         pszNewValue: *const libc::c_char,
5839     ) -> CPLErr::Type;
5840 }
5841 extern "C" {
GDALGetRasterOffset(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f645842     pub fn GDALGetRasterOffset(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f64;
5843 }
5844 extern "C" {
GDALSetRasterOffset(hBand: GDALRasterBandH, dfNewOffset: f64) -> CPLErr::Type5845     pub fn GDALSetRasterOffset(hBand: GDALRasterBandH, dfNewOffset: f64) -> CPLErr::Type;
5846 }
5847 extern "C" {
GDALGetRasterScale(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f645848     pub fn GDALGetRasterScale(arg1: GDALRasterBandH, pbSuccess: *mut libc::c_int) -> f64;
5849 }
5850 extern "C" {
GDALSetRasterScale(hBand: GDALRasterBandH, dfNewOffset: f64) -> CPLErr::Type5851     pub fn GDALSetRasterScale(hBand: GDALRasterBandH, dfNewOffset: f64) -> CPLErr::Type;
5852 }
5853 extern "C" {
GDALComputeRasterMinMax( hBand: GDALRasterBandH, bApproxOK: libc::c_int, adfMinMax: *mut f64, )5854     pub fn GDALComputeRasterMinMax(
5855         hBand: GDALRasterBandH,
5856         bApproxOK: libc::c_int,
5857         adfMinMax: *mut f64,
5858     );
5859 }
5860 extern "C" {
GDALFlushRasterCache(hBand: GDALRasterBandH) -> CPLErr::Type5861     pub fn GDALFlushRasterCache(hBand: GDALRasterBandH) -> CPLErr::Type;
5862 }
5863 extern "C" {
GDALGetRasterHistogram( hBand: GDALRasterBandH, dfMin: f64, dfMax: f64, nBuckets: libc::c_int, panHistogram: *mut libc::c_int, bIncludeOutOfRange: libc::c_int, bApproxOK: libc::c_int, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5864     pub fn GDALGetRasterHistogram(
5865         hBand: GDALRasterBandH,
5866         dfMin: f64,
5867         dfMax: f64,
5868         nBuckets: libc::c_int,
5869         panHistogram: *mut libc::c_int,
5870         bIncludeOutOfRange: libc::c_int,
5871         bApproxOK: libc::c_int,
5872         pfnProgress: GDALProgressFunc,
5873         pProgressData: *mut libc::c_void,
5874     ) -> CPLErr::Type;
5875 }
5876 extern "C" {
GDALGetRasterHistogramEx( hBand: GDALRasterBandH, dfMin: f64, dfMax: f64, nBuckets: libc::c_int, panHistogram: *mut GUIntBig, bIncludeOutOfRange: libc::c_int, bApproxOK: libc::c_int, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5877     pub fn GDALGetRasterHistogramEx(
5878         hBand: GDALRasterBandH,
5879         dfMin: f64,
5880         dfMax: f64,
5881         nBuckets: libc::c_int,
5882         panHistogram: *mut GUIntBig,
5883         bIncludeOutOfRange: libc::c_int,
5884         bApproxOK: libc::c_int,
5885         pfnProgress: GDALProgressFunc,
5886         pProgressData: *mut libc::c_void,
5887     ) -> CPLErr::Type;
5888 }
5889 extern "C" {
GDALGetDefaultHistogram( hBand: GDALRasterBandH, pdfMin: *mut f64, pdfMax: *mut f64, pnBuckets: *mut libc::c_int, ppanHistogram: *mut *mut libc::c_int, bForce: libc::c_int, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5890     pub fn GDALGetDefaultHistogram(
5891         hBand: GDALRasterBandH,
5892         pdfMin: *mut f64,
5893         pdfMax: *mut f64,
5894         pnBuckets: *mut libc::c_int,
5895         ppanHistogram: *mut *mut libc::c_int,
5896         bForce: libc::c_int,
5897         pfnProgress: GDALProgressFunc,
5898         pProgressData: *mut libc::c_void,
5899     ) -> CPLErr::Type;
5900 }
5901 extern "C" {
GDALGetDefaultHistogramEx( hBand: GDALRasterBandH, pdfMin: *mut f64, pdfMax: *mut f64, pnBuckets: *mut libc::c_int, ppanHistogram: *mut *mut GUIntBig, bForce: libc::c_int, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5902     pub fn GDALGetDefaultHistogramEx(
5903         hBand: GDALRasterBandH,
5904         pdfMin: *mut f64,
5905         pdfMax: *mut f64,
5906         pnBuckets: *mut libc::c_int,
5907         ppanHistogram: *mut *mut GUIntBig,
5908         bForce: libc::c_int,
5909         pfnProgress: GDALProgressFunc,
5910         pProgressData: *mut libc::c_void,
5911     ) -> CPLErr::Type;
5912 }
5913 extern "C" {
GDALSetDefaultHistogram( hBand: GDALRasterBandH, dfMin: f64, dfMax: f64, nBuckets: libc::c_int, panHistogram: *mut libc::c_int, ) -> CPLErr::Type5914     pub fn GDALSetDefaultHistogram(
5915         hBand: GDALRasterBandH,
5916         dfMin: f64,
5917         dfMax: f64,
5918         nBuckets: libc::c_int,
5919         panHistogram: *mut libc::c_int,
5920     ) -> CPLErr::Type;
5921 }
5922 extern "C" {
GDALSetDefaultHistogramEx( hBand: GDALRasterBandH, dfMin: f64, dfMax: f64, nBuckets: libc::c_int, panHistogram: *mut GUIntBig, ) -> CPLErr::Type5923     pub fn GDALSetDefaultHistogramEx(
5924         hBand: GDALRasterBandH,
5925         dfMin: f64,
5926         dfMax: f64,
5927         nBuckets: libc::c_int,
5928         panHistogram: *mut GUIntBig,
5929     ) -> CPLErr::Type;
5930 }
5931 extern "C" {
GDALGetRandomRasterSample( arg1: GDALRasterBandH, arg2: libc::c_int, arg3: *mut f32, ) -> libc::c_int5932     pub fn GDALGetRandomRasterSample(
5933         arg1: GDALRasterBandH,
5934         arg2: libc::c_int,
5935         arg3: *mut f32,
5936     ) -> libc::c_int;
5937 }
5938 extern "C" {
GDALGetRasterSampleOverview(arg1: GDALRasterBandH, arg2: libc::c_int) -> GDALRasterBandH5939     pub fn GDALGetRasterSampleOverview(arg1: GDALRasterBandH, arg2: libc::c_int)
5940         -> GDALRasterBandH;
5941 }
5942 extern "C" {
GDALGetRasterSampleOverviewEx(arg1: GDALRasterBandH, arg2: GUIntBig) -> GDALRasterBandH5943     pub fn GDALGetRasterSampleOverviewEx(arg1: GDALRasterBandH, arg2: GUIntBig) -> GDALRasterBandH;
5944 }
5945 extern "C" {
GDALFillRaster( hBand: GDALRasterBandH, dfRealValue: f64, dfImaginaryValue: f64, ) -> CPLErr::Type5946     pub fn GDALFillRaster(
5947         hBand: GDALRasterBandH,
5948         dfRealValue: f64,
5949         dfImaginaryValue: f64,
5950     ) -> CPLErr::Type;
5951 }
5952 extern "C" {
GDALComputeBandStats( hBand: GDALRasterBandH, nSampleStep: libc::c_int, pdfMean: *mut f64, pdfStdDev: *mut f64, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5953     pub fn GDALComputeBandStats(
5954         hBand: GDALRasterBandH,
5955         nSampleStep: libc::c_int,
5956         pdfMean: *mut f64,
5957         pdfStdDev: *mut f64,
5958         pfnProgress: GDALProgressFunc,
5959         pProgressData: *mut libc::c_void,
5960     ) -> CPLErr::Type;
5961 }
5962 extern "C" {
GDALOverviewMagnitudeCorrection( hBaseBand: GDALRasterBandH, nOverviewCount: libc::c_int, pahOverviews: *mut GDALRasterBandH, pfnProgress: GDALProgressFunc, pProgressData: *mut libc::c_void, ) -> CPLErr::Type5963     pub fn GDALOverviewMagnitudeCorrection(
5964         hBaseBand: GDALRasterBandH,
5965         nOverviewCount: libc::c_int,
5966         pahOverviews: *mut GDALRasterBandH,
5967         pfnProgress: GDALProgressFunc,
5968         pProgressData: *mut libc::c_void,
5969     ) -> CPLErr::Type;
5970 }
5971 extern "C" {
GDALGetDefaultRAT(hBand: GDALRasterBandH) -> GDALRasterAttributeTableH5972     pub fn GDALGetDefaultRAT(hBand: GDALRasterBandH) -> GDALRasterAttributeTableH;
5973 }
5974 extern "C" {
GDALSetDefaultRAT( arg1: GDALRasterBandH, arg2: GDALRasterAttributeTableH, ) -> CPLErr::Type5975     pub fn GDALSetDefaultRAT(
5976         arg1: GDALRasterBandH,
5977         arg2: GDALRasterAttributeTableH,
5978     ) -> CPLErr::Type;
5979 }
5980 extern "C" {
GDALAddDerivedBandPixelFunc( pszName: *const libc::c_char, pfnPixelFunc: GDALDerivedPixelFunc, ) -> CPLErr::Type5981     pub fn GDALAddDerivedBandPixelFunc(
5982         pszName: *const libc::c_char,
5983         pfnPixelFunc: GDALDerivedPixelFunc,
5984     ) -> CPLErr::Type;
5985 }
5986 extern "C" {
GDALGetMaskBand(hBand: GDALRasterBandH) -> GDALRasterBandH5987     pub fn GDALGetMaskBand(hBand: GDALRasterBandH) -> GDALRasterBandH;
5988 }
5989 extern "C" {
GDALGetMaskFlags(hBand: GDALRasterBandH) -> libc::c_int5990     pub fn GDALGetMaskFlags(hBand: GDALRasterBandH) -> libc::c_int;
5991 }
5992 extern "C" {
GDALCreateMaskBand(hBand: GDALRasterBandH, nFlags: libc::c_int) -> CPLErr::Type5993     pub fn GDALCreateMaskBand(hBand: GDALRasterBandH, nFlags: libc::c_int) -> CPLErr::Type;
5994 }
5995 extern "C" {
GDALARGetNextUpdatedRegion( hARIO: GDALAsyncReaderH, dfTimeout: f64, pnXBufOff: *mut libc::c_int, pnYBufOff: *mut libc::c_int, pnXBufSize: *mut libc::c_int, pnYBufSize: *mut libc::c_int, ) -> GDALAsyncStatusType::Type5996     pub fn GDALARGetNextUpdatedRegion(
5997         hARIO: GDALAsyncReaderH,
5998         dfTimeout: f64,
5999         pnXBufOff: *mut libc::c_int,
6000         pnYBufOff: *mut libc::c_int,
6001         pnXBufSize: *mut libc::c_int,
6002         pnYBufSize: *mut libc::c_int,
6003     ) -> GDALAsyncStatusType::Type;
6004 }
6005 extern "C" {
GDALARLockBuffer(hARIO: GDALAsyncReaderH, dfTimeout: f64) -> libc::c_int6006     pub fn GDALARLockBuffer(hARIO: GDALAsyncReaderH, dfTimeout: f64) -> libc::c_int;
6007 }
6008 extern "C" {
GDALARUnlockBuffer(hARIO: GDALAsyncReaderH)6009     pub fn GDALARUnlockBuffer(hARIO: GDALAsyncReaderH);
6010 }
6011 extern "C" {
GDALGeneralCmdLineProcessor( nArgc: libc::c_int, ppapszArgv: *mut *mut *mut libc::c_char, nOptions: libc::c_int, ) -> libc::c_int6012     pub fn GDALGeneralCmdLineProcessor(
6013         nArgc: libc::c_int,
6014         ppapszArgv: *mut *mut *mut libc::c_char,
6015         nOptions: libc::c_int,
6016     ) -> libc::c_int;
6017 }
6018 extern "C" {
GDALSwapWords( pData: *mut libc::c_void, nWordSize: libc::c_int, nWordCount: libc::c_int, nWordSkip: libc::c_int, )6019     pub fn GDALSwapWords(
6020         pData: *mut libc::c_void,
6021         nWordSize: libc::c_int,
6022         nWordCount: libc::c_int,
6023         nWordSkip: libc::c_int,
6024     );
6025 }
6026 extern "C" {
GDALSwapWordsEx( pData: *mut libc::c_void, nWordSize: libc::c_int, nWordCount: usize, nWordSkip: libc::c_int, )6027     pub fn GDALSwapWordsEx(
6028         pData: *mut libc::c_void,
6029         nWordSize: libc::c_int,
6030         nWordCount: usize,
6031         nWordSkip: libc::c_int,
6032     );
6033 }
6034 extern "C" {
GDALCopyWords( pSrcData: *const libc::c_void, eSrcType: GDALDataType::Type, nSrcPixelOffset: libc::c_int, pDstData: *mut libc::c_void, eDstType: GDALDataType::Type, nDstPixelOffset: libc::c_int, nWordCount: libc::c_int, )6035     pub fn GDALCopyWords(
6036         pSrcData: *const libc::c_void,
6037         eSrcType: GDALDataType::Type,
6038         nSrcPixelOffset: libc::c_int,
6039         pDstData: *mut libc::c_void,
6040         eDstType: GDALDataType::Type,
6041         nDstPixelOffset: libc::c_int,
6042         nWordCount: libc::c_int,
6043     );
6044 }
6045 extern "C" {
GDALCopyBits( pabySrcData: *const GByte, nSrcOffset: libc::c_int, nSrcStep: libc::c_int, pabyDstData: *mut GByte, nDstOffset: libc::c_int, nDstStep: libc::c_int, nBitCount: libc::c_int, nStepCount: libc::c_int, )6046     pub fn GDALCopyBits(
6047         pabySrcData: *const GByte,
6048         nSrcOffset: libc::c_int,
6049         nSrcStep: libc::c_int,
6050         pabyDstData: *mut GByte,
6051         nDstOffset: libc::c_int,
6052         nDstStep: libc::c_int,
6053         nBitCount: libc::c_int,
6054         nStepCount: libc::c_int,
6055     );
6056 }
6057 extern "C" {
GDALLoadWorldFile(arg1: *const libc::c_char, arg2: *mut f64) -> libc::c_int6058     pub fn GDALLoadWorldFile(arg1: *const libc::c_char, arg2: *mut f64) -> libc::c_int;
6059 }
6060 extern "C" {
GDALReadWorldFile( arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: *mut f64, ) -> libc::c_int6061     pub fn GDALReadWorldFile(
6062         arg1: *const libc::c_char,
6063         arg2: *const libc::c_char,
6064         arg3: *mut f64,
6065     ) -> libc::c_int;
6066 }
6067 extern "C" {
GDALWriteWorldFile( arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: *mut f64, ) -> libc::c_int6068     pub fn GDALWriteWorldFile(
6069         arg1: *const libc::c_char,
6070         arg2: *const libc::c_char,
6071         arg3: *mut f64,
6072     ) -> libc::c_int;
6073 }
6074 extern "C" {
GDALLoadTabFile( arg1: *const libc::c_char, arg2: *mut f64, arg3: *mut *mut libc::c_char, arg4: *mut libc::c_int, arg5: *mut *mut GDAL_GCP, ) -> libc::c_int6075     pub fn GDALLoadTabFile(
6076         arg1: *const libc::c_char,
6077         arg2: *mut f64,
6078         arg3: *mut *mut libc::c_char,
6079         arg4: *mut libc::c_int,
6080         arg5: *mut *mut GDAL_GCP,
6081     ) -> libc::c_int;
6082 }
6083 extern "C" {
GDALReadTabFile( arg1: *const libc::c_char, arg2: *mut f64, arg3: *mut *mut libc::c_char, arg4: *mut libc::c_int, arg5: *mut *mut GDAL_GCP, ) -> libc::c_int6084     pub fn GDALReadTabFile(
6085         arg1: *const libc::c_char,
6086         arg2: *mut f64,
6087         arg3: *mut *mut libc::c_char,
6088         arg4: *mut libc::c_int,
6089         arg5: *mut *mut GDAL_GCP,
6090     ) -> libc::c_int;
6091 }
6092 extern "C" {
GDALLoadOziMapFile( arg1: *const libc::c_char, arg2: *mut f64, arg3: *mut *mut libc::c_char, arg4: *mut libc::c_int, arg5: *mut *mut GDAL_GCP, ) -> libc::c_int6093     pub fn GDALLoadOziMapFile(
6094         arg1: *const libc::c_char,
6095         arg2: *mut f64,
6096         arg3: *mut *mut libc::c_char,
6097         arg4: *mut libc::c_int,
6098         arg5: *mut *mut GDAL_GCP,
6099     ) -> libc::c_int;
6100 }
6101 extern "C" {
GDALReadOziMapFile( arg1: *const libc::c_char, arg2: *mut f64, arg3: *mut *mut libc::c_char, arg4: *mut libc::c_int, arg5: *mut *mut GDAL_GCP, ) -> libc::c_int6102     pub fn GDALReadOziMapFile(
6103         arg1: *const libc::c_char,
6104         arg2: *mut f64,
6105         arg3: *mut *mut libc::c_char,
6106         arg4: *mut libc::c_int,
6107         arg5: *mut *mut GDAL_GCP,
6108     ) -> libc::c_int;
6109 }
6110 extern "C" {
GDALDecToDMS( arg1: f64, arg2: *const libc::c_char, arg3: libc::c_int, ) -> *const libc::c_char6111     pub fn GDALDecToDMS(
6112         arg1: f64,
6113         arg2: *const libc::c_char,
6114         arg3: libc::c_int,
6115     ) -> *const libc::c_char;
6116 }
6117 extern "C" {
GDALPackedDMSToDec(arg1: f64) -> f646118     pub fn GDALPackedDMSToDec(arg1: f64) -> f64;
6119 }
6120 extern "C" {
GDALDecToPackedDMS(arg1: f64) -> f646121     pub fn GDALDecToPackedDMS(arg1: f64) -> f64;
6122 }
6123 #[repr(C)]
6124 #[derive(Debug, Copy, Clone)]
6125 pub struct GDALRPCInfo {
6126     pub dfLINE_OFF: f64,
6127     pub dfSAMP_OFF: f64,
6128     pub dfLAT_OFF: f64,
6129     pub dfLONG_OFF: f64,
6130     pub dfHEIGHT_OFF: f64,
6131     pub dfLINE_SCALE: f64,
6132     pub dfSAMP_SCALE: f64,
6133     pub dfLAT_SCALE: f64,
6134     pub dfLONG_SCALE: f64,
6135     pub dfHEIGHT_SCALE: f64,
6136     pub adfLINE_NUM_COEFF: [f64; 20usize],
6137     pub adfLINE_DEN_COEFF: [f64; 20usize],
6138     pub adfSAMP_NUM_COEFF: [f64; 20usize],
6139     pub adfSAMP_DEN_COEFF: [f64; 20usize],
6140     pub dfMIN_LONG: f64,
6141     pub dfMIN_LAT: f64,
6142     pub dfMAX_LONG: f64,
6143     pub dfMAX_LAT: f64,
6144 }
6145 #[test]
bindgen_test_layout_GDALRPCInfo()6146 fn bindgen_test_layout_GDALRPCInfo() {
6147     assert_eq!(
6148         ::std::mem::size_of::<GDALRPCInfo>(),
6149         752usize,
6150         concat!("Size of: ", stringify!(GDALRPCInfo))
6151     );
6152     assert_eq!(
6153         ::std::mem::align_of::<GDALRPCInfo>(),
6154         8usize,
6155         concat!("Alignment of ", stringify!(GDALRPCInfo))
6156     );
6157     assert_eq!(
6158         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLINE_OFF as *const _ as usize },
6159         0usize,
6160         concat!(
6161             "Offset of field: ",
6162             stringify!(GDALRPCInfo),
6163             "::",
6164             stringify!(dfLINE_OFF)
6165         )
6166     );
6167     assert_eq!(
6168         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfSAMP_OFF as *const _ as usize },
6169         8usize,
6170         concat!(
6171             "Offset of field: ",
6172             stringify!(GDALRPCInfo),
6173             "::",
6174             stringify!(dfSAMP_OFF)
6175         )
6176     );
6177     assert_eq!(
6178         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLAT_OFF as *const _ as usize },
6179         16usize,
6180         concat!(
6181             "Offset of field: ",
6182             stringify!(GDALRPCInfo),
6183             "::",
6184             stringify!(dfLAT_OFF)
6185         )
6186     );
6187     assert_eq!(
6188         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLONG_OFF as *const _ as usize },
6189         24usize,
6190         concat!(
6191             "Offset of field: ",
6192             stringify!(GDALRPCInfo),
6193             "::",
6194             stringify!(dfLONG_OFF)
6195         )
6196     );
6197     assert_eq!(
6198         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfHEIGHT_OFF as *const _ as usize },
6199         32usize,
6200         concat!(
6201             "Offset of field: ",
6202             stringify!(GDALRPCInfo),
6203             "::",
6204             stringify!(dfHEIGHT_OFF)
6205         )
6206     );
6207     assert_eq!(
6208         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLINE_SCALE as *const _ as usize },
6209         40usize,
6210         concat!(
6211             "Offset of field: ",
6212             stringify!(GDALRPCInfo),
6213             "::",
6214             stringify!(dfLINE_SCALE)
6215         )
6216     );
6217     assert_eq!(
6218         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfSAMP_SCALE as *const _ as usize },
6219         48usize,
6220         concat!(
6221             "Offset of field: ",
6222             stringify!(GDALRPCInfo),
6223             "::",
6224             stringify!(dfSAMP_SCALE)
6225         )
6226     );
6227     assert_eq!(
6228         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLAT_SCALE as *const _ as usize },
6229         56usize,
6230         concat!(
6231             "Offset of field: ",
6232             stringify!(GDALRPCInfo),
6233             "::",
6234             stringify!(dfLAT_SCALE)
6235         )
6236     );
6237     assert_eq!(
6238         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfLONG_SCALE as *const _ as usize },
6239         64usize,
6240         concat!(
6241             "Offset of field: ",
6242             stringify!(GDALRPCInfo),
6243             "::",
6244             stringify!(dfLONG_SCALE)
6245         )
6246     );
6247     assert_eq!(
6248         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfHEIGHT_SCALE as *const _ as usize },
6249         72usize,
6250         concat!(
6251             "Offset of field: ",
6252             stringify!(GDALRPCInfo),
6253             "::",
6254             stringify!(dfHEIGHT_SCALE)
6255         )
6256     );
6257     assert_eq!(
6258         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).adfLINE_NUM_COEFF as *const _ as usize },
6259         80usize,
6260         concat!(
6261             "Offset of field: ",
6262             stringify!(GDALRPCInfo),
6263             "::",
6264             stringify!(adfLINE_NUM_COEFF)
6265         )
6266     );
6267     assert_eq!(
6268         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).adfLINE_DEN_COEFF as *const _ as usize },
6269         240usize,
6270         concat!(
6271             "Offset of field: ",
6272             stringify!(GDALRPCInfo),
6273             "::",
6274             stringify!(adfLINE_DEN_COEFF)
6275         )
6276     );
6277     assert_eq!(
6278         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).adfSAMP_NUM_COEFF as *const _ as usize },
6279         400usize,
6280         concat!(
6281             "Offset of field: ",
6282             stringify!(GDALRPCInfo),
6283             "::",
6284             stringify!(adfSAMP_NUM_COEFF)
6285         )
6286     );
6287     assert_eq!(
6288         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).adfSAMP_DEN_COEFF as *const _ as usize },
6289         560usize,
6290         concat!(
6291             "Offset of field: ",
6292             stringify!(GDALRPCInfo),
6293             "::",
6294             stringify!(adfSAMP_DEN_COEFF)
6295         )
6296     );
6297     assert_eq!(
6298         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfMIN_LONG as *const _ as usize },
6299         720usize,
6300         concat!(
6301             "Offset of field: ",
6302             stringify!(GDALRPCInfo),
6303             "::",
6304             stringify!(dfMIN_LONG)
6305         )
6306     );
6307     assert_eq!(
6308         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfMIN_LAT as *const _ as usize },
6309         728usize,
6310         concat!(
6311             "Offset of field: ",
6312             stringify!(GDALRPCInfo),
6313             "::",
6314             stringify!(dfMIN_LAT)
6315         )
6316     );
6317     assert_eq!(
6318         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfMAX_LONG as *const _ as usize },
6319         736usize,
6320         concat!(
6321             "Offset of field: ",
6322             stringify!(GDALRPCInfo),
6323             "::",
6324             stringify!(dfMAX_LONG)
6325         )
6326     );
6327     assert_eq!(
6328         unsafe { &(*(::std::ptr::null::<GDALRPCInfo>())).dfMAX_LAT as *const _ as usize },
6329         744usize,
6330         concat!(
6331             "Offset of field: ",
6332             stringify!(GDALRPCInfo),
6333             "::",
6334             stringify!(dfMAX_LAT)
6335         )
6336     );
6337 }
6338 extern "C" {
GDALExtractRPCInfo(arg1: *mut *mut libc::c_char, arg2: *mut GDALRPCInfo) -> libc::c_int6339     pub fn GDALExtractRPCInfo(arg1: *mut *mut libc::c_char, arg2: *mut GDALRPCInfo) -> libc::c_int;
6340 }
6341 /// Color tuple
6342 #[repr(C)]
6343 #[derive(Debug, Copy, Clone)]
6344 pub struct GDALColorEntry {
6345     /// gray, red, cyan or hue
6346     pub c1: libc::c_short,
6347     /// green, magenta, or lightness
6348     pub c2: libc::c_short,
6349     /// blue, yellow, or saturation
6350     pub c3: libc::c_short,
6351     /// alpha or blackband
6352     pub c4: libc::c_short,
6353 }
6354 #[test]
bindgen_test_layout_GDALColorEntry()6355 fn bindgen_test_layout_GDALColorEntry() {
6356     assert_eq!(
6357         ::std::mem::size_of::<GDALColorEntry>(),
6358         8usize,
6359         concat!("Size of: ", stringify!(GDALColorEntry))
6360     );
6361     assert_eq!(
6362         ::std::mem::align_of::<GDALColorEntry>(),
6363         2usize,
6364         concat!("Alignment of ", stringify!(GDALColorEntry))
6365     );
6366     assert_eq!(
6367         unsafe { &(*(::std::ptr::null::<GDALColorEntry>())).c1 as *const _ as usize },
6368         0usize,
6369         concat!(
6370             "Offset of field: ",
6371             stringify!(GDALColorEntry),
6372             "::",
6373             stringify!(c1)
6374         )
6375     );
6376     assert_eq!(
6377         unsafe { &(*(::std::ptr::null::<GDALColorEntry>())).c2 as *const _ as usize },
6378         2usize,
6379         concat!(
6380             "Offset of field: ",
6381             stringify!(GDALColorEntry),
6382             "::",
6383             stringify!(c2)
6384         )
6385     );
6386     assert_eq!(
6387         unsafe { &(*(::std::ptr::null::<GDALColorEntry>())).c3 as *const _ as usize },
6388         4usize,
6389         concat!(
6390             "Offset of field: ",
6391             stringify!(GDALColorEntry),
6392             "::",
6393             stringify!(c3)
6394         )
6395     );
6396     assert_eq!(
6397         unsafe { &(*(::std::ptr::null::<GDALColorEntry>())).c4 as *const _ as usize },
6398         6usize,
6399         concat!(
6400             "Offset of field: ",
6401             stringify!(GDALColorEntry),
6402             "::",
6403             stringify!(c4)
6404         )
6405     );
6406 }
6407 extern "C" {
GDALCreateColorTable(arg1: GDALPaletteInterp::Type) -> GDALColorTableH6408     pub fn GDALCreateColorTable(arg1: GDALPaletteInterp::Type) -> GDALColorTableH;
6409 }
6410 extern "C" {
GDALDestroyColorTable(arg1: GDALColorTableH)6411     pub fn GDALDestroyColorTable(arg1: GDALColorTableH);
6412 }
6413 extern "C" {
GDALCloneColorTable(arg1: GDALColorTableH) -> GDALColorTableH6414     pub fn GDALCloneColorTable(arg1: GDALColorTableH) -> GDALColorTableH;
6415 }
6416 extern "C" {
GDALGetPaletteInterpretation(arg1: GDALColorTableH) -> GDALPaletteInterp::Type6417     pub fn GDALGetPaletteInterpretation(arg1: GDALColorTableH) -> GDALPaletteInterp::Type;
6418 }
6419 extern "C" {
GDALGetColorEntryCount(arg1: GDALColorTableH) -> libc::c_int6420     pub fn GDALGetColorEntryCount(arg1: GDALColorTableH) -> libc::c_int;
6421 }
6422 extern "C" {
GDALGetColorEntry(arg1: GDALColorTableH, arg2: libc::c_int) -> *const GDALColorEntry6423     pub fn GDALGetColorEntry(arg1: GDALColorTableH, arg2: libc::c_int) -> *const GDALColorEntry;
6424 }
6425 extern "C" {
GDALGetColorEntryAsRGB( arg1: GDALColorTableH, arg2: libc::c_int, arg3: *mut GDALColorEntry, ) -> libc::c_int6426     pub fn GDALGetColorEntryAsRGB(
6427         arg1: GDALColorTableH,
6428         arg2: libc::c_int,
6429         arg3: *mut GDALColorEntry,
6430     ) -> libc::c_int;
6431 }
6432 extern "C" {
GDALSetColorEntry(arg1: GDALColorTableH, arg2: libc::c_int, arg3: *const GDALColorEntry)6433     pub fn GDALSetColorEntry(arg1: GDALColorTableH, arg2: libc::c_int, arg3: *const GDALColorEntry);
6434 }
6435 extern "C" {
GDALCreateColorRamp( hTable: GDALColorTableH, nStartIndex: libc::c_int, psStartColor: *const GDALColorEntry, nEndIndex: libc::c_int, psEndColor: *const GDALColorEntry, )6436     pub fn GDALCreateColorRamp(
6437         hTable: GDALColorTableH,
6438         nStartIndex: libc::c_int,
6439         psStartColor: *const GDALColorEntry,
6440         nEndIndex: libc::c_int,
6441         psEndColor: *const GDALColorEntry,
6442     );
6443 }
6444 pub mod GDALRATFieldType {
6445     /// Field type of raster attribute table
6446     pub type Type = u32;
6447     /// Integer field
6448     pub const GFT_Integer: Type = 0;
6449     /// Floating point (double) field
6450     pub const GFT_Real: Type = 1;
6451     /// String field
6452     pub const GFT_String: Type = 2;
6453 }
6454 pub mod GDALRATFieldUsage {
6455     /// Field usage of raster attribute table
6456     pub type Type = u32;
6457     /// General purpose field.
6458     pub const GFU_Generic: Type = 0;
6459     /// Histogram pixel count
6460     pub const GFU_PixelCount: Type = 1;
6461     /// Class name
6462     pub const GFU_Name: Type = 2;
6463     /// Class range minimum
6464     pub const GFU_Min: Type = 3;
6465     /// Class range maximum
6466     pub const GFU_Max: Type = 4;
6467     /// Class value (min=max)
6468     pub const GFU_MinMax: Type = 5;
6469     /// Red class color (0-255)
6470     pub const GFU_Red: Type = 6;
6471     /// Green class color (0-255)
6472     pub const GFU_Green: Type = 7;
6473     /// Blue class color (0-255)
6474     pub const GFU_Blue: Type = 8;
6475     /// Alpha (0=transparent,255=opaque)
6476     pub const GFU_Alpha: Type = 9;
6477     /// Color Range Red Minimum
6478     pub const GFU_RedMin: Type = 10;
6479     /// Color Range Green Minimum
6480     pub const GFU_GreenMin: Type = 11;
6481     /// Color Range Blue Minimum
6482     pub const GFU_BlueMin: Type = 12;
6483     /// Color Range Alpha Minimum
6484     pub const GFU_AlphaMin: Type = 13;
6485     /// Color Range Red Maximum
6486     pub const GFU_RedMax: Type = 14;
6487     /// Color Range Green Maximum
6488     pub const GFU_GreenMax: Type = 15;
6489     /// Color Range Blue Maximum
6490     pub const GFU_BlueMax: Type = 16;
6491     /// Color Range Alpha Maximum
6492     pub const GFU_AlphaMax: Type = 17;
6493     /// Maximum GFU value
6494     pub const GFU_MaxCount: Type = 18;
6495 }
6496 extern "C" {
GDALCreateRasterAttributeTable() -> GDALRasterAttributeTableH6497     pub fn GDALCreateRasterAttributeTable() -> GDALRasterAttributeTableH;
6498 }
6499 extern "C" {
GDALDestroyRasterAttributeTable(arg1: GDALRasterAttributeTableH)6500     pub fn GDALDestroyRasterAttributeTable(arg1: GDALRasterAttributeTableH);
6501 }
6502 extern "C" {
GDALRATGetColumnCount(arg1: GDALRasterAttributeTableH) -> libc::c_int6503     pub fn GDALRATGetColumnCount(arg1: GDALRasterAttributeTableH) -> libc::c_int;
6504 }
6505 extern "C" {
GDALRATGetNameOfCol( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, ) -> *const libc::c_char6506     pub fn GDALRATGetNameOfCol(
6507         arg1: GDALRasterAttributeTableH,
6508         arg2: libc::c_int,
6509     ) -> *const libc::c_char;
6510 }
6511 extern "C" {
GDALRATGetUsageOfCol( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, ) -> GDALRATFieldUsage::Type6512     pub fn GDALRATGetUsageOfCol(
6513         arg1: GDALRasterAttributeTableH,
6514         arg2: libc::c_int,
6515     ) -> GDALRATFieldUsage::Type;
6516 }
6517 extern "C" {
GDALRATGetTypeOfCol( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, ) -> GDALRATFieldType::Type6518     pub fn GDALRATGetTypeOfCol(
6519         arg1: GDALRasterAttributeTableH,
6520         arg2: libc::c_int,
6521     ) -> GDALRATFieldType::Type;
6522 }
6523 extern "C" {
GDALRATGetColOfUsage( arg1: GDALRasterAttributeTableH, arg2: GDALRATFieldUsage::Type, ) -> libc::c_int6524     pub fn GDALRATGetColOfUsage(
6525         arg1: GDALRasterAttributeTableH,
6526         arg2: GDALRATFieldUsage::Type,
6527     ) -> libc::c_int;
6528 }
6529 extern "C" {
GDALRATGetRowCount(arg1: GDALRasterAttributeTableH) -> libc::c_int6530     pub fn GDALRATGetRowCount(arg1: GDALRasterAttributeTableH) -> libc::c_int;
6531 }
6532 extern "C" {
GDALRATGetValueAsString( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, ) -> *const libc::c_char6533     pub fn GDALRATGetValueAsString(
6534         arg1: GDALRasterAttributeTableH,
6535         arg2: libc::c_int,
6536         arg3: libc::c_int,
6537     ) -> *const libc::c_char;
6538 }
6539 extern "C" {
GDALRATGetValueAsInt( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, ) -> libc::c_int6540     pub fn GDALRATGetValueAsInt(
6541         arg1: GDALRasterAttributeTableH,
6542         arg2: libc::c_int,
6543         arg3: libc::c_int,
6544     ) -> libc::c_int;
6545 }
6546 extern "C" {
GDALRATGetValueAsDouble( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, ) -> f646547     pub fn GDALRATGetValueAsDouble(
6548         arg1: GDALRasterAttributeTableH,
6549         arg2: libc::c_int,
6550         arg3: libc::c_int,
6551     ) -> f64;
6552 }
6553 extern "C" {
GDALRATSetValueAsString( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, arg4: *const libc::c_char, )6554     pub fn GDALRATSetValueAsString(
6555         arg1: GDALRasterAttributeTableH,
6556         arg2: libc::c_int,
6557         arg3: libc::c_int,
6558         arg4: *const libc::c_char,
6559     );
6560 }
6561 extern "C" {
GDALRATSetValueAsInt( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, )6562     pub fn GDALRATSetValueAsInt(
6563         arg1: GDALRasterAttributeTableH,
6564         arg2: libc::c_int,
6565         arg3: libc::c_int,
6566         arg4: libc::c_int,
6567     );
6568 }
6569 extern "C" {
GDALRATSetValueAsDouble( arg1: GDALRasterAttributeTableH, arg2: libc::c_int, arg3: libc::c_int, arg4: f64, )6570     pub fn GDALRATSetValueAsDouble(
6571         arg1: GDALRasterAttributeTableH,
6572         arg2: libc::c_int,
6573         arg3: libc::c_int,
6574         arg4: f64,
6575     );
6576 }
6577 extern "C" {
GDALRATChangesAreWrittenToFile(hRAT: GDALRasterAttributeTableH) -> libc::c_int6578     pub fn GDALRATChangesAreWrittenToFile(hRAT: GDALRasterAttributeTableH) -> libc::c_int;
6579 }
6580 extern "C" {
GDALRATValuesIOAsDouble( hRAT: GDALRasterAttributeTableH, eRWFlag: GDALRWFlag::Type, iField: libc::c_int, iStartRow: libc::c_int, iLength: libc::c_int, pdfData: *mut f64, ) -> CPLErr::Type6581     pub fn GDALRATValuesIOAsDouble(
6582         hRAT: GDALRasterAttributeTableH,
6583         eRWFlag: GDALRWFlag::Type,
6584         iField: libc::c_int,
6585         iStartRow: libc::c_int,
6586         iLength: libc::c_int,
6587         pdfData: *mut f64,
6588     ) -> CPLErr::Type;
6589 }
6590 extern "C" {
GDALRATValuesIOAsInteger( hRAT: GDALRasterAttributeTableH, eRWFlag: GDALRWFlag::Type, iField: libc::c_int, iStartRow: libc::c_int, iLength: libc::c_int, pnData: *mut libc::c_int, ) -> CPLErr::Type6591     pub fn GDALRATValuesIOAsInteger(
6592         hRAT: GDALRasterAttributeTableH,
6593         eRWFlag: GDALRWFlag::Type,
6594         iField: libc::c_int,
6595         iStartRow: libc::c_int,
6596         iLength: libc::c_int,
6597         pnData: *mut libc::c_int,
6598     ) -> CPLErr::Type;
6599 }
6600 extern "C" {
GDALRATValuesIOAsString( hRAT: GDALRasterAttributeTableH, eRWFlag: GDALRWFlag::Type, iField: libc::c_int, iStartRow: libc::c_int, iLength: libc::c_int, papszStrList: *mut *mut libc::c_char, ) -> CPLErr::Type6601     pub fn GDALRATValuesIOAsString(
6602         hRAT: GDALRasterAttributeTableH,
6603         eRWFlag: GDALRWFlag::Type,
6604         iField: libc::c_int,
6605         iStartRow: libc::c_int,
6606         iLength: libc::c_int,
6607         papszStrList: *mut *mut libc::c_char,
6608     ) -> CPLErr::Type;
6609 }
6610 extern "C" {
GDALRATSetRowCount(arg1: GDALRasterAttributeTableH, arg2: libc::c_int)6611     pub fn GDALRATSetRowCount(arg1: GDALRasterAttributeTableH, arg2: libc::c_int);
6612 }
6613 extern "C" {
GDALRATCreateColumn( arg1: GDALRasterAttributeTableH, arg2: *const libc::c_char, arg3: GDALRATFieldType::Type, arg4: GDALRATFieldUsage::Type, ) -> CPLErr::Type6614     pub fn GDALRATCreateColumn(
6615         arg1: GDALRasterAttributeTableH,
6616         arg2: *const libc::c_char,
6617         arg3: GDALRATFieldType::Type,
6618         arg4: GDALRATFieldUsage::Type,
6619     ) -> CPLErr::Type;
6620 }
6621 extern "C" {
GDALRATSetLinearBinning( arg1: GDALRasterAttributeTableH, arg2: f64, arg3: f64, ) -> CPLErr::Type6622     pub fn GDALRATSetLinearBinning(
6623         arg1: GDALRasterAttributeTableH,
6624         arg2: f64,
6625         arg3: f64,
6626     ) -> CPLErr::Type;
6627 }
6628 extern "C" {
GDALRATGetLinearBinning( arg1: GDALRasterAttributeTableH, arg2: *mut f64, arg3: *mut f64, ) -> libc::c_int6629     pub fn GDALRATGetLinearBinning(
6630         arg1: GDALRasterAttributeTableH,
6631         arg2: *mut f64,
6632         arg3: *mut f64,
6633     ) -> libc::c_int;
6634 }
6635 extern "C" {
GDALRATInitializeFromColorTable( arg1: GDALRasterAttributeTableH, arg2: GDALColorTableH, ) -> CPLErr::Type6636     pub fn GDALRATInitializeFromColorTable(
6637         arg1: GDALRasterAttributeTableH,
6638         arg2: GDALColorTableH,
6639     ) -> CPLErr::Type;
6640 }
6641 extern "C" {
GDALRATTranslateToColorTable( arg1: GDALRasterAttributeTableH, nEntryCount: libc::c_int, ) -> GDALColorTableH6642     pub fn GDALRATTranslateToColorTable(
6643         arg1: GDALRasterAttributeTableH,
6644         nEntryCount: libc::c_int,
6645     ) -> GDALColorTableH;
6646 }
6647 extern "C" {
GDALRATDumpReadable(arg1: GDALRasterAttributeTableH, arg2: *mut FILE)6648     pub fn GDALRATDumpReadable(arg1: GDALRasterAttributeTableH, arg2: *mut FILE);
6649 }
6650 extern "C" {
GDALRATClone(arg1: GDALRasterAttributeTableH) -> GDALRasterAttributeTableH6651     pub fn GDALRATClone(arg1: GDALRasterAttributeTableH) -> GDALRasterAttributeTableH;
6652 }
6653 extern "C" {
GDALRATSerializeJSON(arg1: GDALRasterAttributeTableH) -> *mut libc::c_void6654     pub fn GDALRATSerializeJSON(arg1: GDALRasterAttributeTableH) -> *mut libc::c_void;
6655 }
6656 extern "C" {
GDALRATGetRowOfValue(arg1: GDALRasterAttributeTableH, arg2: f64) -> libc::c_int6657     pub fn GDALRATGetRowOfValue(arg1: GDALRasterAttributeTableH, arg2: f64) -> libc::c_int;
6658 }
6659 extern "C" {
GDALSetCacheMax(nBytes: libc::c_int)6660     pub fn GDALSetCacheMax(nBytes: libc::c_int);
6661 }
6662 extern "C" {
GDALGetCacheMax() -> libc::c_int6663     pub fn GDALGetCacheMax() -> libc::c_int;
6664 }
6665 extern "C" {
GDALGetCacheUsed() -> libc::c_int6666     pub fn GDALGetCacheUsed() -> libc::c_int;
6667 }
6668 extern "C" {
GDALSetCacheMax64(nBytes: GIntBig)6669     pub fn GDALSetCacheMax64(nBytes: GIntBig);
6670 }
6671 extern "C" {
GDALGetCacheMax64() -> GIntBig6672     pub fn GDALGetCacheMax64() -> GIntBig;
6673 }
6674 extern "C" {
GDALGetCacheUsed64() -> GIntBig6675     pub fn GDALGetCacheUsed64() -> GIntBig;
6676 }
6677 extern "C" {
GDALFlushCacheBlock() -> libc::c_int6678     pub fn GDALFlushCacheBlock() -> libc::c_int;
6679 }
6680 extern "C" {
GDALDatasetGetVirtualMem( hDS: GDALDatasetH, eRWFlag: GDALRWFlag::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, nBufXSize: libc::c_int, nBufYSize: libc::c_int, eBufType: GDALDataType::Type, nBandCount: libc::c_int, panBandMap: *mut libc::c_int, nPixelSpace: libc::c_int, nLineSpace: GIntBig, nBandSpace: GIntBig, nCacheSize: usize, nPageSizeHint: usize, bSingleThreadUsage: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLVirtualMem6681     pub fn GDALDatasetGetVirtualMem(
6682         hDS: GDALDatasetH,
6683         eRWFlag: GDALRWFlag::Type,
6684         nXOff: libc::c_int,
6685         nYOff: libc::c_int,
6686         nXSize: libc::c_int,
6687         nYSize: libc::c_int,
6688         nBufXSize: libc::c_int,
6689         nBufYSize: libc::c_int,
6690         eBufType: GDALDataType::Type,
6691         nBandCount: libc::c_int,
6692         panBandMap: *mut libc::c_int,
6693         nPixelSpace: libc::c_int,
6694         nLineSpace: GIntBig,
6695         nBandSpace: GIntBig,
6696         nCacheSize: usize,
6697         nPageSizeHint: usize,
6698         bSingleThreadUsage: libc::c_int,
6699         papszOptions: *mut *mut libc::c_char,
6700     ) -> *mut CPLVirtualMem;
6701 }
6702 extern "C" {
GDALRasterBandGetVirtualMem( hBand: GDALRasterBandH, eRWFlag: GDALRWFlag::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, nBufXSize: libc::c_int, nBufYSize: libc::c_int, eBufType: GDALDataType::Type, nPixelSpace: libc::c_int, nLineSpace: GIntBig, nCacheSize: usize, nPageSizeHint: usize, bSingleThreadUsage: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLVirtualMem6703     pub fn GDALRasterBandGetVirtualMem(
6704         hBand: GDALRasterBandH,
6705         eRWFlag: GDALRWFlag::Type,
6706         nXOff: libc::c_int,
6707         nYOff: libc::c_int,
6708         nXSize: libc::c_int,
6709         nYSize: libc::c_int,
6710         nBufXSize: libc::c_int,
6711         nBufYSize: libc::c_int,
6712         eBufType: GDALDataType::Type,
6713         nPixelSpace: libc::c_int,
6714         nLineSpace: GIntBig,
6715         nCacheSize: usize,
6716         nPageSizeHint: usize,
6717         bSingleThreadUsage: libc::c_int,
6718         papszOptions: *mut *mut libc::c_char,
6719     ) -> *mut CPLVirtualMem;
6720 }
6721 extern "C" {
GDALGetVirtualMemAuto( hBand: GDALRasterBandH, eRWFlag: GDALRWFlag::Type, pnPixelSpace: *mut libc::c_int, pnLineSpace: *mut GIntBig, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLVirtualMem6722     pub fn GDALGetVirtualMemAuto(
6723         hBand: GDALRasterBandH,
6724         eRWFlag: GDALRWFlag::Type,
6725         pnPixelSpace: *mut libc::c_int,
6726         pnLineSpace: *mut GIntBig,
6727         papszOptions: *mut *mut libc::c_char,
6728     ) -> *mut CPLVirtualMem;
6729 }
6730 pub mod GDALTileOrganization {
6731     pub type Type = u32;
6732     /// Tile Interleaved by Pixel: tile (0,0) with internal band interleaved by pixel organization, tile (1, 0), ...
6733     pub const GTO_TIP: Type = 0;
6734     /// Band Interleaved by Tile : tile (0,0) of first band, tile (0,0) of second band, ... tile (1,0) of first band, tile (1,0) of second band, ...
6735     pub const GTO_BIT: Type = 1;
6736     /// Band SeQuential : all the tiles of first band, all the tiles of following band...
6737     pub const GTO_BSQ: Type = 2;
6738 }
6739 extern "C" {
GDALDatasetGetTiledVirtualMem( hDS: GDALDatasetH, eRWFlag: GDALRWFlag::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, nTileXSize: libc::c_int, nTileYSize: libc::c_int, eBufType: GDALDataType::Type, nBandCount: libc::c_int, panBandMap: *mut libc::c_int, eTileOrganization: GDALTileOrganization::Type, nCacheSize: usize, bSingleThreadUsage: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLVirtualMem6740     pub fn GDALDatasetGetTiledVirtualMem(
6741         hDS: GDALDatasetH,
6742         eRWFlag: GDALRWFlag::Type,
6743         nXOff: libc::c_int,
6744         nYOff: libc::c_int,
6745         nXSize: libc::c_int,
6746         nYSize: libc::c_int,
6747         nTileXSize: libc::c_int,
6748         nTileYSize: libc::c_int,
6749         eBufType: GDALDataType::Type,
6750         nBandCount: libc::c_int,
6751         panBandMap: *mut libc::c_int,
6752         eTileOrganization: GDALTileOrganization::Type,
6753         nCacheSize: usize,
6754         bSingleThreadUsage: libc::c_int,
6755         papszOptions: *mut *mut libc::c_char,
6756     ) -> *mut CPLVirtualMem;
6757 }
6758 extern "C" {
GDALRasterBandGetTiledVirtualMem( hBand: GDALRasterBandH, eRWFlag: GDALRWFlag::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, nTileXSize: libc::c_int, nTileYSize: libc::c_int, eBufType: GDALDataType::Type, nCacheSize: usize, bSingleThreadUsage: libc::c_int, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLVirtualMem6759     pub fn GDALRasterBandGetTiledVirtualMem(
6760         hBand: GDALRasterBandH,
6761         eRWFlag: GDALRWFlag::Type,
6762         nXOff: libc::c_int,
6763         nYOff: libc::c_int,
6764         nXSize: libc::c_int,
6765         nYSize: libc::c_int,
6766         nTileXSize: libc::c_int,
6767         nTileYSize: libc::c_int,
6768         eBufType: GDALDataType::Type,
6769         nCacheSize: usize,
6770         bSingleThreadUsage: libc::c_int,
6771         papszOptions: *mut *mut libc::c_char,
6772     ) -> *mut CPLVirtualMem;
6773 }
6774 extern "C" {
GDALCreatePansharpenedVRT( pszXML: *const libc::c_char, hPanchroBand: GDALRasterBandH, nInputSpectralBands: libc::c_int, pahInputSpectralBands: *mut GDALRasterBandH, ) -> GDALDatasetH6775     pub fn GDALCreatePansharpenedVRT(
6776         pszXML: *const libc::c_char,
6777         hPanchroBand: GDALRasterBandH,
6778         nInputSpectralBands: libc::c_int,
6779         pahInputSpectralBands: *mut GDALRasterBandH,
6780     ) -> GDALDatasetH;
6781 }
6782 extern "C" {
GDALGetJPEG2000Structure( pszFilename: *const libc::c_char, papszOptions: *mut *mut libc::c_char, ) -> *mut CPLXMLNode6783     pub fn GDALGetJPEG2000Structure(
6784         pszFilename: *const libc::c_char,
6785         papszOptions: *mut *mut libc::c_char,
6786     ) -> *mut CPLXMLNode;
6787 }
6788 extern "C" {
GDALComputeMedianCutPCT( hRed: GDALRasterBandH, hGreen: GDALRasterBandH, hBlue: GDALRasterBandH, pfnIncludePixel: ::std::option::Option< unsafe extern "C" fn(arg1: libc::c_int, arg2: libc::c_int, arg3: *mut libc::c_void) -> libc::c_int, >, nColors: libc::c_int, hColorTable: GDALColorTableH, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> libc::c_int6789     pub fn GDALComputeMedianCutPCT(
6790         hRed: GDALRasterBandH,
6791         hGreen: GDALRasterBandH,
6792         hBlue: GDALRasterBandH,
6793         pfnIncludePixel: ::std::option::Option<
6794             unsafe extern "C" fn(arg1: libc::c_int, arg2: libc::c_int, arg3: *mut libc::c_void)
6795                 -> libc::c_int,
6796         >,
6797         nColors: libc::c_int,
6798         hColorTable: GDALColorTableH,
6799         pfnProgress: GDALProgressFunc,
6800         pProgressArg: *mut libc::c_void,
6801     ) -> libc::c_int;
6802 }
6803 extern "C" {
GDALDitherRGB2PCT( hRed: GDALRasterBandH, hGreen: GDALRasterBandH, hBlue: GDALRasterBandH, hTarget: GDALRasterBandH, hColorTable: GDALColorTableH, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> libc::c_int6804     pub fn GDALDitherRGB2PCT(
6805         hRed: GDALRasterBandH,
6806         hGreen: GDALRasterBandH,
6807         hBlue: GDALRasterBandH,
6808         hTarget: GDALRasterBandH,
6809         hColorTable: GDALColorTableH,
6810         pfnProgress: GDALProgressFunc,
6811         pProgressArg: *mut libc::c_void,
6812     ) -> libc::c_int;
6813 }
6814 extern "C" {
GDALChecksumImage( hBand: GDALRasterBandH, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, ) -> libc::c_int6815     pub fn GDALChecksumImage(
6816         hBand: GDALRasterBandH,
6817         nXOff: libc::c_int,
6818         nYOff: libc::c_int,
6819         nXSize: libc::c_int,
6820         nYSize: libc::c_int,
6821     ) -> libc::c_int;
6822 }
6823 extern "C" {
GDALComputeProximity( hSrcBand: GDALRasterBandH, hProximityBand: GDALRasterBandH, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type6824     pub fn GDALComputeProximity(
6825         hSrcBand: GDALRasterBandH,
6826         hProximityBand: GDALRasterBandH,
6827         papszOptions: *mut *mut libc::c_char,
6828         pfnProgress: GDALProgressFunc,
6829         pProgressArg: *mut libc::c_void,
6830     ) -> CPLErr::Type;
6831 }
6832 extern "C" {
GDALFillNodata( hTargetBand: GDALRasterBandH, hMaskBand: GDALRasterBandH, dfMaxSearchDist: f64, bDeprecatedOption: libc::c_int, nSmoothingIterations: libc::c_int, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type6833     pub fn GDALFillNodata(
6834         hTargetBand: GDALRasterBandH,
6835         hMaskBand: GDALRasterBandH,
6836         dfMaxSearchDist: f64,
6837         bDeprecatedOption: libc::c_int,
6838         nSmoothingIterations: libc::c_int,
6839         papszOptions: *mut *mut libc::c_char,
6840         pfnProgress: GDALProgressFunc,
6841         pProgressArg: *mut libc::c_void,
6842     ) -> CPLErr::Type;
6843 }
6844 extern "C" {
GDALPolygonize( hSrcBand: GDALRasterBandH, hMaskBand: GDALRasterBandH, hOutLayer: OGRLayerH, iPixValField: libc::c_int, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type6845     pub fn GDALPolygonize(
6846         hSrcBand: GDALRasterBandH,
6847         hMaskBand: GDALRasterBandH,
6848         hOutLayer: OGRLayerH,
6849         iPixValField: libc::c_int,
6850         papszOptions: *mut *mut libc::c_char,
6851         pfnProgress: GDALProgressFunc,
6852         pProgressArg: *mut libc::c_void,
6853     ) -> CPLErr::Type;
6854 }
6855 extern "C" {
GDALFPolygonize( hSrcBand: GDALRasterBandH, hMaskBand: GDALRasterBandH, hOutLayer: OGRLayerH, iPixValField: libc::c_int, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type6856     pub fn GDALFPolygonize(
6857         hSrcBand: GDALRasterBandH,
6858         hMaskBand: GDALRasterBandH,
6859         hOutLayer: OGRLayerH,
6860         iPixValField: libc::c_int,
6861         papszOptions: *mut *mut libc::c_char,
6862         pfnProgress: GDALProgressFunc,
6863         pProgressArg: *mut libc::c_void,
6864     ) -> CPLErr::Type;
6865 }
6866 extern "C" {
GDALSieveFilter( hSrcBand: GDALRasterBandH, hMaskBand: GDALRasterBandH, hDstBand: GDALRasterBandH, nSizeThreshold: libc::c_int, nConnectedness: libc::c_int, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type6867     pub fn GDALSieveFilter(
6868         hSrcBand: GDALRasterBandH,
6869         hMaskBand: GDALRasterBandH,
6870         hDstBand: GDALRasterBandH,
6871         nSizeThreshold: libc::c_int,
6872         nConnectedness: libc::c_int,
6873         papszOptions: *mut *mut libc::c_char,
6874         pfnProgress: GDALProgressFunc,
6875         pProgressArg: *mut libc::c_void,
6876     ) -> CPLErr::Type;
6877 }
6878 pub type GDALTransformerFunc = ::std::option::Option<
6879     unsafe extern "C" fn(
6880         pTransformerArg: *mut libc::c_void,
6881         bDstToSrc: libc::c_int,
6882         nPointCount: libc::c_int,
6883         x: *mut f64,
6884         y: *mut f64,
6885         z: *mut f64,
6886         panSuccess: *mut libc::c_int,
6887     ) -> libc::c_int,
6888 >;
6889 extern "C" {
GDALDestroyTransformer(pTransformerArg: *mut libc::c_void)6890     pub fn GDALDestroyTransformer(pTransformerArg: *mut libc::c_void);
6891 }
6892 extern "C" {
GDALUseTransformer( pTransformerArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int6893     pub fn GDALUseTransformer(
6894         pTransformerArg: *mut libc::c_void,
6895         bDstToSrc: libc::c_int,
6896         nPointCount: libc::c_int,
6897         x: *mut f64,
6898         y: *mut f64,
6899         z: *mut f64,
6900         panSuccess: *mut libc::c_int,
6901     ) -> libc::c_int;
6902 }
6903 extern "C" {
GDALCreateSimilarTransformer( psTransformerArg: *mut libc::c_void, dfSrcRatioX: f64, dfSrcRatioY: f64, ) -> *mut libc::c_void6904     pub fn GDALCreateSimilarTransformer(
6905         psTransformerArg: *mut libc::c_void,
6906         dfSrcRatioX: f64,
6907         dfSrcRatioY: f64,
6908     ) -> *mut libc::c_void;
6909 }
6910 extern "C" {
GDALCreateGenImgProjTransformer( hSrcDS: GDALDatasetH, pszSrcWKT: *const libc::c_char, hDstDS: GDALDatasetH, pszDstWKT: *const libc::c_char, bGCPUseOK: libc::c_int, dfGCPErrorThreshold: f64, nOrder: libc::c_int, ) -> *mut libc::c_void6911     pub fn GDALCreateGenImgProjTransformer(
6912         hSrcDS: GDALDatasetH,
6913         pszSrcWKT: *const libc::c_char,
6914         hDstDS: GDALDatasetH,
6915         pszDstWKT: *const libc::c_char,
6916         bGCPUseOK: libc::c_int,
6917         dfGCPErrorThreshold: f64,
6918         nOrder: libc::c_int,
6919     ) -> *mut libc::c_void;
6920 }
6921 extern "C" {
GDALCreateGenImgProjTransformer2( hSrcDS: GDALDatasetH, hDstDS: GDALDatasetH, papszOptions: *mut *mut libc::c_char, ) -> *mut libc::c_void6922     pub fn GDALCreateGenImgProjTransformer2(
6923         hSrcDS: GDALDatasetH,
6924         hDstDS: GDALDatasetH,
6925         papszOptions: *mut *mut libc::c_char,
6926     ) -> *mut libc::c_void;
6927 }
6928 extern "C" {
GDALCreateGenImgProjTransformer3( pszSrcWKT: *const libc::c_char, padfSrcGeoTransform: *const f64, pszDstWKT: *const libc::c_char, padfDstGeoTransform: *const f64, ) -> *mut libc::c_void6929     pub fn GDALCreateGenImgProjTransformer3(
6930         pszSrcWKT: *const libc::c_char,
6931         padfSrcGeoTransform: *const f64,
6932         pszDstWKT: *const libc::c_char,
6933         padfDstGeoTransform: *const f64,
6934     ) -> *mut libc::c_void;
6935 }
6936 extern "C" {
GDALSetGenImgProjTransformerDstGeoTransform(arg1: *mut libc::c_void, arg2: *const f64)6937     pub fn GDALSetGenImgProjTransformerDstGeoTransform(arg1: *mut libc::c_void, arg2: *const f64);
6938 }
6939 extern "C" {
GDALDestroyGenImgProjTransformer(arg1: *mut libc::c_void)6940     pub fn GDALDestroyGenImgProjTransformer(arg1: *mut libc::c_void);
6941 }
6942 extern "C" {
GDALGenImgProjTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int6943     pub fn GDALGenImgProjTransform(
6944         pTransformArg: *mut libc::c_void,
6945         bDstToSrc: libc::c_int,
6946         nPointCount: libc::c_int,
6947         x: *mut f64,
6948         y: *mut f64,
6949         z: *mut f64,
6950         panSuccess: *mut libc::c_int,
6951     ) -> libc::c_int;
6952 }
6953 extern "C" {
GDALSetTransformerDstGeoTransform(arg1: *mut libc::c_void, arg2: *const f64)6954     pub fn GDALSetTransformerDstGeoTransform(arg1: *mut libc::c_void, arg2: *const f64);
6955 }
6956 extern "C" {
GDALCreateReprojectionTransformer( pszSrcWKT: *const libc::c_char, pszDstWKT: *const libc::c_char, ) -> *mut libc::c_void6957     pub fn GDALCreateReprojectionTransformer(
6958         pszSrcWKT: *const libc::c_char,
6959         pszDstWKT: *const libc::c_char,
6960     ) -> *mut libc::c_void;
6961 }
6962 extern "C" {
GDALDestroyReprojectionTransformer(arg1: *mut libc::c_void)6963     pub fn GDALDestroyReprojectionTransformer(arg1: *mut libc::c_void);
6964 }
6965 extern "C" {
GDALReprojectionTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int6966     pub fn GDALReprojectionTransform(
6967         pTransformArg: *mut libc::c_void,
6968         bDstToSrc: libc::c_int,
6969         nPointCount: libc::c_int,
6970         x: *mut f64,
6971         y: *mut f64,
6972         z: *mut f64,
6973         panSuccess: *mut libc::c_int,
6974     ) -> libc::c_int;
6975 }
6976 extern "C" {
GDALCreateGCPTransformer( nGCPCount: libc::c_int, pasGCPList: *const GDAL_GCP, nReqOrder: libc::c_int, bReversed: libc::c_int, ) -> *mut libc::c_void6977     pub fn GDALCreateGCPTransformer(
6978         nGCPCount: libc::c_int,
6979         pasGCPList: *const GDAL_GCP,
6980         nReqOrder: libc::c_int,
6981         bReversed: libc::c_int,
6982     ) -> *mut libc::c_void;
6983 }
6984 extern "C" {
GDALCreateGCPRefineTransformer( nGCPCount: libc::c_int, pasGCPList: *const GDAL_GCP, nReqOrder: libc::c_int, bReversed: libc::c_int, tolerance: f64, minimumGcps: libc::c_int, ) -> *mut libc::c_void6985     pub fn GDALCreateGCPRefineTransformer(
6986         nGCPCount: libc::c_int,
6987         pasGCPList: *const GDAL_GCP,
6988         nReqOrder: libc::c_int,
6989         bReversed: libc::c_int,
6990         tolerance: f64,
6991         minimumGcps: libc::c_int,
6992     ) -> *mut libc::c_void;
6993 }
6994 extern "C" {
GDALDestroyGCPTransformer(pTransformArg: *mut libc::c_void)6995     pub fn GDALDestroyGCPTransformer(pTransformArg: *mut libc::c_void);
6996 }
6997 extern "C" {
GDALGCPTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int6998     pub fn GDALGCPTransform(
6999         pTransformArg: *mut libc::c_void,
7000         bDstToSrc: libc::c_int,
7001         nPointCount: libc::c_int,
7002         x: *mut f64,
7003         y: *mut f64,
7004         z: *mut f64,
7005         panSuccess: *mut libc::c_int,
7006     ) -> libc::c_int;
7007 }
7008 extern "C" {
GDALCreateTPSTransformer( nGCPCount: libc::c_int, pasGCPList: *const GDAL_GCP, bReversed: libc::c_int, ) -> *mut libc::c_void7009     pub fn GDALCreateTPSTransformer(
7010         nGCPCount: libc::c_int,
7011         pasGCPList: *const GDAL_GCP,
7012         bReversed: libc::c_int,
7013     ) -> *mut libc::c_void;
7014 }
7015 extern "C" {
GDALDestroyTPSTransformer(pTransformArg: *mut libc::c_void)7016     pub fn GDALDestroyTPSTransformer(pTransformArg: *mut libc::c_void);
7017 }
7018 extern "C" {
GDALTPSTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int7019     pub fn GDALTPSTransform(
7020         pTransformArg: *mut libc::c_void,
7021         bDstToSrc: libc::c_int,
7022         nPointCount: libc::c_int,
7023         x: *mut f64,
7024         y: *mut f64,
7025         z: *mut f64,
7026         panSuccess: *mut libc::c_int,
7027     ) -> libc::c_int;
7028 }
7029 extern "C" {
GDALCreateRPCTransformer( psRPC: *mut GDALRPCInfo, bReversed: libc::c_int, dfPixErrThreshold: f64, papszOptions: *mut *mut libc::c_char, ) -> *mut libc::c_void7030     pub fn GDALCreateRPCTransformer(
7031         psRPC: *mut GDALRPCInfo,
7032         bReversed: libc::c_int,
7033         dfPixErrThreshold: f64,
7034         papszOptions: *mut *mut libc::c_char,
7035     ) -> *mut libc::c_void;
7036 }
7037 extern "C" {
GDALDestroyRPCTransformer(pTransformArg: *mut libc::c_void)7038     pub fn GDALDestroyRPCTransformer(pTransformArg: *mut libc::c_void);
7039 }
7040 extern "C" {
GDALRPCTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int7041     pub fn GDALRPCTransform(
7042         pTransformArg: *mut libc::c_void,
7043         bDstToSrc: libc::c_int,
7044         nPointCount: libc::c_int,
7045         x: *mut f64,
7046         y: *mut f64,
7047         z: *mut f64,
7048         panSuccess: *mut libc::c_int,
7049     ) -> libc::c_int;
7050 }
7051 extern "C" {
GDALCreateGeoLocTransformer( hBaseDS: GDALDatasetH, papszGeolocationInfo: *mut *mut libc::c_char, bReversed: libc::c_int, ) -> *mut libc::c_void7052     pub fn GDALCreateGeoLocTransformer(
7053         hBaseDS: GDALDatasetH,
7054         papszGeolocationInfo: *mut *mut libc::c_char,
7055         bReversed: libc::c_int,
7056     ) -> *mut libc::c_void;
7057 }
7058 extern "C" {
GDALDestroyGeoLocTransformer(pTransformArg: *mut libc::c_void)7059     pub fn GDALDestroyGeoLocTransformer(pTransformArg: *mut libc::c_void);
7060 }
7061 extern "C" {
GDALGeoLocTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int7062     pub fn GDALGeoLocTransform(
7063         pTransformArg: *mut libc::c_void,
7064         bDstToSrc: libc::c_int,
7065         nPointCount: libc::c_int,
7066         x: *mut f64,
7067         y: *mut f64,
7068         z: *mut f64,
7069         panSuccess: *mut libc::c_int,
7070     ) -> libc::c_int;
7071 }
7072 extern "C" {
GDALCreateApproxTransformer( pfnRawTransformer: GDALTransformerFunc, pRawTransformerArg: *mut libc::c_void, dfMaxError: f64, ) -> *mut libc::c_void7073     pub fn GDALCreateApproxTransformer(
7074         pfnRawTransformer: GDALTransformerFunc,
7075         pRawTransformerArg: *mut libc::c_void,
7076         dfMaxError: f64,
7077     ) -> *mut libc::c_void;
7078 }
7079 extern "C" {
GDALApproxTransformerOwnsSubtransformer( pCBData: *mut libc::c_void, bOwnFlag: libc::c_int, )7080     pub fn GDALApproxTransformerOwnsSubtransformer(
7081         pCBData: *mut libc::c_void,
7082         bOwnFlag: libc::c_int,
7083     );
7084 }
7085 extern "C" {
GDALDestroyApproxTransformer(pApproxArg: *mut libc::c_void)7086     pub fn GDALDestroyApproxTransformer(pApproxArg: *mut libc::c_void);
7087 }
7088 extern "C" {
GDALApproxTransform( pTransformArg: *mut libc::c_void, bDstToSrc: libc::c_int, nPointCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, panSuccess: *mut libc::c_int, ) -> libc::c_int7089     pub fn GDALApproxTransform(
7090         pTransformArg: *mut libc::c_void,
7091         bDstToSrc: libc::c_int,
7092         nPointCount: libc::c_int,
7093         x: *mut f64,
7094         y: *mut f64,
7095         z: *mut f64,
7096         panSuccess: *mut libc::c_int,
7097     ) -> libc::c_int;
7098 }
7099 extern "C" {
GDALSimpleImageWarp( hSrcDS: GDALDatasetH, hDstDS: GDALDatasetH, nBandCount: libc::c_int, panBandList: *mut libc::c_int, pfnTransform: GDALTransformerFunc, pTransformArg: *mut libc::c_void, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, papszWarpOptions: *mut *mut libc::c_char, ) -> libc::c_int7100     pub fn GDALSimpleImageWarp(
7101         hSrcDS: GDALDatasetH,
7102         hDstDS: GDALDatasetH,
7103         nBandCount: libc::c_int,
7104         panBandList: *mut libc::c_int,
7105         pfnTransform: GDALTransformerFunc,
7106         pTransformArg: *mut libc::c_void,
7107         pfnProgress: GDALProgressFunc,
7108         pProgressArg: *mut libc::c_void,
7109         papszWarpOptions: *mut *mut libc::c_char,
7110     ) -> libc::c_int;
7111 }
7112 extern "C" {
GDALSuggestedWarpOutput( hSrcDS: GDALDatasetH, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, padfGeoTransformOut: *mut f64, pnPixels: *mut libc::c_int, pnLines: *mut libc::c_int, ) -> CPLErr::Type7113     pub fn GDALSuggestedWarpOutput(
7114         hSrcDS: GDALDatasetH,
7115         pfnTransformer: GDALTransformerFunc,
7116         pTransformArg: *mut libc::c_void,
7117         padfGeoTransformOut: *mut f64,
7118         pnPixels: *mut libc::c_int,
7119         pnLines: *mut libc::c_int,
7120     ) -> CPLErr::Type;
7121 }
7122 extern "C" {
GDALSuggestedWarpOutput2( hSrcDS: GDALDatasetH, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, padfGeoTransformOut: *mut f64, pnPixels: *mut libc::c_int, pnLines: *mut libc::c_int, padfExtents: *mut f64, nOptions: libc::c_int, ) -> CPLErr::Type7123     pub fn GDALSuggestedWarpOutput2(
7124         hSrcDS: GDALDatasetH,
7125         pfnTransformer: GDALTransformerFunc,
7126         pTransformArg: *mut libc::c_void,
7127         padfGeoTransformOut: *mut f64,
7128         pnPixels: *mut libc::c_int,
7129         pnLines: *mut libc::c_int,
7130         padfExtents: *mut f64,
7131         nOptions: libc::c_int,
7132     ) -> CPLErr::Type;
7133 }
7134 extern "C" {
GDALSerializeTransformer( pfnFunc: GDALTransformerFunc, pTransformArg: *mut libc::c_void, ) -> *mut CPLXMLNode7135     pub fn GDALSerializeTransformer(
7136         pfnFunc: GDALTransformerFunc,
7137         pTransformArg: *mut libc::c_void,
7138     ) -> *mut CPLXMLNode;
7139 }
7140 extern "C" {
GDALDeserializeTransformer( psTree: *mut CPLXMLNode, ppfnFunc: *mut GDALTransformerFunc, ppTransformArg: *mut *mut libc::c_void, ) -> CPLErr::Type7141     pub fn GDALDeserializeTransformer(
7142         psTree: *mut CPLXMLNode,
7143         ppfnFunc: *mut GDALTransformerFunc,
7144         ppTransformArg: *mut *mut libc::c_void,
7145     ) -> CPLErr::Type;
7146 }
7147 extern "C" {
GDALTransformGeolocations( hXBand: GDALRasterBandH, hYBand: GDALRasterBandH, hZBand: GDALRasterBandH, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, papszOptions: *mut *mut libc::c_char, ) -> CPLErr::Type7148     pub fn GDALTransformGeolocations(
7149         hXBand: GDALRasterBandH,
7150         hYBand: GDALRasterBandH,
7151         hZBand: GDALRasterBandH,
7152         pfnTransformer: GDALTransformerFunc,
7153         pTransformArg: *mut libc::c_void,
7154         pfnProgress: GDALProgressFunc,
7155         pProgressArg: *mut libc::c_void,
7156         papszOptions: *mut *mut libc::c_char,
7157     ) -> CPLErr::Type;
7158 }
7159 pub type GDALContourWriter = ::std::option::Option<
7160     unsafe extern "C" fn(
7161         dfLevel: f64,
7162         nPoints: libc::c_int,
7163         padfX: *mut f64,
7164         padfY: *mut f64,
7165         arg1: *mut libc::c_void,
7166     ) -> CPLErr::Type,
7167 >;
7168 pub type GDALContourGeneratorH = *mut libc::c_void;
7169 extern "C" {
GDAL_CG_Create( nWidth: libc::c_int, nHeight: libc::c_int, bNoDataSet: libc::c_int, dfNoDataValue: f64, dfContourInterval: f64, dfContourBase: f64, pfnWriter: GDALContourWriter, pCBData: *mut libc::c_void, ) -> GDALContourGeneratorH7170     pub fn GDAL_CG_Create(
7171         nWidth: libc::c_int,
7172         nHeight: libc::c_int,
7173         bNoDataSet: libc::c_int,
7174         dfNoDataValue: f64,
7175         dfContourInterval: f64,
7176         dfContourBase: f64,
7177         pfnWriter: GDALContourWriter,
7178         pCBData: *mut libc::c_void,
7179     ) -> GDALContourGeneratorH;
7180 }
7181 extern "C" {
GDAL_CG_FeedLine(hCG: GDALContourGeneratorH, padfScanline: *mut f64) -> CPLErr::Type7182     pub fn GDAL_CG_FeedLine(hCG: GDALContourGeneratorH, padfScanline: *mut f64) -> CPLErr::Type;
7183 }
7184 extern "C" {
GDAL_CG_Destroy(hCG: GDALContourGeneratorH)7185     pub fn GDAL_CG_Destroy(hCG: GDALContourGeneratorH);
7186 }
7187 extern "C" {
OGRContourWriter( arg1: f64, arg2: libc::c_int, arg3: *mut f64, arg4: *mut f64, pInfo: *mut libc::c_void, ) -> CPLErr::Type7188     pub fn OGRContourWriter(
7189         arg1: f64,
7190         arg2: libc::c_int,
7191         arg3: *mut f64,
7192         arg4: *mut f64,
7193         pInfo: *mut libc::c_void,
7194     ) -> CPLErr::Type;
7195 }
7196 extern "C" {
GDALContourGenerate( hBand: GDALRasterBandH, dfContourInterval: f64, dfContourBase: f64, nFixedLevelCount: libc::c_int, padfFixedLevels: *mut f64, bUseNoData: libc::c_int, dfNoDataValue: f64, hLayer: *mut libc::c_void, iIDField: libc::c_int, iElevField: libc::c_int, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type7197     pub fn GDALContourGenerate(
7198         hBand: GDALRasterBandH,
7199         dfContourInterval: f64,
7200         dfContourBase: f64,
7201         nFixedLevelCount: libc::c_int,
7202         padfFixedLevels: *mut f64,
7203         bUseNoData: libc::c_int,
7204         dfNoDataValue: f64,
7205         hLayer: *mut libc::c_void,
7206         iIDField: libc::c_int,
7207         iElevField: libc::c_int,
7208         pfnProgress: GDALProgressFunc,
7209         pProgressArg: *mut libc::c_void,
7210     ) -> CPLErr::Type;
7211 }
7212 extern "C" {
7213 
GDALRasterizeGeometries( hDS: GDALDatasetH, nBandCount: libc::c_int, panBandList: *mut libc::c_int, nGeomCount: libc::c_int, pahGeometries: *mut OGRGeometryH, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, padfGeomBurnValue: *mut f64, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type7214     pub fn GDALRasterizeGeometries(
7215         hDS: GDALDatasetH,
7216         nBandCount: libc::c_int,
7217         panBandList: *mut libc::c_int,
7218         nGeomCount: libc::c_int,
7219         pahGeometries: *mut OGRGeometryH,
7220         pfnTransformer: GDALTransformerFunc,
7221         pTransformArg: *mut libc::c_void,
7222         padfGeomBurnValue: *mut f64,
7223         papszOptions: *mut *mut libc::c_char,
7224         pfnProgress: GDALProgressFunc,
7225         pProgressArg: *mut libc::c_void,
7226     ) -> CPLErr::Type;
7227 }
7228 extern "C" {
GDALRasterizeLayers( hDS: GDALDatasetH, nBandCount: libc::c_int, panBandList: *mut libc::c_int, nLayerCount: libc::c_int, pahLayers: *mut OGRLayerH, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, padfLayerBurnValues: *mut f64, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type7229     pub fn GDALRasterizeLayers(
7230         hDS: GDALDatasetH,
7231         nBandCount: libc::c_int,
7232         panBandList: *mut libc::c_int,
7233         nLayerCount: libc::c_int,
7234         pahLayers: *mut OGRLayerH,
7235         pfnTransformer: GDALTransformerFunc,
7236         pTransformArg: *mut libc::c_void,
7237         padfLayerBurnValues: *mut f64,
7238         papszOptions: *mut *mut libc::c_char,
7239         pfnProgress: GDALProgressFunc,
7240         pProgressArg: *mut libc::c_void,
7241     ) -> CPLErr::Type;
7242 }
7243 extern "C" {
GDALRasterizeLayersBuf( pData: *mut libc::c_void, nBufXSize: libc::c_int, nBufYSize: libc::c_int, eBufType: GDALDataType::Type, nPixelSpace: libc::c_int, nLineSpace: libc::c_int, nLayerCount: libc::c_int, pahLayers: *mut OGRLayerH, pszDstProjection: *const libc::c_char, padfDstGeoTransform: *mut f64, pfnTransformer: GDALTransformerFunc, pTransformArg: *mut libc::c_void, dfBurnValue: f64, papszOptions: *mut *mut libc::c_char, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type7244     pub fn GDALRasterizeLayersBuf(
7245         pData: *mut libc::c_void,
7246         nBufXSize: libc::c_int,
7247         nBufYSize: libc::c_int,
7248         eBufType: GDALDataType::Type,
7249         nPixelSpace: libc::c_int,
7250         nLineSpace: libc::c_int,
7251         nLayerCount: libc::c_int,
7252         pahLayers: *mut OGRLayerH,
7253         pszDstProjection: *const libc::c_char,
7254         padfDstGeoTransform: *mut f64,
7255         pfnTransformer: GDALTransformerFunc,
7256         pTransformArg: *mut libc::c_void,
7257         dfBurnValue: f64,
7258         papszOptions: *mut *mut libc::c_char,
7259         pfnProgress: GDALProgressFunc,
7260         pProgressArg: *mut libc::c_void,
7261     ) -> CPLErr::Type;
7262 }
7263 pub mod GDALGridAlgorithm {
7264     /// Gridding Algorithms
7265     pub type Type = u32;
7266     /// Inverse distance to a power
7267     pub const GGA_InverseDistanceToAPower: Type = 1;
7268     /// Moving Average
7269     pub const GGA_MovingAverage: Type = 2;
7270     /// Nearest Neighbor
7271     pub const GGA_NearestNeighbor: Type = 3;
7272     /// Minimum Value (Data Metric)
7273     pub const GGA_MetricMinimum: Type = 4;
7274     /// Maximum Value (Data Metric)
7275     pub const GGA_MetricMaximum: Type = 5;
7276     /// Data Range (Data Metric)
7277     pub const GGA_MetricRange: Type = 6;
7278     /// Number of Points (Data Metric)
7279     pub const GGA_MetricCount: Type = 7;
7280     /// Average Distance (Data Metric)
7281     pub const GGA_MetricAverageDistance: Type = 8;
7282     /// Average Distance Between Data Points (Data Metric)
7283     pub const GGA_MetricAverageDistancePts: Type = 9;
7284     /// Linear interpolation (from Delaunay triangulation. Since GDAL 2.1
7285     pub const GGA_Linear: Type = 10;
7286     /// Inverse distance to a power with nearest neighbor search for max points
7287     pub const GGA_InverseDistanceToAPowerNearestNeighbor: Type = 11;
7288 }
7289 extern "C" {
GDALGridCreate( arg1: GDALGridAlgorithm::Type, arg2: *const libc::c_void, arg3: GUInt32, arg4: *const f64, arg5: *const f64, arg6: *const f64, arg7: f64, arg8: f64, arg9: f64, arg10: f64, arg11: GUInt32, arg12: GUInt32, arg13: GDALDataType::Type, arg14: *mut libc::c_void, arg15: GDALProgressFunc, arg16: *mut libc::c_void, ) -> CPLErr::Type7290     pub fn GDALGridCreate(
7291         arg1: GDALGridAlgorithm::Type,
7292         arg2: *const libc::c_void,
7293         arg3: GUInt32,
7294         arg4: *const f64,
7295         arg5: *const f64,
7296         arg6: *const f64,
7297         arg7: f64,
7298         arg8: f64,
7299         arg9: f64,
7300         arg10: f64,
7301         arg11: GUInt32,
7302         arg12: GUInt32,
7303         arg13: GDALDataType::Type,
7304         arg14: *mut libc::c_void,
7305         arg15: GDALProgressFunc,
7306         arg16: *mut libc::c_void,
7307     ) -> CPLErr::Type;
7308 }
7309 #[repr(C)]
7310 #[derive(Debug, Copy, Clone)]
7311 pub struct GDALGridContext {
7312     _unused: [u8; 0],
7313 }
7314 extern "C" {
GDALGridContextCreate( eAlgorithm: GDALGridAlgorithm::Type, poOptions: *const libc::c_void, nPoints: GUInt32, padfX: *const f64, padfY: *const f64, padfZ: *const f64, bCallerWillKeepPointArraysAlive: libc::c_int, ) -> *mut GDALGridContext7315     pub fn GDALGridContextCreate(
7316         eAlgorithm: GDALGridAlgorithm::Type,
7317         poOptions: *const libc::c_void,
7318         nPoints: GUInt32,
7319         padfX: *const f64,
7320         padfY: *const f64,
7321         padfZ: *const f64,
7322         bCallerWillKeepPointArraysAlive: libc::c_int,
7323     ) -> *mut GDALGridContext;
7324 }
7325 extern "C" {
GDALGridContextFree(psContext: *mut GDALGridContext)7326     pub fn GDALGridContextFree(psContext: *mut GDALGridContext);
7327 }
7328 extern "C" {
GDALGridContextProcess( psContext: *mut GDALGridContext, dfXMin: f64, dfXMax: f64, dfYMin: f64, dfYMax: f64, nXSize: GUInt32, nYSize: GUInt32, eType: GDALDataType::Type, pData: *mut libc::c_void, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, ) -> CPLErr::Type7329     pub fn GDALGridContextProcess(
7330         psContext: *mut GDALGridContext,
7331         dfXMin: f64,
7332         dfXMax: f64,
7333         dfYMin: f64,
7334         dfYMax: f64,
7335         nXSize: GUInt32,
7336         nYSize: GUInt32,
7337         eType: GDALDataType::Type,
7338         pData: *mut libc::c_void,
7339         pfnProgress: GDALProgressFunc,
7340         pProgressArg: *mut libc::c_void,
7341     ) -> CPLErr::Type;
7342 }
7343 extern "C" {
GDALComputeMatchingPoints( hFirstImage: GDALDatasetH, hSecondImage: GDALDatasetH, papszOptions: *mut *mut libc::c_char, pnGCPCount: *mut libc::c_int, ) -> *mut GDAL_GCP7344     pub fn GDALComputeMatchingPoints(
7345         hFirstImage: GDALDatasetH,
7346         hSecondImage: GDALDatasetH,
7347         papszOptions: *mut *mut libc::c_char,
7348         pnGCPCount: *mut libc::c_int,
7349     ) -> *mut GDAL_GCP;
7350 }
7351 
7352 #[repr(C)]
7353 #[derive(Debug, Copy, Clone)]
7354 pub struct GDALTriFacet {
7355     pub anVertexIdx: [libc::c_int; 3usize],
7356     pub anNeighborIdx: [libc::c_int; 3usize],
7357 }
7358 #[test]
bindgen_test_layout_GDALTriFacet()7359 fn bindgen_test_layout_GDALTriFacet() {
7360     assert_eq!(
7361         ::std::mem::size_of::<GDALTriFacet>(),
7362         24usize,
7363         concat!("Size of: ", stringify!(GDALTriFacet))
7364     );
7365     assert_eq!(
7366         ::std::mem::align_of::<GDALTriFacet>(),
7367         4usize,
7368         concat!("Alignment of ", stringify!(GDALTriFacet))
7369     );
7370     assert_eq!(
7371         unsafe { &(*(::std::ptr::null::<GDALTriFacet>())).anVertexIdx as *const _ as usize },
7372         0usize,
7373         concat!(
7374             "Offset of field: ",
7375             stringify!(GDALTriFacet),
7376             "::",
7377             stringify!(anVertexIdx)
7378         )
7379     );
7380     assert_eq!(
7381         unsafe { &(*(::std::ptr::null::<GDALTriFacet>())).anNeighborIdx as *const _ as usize },
7382         12usize,
7383         concat!(
7384             "Offset of field: ",
7385             stringify!(GDALTriFacet),
7386             "::",
7387             stringify!(anNeighborIdx)
7388         )
7389     );
7390 }
7391 #[repr(C)]
7392 #[derive(Debug, Copy, Clone)]
7393 pub struct GDALTriBarycentricCoefficients {
7394     pub dfMul1X: f64,
7395     pub dfMul1Y: f64,
7396     pub dfMul2X: f64,
7397     pub dfMul2Y: f64,
7398     pub dfCstX: f64,
7399     pub dfCstY: f64,
7400 }
7401 #[test]
bindgen_test_layout_GDALTriBarycentricCoefficients()7402 fn bindgen_test_layout_GDALTriBarycentricCoefficients() {
7403     assert_eq!(
7404         ::std::mem::size_of::<GDALTriBarycentricCoefficients>(),
7405         48usize,
7406         concat!("Size of: ", stringify!(GDALTriBarycentricCoefficients))
7407     );
7408     assert_eq!(
7409         ::std::mem::align_of::<GDALTriBarycentricCoefficients>(),
7410         8usize,
7411         concat!("Alignment of ", stringify!(GDALTriBarycentricCoefficients))
7412     );
7413     assert_eq!(
7414         unsafe {
7415             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfMul1X as *const _ as usize
7416         },
7417         0usize,
7418         concat!(
7419             "Offset of field: ",
7420             stringify!(GDALTriBarycentricCoefficients),
7421             "::",
7422             stringify!(dfMul1X)
7423         )
7424     );
7425     assert_eq!(
7426         unsafe {
7427             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfMul1Y as *const _ as usize
7428         },
7429         8usize,
7430         concat!(
7431             "Offset of field: ",
7432             stringify!(GDALTriBarycentricCoefficients),
7433             "::",
7434             stringify!(dfMul1Y)
7435         )
7436     );
7437     assert_eq!(
7438         unsafe {
7439             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfMul2X as *const _ as usize
7440         },
7441         16usize,
7442         concat!(
7443             "Offset of field: ",
7444             stringify!(GDALTriBarycentricCoefficients),
7445             "::",
7446             stringify!(dfMul2X)
7447         )
7448     );
7449     assert_eq!(
7450         unsafe {
7451             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfMul2Y as *const _ as usize
7452         },
7453         24usize,
7454         concat!(
7455             "Offset of field: ",
7456             stringify!(GDALTriBarycentricCoefficients),
7457             "::",
7458             stringify!(dfMul2Y)
7459         )
7460     );
7461     assert_eq!(
7462         unsafe {
7463             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfCstX as *const _ as usize
7464         },
7465         32usize,
7466         concat!(
7467             "Offset of field: ",
7468             stringify!(GDALTriBarycentricCoefficients),
7469             "::",
7470             stringify!(dfCstX)
7471         )
7472     );
7473     assert_eq!(
7474         unsafe {
7475             &(*(::std::ptr::null::<GDALTriBarycentricCoefficients>())).dfCstY as *const _ as usize
7476         },
7477         40usize,
7478         concat!(
7479             "Offset of field: ",
7480             stringify!(GDALTriBarycentricCoefficients),
7481             "::",
7482             stringify!(dfCstY)
7483         )
7484     );
7485 }
7486 #[repr(C)]
7487 #[derive(Debug, Copy, Clone)]
7488 pub struct GDALTriangulation {
7489     pub nFacets: libc::c_int,
7490     pub pasFacets: *mut GDALTriFacet,
7491     pub pasFacetCoefficients: *mut GDALTriBarycentricCoefficients,
7492 }
7493 #[test]
bindgen_test_layout_GDALTriangulation()7494 fn bindgen_test_layout_GDALTriangulation() {
7495     assert_eq!(
7496         ::std::mem::size_of::<GDALTriangulation>(),
7497         24usize,
7498         concat!("Size of: ", stringify!(GDALTriangulation))
7499     );
7500     assert_eq!(
7501         ::std::mem::align_of::<GDALTriangulation>(),
7502         8usize,
7503         concat!("Alignment of ", stringify!(GDALTriangulation))
7504     );
7505     assert_eq!(
7506         unsafe { &(*(::std::ptr::null::<GDALTriangulation>())).nFacets as *const _ as usize },
7507         0usize,
7508         concat!(
7509             "Offset of field: ",
7510             stringify!(GDALTriangulation),
7511             "::",
7512             stringify!(nFacets)
7513         )
7514     );
7515     assert_eq!(
7516         unsafe { &(*(::std::ptr::null::<GDALTriangulation>())).pasFacets as *const _ as usize },
7517         8usize,
7518         concat!(
7519             "Offset of field: ",
7520             stringify!(GDALTriangulation),
7521             "::",
7522             stringify!(pasFacets)
7523         )
7524     );
7525     assert_eq!(
7526         unsafe {
7527             &(*(::std::ptr::null::<GDALTriangulation>())).pasFacetCoefficients as *const _ as usize
7528         },
7529         16usize,
7530         concat!(
7531             "Offset of field: ",
7532             stringify!(GDALTriangulation),
7533             "::",
7534             stringify!(pasFacetCoefficients)
7535         )
7536     );
7537 }
7538 extern "C" {
GDALHasTriangulation() -> libc::c_int7539     pub fn GDALHasTriangulation() -> libc::c_int;
7540 }
7541 extern "C" {
GDALTriangulationCreateDelaunay( nPoints: libc::c_int, padfX: *const f64, padfY: *const f64, ) -> *mut GDALTriangulation7542     pub fn GDALTriangulationCreateDelaunay(
7543         nPoints: libc::c_int,
7544         padfX: *const f64,
7545         padfY: *const f64,
7546     ) -> *mut GDALTriangulation;
7547 }
7548 extern "C" {
GDALTriangulationComputeBarycentricCoefficients( psDT: *mut GDALTriangulation, padfX: *const f64, padfY: *const f64, ) -> libc::c_int7549     pub fn GDALTriangulationComputeBarycentricCoefficients(
7550         psDT: *mut GDALTriangulation,
7551         padfX: *const f64,
7552         padfY: *const f64,
7553     ) -> libc::c_int;
7554 }
7555 extern "C" {
GDALTriangulationComputeBarycentricCoordinates( psDT: *const GDALTriangulation, nFacetIdx: libc::c_int, dfX: f64, dfY: f64, pdfL1: *mut f64, pdfL2: *mut f64, pdfL3: *mut f64, ) -> libc::c_int7556     pub fn GDALTriangulationComputeBarycentricCoordinates(
7557         psDT: *const GDALTriangulation,
7558         nFacetIdx: libc::c_int,
7559         dfX: f64,
7560         dfY: f64,
7561         pdfL1: *mut f64,
7562         pdfL2: *mut f64,
7563         pdfL3: *mut f64,
7564     ) -> libc::c_int;
7565 }
7566 extern "C" {
GDALTriangulationFindFacetBruteForce( psDT: *const GDALTriangulation, dfX: f64, dfY: f64, panOutputFacetIdx: *mut libc::c_int, ) -> libc::c_int7567     pub fn GDALTriangulationFindFacetBruteForce(
7568         psDT: *const GDALTriangulation,
7569         dfX: f64,
7570         dfY: f64,
7571         panOutputFacetIdx: *mut libc::c_int,
7572     ) -> libc::c_int;
7573 }
7574 extern "C" {
GDALTriangulationFindFacetDirected( psDT: *const GDALTriangulation, nFacetIdx: libc::c_int, dfX: f64, dfY: f64, panOutputFacetIdx: *mut libc::c_int, ) -> libc::c_int7575     pub fn GDALTriangulationFindFacetDirected(
7576         psDT: *const GDALTriangulation,
7577         nFacetIdx: libc::c_int,
7578         dfX: f64,
7579         dfY: f64,
7580         panOutputFacetIdx: *mut libc::c_int,
7581     ) -> libc::c_int;
7582 }
7583 extern "C" {
GDALTriangulationFree(psDT: *mut GDALTriangulation)7584     pub fn GDALTriangulationFree(psDT: *mut GDALTriangulation);
7585 }
7586 extern "C" {
GDALTriangulationTerminate()7587     pub fn GDALTriangulationTerminate();
7588 }
7589 pub type CPLThreadFunc = ::std::option::Option<unsafe extern "C" fn(arg1: *mut libc::c_void)>;
7590 extern "C" {
CPLLockFile(pszPath: *const libc::c_char, dfWaitInSeconds: f64) -> *mut libc::c_void7591     pub fn CPLLockFile(pszPath: *const libc::c_char, dfWaitInSeconds: f64) -> *mut libc::c_void;
7592 }
7593 extern "C" {
CPLUnlockFile(hLock: *mut libc::c_void)7594     pub fn CPLUnlockFile(hLock: *mut libc::c_void);
7595 }
7596 extern "C" {
CPLCreateMutex() -> *mut libc::c_void7597     pub fn CPLCreateMutex() -> *mut libc::c_void;
7598 }
7599 extern "C" {
CPLCreateMutexEx(nOptions: libc::c_int) -> *mut libc::c_void7600     pub fn CPLCreateMutexEx(nOptions: libc::c_int) -> *mut libc::c_void;
7601 }
7602 extern "C" {
CPLCreateOrAcquireMutex( arg1: *mut *mut libc::c_void, dfWaitInSeconds: f64, ) -> libc::c_int7603     pub fn CPLCreateOrAcquireMutex(
7604         arg1: *mut *mut libc::c_void,
7605         dfWaitInSeconds: f64,
7606     ) -> libc::c_int;
7607 }
7608 extern "C" {
CPLCreateOrAcquireMutexEx( arg1: *mut *mut libc::c_void, dfWaitInSeconds: f64, nOptions: libc::c_int, ) -> libc::c_int7609     pub fn CPLCreateOrAcquireMutexEx(
7610         arg1: *mut *mut libc::c_void,
7611         dfWaitInSeconds: f64,
7612         nOptions: libc::c_int,
7613     ) -> libc::c_int;
7614 }
7615 extern "C" {
CPLAcquireMutex(hMutex: *mut libc::c_void, dfWaitInSeconds: f64) -> libc::c_int7616     pub fn CPLAcquireMutex(hMutex: *mut libc::c_void, dfWaitInSeconds: f64) -> libc::c_int;
7617 }
7618 extern "C" {
CPLReleaseMutex(hMutex: *mut libc::c_void)7619     pub fn CPLReleaseMutex(hMutex: *mut libc::c_void);
7620 }
7621 extern "C" {
CPLDestroyMutex(hMutex: *mut libc::c_void)7622     pub fn CPLDestroyMutex(hMutex: *mut libc::c_void);
7623 }
7624 extern "C" {
CPLCleanupMasterMutex()7625     pub fn CPLCleanupMasterMutex();
7626 }
7627 extern "C" {
CPLCreateCond() -> *mut libc::c_void7628     pub fn CPLCreateCond() -> *mut libc::c_void;
7629 }
7630 extern "C" {
CPLCondWait(hCond: *mut libc::c_void, hMutex: *mut libc::c_void)7631     pub fn CPLCondWait(hCond: *mut libc::c_void, hMutex: *mut libc::c_void);
7632 }
7633 extern "C" {
CPLCondSignal(hCond: *mut libc::c_void)7634     pub fn CPLCondSignal(hCond: *mut libc::c_void);
7635 }
7636 extern "C" {
CPLCondBroadcast(hCond: *mut libc::c_void)7637     pub fn CPLCondBroadcast(hCond: *mut libc::c_void);
7638 }
7639 extern "C" {
CPLDestroyCond(hCond: *mut libc::c_void)7640     pub fn CPLDestroyCond(hCond: *mut libc::c_void);
7641 }
7642 extern "C" {
7643     /// Contrary to what its name suggests, CPLGetPID() actually returns the thread id
CPLGetPID() -> GIntBig7644     pub fn CPLGetPID() -> GIntBig;
7645 }
7646 extern "C" {
CPLGetCurrentProcessID() -> libc::c_int7647     pub fn CPLGetCurrentProcessID() -> libc::c_int;
7648 }
7649 extern "C" {
CPLCreateThread(pfnMain: CPLThreadFunc, pArg: *mut libc::c_void) -> libc::c_int7650     pub fn CPLCreateThread(pfnMain: CPLThreadFunc, pArg: *mut libc::c_void) -> libc::c_int;
7651 }
7652 extern "C" {
CPLCreateJoinableThread( pfnMain: CPLThreadFunc, pArg: *mut libc::c_void, ) -> *mut libc::c_void7653     pub fn CPLCreateJoinableThread(
7654         pfnMain: CPLThreadFunc,
7655         pArg: *mut libc::c_void,
7656     ) -> *mut libc::c_void;
7657 }
7658 extern "C" {
CPLJoinThread(hJoinableThread: *mut libc::c_void)7659     pub fn CPLJoinThread(hJoinableThread: *mut libc::c_void);
7660 }
7661 extern "C" {
CPLSleep(dfWaitInSeconds: f64)7662     pub fn CPLSleep(dfWaitInSeconds: f64);
7663 }
7664 extern "C" {
CPLGetThreadingModel() -> *const libc::c_char7665     pub fn CPLGetThreadingModel() -> *const libc::c_char;
7666 }
7667 extern "C" {
CPLGetNumCPUs() -> libc::c_int7668     pub fn CPLGetNumCPUs() -> libc::c_int;
7669 }
7670 #[repr(C)]
7671 #[derive(Debug, Copy, Clone)]
7672 pub struct _CPLLock {
7673     _unused: [u8; 0],
7674 }
7675 pub type CPLLock = _CPLLock;
7676 pub mod CPLLockType {
7677     pub type Type = u32;
7678     pub const LOCK_RECURSIVE_MUTEX: Type = 0;
7679     pub const LOCK_ADAPTIVE_MUTEX: Type = 1;
7680     pub const LOCK_SPIN: Type = 2;
7681 }
7682 extern "C" {
CPLCreateLock(eType: CPLLockType::Type) -> *mut CPLLock7683     pub fn CPLCreateLock(eType: CPLLockType::Type) -> *mut CPLLock;
7684 }
7685 extern "C" {
CPLCreateOrAcquireLock(arg1: *mut *mut CPLLock, eType: CPLLockType::Type) -> libc::c_int7686     pub fn CPLCreateOrAcquireLock(arg1: *mut *mut CPLLock, eType: CPLLockType::Type)
7687         -> libc::c_int;
7688 }
7689 extern "C" {
CPLAcquireLock(arg1: *mut CPLLock) -> libc::c_int7690     pub fn CPLAcquireLock(arg1: *mut CPLLock) -> libc::c_int;
7691 }
7692 extern "C" {
CPLReleaseLock(arg1: *mut CPLLock)7693     pub fn CPLReleaseLock(arg1: *mut CPLLock);
7694 }
7695 extern "C" {
CPLDestroyLock(arg1: *mut CPLLock)7696     pub fn CPLDestroyLock(arg1: *mut CPLLock);
7697 }
7698 extern "C" {
CPLLockSetDebugPerf(arg1: *mut CPLLock, bEnableIn: libc::c_int)7699     pub fn CPLLockSetDebugPerf(arg1: *mut CPLLock, bEnableIn: libc::c_int);
7700 }
7701 extern "C" {
CPLGetTLS(nIndex: libc::c_int) -> *mut libc::c_void7702     pub fn CPLGetTLS(nIndex: libc::c_int) -> *mut libc::c_void;
7703 }
7704 extern "C" {
CPLGetTLSEx( nIndex: libc::c_int, pbMemoryErrorOccurred: *mut libc::c_int, ) -> *mut libc::c_void7705     pub fn CPLGetTLSEx(
7706         nIndex: libc::c_int,
7707         pbMemoryErrorOccurred: *mut libc::c_int,
7708     ) -> *mut libc::c_void;
7709 }
7710 extern "C" {
CPLSetTLS(nIndex: libc::c_int, pData: *mut libc::c_void, bFreeOnExit: libc::c_int)7711     pub fn CPLSetTLS(nIndex: libc::c_int, pData: *mut libc::c_void, bFreeOnExit: libc::c_int);
7712 }
7713 pub type CPLTLSFreeFunc = ::std::option::Option<unsafe extern "C" fn(pData: *mut libc::c_void)>;
7714 extern "C" {
CPLSetTLSWithFreeFunc( nIndex: libc::c_int, pData: *mut libc::c_void, pfnFree: CPLTLSFreeFunc, )7715     pub fn CPLSetTLSWithFreeFunc(
7716         nIndex: libc::c_int,
7717         pData: *mut libc::c_void,
7718         pfnFree: CPLTLSFreeFunc,
7719     );
7720 }
7721 extern "C" {
CPLSetTLSWithFreeFuncEx( nIndex: libc::c_int, pData: *mut libc::c_void, pfnFree: CPLTLSFreeFunc, pbMemoryErrorOccurred: *mut libc::c_int, )7722     pub fn CPLSetTLSWithFreeFuncEx(
7723         nIndex: libc::c_int,
7724         pData: *mut libc::c_void,
7725         pfnFree: CPLTLSFreeFunc,
7726         pbMemoryErrorOccurred: *mut libc::c_int,
7727     );
7728 }
7729 extern "C" {
CPLCleanupTLS()7730     pub fn CPLCleanupTLS();
7731 }
7732 pub mod GDALResampleAlg {
7733     /// Warp Resampling Algorithm
7734     pub type Type = u32;
7735     /// Nearest neighbour (select on one input pixel)
7736     pub const GRA_NearestNeighbour: Type = 0;
7737     /// Bilinear (2x2 kernel)
7738     pub const GRA_Bilinear: Type = 1;
7739     /// Cubic Convolution Approximation (4x4 kernel)
7740     pub const GRA_Cubic: Type = 2;
7741     /// Cubic B-Spline Approximation (4x4 kernel)
7742     pub const GRA_CubicSpline: Type = 3;
7743     /// Lanczos windowed sinc interpolation (6x6 kernel)
7744     pub const GRA_Lanczos: Type = 4;
7745     /// Average (computes the average of all non-NODATA contributing pixels)
7746     pub const GRA_Average: Type = 5;
7747     /// Mode (selects the value which appears most often of all the sampled points)
7748     pub const GRA_Mode: Type = 6;
7749     /// Max (selects maximum of all non-NODATA contributing pixels)
7750     pub const GRA_Max: Type = 8;
7751     /// Min (selects minimum of all non-NODATA contributing pixels)
7752     pub const GRA_Min: Type = 9;
7753     /// Med (selects median of all non-NODATA contributing pixels)
7754     pub const GRA_Med: Type = 10;
7755     /// Q1 (selects first quartile of all non-NODATA contributing pixels)
7756     pub const GRA_Q1: Type = 11;
7757     /// Q3 (selects third quartile of all non-NODATA contributing pixels)
7758     pub const GRA_Q3: Type = 12;
7759 }
7760 pub type GDALMaskFunc = ::std::option::Option<
7761     unsafe extern "C" fn(
7762         pMaskFuncArg: *mut libc::c_void,
7763         nBandCount: libc::c_int,
7764         eType: GDALDataType::Type,
7765         nXOff: libc::c_int,
7766         nYOff: libc::c_int,
7767         nXSize: libc::c_int,
7768         nYSize: libc::c_int,
7769         papabyImageData: *mut *mut GByte,
7770         bMaskIsFloat: libc::c_int,
7771         pMask: *mut libc::c_void,
7772     ) -> libc::c_int,
7773 >;
7774 extern "C" {
GDALWarpNoDataMasker( pMaskFuncArg: *mut libc::c_void, nBandCount: libc::c_int, eType: GDALDataType::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, papabyImageData: *mut *mut GByte, bMaskIsFloat: libc::c_int, pValidityMask: *mut libc::c_void, pbOutAllValid: *mut libc::c_int, ) -> CPLErr::Type7775     pub fn GDALWarpNoDataMasker(
7776         pMaskFuncArg: *mut libc::c_void,
7777         nBandCount: libc::c_int,
7778         eType: GDALDataType::Type,
7779         nXOff: libc::c_int,
7780         nYOff: libc::c_int,
7781         nXSize: libc::c_int,
7782         nYSize: libc::c_int,
7783         papabyImageData: *mut *mut GByte,
7784         bMaskIsFloat: libc::c_int,
7785         pValidityMask: *mut libc::c_void,
7786         pbOutAllValid: *mut libc::c_int,
7787     ) -> CPLErr::Type;
7788 }
7789 extern "C" {
GDALWarpDstAlphaMasker( pMaskFuncArg: *mut libc::c_void, nBandCount: libc::c_int, eType: GDALDataType::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, arg1: *mut *mut GByte, bMaskIsFloat: libc::c_int, pValidityMask: *mut libc::c_void, ) -> CPLErr::Type7790     pub fn GDALWarpDstAlphaMasker(
7791         pMaskFuncArg: *mut libc::c_void,
7792         nBandCount: libc::c_int,
7793         eType: GDALDataType::Type,
7794         nXOff: libc::c_int,
7795         nYOff: libc::c_int,
7796         nXSize: libc::c_int,
7797         nYSize: libc::c_int,
7798         arg1: *mut *mut GByte,
7799         bMaskIsFloat: libc::c_int,
7800         pValidityMask: *mut libc::c_void,
7801     ) -> CPLErr::Type;
7802 }
7803 extern "C" {
GDALWarpSrcAlphaMasker( pMaskFuncArg: *mut libc::c_void, nBandCount: libc::c_int, eType: GDALDataType::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, arg1: *mut *mut GByte, bMaskIsFloat: libc::c_int, pValidityMask: *mut libc::c_void, pbOutAllOpaque: *mut libc::c_int, ) -> CPLErr::Type7804     pub fn GDALWarpSrcAlphaMasker(
7805         pMaskFuncArg: *mut libc::c_void,
7806         nBandCount: libc::c_int,
7807         eType: GDALDataType::Type,
7808         nXOff: libc::c_int,
7809         nYOff: libc::c_int,
7810         nXSize: libc::c_int,
7811         nYSize: libc::c_int,
7812         arg1: *mut *mut GByte,
7813         bMaskIsFloat: libc::c_int,
7814         pValidityMask: *mut libc::c_void,
7815         pbOutAllOpaque: *mut libc::c_int,
7816     ) -> CPLErr::Type;
7817 }
7818 extern "C" {
GDALWarpSrcMaskMasker( pMaskFuncArg: *mut libc::c_void, nBandCount: libc::c_int, eType: GDALDataType::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, arg1: *mut *mut GByte, bMaskIsFloat: libc::c_int, pValidityMask: *mut libc::c_void, ) -> CPLErr::Type7819     pub fn GDALWarpSrcMaskMasker(
7820         pMaskFuncArg: *mut libc::c_void,
7821         nBandCount: libc::c_int,
7822         eType: GDALDataType::Type,
7823         nXOff: libc::c_int,
7824         nYOff: libc::c_int,
7825         nXSize: libc::c_int,
7826         nYSize: libc::c_int,
7827         arg1: *mut *mut GByte,
7828         bMaskIsFloat: libc::c_int,
7829         pValidityMask: *mut libc::c_void,
7830     ) -> CPLErr::Type;
7831 }
7832 extern "C" {
GDALWarpCutlineMasker( pMaskFuncArg: *mut libc::c_void, nBandCount: libc::c_int, eType: GDALDataType::Type, nXOff: libc::c_int, nYOff: libc::c_int, nXSize: libc::c_int, nYSize: libc::c_int, arg1: *mut *mut GByte, bMaskIsFloat: libc::c_int, pValidityMask: *mut libc::c_void, ) -> CPLErr::Type7833     pub fn GDALWarpCutlineMasker(
7834         pMaskFuncArg: *mut libc::c_void,
7835         nBandCount: libc::c_int,
7836         eType: GDALDataType::Type,
7837         nXOff: libc::c_int,
7838         nYOff: libc::c_int,
7839         nXSize: libc::c_int,
7840         nYSize: libc::c_int,
7841         arg1: *mut *mut GByte,
7842         bMaskIsFloat: libc::c_int,
7843         pValidityMask: *mut libc::c_void,
7844     ) -> CPLErr::Type;
7845 }
7846 /// Warp control options for use with GDALWarpOperation::Initialize()
7847 #[repr(C)]
7848 #[derive(Debug, Copy, Clone)]
7849 pub struct GDALWarpOptions {
7850     pub papszWarpOptions: *mut *mut libc::c_char,
7851     /// In bytes, 0.0 for internal default
7852     pub dfWarpMemoryLimit: f64,
7853     /// Resampling algorithm to use
7854     pub eResampleAlg: GDALResampleAlg::Type,
7855     /// data type to use during warp operation, GDT_Unknown lets the algorithm
7856     /// select the type
7857     pub eWorkingDataType: GDALDataType::Type,
7858     /// Source image dataset.
7859     pub hSrcDS: GDALDatasetH,
7860     /// Destination image dataset - may be NULL if only using GDALWarpOperation::WarpRegionToBuffer().
7861     pub hDstDS: GDALDatasetH,
7862     /// Number of bands to process, may be 0 to select all bands.
7863     pub nBandCount: libc::c_int,
7864     /// The band numbers for the source bands to process (1 based)
7865     pub panSrcBands: *mut libc::c_int,
7866     /// The band numbers for the destination bands to process (1 based)
7867     pub panDstBands: *mut libc::c_int,
7868     /// The source band so use as an alpha (transparency) value, 0=disabled
7869     pub nSrcAlphaBand: libc::c_int,
7870     /// The dest. band so use as an alpha (transparency) value, 0=disabled
7871     pub nDstAlphaBand: libc::c_int,
7872     /// The "nodata" value real component for each input band, if NULL there isn't one
7873     pub padfSrcNoDataReal: *mut f64,
7874     /// The "nodata" value imaginary component - may be NULL even if real
7875     /// component is provided.
7876     pub padfSrcNoDataImag: *mut f64,
7877     /// The "nodata" value real component for each output band, if NULL there isn't one
7878     pub padfDstNoDataReal: *mut f64,
7879     /// The "nodata" value imaginary component - may be NULL even if real
7880     /// component is provided.
7881     pub padfDstNoDataImag: *mut f64,
7882     /// GDALProgressFunc() compatible progress reporting function, or NULL
7883     /// if there isn't one.
7884     pub pfnProgress: GDALProgressFunc,
7885     /// Callback argument to be passed to pfnProgress.
7886     pub pProgressArg: *mut libc::c_void,
7887     /// Type of spatial point transformer function
7888     pub pfnTransformer: GDALTransformerFunc,
7889     /// Handle to image transformer setup structure
7890     pub pTransformerArg: *mut libc::c_void,
7891     pub papfnSrcPerBandValidityMaskFunc: *mut GDALMaskFunc,
7892     pub papSrcPerBandValidityMaskFuncArg: *mut *mut libc::c_void,
7893     pub pfnSrcValidityMaskFunc: GDALMaskFunc,
7894     pub pSrcValidityMaskFuncArg: *mut libc::c_void,
7895     pub pfnSrcDensityMaskFunc: GDALMaskFunc,
7896     pub pSrcDensityMaskFuncArg: *mut libc::c_void,
7897     pub pfnDstDensityMaskFunc: GDALMaskFunc,
7898     pub pDstDensityMaskFuncArg: *mut libc::c_void,
7899     pub pfnDstValidityMaskFunc: GDALMaskFunc,
7900     pub pDstValidityMaskFuncArg: *mut libc::c_void,
7901     pub pfnPreWarpChunkProcessor: ::std::option::Option<
7902         unsafe extern "C" fn(pKern: *mut libc::c_void, pArg: *mut libc::c_void) -> CPLErr::Type,
7903     >,
7904     pub pPreWarpProcessorArg: *mut libc::c_void,
7905     pub pfnPostWarpChunkProcessor: ::std::option::Option<
7906         unsafe extern "C" fn(pKern: *mut libc::c_void, pArg: *mut libc::c_void) -> CPLErr::Type,
7907     >,
7908     pub pPostWarpProcessorArg: *mut libc::c_void,
7909     /// Optional OGRPolygonH for a masking cutline.
7910     pub hCutline: *mut libc::c_void,
7911     /// Optional blending distance to apply across cutline in pixels, default is zero.
7912     pub dfCutlineBlendDist: f64,
7913 }
7914 #[test]
bindgen_test_layout_GDALWarpOptions()7915 fn bindgen_test_layout_GDALWarpOptions() {
7916     assert_eq!(
7917         ::std::mem::size_of::<GDALWarpOptions>(),
7918         264usize,
7919         concat!("Size of: ", stringify!(GDALWarpOptions))
7920     );
7921     assert_eq!(
7922         ::std::mem::align_of::<GDALWarpOptions>(),
7923         8usize,
7924         concat!("Alignment of ", stringify!(GDALWarpOptions))
7925     );
7926     assert_eq!(
7927         unsafe {
7928             &(*(::std::ptr::null::<GDALWarpOptions>())).papszWarpOptions as *const _ as usize
7929         },
7930         0usize,
7931         concat!(
7932             "Offset of field: ",
7933             stringify!(GDALWarpOptions),
7934             "::",
7935             stringify!(papszWarpOptions)
7936         )
7937     );
7938     assert_eq!(
7939         unsafe {
7940             &(*(::std::ptr::null::<GDALWarpOptions>())).dfWarpMemoryLimit as *const _ as usize
7941         },
7942         8usize,
7943         concat!(
7944             "Offset of field: ",
7945             stringify!(GDALWarpOptions),
7946             "::",
7947             stringify!(dfWarpMemoryLimit)
7948         )
7949     );
7950     assert_eq!(
7951         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).eResampleAlg as *const _ as usize },
7952         16usize,
7953         concat!(
7954             "Offset of field: ",
7955             stringify!(GDALWarpOptions),
7956             "::",
7957             stringify!(eResampleAlg)
7958         )
7959     );
7960     assert_eq!(
7961         unsafe {
7962             &(*(::std::ptr::null::<GDALWarpOptions>())).eWorkingDataType as *const _ as usize
7963         },
7964         20usize,
7965         concat!(
7966             "Offset of field: ",
7967             stringify!(GDALWarpOptions),
7968             "::",
7969             stringify!(eWorkingDataType)
7970         )
7971     );
7972     assert_eq!(
7973         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).hSrcDS as *const _ as usize },
7974         24usize,
7975         concat!(
7976             "Offset of field: ",
7977             stringify!(GDALWarpOptions),
7978             "::",
7979             stringify!(hSrcDS)
7980         )
7981     );
7982     assert_eq!(
7983         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).hDstDS as *const _ as usize },
7984         32usize,
7985         concat!(
7986             "Offset of field: ",
7987             stringify!(GDALWarpOptions),
7988             "::",
7989             stringify!(hDstDS)
7990         )
7991     );
7992     assert_eq!(
7993         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).nBandCount as *const _ as usize },
7994         40usize,
7995         concat!(
7996             "Offset of field: ",
7997             stringify!(GDALWarpOptions),
7998             "::",
7999             stringify!(nBandCount)
8000         )
8001     );
8002     assert_eq!(
8003         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).panSrcBands as *const _ as usize },
8004         48usize,
8005         concat!(
8006             "Offset of field: ",
8007             stringify!(GDALWarpOptions),
8008             "::",
8009             stringify!(panSrcBands)
8010         )
8011     );
8012     assert_eq!(
8013         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).panDstBands as *const _ as usize },
8014         56usize,
8015         concat!(
8016             "Offset of field: ",
8017             stringify!(GDALWarpOptions),
8018             "::",
8019             stringify!(panDstBands)
8020         )
8021     );
8022     assert_eq!(
8023         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).nSrcAlphaBand as *const _ as usize },
8024         64usize,
8025         concat!(
8026             "Offset of field: ",
8027             stringify!(GDALWarpOptions),
8028             "::",
8029             stringify!(nSrcAlphaBand)
8030         )
8031     );
8032     assert_eq!(
8033         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).nDstAlphaBand as *const _ as usize },
8034         68usize,
8035         concat!(
8036             "Offset of field: ",
8037             stringify!(GDALWarpOptions),
8038             "::",
8039             stringify!(nDstAlphaBand)
8040         )
8041     );
8042     assert_eq!(
8043         unsafe {
8044             &(*(::std::ptr::null::<GDALWarpOptions>())).padfSrcNoDataReal as *const _ as usize
8045         },
8046         72usize,
8047         concat!(
8048             "Offset of field: ",
8049             stringify!(GDALWarpOptions),
8050             "::",
8051             stringify!(padfSrcNoDataReal)
8052         )
8053     );
8054     assert_eq!(
8055         unsafe {
8056             &(*(::std::ptr::null::<GDALWarpOptions>())).padfSrcNoDataImag as *const _ as usize
8057         },
8058         80usize,
8059         concat!(
8060             "Offset of field: ",
8061             stringify!(GDALWarpOptions),
8062             "::",
8063             stringify!(padfSrcNoDataImag)
8064         )
8065     );
8066     assert_eq!(
8067         unsafe {
8068             &(*(::std::ptr::null::<GDALWarpOptions>())).padfDstNoDataReal as *const _ as usize
8069         },
8070         88usize,
8071         concat!(
8072             "Offset of field: ",
8073             stringify!(GDALWarpOptions),
8074             "::",
8075             stringify!(padfDstNoDataReal)
8076         )
8077     );
8078     assert_eq!(
8079         unsafe {
8080             &(*(::std::ptr::null::<GDALWarpOptions>())).padfDstNoDataImag as *const _ as usize
8081         },
8082         96usize,
8083         concat!(
8084             "Offset of field: ",
8085             stringify!(GDALWarpOptions),
8086             "::",
8087             stringify!(padfDstNoDataImag)
8088         )
8089     );
8090     assert_eq!(
8091         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).pfnProgress as *const _ as usize },
8092         104usize,
8093         concat!(
8094             "Offset of field: ",
8095             stringify!(GDALWarpOptions),
8096             "::",
8097             stringify!(pfnProgress)
8098         )
8099     );
8100     assert_eq!(
8101         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).pProgressArg as *const _ as usize },
8102         112usize,
8103         concat!(
8104             "Offset of field: ",
8105             stringify!(GDALWarpOptions),
8106             "::",
8107             stringify!(pProgressArg)
8108         )
8109     );
8110     assert_eq!(
8111         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).pfnTransformer as *const _ as usize },
8112         120usize,
8113         concat!(
8114             "Offset of field: ",
8115             stringify!(GDALWarpOptions),
8116             "::",
8117             stringify!(pfnTransformer)
8118         )
8119     );
8120     assert_eq!(
8121         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).pTransformerArg as *const _ as usize },
8122         128usize,
8123         concat!(
8124             "Offset of field: ",
8125             stringify!(GDALWarpOptions),
8126             "::",
8127             stringify!(pTransformerArg)
8128         )
8129     );
8130     assert_eq!(
8131         unsafe {
8132             &(*(::std::ptr::null::<GDALWarpOptions>())).papfnSrcPerBandValidityMaskFunc as *const _
8133                 as usize
8134         },
8135         136usize,
8136         concat!(
8137             "Offset of field: ",
8138             stringify!(GDALWarpOptions),
8139             "::",
8140             stringify!(papfnSrcPerBandValidityMaskFunc)
8141         )
8142     );
8143     assert_eq!(
8144         unsafe {
8145             &(*(::std::ptr::null::<GDALWarpOptions>())).papSrcPerBandValidityMaskFuncArg as *const _
8146                 as usize
8147         },
8148         144usize,
8149         concat!(
8150             "Offset of field: ",
8151             stringify!(GDALWarpOptions),
8152             "::",
8153             stringify!(papSrcPerBandValidityMaskFuncArg)
8154         )
8155     );
8156     assert_eq!(
8157         unsafe {
8158             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnSrcValidityMaskFunc as *const _ as usize
8159         },
8160         152usize,
8161         concat!(
8162             "Offset of field: ",
8163             stringify!(GDALWarpOptions),
8164             "::",
8165             stringify!(pfnSrcValidityMaskFunc)
8166         )
8167     );
8168     assert_eq!(
8169         unsafe {
8170             &(*(::std::ptr::null::<GDALWarpOptions>())).pSrcValidityMaskFuncArg as *const _ as usize
8171         },
8172         160usize,
8173         concat!(
8174             "Offset of field: ",
8175             stringify!(GDALWarpOptions),
8176             "::",
8177             stringify!(pSrcValidityMaskFuncArg)
8178         )
8179     );
8180     assert_eq!(
8181         unsafe {
8182             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnSrcDensityMaskFunc as *const _ as usize
8183         },
8184         168usize,
8185         concat!(
8186             "Offset of field: ",
8187             stringify!(GDALWarpOptions),
8188             "::",
8189             stringify!(pfnSrcDensityMaskFunc)
8190         )
8191     );
8192     assert_eq!(
8193         unsafe {
8194             &(*(::std::ptr::null::<GDALWarpOptions>())).pSrcDensityMaskFuncArg as *const _ as usize
8195         },
8196         176usize,
8197         concat!(
8198             "Offset of field: ",
8199             stringify!(GDALWarpOptions),
8200             "::",
8201             stringify!(pSrcDensityMaskFuncArg)
8202         )
8203     );
8204     assert_eq!(
8205         unsafe {
8206             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnDstDensityMaskFunc as *const _ as usize
8207         },
8208         184usize,
8209         concat!(
8210             "Offset of field: ",
8211             stringify!(GDALWarpOptions),
8212             "::",
8213             stringify!(pfnDstDensityMaskFunc)
8214         )
8215     );
8216     assert_eq!(
8217         unsafe {
8218             &(*(::std::ptr::null::<GDALWarpOptions>())).pDstDensityMaskFuncArg as *const _ as usize
8219         },
8220         192usize,
8221         concat!(
8222             "Offset of field: ",
8223             stringify!(GDALWarpOptions),
8224             "::",
8225             stringify!(pDstDensityMaskFuncArg)
8226         )
8227     );
8228     assert_eq!(
8229         unsafe {
8230             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnDstValidityMaskFunc as *const _ as usize
8231         },
8232         200usize,
8233         concat!(
8234             "Offset of field: ",
8235             stringify!(GDALWarpOptions),
8236             "::",
8237             stringify!(pfnDstValidityMaskFunc)
8238         )
8239     );
8240     assert_eq!(
8241         unsafe {
8242             &(*(::std::ptr::null::<GDALWarpOptions>())).pDstValidityMaskFuncArg as *const _ as usize
8243         },
8244         208usize,
8245         concat!(
8246             "Offset of field: ",
8247             stringify!(GDALWarpOptions),
8248             "::",
8249             stringify!(pDstValidityMaskFuncArg)
8250         )
8251     );
8252     assert_eq!(
8253         unsafe {
8254             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnPreWarpChunkProcessor as *const _
8255                 as usize
8256         },
8257         216usize,
8258         concat!(
8259             "Offset of field: ",
8260             stringify!(GDALWarpOptions),
8261             "::",
8262             stringify!(pfnPreWarpChunkProcessor)
8263         )
8264     );
8265     assert_eq!(
8266         unsafe {
8267             &(*(::std::ptr::null::<GDALWarpOptions>())).pPreWarpProcessorArg as *const _ as usize
8268         },
8269         224usize,
8270         concat!(
8271             "Offset of field: ",
8272             stringify!(GDALWarpOptions),
8273             "::",
8274             stringify!(pPreWarpProcessorArg)
8275         )
8276     );
8277     assert_eq!(
8278         unsafe {
8279             &(*(::std::ptr::null::<GDALWarpOptions>())).pfnPostWarpChunkProcessor as *const _
8280                 as usize
8281         },
8282         232usize,
8283         concat!(
8284             "Offset of field: ",
8285             stringify!(GDALWarpOptions),
8286             "::",
8287             stringify!(pfnPostWarpChunkProcessor)
8288         )
8289     );
8290     assert_eq!(
8291         unsafe {
8292             &(*(::std::ptr::null::<GDALWarpOptions>())).pPostWarpProcessorArg as *const _ as usize
8293         },
8294         240usize,
8295         concat!(
8296             "Offset of field: ",
8297             stringify!(GDALWarpOptions),
8298             "::",
8299             stringify!(pPostWarpProcessorArg)
8300         )
8301     );
8302     assert_eq!(
8303         unsafe { &(*(::std::ptr::null::<GDALWarpOptions>())).hCutline as *const _ as usize },
8304         248usize,
8305         concat!(
8306             "Offset of field: ",
8307             stringify!(GDALWarpOptions),
8308             "::",
8309             stringify!(hCutline)
8310         )
8311     );
8312     assert_eq!(
8313         unsafe {
8314             &(*(::std::ptr::null::<GDALWarpOptions>())).dfCutlineBlendDist as *const _ as usize
8315         },
8316         256usize,
8317         concat!(
8318             "Offset of field: ",
8319             stringify!(GDALWarpOptions),
8320             "::",
8321             stringify!(dfCutlineBlendDist)
8322         )
8323     );
8324 }
8325 extern "C" {
GDALCreateWarpOptions() -> *mut GDALWarpOptions8326     pub fn GDALCreateWarpOptions() -> *mut GDALWarpOptions;
8327 }
8328 extern "C" {
GDALDestroyWarpOptions(arg1: *mut GDALWarpOptions)8329     pub fn GDALDestroyWarpOptions(arg1: *mut GDALWarpOptions);
8330 }
8331 extern "C" {
GDALCloneWarpOptions(arg1: *const GDALWarpOptions) -> *mut GDALWarpOptions8332     pub fn GDALCloneWarpOptions(arg1: *const GDALWarpOptions) -> *mut GDALWarpOptions;
8333 }
8334 extern "C" {
GDALSerializeWarpOptions(arg1: *const GDALWarpOptions) -> *mut CPLXMLNode8335     pub fn GDALSerializeWarpOptions(arg1: *const GDALWarpOptions) -> *mut CPLXMLNode;
8336 }
8337 extern "C" {
GDALDeserializeWarpOptions(arg1: *mut CPLXMLNode) -> *mut GDALWarpOptions8338     pub fn GDALDeserializeWarpOptions(arg1: *mut CPLXMLNode) -> *mut GDALWarpOptions;
8339 }
8340 extern "C" {
8341 
GDALReprojectImage( hSrcDS: GDALDatasetH, pszSrcWKT: *const libc::c_char, hDstDS: GDALDatasetH, pszDstWKT: *const libc::c_char, eResampleAlg: GDALResampleAlg::Type, dfWarpMemoryLimit: f64, dfMaxError: f64, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, psOptions: *mut GDALWarpOptions, ) -> CPLErr::Type8342     pub fn GDALReprojectImage(
8343         hSrcDS: GDALDatasetH,
8344         pszSrcWKT: *const libc::c_char,
8345         hDstDS: GDALDatasetH,
8346         pszDstWKT: *const libc::c_char,
8347         eResampleAlg: GDALResampleAlg::Type,
8348         dfWarpMemoryLimit: f64,
8349         dfMaxError: f64,
8350         pfnProgress: GDALProgressFunc,
8351         pProgressArg: *mut libc::c_void,
8352         psOptions: *mut GDALWarpOptions,
8353     ) -> CPLErr::Type;
8354 }
8355 extern "C" {
GDALCreateAndReprojectImage( hSrcDS: GDALDatasetH, pszSrcWKT: *const libc::c_char, pszDstFilename: *const libc::c_char, pszDstWKT: *const libc::c_char, hDstDriver: GDALDriverH, papszCreateOptions: *mut *mut libc::c_char, eResampleAlg: GDALResampleAlg::Type, dfWarpMemoryLimit: f64, dfMaxError: f64, pfnProgress: GDALProgressFunc, pProgressArg: *mut libc::c_void, psOptions: *mut GDALWarpOptions, ) -> CPLErr::Type8356     pub fn GDALCreateAndReprojectImage(
8357         hSrcDS: GDALDatasetH,
8358         pszSrcWKT: *const libc::c_char,
8359         pszDstFilename: *const libc::c_char,
8360         pszDstWKT: *const libc::c_char,
8361         hDstDriver: GDALDriverH,
8362         papszCreateOptions: *mut *mut libc::c_char,
8363         eResampleAlg: GDALResampleAlg::Type,
8364         dfWarpMemoryLimit: f64,
8365         dfMaxError: f64,
8366         pfnProgress: GDALProgressFunc,
8367         pProgressArg: *mut libc::c_void,
8368         psOptions: *mut GDALWarpOptions,
8369     ) -> CPLErr::Type;
8370 }
8371 extern "C" {
8372 
GDALAutoCreateWarpedVRT( hSrcDS: GDALDatasetH, pszSrcWKT: *const libc::c_char, pszDstWKT: *const libc::c_char, eResampleAlg: GDALResampleAlg::Type, dfMaxError: f64, psOptions: *const GDALWarpOptions, ) -> GDALDatasetH8373     pub fn GDALAutoCreateWarpedVRT(
8374         hSrcDS: GDALDatasetH,
8375         pszSrcWKT: *const libc::c_char,
8376         pszDstWKT: *const libc::c_char,
8377         eResampleAlg: GDALResampleAlg::Type,
8378         dfMaxError: f64,
8379         psOptions: *const GDALWarpOptions,
8380     ) -> GDALDatasetH;
8381 }
8382 extern "C" {
GDALCreateWarpedVRT( hSrcDS: GDALDatasetH, nPixels: libc::c_int, nLines: libc::c_int, padfGeoTransform: *mut f64, psOptions: *mut GDALWarpOptions, ) -> GDALDatasetH8383     pub fn GDALCreateWarpedVRT(
8384         hSrcDS: GDALDatasetH,
8385         nPixels: libc::c_int,
8386         nLines: libc::c_int,
8387         padfGeoTransform: *mut f64,
8388         psOptions: *mut GDALWarpOptions,
8389     ) -> GDALDatasetH;
8390 }
8391 extern "C" {
GDALInitializeWarpedVRT(hDS: GDALDatasetH, psWO: *mut GDALWarpOptions) -> CPLErr::Type8392     pub fn GDALInitializeWarpedVRT(hDS: GDALDatasetH, psWO: *mut GDALWarpOptions) -> CPLErr::Type;
8393 }
8394 pub type GDALWarpOperationH = *mut libc::c_void;
8395 extern "C" {
GDALCreateWarpOperation(arg1: *const GDALWarpOptions) -> GDALWarpOperationH8396     pub fn GDALCreateWarpOperation(arg1: *const GDALWarpOptions) -> GDALWarpOperationH;
8397 }
8398 extern "C" {
GDALDestroyWarpOperation(arg1: GDALWarpOperationH)8399     pub fn GDALDestroyWarpOperation(arg1: GDALWarpOperationH);
8400 }
8401 extern "C" {
GDALChunkAndWarpImage( arg1: GDALWarpOperationH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, ) -> CPLErr::Type8402     pub fn GDALChunkAndWarpImage(
8403         arg1: GDALWarpOperationH,
8404         arg2: libc::c_int,
8405         arg3: libc::c_int,
8406         arg4: libc::c_int,
8407         arg5: libc::c_int,
8408     ) -> CPLErr::Type;
8409 }
8410 extern "C" {
GDALChunkAndWarpMulti( arg1: GDALWarpOperationH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, ) -> CPLErr::Type8411     pub fn GDALChunkAndWarpMulti(
8412         arg1: GDALWarpOperationH,
8413         arg2: libc::c_int,
8414         arg3: libc::c_int,
8415         arg4: libc::c_int,
8416         arg5: libc::c_int,
8417     ) -> CPLErr::Type;
8418 }
8419 extern "C" {
GDALWarpRegion( arg1: GDALWarpOperationH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, arg6: libc::c_int, arg7: libc::c_int, arg8: libc::c_int, arg9: libc::c_int, ) -> CPLErr::Type8420     pub fn GDALWarpRegion(
8421         arg1: GDALWarpOperationH,
8422         arg2: libc::c_int,
8423         arg3: libc::c_int,
8424         arg4: libc::c_int,
8425         arg5: libc::c_int,
8426         arg6: libc::c_int,
8427         arg7: libc::c_int,
8428         arg8: libc::c_int,
8429         arg9: libc::c_int,
8430     ) -> CPLErr::Type;
8431 }
8432 extern "C" {
GDALWarpRegionToBuffer( arg1: GDALWarpOperationH, arg2: libc::c_int, arg3: libc::c_int, arg4: libc::c_int, arg5: libc::c_int, arg6: *mut libc::c_void, arg7: GDALDataType::Type, arg8: libc::c_int, arg9: libc::c_int, arg10: libc::c_int, arg11: libc::c_int, ) -> CPLErr::Type8433     pub fn GDALWarpRegionToBuffer(
8434         arg1: GDALWarpOperationH,
8435         arg2: libc::c_int,
8436         arg3: libc::c_int,
8437         arg4: libc::c_int,
8438         arg5: libc::c_int,
8439         arg6: *mut libc::c_void,
8440         arg7: GDALDataType::Type,
8441         arg8: libc::c_int,
8442         arg9: libc::c_int,
8443         arg10: libc::c_int,
8444         arg11: libc::c_int,
8445     ) -> CPLErr::Type;
8446 }
8447 pub mod OGRAxisOrientation {
8448     /// \file ogr_srs_api.h
8449     ///
8450     /// C spatial reference system services and defines.
8451     ///
8452     /// See also: ogr_spatialref.h
8453     pub type Type = u32;
8454     pub const OAO_Other: Type = 0;
8455     pub const OAO_North: Type = 1;
8456     pub const OAO_South: Type = 2;
8457     pub const OAO_East: Type = 3;
8458     pub const OAO_West: Type = 4;
8459     pub const OAO_Up: Type = 5;
8460     pub const OAO_Down: Type = 6;
8461 }
8462 extern "C" {
OSRAxisEnumToName(eOrientation: OGRAxisOrientation::Type) -> *const libc::c_char8463     pub fn OSRAxisEnumToName(eOrientation: OGRAxisOrientation::Type) -> *const libc::c_char;
8464 }
8465 extern "C" {
OSRNewSpatialReference(arg1: *const libc::c_char) -> OGRSpatialReferenceH8466     pub fn OSRNewSpatialReference(arg1: *const libc::c_char) -> OGRSpatialReferenceH;
8467 }
8468 extern "C" {
OSRCloneGeogCS(arg1: OGRSpatialReferenceH) -> OGRSpatialReferenceH8469     pub fn OSRCloneGeogCS(arg1: OGRSpatialReferenceH) -> OGRSpatialReferenceH;
8470 }
8471 extern "C" {
OSRClone(arg1: OGRSpatialReferenceH) -> OGRSpatialReferenceH8472     pub fn OSRClone(arg1: OGRSpatialReferenceH) -> OGRSpatialReferenceH;
8473 }
8474 extern "C" {
OSRDestroySpatialReference(arg1: OGRSpatialReferenceH)8475     pub fn OSRDestroySpatialReference(arg1: OGRSpatialReferenceH);
8476 }
8477 extern "C" {
OSRReference(arg1: OGRSpatialReferenceH) -> libc::c_int8478     pub fn OSRReference(arg1: OGRSpatialReferenceH) -> libc::c_int;
8479 }
8480 extern "C" {
OSRDereference(arg1: OGRSpatialReferenceH) -> libc::c_int8481     pub fn OSRDereference(arg1: OGRSpatialReferenceH) -> libc::c_int;
8482 }
8483 extern "C" {
OSRRelease(arg1: OGRSpatialReferenceH)8484     pub fn OSRRelease(arg1: OGRSpatialReferenceH);
8485 }
8486 extern "C" {
OSRValidate(arg1: OGRSpatialReferenceH) -> OGRErr::Type8487     pub fn OSRValidate(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8488 }
8489 extern "C" {
OSRFixupOrdering(arg1: OGRSpatialReferenceH) -> OGRErr::Type8490     pub fn OSRFixupOrdering(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8491 }
8492 extern "C" {
OSRFixup(arg1: OGRSpatialReferenceH) -> OGRErr::Type8493     pub fn OSRFixup(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8494 }
8495 extern "C" {
OSRStripCTParms(arg1: OGRSpatialReferenceH) -> OGRErr::Type8496     pub fn OSRStripCTParms(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8497 }
8498 extern "C" {
OSRImportFromEPSG(arg1: OGRSpatialReferenceH, arg2: libc::c_int) -> OGRErr::Type8499     pub fn OSRImportFromEPSG(arg1: OGRSpatialReferenceH, arg2: libc::c_int) -> OGRErr::Type;
8500 }
8501 extern "C" {
OSRImportFromEPSGA(arg1: OGRSpatialReferenceH, arg2: libc::c_int) -> OGRErr::Type8502     pub fn OSRImportFromEPSGA(arg1: OGRSpatialReferenceH, arg2: libc::c_int) -> OGRErr::Type;
8503 }
8504 extern "C" {
OSRImportFromWkt( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, ) -> OGRErr::Type8505     pub fn OSRImportFromWkt(
8506         arg1: OGRSpatialReferenceH,
8507         arg2: *mut *mut libc::c_char,
8508     ) -> OGRErr::Type;
8509 }
8510 extern "C" {
OSRImportFromProj4( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, ) -> OGRErr::Type8511     pub fn OSRImportFromProj4(
8512         arg1: OGRSpatialReferenceH,
8513         arg2: *const libc::c_char,
8514     ) -> OGRErr::Type;
8515 }
8516 extern "C" {
OSRImportFromESRI( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, ) -> OGRErr::Type8517     pub fn OSRImportFromESRI(
8518         arg1: OGRSpatialReferenceH,
8519         arg2: *mut *mut libc::c_char,
8520     ) -> OGRErr::Type;
8521 }
8522 extern "C" {
OSRImportFromPCI( hSRS: OGRSpatialReferenceH, arg1: *const libc::c_char, arg2: *const libc::c_char, arg3: *mut f64, ) -> OGRErr::Type8523     pub fn OSRImportFromPCI(
8524         hSRS: OGRSpatialReferenceH,
8525         arg1: *const libc::c_char,
8526         arg2: *const libc::c_char,
8527         arg3: *mut f64,
8528     ) -> OGRErr::Type;
8529 }
8530 extern "C" {
OSRImportFromUSGS( arg1: OGRSpatialReferenceH, arg2: libc::c_long, arg3: libc::c_long, arg4: *mut f64, arg5: libc::c_long, ) -> OGRErr::Type8531     pub fn OSRImportFromUSGS(
8532         arg1: OGRSpatialReferenceH,
8533         arg2: libc::c_long,
8534         arg3: libc::c_long,
8535         arg4: *mut f64,
8536         arg5: libc::c_long,
8537     ) -> OGRErr::Type;
8538 }
8539 extern "C" {
OSRImportFromXML(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type8540     pub fn OSRImportFromXML(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type;
8541 }
8542 extern "C" {
OSRImportFromDict( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: *const libc::c_char, ) -> OGRErr::Type8543     pub fn OSRImportFromDict(
8544         arg1: OGRSpatialReferenceH,
8545         arg2: *const libc::c_char,
8546         arg3: *const libc::c_char,
8547     ) -> OGRErr::Type;
8548 }
8549 extern "C" {
OSRImportFromPanorama( arg1: OGRSpatialReferenceH, arg2: libc::c_long, arg3: libc::c_long, arg4: libc::c_long, arg5: *mut f64, ) -> OGRErr::Type8550     pub fn OSRImportFromPanorama(
8551         arg1: OGRSpatialReferenceH,
8552         arg2: libc::c_long,
8553         arg3: libc::c_long,
8554         arg4: libc::c_long,
8555         arg5: *mut f64,
8556     ) -> OGRErr::Type;
8557 }
8558 extern "C" {
OSRImportFromOzi( arg1: OGRSpatialReferenceH, arg2: *const *const libc::c_char, ) -> OGRErr::Type8559     pub fn OSRImportFromOzi(
8560         arg1: OGRSpatialReferenceH,
8561         arg2: *const *const libc::c_char,
8562     ) -> OGRErr::Type;
8563 }
8564 extern "C" {
OSRImportFromMICoordSys( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, ) -> OGRErr::Type8565     pub fn OSRImportFromMICoordSys(
8566         arg1: OGRSpatialReferenceH,
8567         arg2: *const libc::c_char,
8568     ) -> OGRErr::Type;
8569 }
8570 extern "C" {
OSRImportFromERM( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: *const libc::c_char, arg4: *const libc::c_char, ) -> OGRErr::Type8571     pub fn OSRImportFromERM(
8572         arg1: OGRSpatialReferenceH,
8573         arg2: *const libc::c_char,
8574         arg3: *const libc::c_char,
8575         arg4: *const libc::c_char,
8576     ) -> OGRErr::Type;
8577 }
8578 extern "C" {
OSRImportFromUrl(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type8579     pub fn OSRImportFromUrl(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type;
8580 }
8581 extern "C" {
OSRExportToWkt(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> OGRErr::Type8582     pub fn OSRExportToWkt(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char)
8583         -> OGRErr::Type;
8584 }
8585 extern "C" {
OSRExportToPrettyWkt( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, arg3: libc::c_int, ) -> OGRErr::Type8586     pub fn OSRExportToPrettyWkt(
8587         arg1: OGRSpatialReferenceH,
8588         arg2: *mut *mut libc::c_char,
8589         arg3: libc::c_int,
8590     ) -> OGRErr::Type;
8591 }
8592 extern "C" {
OSRExportToProj4( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, ) -> OGRErr::Type8593     pub fn OSRExportToProj4(
8594         arg1: OGRSpatialReferenceH,
8595         arg2: *mut *mut libc::c_char,
8596     ) -> OGRErr::Type;
8597 }
8598 extern "C" {
OSRExportToPCI( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, arg3: *mut *mut libc::c_char, arg4: *mut *mut f64, ) -> OGRErr::Type8599     pub fn OSRExportToPCI(
8600         arg1: OGRSpatialReferenceH,
8601         arg2: *mut *mut libc::c_char,
8602         arg3: *mut *mut libc::c_char,
8603         arg4: *mut *mut f64,
8604     ) -> OGRErr::Type;
8605 }
8606 extern "C" {
OSRExportToUSGS( arg1: OGRSpatialReferenceH, arg2: *mut libc::c_long, arg3: *mut libc::c_long, arg4: *mut *mut f64, arg5: *mut libc::c_long, ) -> OGRErr::Type8607     pub fn OSRExportToUSGS(
8608         arg1: OGRSpatialReferenceH,
8609         arg2: *mut libc::c_long,
8610         arg3: *mut libc::c_long,
8611         arg4: *mut *mut f64,
8612         arg5: *mut libc::c_long,
8613     ) -> OGRErr::Type;
8614 }
8615 extern "C" {
OSRExportToXML( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, arg3: *const libc::c_char, ) -> OGRErr::Type8616     pub fn OSRExportToXML(
8617         arg1: OGRSpatialReferenceH,
8618         arg2: *mut *mut libc::c_char,
8619         arg3: *const libc::c_char,
8620     ) -> OGRErr::Type;
8621 }
8622 extern "C" {
OSRExportToPanorama( arg1: OGRSpatialReferenceH, arg2: *mut libc::c_long, arg3: *mut libc::c_long, arg4: *mut libc::c_long, arg5: *mut libc::c_long, arg6: *mut f64, ) -> OGRErr::Type8623     pub fn OSRExportToPanorama(
8624         arg1: OGRSpatialReferenceH,
8625         arg2: *mut libc::c_long,
8626         arg3: *mut libc::c_long,
8627         arg4: *mut libc::c_long,
8628         arg5: *mut libc::c_long,
8629         arg6: *mut f64,
8630     ) -> OGRErr::Type;
8631 }
8632 extern "C" {
OSRExportToMICoordSys( arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char, ) -> OGRErr::Type8633     pub fn OSRExportToMICoordSys(
8634         arg1: OGRSpatialReferenceH,
8635         arg2: *mut *mut libc::c_char,
8636     ) -> OGRErr::Type;
8637 }
8638 extern "C" {
OSRExportToERM( arg1: OGRSpatialReferenceH, arg2: *mut libc::c_char, arg3: *mut libc::c_char, arg4: *mut libc::c_char, ) -> OGRErr::Type8639     pub fn OSRExportToERM(
8640         arg1: OGRSpatialReferenceH,
8641         arg2: *mut libc::c_char,
8642         arg3: *mut libc::c_char,
8643         arg4: *mut libc::c_char,
8644     ) -> OGRErr::Type;
8645 }
8646 extern "C" {
OSRMorphToESRI(arg1: OGRSpatialReferenceH) -> OGRErr::Type8647     pub fn OSRMorphToESRI(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8648 }
8649 extern "C" {
OSRMorphFromESRI(arg1: OGRSpatialReferenceH) -> OGRErr::Type8650     pub fn OSRMorphFromESRI(arg1: OGRSpatialReferenceH) -> OGRErr::Type;
8651 }
8652 extern "C" {
OSRSetAttrValue( hSRS: OGRSpatialReferenceH, pszNodePath: *const libc::c_char, pszNewNodeValue: *const libc::c_char, ) -> OGRErr::Type8653     pub fn OSRSetAttrValue(
8654         hSRS: OGRSpatialReferenceH,
8655         pszNodePath: *const libc::c_char,
8656         pszNewNodeValue: *const libc::c_char,
8657     ) -> OGRErr::Type;
8658 }
8659 extern "C" {
OSRGetAttrValue( hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char, iChild: libc::c_int, ) -> *const libc::c_char8660     pub fn OSRGetAttrValue(
8661         hSRS: OGRSpatialReferenceH,
8662         pszName: *const libc::c_char,
8663         iChild: libc::c_int,
8664     ) -> *const libc::c_char;
8665 }
8666 extern "C" {
OSRSetAngularUnits( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: f64, ) -> OGRErr::Type8667     pub fn OSRSetAngularUnits(
8668         arg1: OGRSpatialReferenceH,
8669         arg2: *const libc::c_char,
8670         arg3: f64,
8671     ) -> OGRErr::Type;
8672 }
8673 extern "C" {
OSRGetAngularUnits(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f648674     pub fn OSRGetAngularUnits(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f64;
8675 }
8676 extern "C" {
OSRSetLinearUnits( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: f64, ) -> OGRErr::Type8677     pub fn OSRSetLinearUnits(
8678         arg1: OGRSpatialReferenceH,
8679         arg2: *const libc::c_char,
8680         arg3: f64,
8681     ) -> OGRErr::Type;
8682 }
8683 extern "C" {
OSRSetTargetLinearUnits( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: *const libc::c_char, arg4: f64, ) -> OGRErr::Type8684     pub fn OSRSetTargetLinearUnits(
8685         arg1: OGRSpatialReferenceH,
8686         arg2: *const libc::c_char,
8687         arg3: *const libc::c_char,
8688         arg4: f64,
8689     ) -> OGRErr::Type;
8690 }
8691 extern "C" {
OSRSetLinearUnitsAndUpdateParameters( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: f64, ) -> OGRErr::Type8692     pub fn OSRSetLinearUnitsAndUpdateParameters(
8693         arg1: OGRSpatialReferenceH,
8694         arg2: *const libc::c_char,
8695         arg3: f64,
8696     ) -> OGRErr::Type;
8697 }
8698 extern "C" {
OSRGetLinearUnits(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f648699     pub fn OSRGetLinearUnits(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f64;
8700 }
8701 extern "C" {
OSRGetTargetLinearUnits( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: *mut *mut libc::c_char, ) -> f648702     pub fn OSRGetTargetLinearUnits(
8703         arg1: OGRSpatialReferenceH,
8704         arg2: *const libc::c_char,
8705         arg3: *mut *mut libc::c_char,
8706     ) -> f64;
8707 }
8708 extern "C" {
OSRGetPrimeMeridian(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f648709     pub fn OSRGetPrimeMeridian(arg1: OGRSpatialReferenceH, arg2: *mut *mut libc::c_char) -> f64;
8710 }
8711 extern "C" {
OSRIsGeographic(arg1: OGRSpatialReferenceH) -> libc::c_int8712     pub fn OSRIsGeographic(arg1: OGRSpatialReferenceH) -> libc::c_int;
8713 }
8714 extern "C" {
OSRIsLocal(arg1: OGRSpatialReferenceH) -> libc::c_int8715     pub fn OSRIsLocal(arg1: OGRSpatialReferenceH) -> libc::c_int;
8716 }
8717 extern "C" {
OSRIsProjected(arg1: OGRSpatialReferenceH) -> libc::c_int8718     pub fn OSRIsProjected(arg1: OGRSpatialReferenceH) -> libc::c_int;
8719 }
8720 extern "C" {
OSRIsCompound(arg1: OGRSpatialReferenceH) -> libc::c_int8721     pub fn OSRIsCompound(arg1: OGRSpatialReferenceH) -> libc::c_int;
8722 }
8723 extern "C" {
OSRIsGeocentric(arg1: OGRSpatialReferenceH) -> libc::c_int8724     pub fn OSRIsGeocentric(arg1: OGRSpatialReferenceH) -> libc::c_int;
8725 }
8726 extern "C" {
OSRIsVertical(arg1: OGRSpatialReferenceH) -> libc::c_int8727     pub fn OSRIsVertical(arg1: OGRSpatialReferenceH) -> libc::c_int;
8728 }
8729 extern "C" {
OSRIsSameGeogCS(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int8730     pub fn OSRIsSameGeogCS(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int;
8731 }
8732 extern "C" {
OSRIsSameVertCS(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int8733     pub fn OSRIsSameVertCS(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int;
8734 }
8735 extern "C" {
OSRIsSame(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int8736     pub fn OSRIsSame(arg1: OGRSpatialReferenceH, arg2: OGRSpatialReferenceH) -> libc::c_int;
8737 }
8738 extern "C" {
OSRSetLocalCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type8739     pub fn OSRSetLocalCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type;
8740 }
8741 extern "C" {
OSRSetProjCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type8742     pub fn OSRSetProjCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type;
8743 }
8744 extern "C" {
OSRSetGeocCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type8745     pub fn OSRSetGeocCS(hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char) -> OGRErr::Type;
8746 }
8747 extern "C" {
OSRSetWellKnownGeogCS( hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char, ) -> OGRErr::Type8748     pub fn OSRSetWellKnownGeogCS(
8749         hSRS: OGRSpatialReferenceH,
8750         pszName: *const libc::c_char,
8751     ) -> OGRErr::Type;
8752 }
8753 extern "C" {
OSRSetFromUserInput( hSRS: OGRSpatialReferenceH, arg1: *const libc::c_char, ) -> OGRErr::Type8754     pub fn OSRSetFromUserInput(
8755         hSRS: OGRSpatialReferenceH,
8756         arg1: *const libc::c_char,
8757     ) -> OGRErr::Type;
8758 }
8759 extern "C" {
OSRCopyGeogCSFrom( hSRS: OGRSpatialReferenceH, hSrcSRS: OGRSpatialReferenceH, ) -> OGRErr::Type8760     pub fn OSRCopyGeogCSFrom(
8761         hSRS: OGRSpatialReferenceH,
8762         hSrcSRS: OGRSpatialReferenceH,
8763     ) -> OGRErr::Type;
8764 }
8765 extern "C" {
OSRSetTOWGS84( hSRS: OGRSpatialReferenceH, arg1: f64, arg2: f64, arg3: f64, arg4: f64, arg5: f64, arg6: f64, arg7: f64, ) -> OGRErr::Type8766     pub fn OSRSetTOWGS84(
8767         hSRS: OGRSpatialReferenceH,
8768         arg1: f64,
8769         arg2: f64,
8770         arg3: f64,
8771         arg4: f64,
8772         arg5: f64,
8773         arg6: f64,
8774         arg7: f64,
8775     ) -> OGRErr::Type;
8776 }
8777 extern "C" {
OSRGetTOWGS84( hSRS: OGRSpatialReferenceH, arg1: *mut f64, arg2: libc::c_int, ) -> OGRErr::Type8778     pub fn OSRGetTOWGS84(
8779         hSRS: OGRSpatialReferenceH,
8780         arg1: *mut f64,
8781         arg2: libc::c_int,
8782     ) -> OGRErr::Type;
8783 }
8784 extern "C" {
OSRSetCompoundCS( hSRS: OGRSpatialReferenceH, pszName: *const libc::c_char, hHorizSRS: OGRSpatialReferenceH, hVertSRS: OGRSpatialReferenceH, ) -> OGRErr::Type8785     pub fn OSRSetCompoundCS(
8786         hSRS: OGRSpatialReferenceH,
8787         pszName: *const libc::c_char,
8788         hHorizSRS: OGRSpatialReferenceH,
8789         hVertSRS: OGRSpatialReferenceH,
8790     ) -> OGRErr::Type;
8791 }
8792 extern "C" {
OSRSetGeogCS( hSRS: OGRSpatialReferenceH, pszGeogName: *const libc::c_char, pszDatumName: *const libc::c_char, pszEllipsoidName: *const libc::c_char, dfSemiMajor: f64, dfInvFlattening: f64, pszPMName: *const libc::c_char, dfPMOffset: f64, pszUnits: *const libc::c_char, dfConvertToRadians: f64, ) -> OGRErr::Type8793     pub fn OSRSetGeogCS(
8794         hSRS: OGRSpatialReferenceH,
8795         pszGeogName: *const libc::c_char,
8796         pszDatumName: *const libc::c_char,
8797         pszEllipsoidName: *const libc::c_char,
8798         dfSemiMajor: f64,
8799         dfInvFlattening: f64,
8800         pszPMName: *const libc::c_char,
8801         dfPMOffset: f64,
8802         pszUnits: *const libc::c_char,
8803         dfConvertToRadians: f64,
8804     ) -> OGRErr::Type;
8805 }
8806 extern "C" {
OSRSetVertCS( hSRS: OGRSpatialReferenceH, pszVertCSName: *const libc::c_char, pszVertDatumName: *const libc::c_char, nVertDatumType: libc::c_int, ) -> OGRErr::Type8807     pub fn OSRSetVertCS(
8808         hSRS: OGRSpatialReferenceH,
8809         pszVertCSName: *const libc::c_char,
8810         pszVertDatumName: *const libc::c_char,
8811         nVertDatumType: libc::c_int,
8812     ) -> OGRErr::Type;
8813 }
8814 extern "C" {
OSRGetSemiMajor(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f648815     pub fn OSRGetSemiMajor(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f64;
8816 }
8817 extern "C" {
OSRGetSemiMinor(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f648818     pub fn OSRGetSemiMinor(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f64;
8819 }
8820 extern "C" {
OSRGetInvFlattening(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f648821     pub fn OSRGetInvFlattening(arg1: OGRSpatialReferenceH, arg2: *mut OGRErr::Type) -> f64;
8822 }
8823 extern "C" {
OSRSetAuthority( hSRS: OGRSpatialReferenceH, pszTargetKey: *const libc::c_char, pszAuthority: *const libc::c_char, nCode: libc::c_int, ) -> OGRErr::Type8824     pub fn OSRSetAuthority(
8825         hSRS: OGRSpatialReferenceH,
8826         pszTargetKey: *const libc::c_char,
8827         pszAuthority: *const libc::c_char,
8828         nCode: libc::c_int,
8829     ) -> OGRErr::Type;
8830 }
8831 extern "C" {
OSRGetAuthorityCode( hSRS: OGRSpatialReferenceH, pszTargetKey: *const libc::c_char, ) -> *const libc::c_char8832     pub fn OSRGetAuthorityCode(
8833         hSRS: OGRSpatialReferenceH,
8834         pszTargetKey: *const libc::c_char,
8835     ) -> *const libc::c_char;
8836 }
8837 extern "C" {
OSRGetAuthorityName( hSRS: OGRSpatialReferenceH, pszTargetKey: *const libc::c_char, ) -> *const libc::c_char8838     pub fn OSRGetAuthorityName(
8839         hSRS: OGRSpatialReferenceH,
8840         pszTargetKey: *const libc::c_char,
8841     ) -> *const libc::c_char;
8842 }
8843 extern "C" {
OSRSetProjection(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type8844     pub fn OSRSetProjection(arg1: OGRSpatialReferenceH, arg2: *const libc::c_char) -> OGRErr::Type;
8845 }
8846 extern "C" {
OSRSetProjParm( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: f64, ) -> OGRErr::Type8847     pub fn OSRSetProjParm(
8848         arg1: OGRSpatialReferenceH,
8849         arg2: *const libc::c_char,
8850         arg3: f64,
8851     ) -> OGRErr::Type;
8852 }
8853 extern "C" {
OSRGetProjParm( hSRS: OGRSpatialReferenceH, pszParmName: *const libc::c_char, dfDefault: f64, arg1: *mut OGRErr::Type, ) -> f648854     pub fn OSRGetProjParm(
8855         hSRS: OGRSpatialReferenceH,
8856         pszParmName: *const libc::c_char,
8857         dfDefault: f64,
8858         arg1: *mut OGRErr::Type,
8859     ) -> f64;
8860 }
8861 extern "C" {
OSRSetNormProjParm( arg1: OGRSpatialReferenceH, arg2: *const libc::c_char, arg3: f64, ) -> OGRErr::Type8862     pub fn OSRSetNormProjParm(
8863         arg1: OGRSpatialReferenceH,
8864         arg2: *const libc::c_char,
8865         arg3: f64,
8866     ) -> OGRErr::Type;
8867 }
8868 extern "C" {
OSRGetNormProjParm( hSRS: OGRSpatialReferenceH, pszParmName: *const libc::c_char, dfDefault: f64, arg1: *mut OGRErr::Type, ) -> f648869     pub fn OSRGetNormProjParm(
8870         hSRS: OGRSpatialReferenceH,
8871         pszParmName: *const libc::c_char,
8872         dfDefault: f64,
8873         arg1: *mut OGRErr::Type,
8874     ) -> f64;
8875 }
8876 extern "C" {
OSRSetUTM( hSRS: OGRSpatialReferenceH, nZone: libc::c_int, bNorth: libc::c_int, ) -> OGRErr::Type8877     pub fn OSRSetUTM(
8878         hSRS: OGRSpatialReferenceH,
8879         nZone: libc::c_int,
8880         bNorth: libc::c_int,
8881     ) -> OGRErr::Type;
8882 }
8883 extern "C" {
OSRGetUTMZone(hSRS: OGRSpatialReferenceH, pbNorth: *mut libc::c_int) -> libc::c_int8884     pub fn OSRGetUTMZone(hSRS: OGRSpatialReferenceH, pbNorth: *mut libc::c_int) -> libc::c_int;
8885 }
8886 extern "C" {
OSRSetStatePlane( hSRS: OGRSpatialReferenceH, nZone: libc::c_int, bNAD83: libc::c_int, ) -> OGRErr::Type8887     pub fn OSRSetStatePlane(
8888         hSRS: OGRSpatialReferenceH,
8889         nZone: libc::c_int,
8890         bNAD83: libc::c_int,
8891     ) -> OGRErr::Type;
8892 }
8893 extern "C" {
OSRSetStatePlaneWithUnits( hSRS: OGRSpatialReferenceH, nZone: libc::c_int, bNAD83: libc::c_int, pszOverrideUnitName: *const libc::c_char, dfOverrideUnit: f64, ) -> OGRErr::Type8894     pub fn OSRSetStatePlaneWithUnits(
8895         hSRS: OGRSpatialReferenceH,
8896         nZone: libc::c_int,
8897         bNAD83: libc::c_int,
8898         pszOverrideUnitName: *const libc::c_char,
8899         dfOverrideUnit: f64,
8900     ) -> OGRErr::Type;
8901 }
8902 extern "C" {
OSRAutoIdentifyEPSG(hSRS: OGRSpatialReferenceH) -> OGRErr::Type8903     pub fn OSRAutoIdentifyEPSG(hSRS: OGRSpatialReferenceH) -> OGRErr::Type;
8904 }
8905 extern "C" {
OSREPSGTreatsAsLatLong(hSRS: OGRSpatialReferenceH) -> libc::c_int8906     pub fn OSREPSGTreatsAsLatLong(hSRS: OGRSpatialReferenceH) -> libc::c_int;
8907 }
8908 extern "C" {
OSREPSGTreatsAsNorthingEasting(hSRS: OGRSpatialReferenceH) -> libc::c_int8909     pub fn OSREPSGTreatsAsNorthingEasting(hSRS: OGRSpatialReferenceH) -> libc::c_int;
8910 }
8911 extern "C" {
OSRGetAxis( hSRS: OGRSpatialReferenceH, pszTargetKey: *const libc::c_char, iAxis: libc::c_int, peOrientation: *mut OGRAxisOrientation::Type, ) -> *const libc::c_char8912     pub fn OSRGetAxis(
8913         hSRS: OGRSpatialReferenceH,
8914         pszTargetKey: *const libc::c_char,
8915         iAxis: libc::c_int,
8916         peOrientation: *mut OGRAxisOrientation::Type,
8917     ) -> *const libc::c_char;
8918 }
8919 extern "C" {
OSRSetAxes( hSRS: OGRSpatialReferenceH, pszTargetKey: *const libc::c_char, pszXAxisName: *const libc::c_char, eXAxisOrientation: OGRAxisOrientation::Type, pszYAxisName: *const libc::c_char, eYAxisOrientation: OGRAxisOrientation::Type, ) -> OGRErr::Type8920     pub fn OSRSetAxes(
8921         hSRS: OGRSpatialReferenceH,
8922         pszTargetKey: *const libc::c_char,
8923         pszXAxisName: *const libc::c_char,
8924         eXAxisOrientation: OGRAxisOrientation::Type,
8925         pszYAxisName: *const libc::c_char,
8926         eYAxisOrientation: OGRAxisOrientation::Type,
8927     ) -> OGRErr::Type;
8928 }
8929 extern "C" {
8930     /// Albers Conic Equal Area
OSRSetACEA( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfStdP2: f64, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8931     pub fn OSRSetACEA(
8932         hSRS: OGRSpatialReferenceH,
8933         dfStdP1: f64,
8934         dfStdP2: f64,
8935         dfCenterLat: f64,
8936         dfCenterLong: f64,
8937         dfFalseEasting: f64,
8938         dfFalseNorthing: f64,
8939     ) -> OGRErr::Type;
8940 }
8941 extern "C" {
8942     /// Azimuthal Equidistant
OSRSetAE( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8943     pub fn OSRSetAE(
8944         hSRS: OGRSpatialReferenceH,
8945         dfCenterLat: f64,
8946         dfCenterLong: f64,
8947         dfFalseEasting: f64,
8948         dfFalseNorthing: f64,
8949     ) -> OGRErr::Type;
8950 }
8951 extern "C" {
8952     /// Bonne
OSRSetBonne( hSRS: OGRSpatialReferenceH, dfStandardParallel: f64, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8953     pub fn OSRSetBonne(
8954         hSRS: OGRSpatialReferenceH,
8955         dfStandardParallel: f64,
8956         dfCentralMeridian: f64,
8957         dfFalseEasting: f64,
8958         dfFalseNorthing: f64,
8959     ) -> OGRErr::Type;
8960 }
8961 extern "C" {
8962     /// Cylindrical Equal Area
OSRSetCEA( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8963     pub fn OSRSetCEA(
8964         hSRS: OGRSpatialReferenceH,
8965         dfStdP1: f64,
8966         dfCentralMeridian: f64,
8967         dfFalseEasting: f64,
8968         dfFalseNorthing: f64,
8969     ) -> OGRErr::Type;
8970 }
8971 extern "C" {
8972     /// Cassini-Soldner
OSRSetCS( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8973     pub fn OSRSetCS(
8974         hSRS: OGRSpatialReferenceH,
8975         dfCenterLat: f64,
8976         dfCenterLong: f64,
8977         dfFalseEasting: f64,
8978         dfFalseNorthing: f64,
8979     ) -> OGRErr::Type;
8980 }
8981 extern "C" {
8982     /// Equidistant Conic
OSRSetEC( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfStdP2: f64, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8983     pub fn OSRSetEC(
8984         hSRS: OGRSpatialReferenceH,
8985         dfStdP1: f64,
8986         dfStdP2: f64,
8987         dfCenterLat: f64,
8988         dfCenterLong: f64,
8989         dfFalseEasting: f64,
8990         dfFalseNorthing: f64,
8991     ) -> OGRErr::Type;
8992 }
8993 extern "C" {
8994     /// Eckert I-VI
OSRSetEckert( hSRS: OGRSpatialReferenceH, nVariation: libc::c_int, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type8995     pub fn OSRSetEckert(
8996         hSRS: OGRSpatialReferenceH,
8997         nVariation: libc::c_int,
8998         dfCentralMeridian: f64,
8999         dfFalseEasting: f64,
9000         dfFalseNorthing: f64,
9001     ) -> OGRErr::Type;
9002 }
9003 extern "C" {
9004     /// Eckert IV
OSRSetEckertIV( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9005     pub fn OSRSetEckertIV(
9006         hSRS: OGRSpatialReferenceH,
9007         dfCentralMeridian: f64,
9008         dfFalseEasting: f64,
9009         dfFalseNorthing: f64,
9010     ) -> OGRErr::Type;
9011 }
9012 extern "C" {
9013     /// Eckert VI
OSRSetEckertVI( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9014     pub fn OSRSetEckertVI(
9015         hSRS: OGRSpatialReferenceH,
9016         dfCentralMeridian: f64,
9017         dfFalseEasting: f64,
9018         dfFalseNorthing: f64,
9019     ) -> OGRErr::Type;
9020 }
9021 extern "C" {
9022     /// Equirectangular
OSRSetEquirectangular( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9023     pub fn OSRSetEquirectangular(
9024         hSRS: OGRSpatialReferenceH,
9025         dfCenterLat: f64,
9026         dfCenterLong: f64,
9027         dfFalseEasting: f64,
9028         dfFalseNorthing: f64,
9029     ) -> OGRErr::Type;
9030 }
9031 extern "C" {
9032     /// Equirectangular generalized form
OSRSetEquirectangular2( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfPseudoStdParallel1: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9033     pub fn OSRSetEquirectangular2(
9034         hSRS: OGRSpatialReferenceH,
9035         dfCenterLat: f64,
9036         dfCenterLong: f64,
9037         dfPseudoStdParallel1: f64,
9038         dfFalseEasting: f64,
9039         dfFalseNorthing: f64,
9040     ) -> OGRErr::Type;
9041 }
9042 extern "C" {
9043     /// Gall Stereograpic
OSRSetGS( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9044     pub fn OSRSetGS(
9045         hSRS: OGRSpatialReferenceH,
9046         dfCentralMeridian: f64,
9047         dfFalseEasting: f64,
9048         dfFalseNorthing: f64,
9049     ) -> OGRErr::Type;
9050 }
9051 extern "C" {
9052     /// Goode Homolosine
OSRSetGH( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9053     pub fn OSRSetGH(
9054         hSRS: OGRSpatialReferenceH,
9055         dfCentralMeridian: f64,
9056         dfFalseEasting: f64,
9057         dfFalseNorthing: f64,
9058     ) -> OGRErr::Type;
9059 }
9060 extern "C" {
9061     /// Interrupted Goode Homolosine
OSRSetIGH(hSRS: OGRSpatialReferenceH) -> OGRErr::Type9062     pub fn OSRSetIGH(hSRS: OGRSpatialReferenceH) -> OGRErr::Type;
9063 }
9064 extern "C" {
9065     /// GEOS - Geostationary Satellite View
OSRSetGEOS( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfSatelliteHeight: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9066     pub fn OSRSetGEOS(
9067         hSRS: OGRSpatialReferenceH,
9068         dfCentralMeridian: f64,
9069         dfSatelliteHeight: f64,
9070         dfFalseEasting: f64,
9071         dfFalseNorthing: f64,
9072     ) -> OGRErr::Type;
9073 }
9074 extern "C" {
9075     /// Gauss Schreiber Transverse Mercator
OSRSetGaussSchreiberTMercator( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9076     pub fn OSRSetGaussSchreiberTMercator(
9077         hSRS: OGRSpatialReferenceH,
9078         dfCenterLat: f64,
9079         dfCenterLong: f64,
9080         dfScale: f64,
9081         dfFalseEasting: f64,
9082         dfFalseNorthing: f64,
9083     ) -> OGRErr::Type;
9084 }
9085 extern "C" {
9086     /// Gnomonic
OSRSetGnomonic( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9087     pub fn OSRSetGnomonic(
9088         hSRS: OGRSpatialReferenceH,
9089         dfCenterLat: f64,
9090         dfCenterLong: f64,
9091         dfFalseEasting: f64,
9092         dfFalseNorthing: f64,
9093     ) -> OGRErr::Type;
9094 }
9095 extern "C" {
9096     /// Oblique Mercator (aka HOM (variant B)
OSRSetOM( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfAzimuth: f64, dfRectToSkew: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9097     pub fn OSRSetOM(
9098         hSRS: OGRSpatialReferenceH,
9099         dfCenterLat: f64,
9100         dfCenterLong: f64,
9101         dfAzimuth: f64,
9102         dfRectToSkew: f64,
9103         dfScale: f64,
9104         dfFalseEasting: f64,
9105         dfFalseNorthing: f64,
9106     ) -> OGRErr::Type;
9107 }
9108 extern "C" {
9109     /// Hotine Oblique Mercator using azimuth angle
OSRSetHOM( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfAzimuth: f64, dfRectToSkew: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9110     pub fn OSRSetHOM(
9111         hSRS: OGRSpatialReferenceH,
9112         dfCenterLat: f64,
9113         dfCenterLong: f64,
9114         dfAzimuth: f64,
9115         dfRectToSkew: f64,
9116         dfScale: f64,
9117         dfFalseEasting: f64,
9118         dfFalseNorthing: f64,
9119     ) -> OGRErr::Type;
9120 }
9121 extern "C" {
OSRSetHOMAC( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfAzimuth: f64, dfRectToSkew: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9122     pub fn OSRSetHOMAC(
9123         hSRS: OGRSpatialReferenceH,
9124         dfCenterLat: f64,
9125         dfCenterLong: f64,
9126         dfAzimuth: f64,
9127         dfRectToSkew: f64,
9128         dfScale: f64,
9129         dfFalseEasting: f64,
9130         dfFalseNorthing: f64,
9131     ) -> OGRErr::Type;
9132 }
9133 extern "C" {
9134     /// Hotine Oblique Mercator using two points on centerline
OSRSetHOM2PNO( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfLat1: f64, dfLong1: f64, dfLat2: f64, dfLong2: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9135     pub fn OSRSetHOM2PNO(
9136         hSRS: OGRSpatialReferenceH,
9137         dfCenterLat: f64,
9138         dfLat1: f64,
9139         dfLong1: f64,
9140         dfLat2: f64,
9141         dfLong2: f64,
9142         dfScale: f64,
9143         dfFalseEasting: f64,
9144         dfFalseNorthing: f64,
9145     ) -> OGRErr::Type;
9146 }
9147 extern "C" {
9148     /// International Map of the World Polyconic
OSRSetIWMPolyconic( hSRS: OGRSpatialReferenceH, dfLat1: f64, dfLat2: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9149     pub fn OSRSetIWMPolyconic(
9150         hSRS: OGRSpatialReferenceH,
9151         dfLat1: f64,
9152         dfLat2: f64,
9153         dfCenterLong: f64,
9154         dfFalseEasting: f64,
9155         dfFalseNorthing: f64,
9156     ) -> OGRErr::Type;
9157 }
9158 extern "C" {
9159     /// Krovak Oblique Conic Conformal
OSRSetKrovak( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfAzimuth: f64, dfPseudoStdParallelLat: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9160     pub fn OSRSetKrovak(
9161         hSRS: OGRSpatialReferenceH,
9162         dfCenterLat: f64,
9163         dfCenterLong: f64,
9164         dfAzimuth: f64,
9165         dfPseudoStdParallelLat: f64,
9166         dfScale: f64,
9167         dfFalseEasting: f64,
9168         dfFalseNorthing: f64,
9169     ) -> OGRErr::Type;
9170 }
9171 extern "C" {
9172     /// Lambert Azimuthal Equal-Area
OSRSetLAEA( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9173     pub fn OSRSetLAEA(
9174         hSRS: OGRSpatialReferenceH,
9175         dfCenterLat: f64,
9176         dfCenterLong: f64,
9177         dfFalseEasting: f64,
9178         dfFalseNorthing: f64,
9179     ) -> OGRErr::Type;
9180 }
9181 extern "C" {
9182     /// Lambert Conformal Conic
OSRSetLCC( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfStdP2: f64, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9183     pub fn OSRSetLCC(
9184         hSRS: OGRSpatialReferenceH,
9185         dfStdP1: f64,
9186         dfStdP2: f64,
9187         dfCenterLat: f64,
9188         dfCenterLong: f64,
9189         dfFalseEasting: f64,
9190         dfFalseNorthing: f64,
9191     ) -> OGRErr::Type;
9192 }
9193 extern "C" {
9194     /// Lambert Conformal Conic 1SP
OSRSetLCC1SP( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9195     pub fn OSRSetLCC1SP(
9196         hSRS: OGRSpatialReferenceH,
9197         dfCenterLat: f64,
9198         dfCenterLong: f64,
9199         dfScale: f64,
9200         dfFalseEasting: f64,
9201         dfFalseNorthing: f64,
9202     ) -> OGRErr::Type;
9203 }
9204 extern "C" {
9205     /// Lambert Conformal Conic (Belgium)
OSRSetLCCB( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfStdP2: f64, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9206     pub fn OSRSetLCCB(
9207         hSRS: OGRSpatialReferenceH,
9208         dfStdP1: f64,
9209         dfStdP2: f64,
9210         dfCenterLat: f64,
9211         dfCenterLong: f64,
9212         dfFalseEasting: f64,
9213         dfFalseNorthing: f64,
9214     ) -> OGRErr::Type;
9215 }
9216 extern "C" {
9217     /// Miller Cylindrical
OSRSetMC( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9218     pub fn OSRSetMC(
9219         hSRS: OGRSpatialReferenceH,
9220         dfCenterLat: f64,
9221         dfCenterLong: f64,
9222         dfFalseEasting: f64,
9223         dfFalseNorthing: f64,
9224     ) -> OGRErr::Type;
9225 }
9226 extern "C" {
9227     /// Mercator
OSRSetMercator( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9228     pub fn OSRSetMercator(
9229         hSRS: OGRSpatialReferenceH,
9230         dfCenterLat: f64,
9231         dfCenterLong: f64,
9232         dfScale: f64,
9233         dfFalseEasting: f64,
9234         dfFalseNorthing: f64,
9235     ) -> OGRErr::Type;
9236 }
9237 extern "C" {
OSRSetMercator2SP( hSRS: OGRSpatialReferenceH, dfStdP1: f64, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9238     pub fn OSRSetMercator2SP(
9239         hSRS: OGRSpatialReferenceH,
9240         dfStdP1: f64,
9241         dfCenterLat: f64,
9242         dfCenterLong: f64,
9243         dfFalseEasting: f64,
9244         dfFalseNorthing: f64,
9245     ) -> OGRErr::Type;
9246 }
9247 extern "C" {
9248     /// Mollweide
OSRSetMollweide( hSRS: OGRSpatialReferenceH, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9249     pub fn OSRSetMollweide(
9250         hSRS: OGRSpatialReferenceH,
9251         dfCentralMeridian: f64,
9252         dfFalseEasting: f64,
9253         dfFalseNorthing: f64,
9254     ) -> OGRErr::Type;
9255 }
9256 extern "C" {
9257     /// New Zealand Map Grid
OSRSetNZMG( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9258     pub fn OSRSetNZMG(
9259         hSRS: OGRSpatialReferenceH,
9260         dfCenterLat: f64,
9261         dfCenterLong: f64,
9262         dfFalseEasting: f64,
9263         dfFalseNorthing: f64,
9264     ) -> OGRErr::Type;
9265 }
9266 extern "C" {
9267     /// Oblique Stereographic
OSRSetOS( hSRS: OGRSpatialReferenceH, dfOriginLat: f64, dfCMeridian: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9268     pub fn OSRSetOS(
9269         hSRS: OGRSpatialReferenceH,
9270         dfOriginLat: f64,
9271         dfCMeridian: f64,
9272         dfScale: f64,
9273         dfFalseEasting: f64,
9274         dfFalseNorthing: f64,
9275     ) -> OGRErr::Type;
9276 }
9277 extern "C" {
9278     /// Orthographic
OSRSetOrthographic( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9279     pub fn OSRSetOrthographic(
9280         hSRS: OGRSpatialReferenceH,
9281         dfCenterLat: f64,
9282         dfCenterLong: f64,
9283         dfFalseEasting: f64,
9284         dfFalseNorthing: f64,
9285     ) -> OGRErr::Type;
9286 }
9287 extern "C" {
9288     /// Polyconic
OSRSetPolyconic( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9289     pub fn OSRSetPolyconic(
9290         hSRS: OGRSpatialReferenceH,
9291         dfCenterLat: f64,
9292         dfCenterLong: f64,
9293         dfFalseEasting: f64,
9294         dfFalseNorthing: f64,
9295     ) -> OGRErr::Type;
9296 }
9297 extern "C" {
9298     /// Polar Stereographic
OSRSetPS( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9299     pub fn OSRSetPS(
9300         hSRS: OGRSpatialReferenceH,
9301         dfCenterLat: f64,
9302         dfCenterLong: f64,
9303         dfScale: f64,
9304         dfFalseEasting: f64,
9305         dfFalseNorthing: f64,
9306     ) -> OGRErr::Type;
9307 }
9308 extern "C" {
9309     /// Robinson
OSRSetRobinson( hSRS: OGRSpatialReferenceH, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9310     pub fn OSRSetRobinson(
9311         hSRS: OGRSpatialReferenceH,
9312         dfCenterLong: f64,
9313         dfFalseEasting: f64,
9314         dfFalseNorthing: f64,
9315     ) -> OGRErr::Type;
9316 }
9317 extern "C" {
9318     /// Sinusoidal
OSRSetSinusoidal( hSRS: OGRSpatialReferenceH, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9319     pub fn OSRSetSinusoidal(
9320         hSRS: OGRSpatialReferenceH,
9321         dfCenterLong: f64,
9322         dfFalseEasting: f64,
9323         dfFalseNorthing: f64,
9324     ) -> OGRErr::Type;
9325 }
9326 extern "C" {
9327     /// Stereographic
OSRSetStereographic( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9328     pub fn OSRSetStereographic(
9329         hSRS: OGRSpatialReferenceH,
9330         dfCenterLat: f64,
9331         dfCenterLong: f64,
9332         dfScale: f64,
9333         dfFalseEasting: f64,
9334         dfFalseNorthing: f64,
9335     ) -> OGRErr::Type;
9336 }
9337 extern "C" {
9338     /// Swiss Oblique Cylindrical
OSRSetSOC( hSRS: OGRSpatialReferenceH, dfLatitudeOfOrigin: f64, dfCentralMeridian: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9339     pub fn OSRSetSOC(
9340         hSRS: OGRSpatialReferenceH,
9341         dfLatitudeOfOrigin: f64,
9342         dfCentralMeridian: f64,
9343         dfFalseEasting: f64,
9344         dfFalseNorthing: f64,
9345     ) -> OGRErr::Type;
9346 }
9347 extern "C" {
9348     /// Transverse Mercator
9349     ///
9350     /// Special processing available for Transverse Mercator with GDAL &gt;= 1.10 and PROJ &gt;= 4.8 :
9351     /// see OGRSpatialReference::exportToProj4().
OSRSetTM( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9352     pub fn OSRSetTM(
9353         hSRS: OGRSpatialReferenceH,
9354         dfCenterLat: f64,
9355         dfCenterLong: f64,
9356         dfScale: f64,
9357         dfFalseEasting: f64,
9358         dfFalseNorthing: f64,
9359     ) -> OGRErr::Type;
9360 }
9361 extern "C" {
9362     /// Transverse Mercator variant
OSRSetTMVariant( hSRS: OGRSpatialReferenceH, pszVariantName: *const libc::c_char, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9363     pub fn OSRSetTMVariant(
9364         hSRS: OGRSpatialReferenceH,
9365         pszVariantName: *const libc::c_char,
9366         dfCenterLat: f64,
9367         dfCenterLong: f64,
9368         dfScale: f64,
9369         dfFalseEasting: f64,
9370         dfFalseNorthing: f64,
9371     ) -> OGRErr::Type;
9372 }
9373 extern "C" {
9374     /// Tunesia Mining Grid
OSRSetTMG( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9375     pub fn OSRSetTMG(
9376         hSRS: OGRSpatialReferenceH,
9377         dfCenterLat: f64,
9378         dfCenterLong: f64,
9379         dfFalseEasting: f64,
9380         dfFalseNorthing: f64,
9381     ) -> OGRErr::Type;
9382 }
9383 extern "C" {
9384     /// Transverse Mercator (South Oriented)
OSRSetTMSO( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, dfScale: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9385     pub fn OSRSetTMSO(
9386         hSRS: OGRSpatialReferenceH,
9387         dfCenterLat: f64,
9388         dfCenterLong: f64,
9389         dfScale: f64,
9390         dfFalseEasting: f64,
9391         dfFalseNorthing: f64,
9392     ) -> OGRErr::Type;
9393 }
9394 extern "C" {
OSRSetTPED( hSRS: OGRSpatialReferenceH, dfLat1: f64, dfLong1: f64, dfLat2: f64, dfLong2: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9395     pub fn OSRSetTPED(
9396         hSRS: OGRSpatialReferenceH,
9397         dfLat1: f64,
9398         dfLong1: f64,
9399         dfLat2: f64,
9400         dfLong2: f64,
9401         dfFalseEasting: f64,
9402         dfFalseNorthing: f64,
9403     ) -> OGRErr::Type;
9404 }
9405 extern "C" {
9406     /// VanDerGrinten
OSRSetVDG( hSRS: OGRSpatialReferenceH, dfCenterLong: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9407     pub fn OSRSetVDG(
9408         hSRS: OGRSpatialReferenceH,
9409         dfCenterLong: f64,
9410         dfFalseEasting: f64,
9411         dfFalseNorthing: f64,
9412     ) -> OGRErr::Type;
9413 }
9414 extern "C" {
9415     /// Wagner I -- VII
OSRSetWagner( hSRS: OGRSpatialReferenceH, nVariation: libc::c_int, dfCenterLat: f64, dfFalseEasting: f64, dfFalseNorthing: f64, ) -> OGRErr::Type9416     pub fn OSRSetWagner(
9417         hSRS: OGRSpatialReferenceH,
9418         nVariation: libc::c_int,
9419         dfCenterLat: f64,
9420         dfFalseEasting: f64,
9421         dfFalseNorthing: f64,
9422     ) -> OGRErr::Type;
9423 }
9424 extern "C" {
9425     /// Quadrilateralized Spherical Cube
OSRSetQSC( hSRS: OGRSpatialReferenceH, dfCenterLat: f64, dfCenterLong: f64, ) -> OGRErr::Type9426     pub fn OSRSetQSC(
9427         hSRS: OGRSpatialReferenceH,
9428         dfCenterLat: f64,
9429         dfCenterLong: f64,
9430     ) -> OGRErr::Type;
9431 }
9432 extern "C" {
9433     /// Spherical, Cross-track, Height
OSRSetSCH( hSRS: OGRSpatialReferenceH, dfPegLat: f64, dfPegLong: f64, dfPegHeading: f64, dfPegHgt: f64, ) -> OGRErr::Type9434     pub fn OSRSetSCH(
9435         hSRS: OGRSpatialReferenceH,
9436         dfPegLat: f64,
9437         dfPegLong: f64,
9438         dfPegHeading: f64,
9439         dfPegHgt: f64,
9440     ) -> OGRErr::Type;
9441 }
9442 extern "C" {
OSRCalcInvFlattening(dfSemiMajor: f64, dfSemiMinor: f64) -> f649443     pub fn OSRCalcInvFlattening(dfSemiMajor: f64, dfSemiMinor: f64) -> f64;
9444 }
9445 extern "C" {
OSRCalcSemiMinorFromInvFlattening(dfSemiMajor: f64, dfInvFlattening: f64) -> f649446     pub fn OSRCalcSemiMinorFromInvFlattening(dfSemiMajor: f64, dfInvFlattening: f64) -> f64;
9447 }
9448 extern "C" {
OSRCleanup()9449     pub fn OSRCleanup();
9450 }
9451 extern "C" {
OCTNewCoordinateTransformation( hSourceSRS: OGRSpatialReferenceH, hTargetSRS: OGRSpatialReferenceH, ) -> OGRCoordinateTransformationH9452     pub fn OCTNewCoordinateTransformation(
9453         hSourceSRS: OGRSpatialReferenceH,
9454         hTargetSRS: OGRSpatialReferenceH,
9455     ) -> OGRCoordinateTransformationH;
9456 }
9457 extern "C" {
OCTDestroyCoordinateTransformation(arg1: OGRCoordinateTransformationH)9458     pub fn OCTDestroyCoordinateTransformation(arg1: OGRCoordinateTransformationH);
9459 }
9460 extern "C" {
OCTTransform( hCT: OGRCoordinateTransformationH, nCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, ) -> libc::c_int9461     pub fn OCTTransform(
9462         hCT: OGRCoordinateTransformationH,
9463         nCount: libc::c_int,
9464         x: *mut f64,
9465         y: *mut f64,
9466         z: *mut f64,
9467     ) -> libc::c_int;
9468 }
9469 extern "C" {
OCTTransformEx( hCT: OGRCoordinateTransformationH, nCount: libc::c_int, x: *mut f64, y: *mut f64, z: *mut f64, pabSuccess: *mut libc::c_int, ) -> libc::c_int9470     pub fn OCTTransformEx(
9471         hCT: OGRCoordinateTransformationH,
9472         nCount: libc::c_int,
9473         x: *mut f64,
9474         y: *mut f64,
9475         z: *mut f64,
9476         pabSuccess: *mut libc::c_int,
9477     ) -> libc::c_int;
9478 }
9479 extern "C" {
OCTProj4Normalize(pszProj4Src: *const libc::c_char) -> *mut libc::c_char9480     pub fn OCTProj4Normalize(pszProj4Src: *const libc::c_char) -> *mut libc::c_char;
9481 }
9482 extern "C" {
OCTCleanupProjMutex()9483     pub fn OCTCleanupProjMutex();
9484 }
9485 pub mod OGRErr {
9486     /// Type for a OGR error
9487     ///
9488     /// <div rustbindgen replaces="OGRErr"></div>
9489     pub type Type = u32;
9490     /// Success
9491     ///
9492     /// <div rustbindgen replaces="OGRERR_NONE"></div>
9493     pub const OGRERR_NONE: Type = 0;
9494     /// Not enough data to deserialize
9495     ///
9496     /// <div rustbindgen replaces="OGRERR_NOT_ENOUGH_DATA"></div>
9497     pub const OGRERR_NOT_ENOUGH_DATA: Type = 1;
9498     /// Not enough memory
9499     ///
9500     /// <div rustbindgen replaces="OGRERR_NOT_ENOUGH_MEMORY"></div>
9501     pub const OGRERR_NOT_ENOUGH_MEMORY: Type = 2;
9502     /// Unsupported geometry type
9503     ///
9504     /// <div rustbindgen replaces="OGRERR_UNSUPPORTED_GEOMETRY_TYPE"></div>
9505     pub const OGRERR_UNSUPPORTED_GEOMETRY_TYPE: Type = 3;
9506     /// Unsupported operation
9507     ///
9508     /// <div rustbindgen replaces="OGRERR_UNSUPPORTED_OPERATION"></div>
9509     pub const OGRERR_UNSUPPORTED_OPERATION: Type = 4;
9510     /// Corrupt data
9511     ///
9512     /// <div rustbindgen replaces="OGRERR_CORRUPT_DATA"></div>
9513     pub const OGRERR_CORRUPT_DATA: Type = 5;
9514     /// Failure
9515     ///
9516     /// <div rustbindgen replaces="OGRERR_FAILURE"></div>
9517     pub const OGRERR_FAILURE: Type = 6;
9518     /// Unsupported SRS
9519     ///
9520     /// <div rustbindgen replaces="OGRERR_UNSUPPORTED_SRS"></div>
9521     pub const OGRERR_UNSUPPORTED_SRS: Type = 7;
9522     /// Invalid handle
9523     ///
9524     /// <div rustbindgen replaces="INVALID_HANDLE"></div>
9525     pub const INVALID_HANDLE: Type = 8;
9526     /// Non existing feature. Added in GDAL 2.0
9527     ///
9528     /// <div rustbindgen replaces="NON_EXISTING_FEATURE"></div>
9529     pub const NON_EXISTING_FEATURE: Type = 9;
9530 }
9531 pub type __builtin_va_list = [__va_list_tag; 1usize];
9532 #[repr(C)]
9533 #[derive(Debug, Copy, Clone)]
9534 pub struct __va_list_tag {
9535     pub gp_offset: libc::c_uint,
9536     pub fp_offset: libc::c_uint,
9537     pub overflow_arg_area: *mut libc::c_void,
9538     pub reg_save_area: *mut libc::c_void,
9539 }
9540 #[test]
bindgen_test_layout___va_list_tag()9541 fn bindgen_test_layout___va_list_tag() {
9542     assert_eq!(
9543         ::std::mem::size_of::<__va_list_tag>(),
9544         24usize,
9545         concat!("Size of: ", stringify!(__va_list_tag))
9546     );
9547     assert_eq!(
9548         ::std::mem::align_of::<__va_list_tag>(),
9549         8usize,
9550         concat!("Alignment of ", stringify!(__va_list_tag))
9551     );
9552     assert_eq!(
9553         unsafe { &(*(::std::ptr::null::<__va_list_tag>())).gp_offset as *const _ as usize },
9554         0usize,
9555         concat!(
9556             "Offset of field: ",
9557             stringify!(__va_list_tag),
9558             "::",
9559             stringify!(gp_offset)
9560         )
9561     );
9562     assert_eq!(
9563         unsafe { &(*(::std::ptr::null::<__va_list_tag>())).fp_offset as *const _ as usize },
9564         4usize,
9565         concat!(
9566             "Offset of field: ",
9567             stringify!(__va_list_tag),
9568             "::",
9569             stringify!(fp_offset)
9570         )
9571     );
9572     assert_eq!(
9573         unsafe { &(*(::std::ptr::null::<__va_list_tag>())).overflow_arg_area as *const _ as usize },
9574         8usize,
9575         concat!(
9576             "Offset of field: ",
9577             stringify!(__va_list_tag),
9578             "::",
9579             stringify!(overflow_arg_area)
9580         )
9581     );
9582     assert_eq!(
9583         unsafe { &(*(::std::ptr::null::<__va_list_tag>())).reg_save_area as *const _ as usize },
9584         16usize,
9585         concat!(
9586             "Offset of field: ",
9587             stringify!(__va_list_tag),
9588             "::",
9589             stringify!(reg_save_area)
9590         )
9591     );
9592 }
9593