epics_ca_sys/
generated.rs

1/* automatically generated by rust-bindgen 0.61.0 */
2
3use crate::{ca_access_rights, epicsThreadOSD};
4
5pub const MAX_STRING_SIZE: i32 = 40;
6pub const CA_K_INFO: i32 = 3;
7pub const CA_K_ERROR: i32 = 2;
8pub const CA_K_SUCCESS: i32 = 1;
9pub const CA_K_WARNING: i32 = 0;
10pub const CA_K_SEVERE: i32 = 4;
11pub const CA_K_FATAL: i32 = 6;
12pub const CA_M_MSG_NO: i32 = 65528;
13pub const CA_M_SEVERITY: i32 = 7;
14pub const CA_M_LEVEL: i32 = 3;
15pub const CA_M_SUCCESS: i32 = 1;
16pub const CA_M_ERROR: i32 = 2;
17pub const CA_M_SEVERE: i32 = 4;
18pub const CA_S_MSG_NO: i32 = 13;
19pub const CA_S_SEVERITY: i32 = 3;
20pub const CA_V_MSG_NO: i32 = 3;
21pub const CA_V_SEVERITY: i32 = 0;
22pub const CA_V_SUCCESS: i32 = 0;
23pub const MAX_UNITS_SIZE: i32 = 8;
24pub const MAX_ENUM_STRING_SIZE: i32 = 26;
25pub const MAX_ENUM_STATES: i32 = 16;
26pub const DBF_STRING: i32 = 0;
27pub const DBF_INT: i32 = 1;
28pub const DBF_SHORT: i32 = 1;
29pub const DBF_FLOAT: i32 = 2;
30pub const DBF_ENUM: i32 = 3;
31pub const DBF_CHAR: i32 = 4;
32pub const DBF_LONG: i32 = 5;
33pub const DBF_DOUBLE: i32 = 6;
34pub const DBF_NO_ACCESS: i32 = 7;
35pub const LAST_TYPE: i32 = 6;
36pub const DBR_STRING: i32 = 0;
37pub const DBR_INT: i32 = 1;
38pub const DBR_SHORT: i32 = 1;
39pub const DBR_FLOAT: i32 = 2;
40pub const DBR_ENUM: i32 = 3;
41pub const DBR_CHAR: i32 = 4;
42pub const DBR_LONG: i32 = 5;
43pub const DBR_DOUBLE: i32 = 6;
44pub const DBR_STS_STRING: i32 = 7;
45pub const DBR_STS_SHORT: i32 = 8;
46pub const DBR_STS_INT: i32 = 8;
47pub const DBR_STS_FLOAT: i32 = 9;
48pub const DBR_STS_ENUM: i32 = 10;
49pub const DBR_STS_CHAR: i32 = 11;
50pub const DBR_STS_LONG: i32 = 12;
51pub const DBR_STS_DOUBLE: i32 = 13;
52pub const DBR_TIME_STRING: i32 = 14;
53pub const DBR_TIME_INT: i32 = 15;
54pub const DBR_TIME_SHORT: i32 = 15;
55pub const DBR_TIME_FLOAT: i32 = 16;
56pub const DBR_TIME_ENUM: i32 = 17;
57pub const DBR_TIME_CHAR: i32 = 18;
58pub const DBR_TIME_LONG: i32 = 19;
59pub const DBR_TIME_DOUBLE: i32 = 20;
60pub const DBR_GR_STRING: i32 = 21;
61pub const DBR_GR_SHORT: i32 = 22;
62pub const DBR_GR_INT: i32 = 22;
63pub const DBR_GR_FLOAT: i32 = 23;
64pub const DBR_GR_ENUM: i32 = 24;
65pub const DBR_GR_CHAR: i32 = 25;
66pub const DBR_GR_LONG: i32 = 26;
67pub const DBR_GR_DOUBLE: i32 = 27;
68pub const DBR_CTRL_STRING: i32 = 28;
69pub const DBR_CTRL_SHORT: i32 = 29;
70pub const DBR_CTRL_INT: i32 = 29;
71pub const DBR_CTRL_FLOAT: i32 = 30;
72pub const DBR_CTRL_ENUM: i32 = 31;
73pub const DBR_CTRL_CHAR: i32 = 32;
74pub const DBR_CTRL_LONG: i32 = 33;
75pub const DBR_CTRL_DOUBLE: i32 = 34;
76pub const DBR_PUT_ACKT: i32 = 35;
77pub const DBR_PUT_ACKS: i32 = 36;
78pub const DBR_STSACK_STRING: i32 = 37;
79pub const DBR_CLASS_NAME: i32 = 38;
80pub const LAST_BUFFER_TYPE: i32 = 38;
81pub const db_strval_dim: i32 = 40;
82pub const db_units_dim: i32 = 8;
83pub const db_desc_dim: i32 = 24;
84pub const db_name_dim: i32 = 36;
85pub const db_state_dim: i32 = 16;
86pub const db_state_text_dim: i32 = 26;
87pub const DBE_VALUE: i32 = 1;
88pub const DBE_ARCHIVE: i32 = 2;
89pub const DBE_LOG: i32 = 2;
90pub const DBE_ALARM: i32 = 4;
91pub const DBE_PROPERTY: i32 = 8;
92pub const CA_OP_GET: i32 = 0;
93pub const CA_OP_PUT: i32 = 1;
94pub const CA_OP_CREATE_CHANNEL: i32 = 2;
95pub const CA_OP_ADD_EVENT: i32 = 3;
96pub const CA_OP_CLEAR_EVENT: i32 = 4;
97pub const CA_OP_OTHER: i32 = 5;
98pub const CA_OP_CONN_UP: i32 = 6;
99pub const CA_OP_CONN_DOWN: i32 = 7;
100pub const CA_OP_SEARCH: i32 = 2;
101pub const TYPENOTCONN: i32 = -1;
102pub const CA_PRIORITY_MAX: i32 = 99;
103pub const CA_PRIORITY_MIN: i32 = 0;
104pub const CA_PRIORITY_DEFAULT: i32 = 0;
105pub const CA_PRIORITY_DB_LINKS: i32 = 80;
106pub const CA_PRIORITY_ARCHIVE: i32 = 20;
107pub const CA_PRIORITY_OPI: i32 = 0;
108pub const NO_ALARM: i32 = 0;
109pub type epicsThreadId = *mut epicsThreadOSD;
110#[repr(u32)]
111#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
112pub enum epicsBoolean {
113    epicsFalse = 0,
114    epicsTrue = 1,
115}
116pub type epicsInt8 = libc::c_schar;
117pub type epicsUInt8 = libc::c_uchar;
118pub type epicsInt16 = libc::c_short;
119pub type epicsUInt16 = libc::c_ushort;
120pub type epicsInt32 = libc::c_int;
121pub type epicsUInt32 = libc::c_uint;
122pub type epicsInt64 = libc::c_longlong;
123pub type epicsUInt64 = libc::c_ulonglong;
124pub type epicsEnum16 = epicsUInt16;
125pub type epicsFloat32 = f32;
126pub type epicsFloat64 = f64;
127pub type epicsStatus = epicsInt32;
128#[repr(C)]
129#[derive(Debug, Copy, Clone)]
130pub struct epicsString {
131    pub length: libc::c_uint,
132    pub pString: *mut libc::c_char,
133}
134pub type epicsOldString = [libc::c_char; 40usize];
135#[repr(C)]
136#[derive(Copy, Clone)]
137pub union epics_any {
138    pub int8: epicsInt8,
139    pub uInt8: epicsUInt8,
140    pub int16: epicsInt16,
141    pub uInt16: epicsUInt16,
142    pub enum16: epicsEnum16,
143    pub int32: epicsInt32,
144    pub uInt32: epicsUInt32,
145    pub int64: epicsInt64,
146    pub uInt64: epicsUInt64,
147    pub float32: epicsFloat32,
148    pub float64: epicsFloat64,
149    pub string: epicsString,
150}
151pub type epicsAny = epics_any;
152#[repr(u32)]
153#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
154pub enum epicsType {
155    epicsInt8T = 0,
156    epicsUInt8T = 1,
157    epicsInt16T = 2,
158    epicsUInt16T = 3,
159    epicsEnum16T = 4,
160    epicsInt32T = 5,
161    epicsUInt32T = 6,
162    epicsFloat32T = 7,
163    epicsFloat64T = 8,
164    epicsStringT = 9,
165    epicsOldStringT = 10,
166}
167#[repr(u32)]
168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
169pub enum epicsTypeClass {
170    epicsIntC = 0,
171    epicsUIntC = 1,
172    epicsEnumC = 2,
173    epicsFloatC = 3,
174    epicsStringC = 4,
175    epicsOldStringC = 5,
176}
177#[repr(C)]
178#[derive(Debug, Copy, Clone)]
179pub struct epicsTimeStamp {
180    pub secPastEpoch: epicsUInt32,
181    pub nsec: epicsUInt32,
182}
183pub type dbr_string_t = epicsOldString;
184pub type dbr_char_t = epicsUInt8;
185pub type dbr_short_t = epicsInt16;
186pub type dbr_ushort_t = epicsUInt16;
187pub type dbr_int_t = epicsInt16;
188pub type dbr_enum_t = epicsUInt16;
189pub type dbr_long_t = epicsInt32;
190pub type dbr_ulong_t = epicsUInt32;
191pub type dbr_float_t = epicsFloat32;
192pub type dbr_double_t = epicsFloat64;
193pub type dbr_put_ackt_t = epicsUInt16;
194pub type dbr_put_acks_t = epicsUInt16;
195pub type dbr_stsack_string_t = epicsOldString;
196pub type dbr_class_name_t = epicsOldString;
197#[repr(C)]
198#[derive(Debug, Copy, Clone)]
199pub struct dbr_sts_string {
200    pub status: dbr_short_t,
201    pub severity: dbr_short_t,
202    pub value: dbr_string_t,
203}
204#[repr(C)]
205#[derive(Debug, Copy, Clone)]
206pub struct dbr_stsack_string {
207    pub status: dbr_ushort_t,
208    pub severity: dbr_ushort_t,
209    pub ackt: dbr_ushort_t,
210    pub acks: dbr_ushort_t,
211    pub value: dbr_string_t,
212}
213#[repr(C)]
214#[derive(Debug, Copy, Clone)]
215pub struct dbr_sts_int {
216    pub status: dbr_short_t,
217    pub severity: dbr_short_t,
218    pub value: dbr_short_t,
219}
220#[repr(C)]
221#[derive(Debug, Copy, Clone)]
222pub struct dbr_sts_short {
223    pub status: dbr_short_t,
224    pub severity: dbr_short_t,
225    pub value: dbr_short_t,
226}
227#[repr(C)]
228#[derive(Debug, Copy, Clone)]
229pub struct dbr_sts_float {
230    pub status: dbr_short_t,
231    pub severity: dbr_short_t,
232    pub value: dbr_float_t,
233}
234#[repr(C)]
235#[derive(Debug, Copy, Clone)]
236pub struct dbr_sts_enum {
237    pub status: dbr_short_t,
238    pub severity: dbr_short_t,
239    pub value: dbr_enum_t,
240}
241#[repr(C)]
242#[derive(Debug, Copy, Clone)]
243pub struct dbr_sts_char {
244    pub status: dbr_short_t,
245    pub severity: dbr_short_t,
246    pub RISC_pad: dbr_char_t,
247    pub value: dbr_char_t,
248}
249#[repr(C)]
250#[derive(Debug, Copy, Clone)]
251pub struct dbr_sts_long {
252    pub status: dbr_short_t,
253    pub severity: dbr_short_t,
254    pub value: dbr_long_t,
255}
256#[repr(C)]
257#[derive(Debug, Copy, Clone)]
258pub struct dbr_sts_double {
259    pub status: dbr_short_t,
260    pub severity: dbr_short_t,
261    pub RISC_pad: dbr_long_t,
262    pub value: dbr_double_t,
263}
264#[repr(C)]
265#[derive(Debug, Copy, Clone)]
266pub struct dbr_time_string {
267    pub status: dbr_short_t,
268    pub severity: dbr_short_t,
269    pub stamp: epicsTimeStamp,
270    pub value: dbr_string_t,
271}
272#[repr(C)]
273#[derive(Debug, Copy, Clone)]
274pub struct dbr_time_short {
275    pub status: dbr_short_t,
276    pub severity: dbr_short_t,
277    pub stamp: epicsTimeStamp,
278    pub RISC_pad: dbr_short_t,
279    pub value: dbr_short_t,
280}
281#[repr(C)]
282#[derive(Debug, Copy, Clone)]
283pub struct dbr_time_float {
284    pub status: dbr_short_t,
285    pub severity: dbr_short_t,
286    pub stamp: epicsTimeStamp,
287    pub value: dbr_float_t,
288}
289#[repr(C)]
290#[derive(Debug, Copy, Clone)]
291pub struct dbr_time_enum {
292    pub status: dbr_short_t,
293    pub severity: dbr_short_t,
294    pub stamp: epicsTimeStamp,
295    pub RISC_pad: dbr_short_t,
296    pub value: dbr_enum_t,
297}
298#[repr(C)]
299#[derive(Debug, Copy, Clone)]
300pub struct dbr_time_char {
301    pub status: dbr_short_t,
302    pub severity: dbr_short_t,
303    pub stamp: epicsTimeStamp,
304    pub RISC_pad0: dbr_short_t,
305    pub RISC_pad1: dbr_char_t,
306    pub value: dbr_char_t,
307}
308#[repr(C)]
309#[derive(Debug, Copy, Clone)]
310pub struct dbr_time_long {
311    pub status: dbr_short_t,
312    pub severity: dbr_short_t,
313    pub stamp: epicsTimeStamp,
314    pub value: dbr_long_t,
315}
316#[repr(C)]
317#[derive(Debug, Copy, Clone)]
318pub struct dbr_time_double {
319    pub status: dbr_short_t,
320    pub severity: dbr_short_t,
321    pub stamp: epicsTimeStamp,
322    pub RISC_pad: dbr_long_t,
323    pub value: dbr_double_t,
324}
325#[repr(C)]
326#[derive(Debug, Copy, Clone)]
327pub struct dbr_gr_int {
328    pub status: dbr_short_t,
329    pub severity: dbr_short_t,
330    pub units: [libc::c_char; 8usize],
331    pub upper_disp_limit: dbr_short_t,
332    pub lower_disp_limit: dbr_short_t,
333    pub upper_alarm_limit: dbr_short_t,
334    pub upper_warning_limit: dbr_short_t,
335    pub lower_warning_limit: dbr_short_t,
336    pub lower_alarm_limit: dbr_short_t,
337    pub value: dbr_short_t,
338}
339#[repr(C)]
340#[derive(Debug, Copy, Clone)]
341pub struct dbr_gr_short {
342    pub status: dbr_short_t,
343    pub severity: dbr_short_t,
344    pub units: [libc::c_char; 8usize],
345    pub upper_disp_limit: dbr_short_t,
346    pub lower_disp_limit: dbr_short_t,
347    pub upper_alarm_limit: dbr_short_t,
348    pub upper_warning_limit: dbr_short_t,
349    pub lower_warning_limit: dbr_short_t,
350    pub lower_alarm_limit: dbr_short_t,
351    pub value: dbr_short_t,
352}
353#[repr(C)]
354#[derive(Debug, Copy, Clone)]
355pub struct dbr_gr_float {
356    pub status: dbr_short_t,
357    pub severity: dbr_short_t,
358    pub precision: dbr_short_t,
359    pub RISC_pad0: dbr_short_t,
360    pub units: [libc::c_char; 8usize],
361    pub upper_disp_limit: dbr_float_t,
362    pub lower_disp_limit: dbr_float_t,
363    pub upper_alarm_limit: dbr_float_t,
364    pub upper_warning_limit: dbr_float_t,
365    pub lower_warning_limit: dbr_float_t,
366    pub lower_alarm_limit: dbr_float_t,
367    pub value: dbr_float_t,
368}
369#[repr(C)]
370#[derive(Debug, Copy, Clone)]
371pub struct dbr_gr_enum {
372    pub status: dbr_short_t,
373    pub severity: dbr_short_t,
374    pub no_str: dbr_short_t,
375    pub strs: [[libc::c_char; 26usize]; 16usize],
376    pub value: dbr_enum_t,
377}
378#[repr(C)]
379#[derive(Debug, Copy, Clone)]
380pub struct dbr_gr_char {
381    pub status: dbr_short_t,
382    pub severity: dbr_short_t,
383    pub units: [libc::c_char; 8usize],
384    pub upper_disp_limit: dbr_char_t,
385    pub lower_disp_limit: dbr_char_t,
386    pub upper_alarm_limit: dbr_char_t,
387    pub upper_warning_limit: dbr_char_t,
388    pub lower_warning_limit: dbr_char_t,
389    pub lower_alarm_limit: dbr_char_t,
390    pub RISC_pad: dbr_char_t,
391    pub value: dbr_char_t,
392}
393#[repr(C)]
394#[derive(Debug, Copy, Clone)]
395pub struct dbr_gr_long {
396    pub status: dbr_short_t,
397    pub severity: dbr_short_t,
398    pub units: [libc::c_char; 8usize],
399    pub upper_disp_limit: dbr_long_t,
400    pub lower_disp_limit: dbr_long_t,
401    pub upper_alarm_limit: dbr_long_t,
402    pub upper_warning_limit: dbr_long_t,
403    pub lower_warning_limit: dbr_long_t,
404    pub lower_alarm_limit: dbr_long_t,
405    pub value: dbr_long_t,
406}
407#[repr(C)]
408#[derive(Debug, Copy, Clone)]
409pub struct dbr_gr_double {
410    pub status: dbr_short_t,
411    pub severity: dbr_short_t,
412    pub precision: dbr_short_t,
413    pub RISC_pad0: dbr_short_t,
414    pub units: [libc::c_char; 8usize],
415    pub upper_disp_limit: dbr_double_t,
416    pub lower_disp_limit: dbr_double_t,
417    pub upper_alarm_limit: dbr_double_t,
418    pub upper_warning_limit: dbr_double_t,
419    pub lower_warning_limit: dbr_double_t,
420    pub lower_alarm_limit: dbr_double_t,
421    pub value: dbr_double_t,
422}
423#[repr(C)]
424#[derive(Debug, Copy, Clone)]
425pub struct dbr_ctrl_int {
426    pub status: dbr_short_t,
427    pub severity: dbr_short_t,
428    pub units: [libc::c_char; 8usize],
429    pub upper_disp_limit: dbr_short_t,
430    pub lower_disp_limit: dbr_short_t,
431    pub upper_alarm_limit: dbr_short_t,
432    pub upper_warning_limit: dbr_short_t,
433    pub lower_warning_limit: dbr_short_t,
434    pub lower_alarm_limit: dbr_short_t,
435    pub upper_ctrl_limit: dbr_short_t,
436    pub lower_ctrl_limit: dbr_short_t,
437    pub value: dbr_short_t,
438}
439#[repr(C)]
440#[derive(Debug, Copy, Clone)]
441pub struct dbr_ctrl_short {
442    pub status: dbr_short_t,
443    pub severity: dbr_short_t,
444    pub units: [libc::c_char; 8usize],
445    pub upper_disp_limit: dbr_short_t,
446    pub lower_disp_limit: dbr_short_t,
447    pub upper_alarm_limit: dbr_short_t,
448    pub upper_warning_limit: dbr_short_t,
449    pub lower_warning_limit: dbr_short_t,
450    pub lower_alarm_limit: dbr_short_t,
451    pub upper_ctrl_limit: dbr_short_t,
452    pub lower_ctrl_limit: dbr_short_t,
453    pub value: dbr_short_t,
454}
455#[repr(C)]
456#[derive(Debug, Copy, Clone)]
457pub struct dbr_ctrl_float {
458    pub status: dbr_short_t,
459    pub severity: dbr_short_t,
460    pub precision: dbr_short_t,
461    pub RISC_pad: dbr_short_t,
462    pub units: [libc::c_char; 8usize],
463    pub upper_disp_limit: dbr_float_t,
464    pub lower_disp_limit: dbr_float_t,
465    pub upper_alarm_limit: dbr_float_t,
466    pub upper_warning_limit: dbr_float_t,
467    pub lower_warning_limit: dbr_float_t,
468    pub lower_alarm_limit: dbr_float_t,
469    pub upper_ctrl_limit: dbr_float_t,
470    pub lower_ctrl_limit: dbr_float_t,
471    pub value: dbr_float_t,
472}
473#[repr(C)]
474#[derive(Debug, Copy, Clone)]
475pub struct dbr_ctrl_enum {
476    pub status: dbr_short_t,
477    pub severity: dbr_short_t,
478    pub no_str: dbr_short_t,
479    pub strs: [[libc::c_char; 26usize]; 16usize],
480    pub value: dbr_enum_t,
481}
482#[repr(C)]
483#[derive(Debug, Copy, Clone)]
484pub struct dbr_ctrl_char {
485    pub status: dbr_short_t,
486    pub severity: dbr_short_t,
487    pub units: [libc::c_char; 8usize],
488    pub upper_disp_limit: dbr_char_t,
489    pub lower_disp_limit: dbr_char_t,
490    pub upper_alarm_limit: dbr_char_t,
491    pub upper_warning_limit: dbr_char_t,
492    pub lower_warning_limit: dbr_char_t,
493    pub lower_alarm_limit: dbr_char_t,
494    pub upper_ctrl_limit: dbr_char_t,
495    pub lower_ctrl_limit: dbr_char_t,
496    pub RISC_pad: dbr_char_t,
497    pub value: dbr_char_t,
498}
499#[repr(C)]
500#[derive(Debug, Copy, Clone)]
501pub struct dbr_ctrl_long {
502    pub status: dbr_short_t,
503    pub severity: dbr_short_t,
504    pub units: [libc::c_char; 8usize],
505    pub upper_disp_limit: dbr_long_t,
506    pub lower_disp_limit: dbr_long_t,
507    pub upper_alarm_limit: dbr_long_t,
508    pub upper_warning_limit: dbr_long_t,
509    pub lower_warning_limit: dbr_long_t,
510    pub lower_alarm_limit: dbr_long_t,
511    pub upper_ctrl_limit: dbr_long_t,
512    pub lower_ctrl_limit: dbr_long_t,
513    pub value: dbr_long_t,
514}
515#[repr(C)]
516#[derive(Debug, Copy, Clone)]
517pub struct dbr_ctrl_double {
518    pub status: dbr_short_t,
519    pub severity: dbr_short_t,
520    pub precision: dbr_short_t,
521    pub RISC_pad0: dbr_short_t,
522    pub units: [libc::c_char; 8usize],
523    pub upper_disp_limit: dbr_double_t,
524    pub lower_disp_limit: dbr_double_t,
525    pub upper_alarm_limit: dbr_double_t,
526    pub upper_warning_limit: dbr_double_t,
527    pub lower_warning_limit: dbr_double_t,
528    pub lower_alarm_limit: dbr_double_t,
529    pub upper_ctrl_limit: dbr_double_t,
530    pub lower_ctrl_limit: dbr_double_t,
531    pub value: dbr_double_t,
532}
533#[repr(u32)]
534#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
535pub enum dbr_value_class {
536    dbr_class_int = 0,
537    dbr_class_float = 1,
538    dbr_class_string = 2,
539    dbr_class_max = 3,
540}
541#[repr(C)]
542#[derive(Copy, Clone)]
543pub union db_access_val {
544    pub strval: dbr_string_t,
545    pub shrtval: dbr_short_t,
546    pub intval: dbr_short_t,
547    pub fltval: dbr_float_t,
548    pub enmval: dbr_enum_t,
549    pub charval: dbr_char_t,
550    pub longval: dbr_long_t,
551    pub doubleval: dbr_double_t,
552    pub sstrval: dbr_sts_string,
553    pub sshrtval: dbr_sts_short,
554    pub sfltval: dbr_sts_float,
555    pub senmval: dbr_sts_enum,
556    pub schrval: dbr_sts_char,
557    pub slngval: dbr_sts_long,
558    pub sdblval: dbr_sts_double,
559    pub tstrval: dbr_time_string,
560    pub tshrtval: dbr_time_short,
561    pub tfltval: dbr_time_float,
562    pub tenmval: dbr_time_enum,
563    pub tchrval: dbr_time_char,
564    pub tlngval: dbr_time_long,
565    pub tdblval: dbr_time_double,
566    pub gstrval: dbr_sts_string,
567    pub gshrtval: dbr_gr_short,
568    pub gfltval: dbr_gr_float,
569    pub genmval: dbr_gr_enum,
570    pub gchrval: dbr_gr_char,
571    pub glngval: dbr_gr_long,
572    pub gdblval: dbr_gr_double,
573    pub cstrval: dbr_sts_string,
574    pub cshrtval: dbr_ctrl_short,
575    pub cfltval: dbr_ctrl_float,
576    pub cenmval: dbr_ctrl_enum,
577    pub cchrval: dbr_ctrl_char,
578    pub clngval: dbr_ctrl_long,
579    pub cdblval: dbr_ctrl_double,
580    pub putackt: dbr_put_ackt_t,
581    pub putacks: dbr_put_acks_t,
582    pub sastrval: dbr_sts_string,
583    pub classname: dbr_string_t,
584}
585#[repr(C)]
586#[derive(Debug, Copy, Clone)]
587pub struct oldChannelNotify {
588    _unused: [u8; 0],
589}
590pub type chid = *mut oldChannelNotify;
591pub type chanId = chid;
592pub type chtype = libc::c_long;
593#[repr(C)]
594#[derive(Debug, Copy, Clone)]
595pub struct oldSubscription {
596    _unused: [u8; 0],
597}
598pub type evid = *mut oldSubscription;
599pub type ca_real = f64;
600#[repr(C)]
601#[derive(Debug, Copy, Clone)]
602pub struct connection_handler_args {
603    pub chid: chanId,
604    pub op: libc::c_long,
605}
606pub type caCh = ::core::option::Option<unsafe extern "C" fn(args: connection_handler_args)>;
607pub type caar = ca_access_rights;
608#[repr(C)]
609pub struct access_rights_handler_args {
610    pub chid: chanId,
611    pub ar: caar,
612}
613pub type caArh = ::core::option::Option<unsafe extern "C" fn(args: access_rights_handler_args)>;
614#[repr(C)]
615#[derive(Debug, Copy, Clone)]
616pub struct event_handler_args {
617    pub usr: *mut libc::c_void,
618    pub chid: chanId,
619    pub type_: libc::c_long,
620    pub count: libc::c_long,
621    pub dbr: *const libc::c_void,
622    pub status: libc::c_int,
623}
624pub type evargs = event_handler_args;
625pub type caEventCallBackFunc =
626    ::core::option::Option<unsafe extern "C" fn(arg1: event_handler_args)>;
627#[repr(C)]
628#[derive(Debug, Copy, Clone)]
629pub struct exception_handler_args {
630    pub usr: *mut libc::c_void,
631    pub chid: chanId,
632    pub type_: libc::c_long,
633    pub count: libc::c_long,
634    pub addr: *mut libc::c_void,
635    pub stat: libc::c_long,
636    pub op: libc::c_long,
637    pub ctx: *const libc::c_char,
638    pub pFile: *const libc::c_char,
639    pub lineNo: libc::c_uint,
640}
641pub type CA_SYNC_GID = libc::c_uint;
642#[repr(u32)]
643#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
644pub enum channel_state {
645    cs_never_conn = 0,
646    cs_prev_conn = 1,
647    cs_conn = 2,
648    cs_closed = 3,
649}
650#[repr(u32)]
651#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
652pub enum ca_preemptive_callback_select {
653    ca_disable_preemptive_callback = 0,
654    ca_enable_preemptive_callback = 1,
655}
656pub type capri = libc::c_uint;
657pub type caExceptionHandler =
658    ::core::option::Option<unsafe extern "C" fn(arg1: exception_handler_args)>;
659pub type CAFDHANDLER = ::core::option::Option<
660    unsafe extern "C" fn(parg: *mut libc::c_void, fd: libc::c_int, opened: libc::c_int),
661>;
662#[repr(C)]
663#[derive(Debug, Copy, Clone)]
664pub struct ca_client_context {
665    _unused: [u8; 0],
666}
667#[repr(u32)]
668#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
669pub enum epicsAlarmSeverity {
670    epicsSevNone = 0,
671    epicsSevMinor = 1,
672    epicsSevMajor = 2,
673    epicsSevInvalid = 3,
674    ALARM_NSEV = 4,
675}
676#[repr(u32)]
677#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
678pub enum epicsAlarmCondition {
679    epicsAlarmNone = 0,
680    epicsAlarmRead = 1,
681    epicsAlarmWrite = 2,
682    epicsAlarmHiHi = 3,
683    epicsAlarmHigh = 4,
684    epicsAlarmLoLo = 5,
685    epicsAlarmLow = 6,
686    epicsAlarmState = 7,
687    epicsAlarmCos = 8,
688    epicsAlarmComm = 9,
689    epicsAlarmTimeout = 10,
690    epicsAlarmHwLimit = 11,
691    epicsAlarmCalc = 12,
692    epicsAlarmScan = 13,
693    epicsAlarmLink = 14,
694    epicsAlarmSoft = 15,
695    epicsAlarmBadSub = 16,
696    epicsAlarmUDF = 17,
697    epicsAlarmDisable = 18,
698    epicsAlarmSimm = 19,
699    epicsAlarmReadAccess = 20,
700    epicsAlarmWriteAccess = 21,
701    ALARM_NSTATUS = 22,
702}
703extern "C" {
704    pub static mut epicsTypeNames: [*const libc::c_char; 11usize];
705    pub static mut epicsTypeCodeNames: [*const libc::c_char; 11usize];
706    pub static epicsTypeSizes: [libc::c_uint; 11usize];
707    pub static epicsTypeClasses: [epicsTypeClass; 11usize];
708    pub static mut epicsTypeAnyFieldName: [*const libc::c_char; 11usize];
709    pub fn ca_message(ca_status: libc::c_long) -> *const libc::c_char;
710    pub static mut ca_message_text: [*const libc::c_char; 0usize];
711    pub static epicsTypeToDBR_XXXX: [libc::c_int; 11usize];
712    pub static DBR_XXXXToEpicsType: [epicsType; 39usize];
713    pub static dbr_size: [libc::c_ushort; 0usize];
714    pub static dbr_value_size: [libc::c_ushort; 0usize];
715    pub static dbr_value_class: [dbr_value_class; 39usize];
716    pub static dbr_value_offset: [libc::c_ushort; 39usize];
717    pub static mut dbf_text: [*const libc::c_char; 9usize];
718    pub static dbf_text_dim: libc::c_short;
719    pub static mut dbf_text_invalid: *const libc::c_char;
720    pub static mut dbr_text: [*const libc::c_char; 39usize];
721    pub static dbr_text_dim: libc::c_short;
722    pub static mut dbr_text_invalid: *const libc::c_char;
723    pub fn ca_test_event(arg1: event_handler_args);
724    pub fn ca_field_type(chan: chid) -> libc::c_short;
725    pub fn ca_element_count(chan: chid) -> libc::c_ulong;
726    pub fn ca_name(chan: chid) -> *const libc::c_char;
727    pub fn ca_set_puser(chan: chid, puser: *mut libc::c_void);
728    pub fn ca_puser(chan: chid) -> *mut libc::c_void;
729    pub fn ca_read_access(chan: chid) -> libc::c_uint;
730    pub fn ca_write_access(chan: chid) -> libc::c_uint;
731    pub fn ca_state(chan: chid) -> channel_state;
732    pub fn ca_task_initialize() -> libc::c_int;
733    pub fn ca_context_create(select: ca_preemptive_callback_select) -> libc::c_int;
734    pub fn ca_detach_context();
735    pub fn ca_task_exit() -> libc::c_int;
736    pub fn ca_context_destroy();
737    pub fn ca_create_channel(
738        pChanName: *const libc::c_char,
739        pConnStateCallback: caCh,
740        pUserPrivate: *mut libc::c_void,
741        priority: capri,
742        pChanID: *mut chid,
743    ) -> libc::c_int;
744    pub fn ca_change_connection_event(chan: chid, pfunc: caCh) -> libc::c_int;
745    pub fn ca_replace_access_rights_event(chan: chid, pfunc: caArh) -> libc::c_int;
746    pub fn ca_add_exception_event(
747        pfunc: caExceptionHandler,
748        pArg: *mut libc::c_void,
749    ) -> libc::c_int;
750    pub fn ca_clear_channel(chanId: chid) -> libc::c_int;
751    pub fn ca_array_put(
752        type_: chtype,
753        count: libc::c_ulong,
754        chanId: chid,
755        pValue: *const libc::c_void,
756    ) -> libc::c_int;
757    pub fn ca_array_put_callback(
758        type_: chtype,
759        count: libc::c_ulong,
760        chanId: chid,
761        pValue: *const libc::c_void,
762        pFunc: caEventCallBackFunc,
763        pArg: *mut libc::c_void,
764    ) -> libc::c_int;
765    pub fn ca_array_get(
766        type_: chtype,
767        count: libc::c_ulong,
768        chanId: chid,
769        pValue: *mut libc::c_void,
770    ) -> libc::c_int;
771    pub fn ca_array_get_callback(
772        type_: chtype,
773        count: libc::c_ulong,
774        chanId: chid,
775        pFunc: caEventCallBackFunc,
776        pArg: *mut libc::c_void,
777    ) -> libc::c_int;
778    pub fn ca_create_subscription(
779        type_: chtype,
780        count: libc::c_ulong,
781        chanId: chid,
782        mask: libc::c_long,
783        pFunc: caEventCallBackFunc,
784        pArg: *mut libc::c_void,
785        pEventID: *mut evid,
786    ) -> libc::c_int;
787    pub fn ca_clear_subscription(eventID: evid) -> libc::c_int;
788    pub fn ca_evid_to_chid(id: evid) -> chid;
789    pub fn ca_pend_event(timeout: ca_real) -> libc::c_int;
790    pub fn ca_pend_io(timeout: ca_real) -> libc::c_int;
791    pub fn ca_pend(timeout: ca_real, early: libc::c_int) -> libc::c_int;
792    pub fn ca_test_io() -> libc::c_int;
793    pub fn ca_flush_io() -> libc::c_int;
794    pub fn ca_signal(errorCode: libc::c_long, pCtxStr: *const libc::c_char);
795    pub fn ca_signal_with_file_and_lineno(
796        errorCode: libc::c_long,
797        pCtxStr: *const libc::c_char,
798        pFileStr: *const libc::c_char,
799        lineNo: libc::c_int,
800    );
801    pub fn ca_signal_formated(
802        ca_status: libc::c_long,
803        pfilenm: *const libc::c_char,
804        lineno: libc::c_int,
805        pFormat: *const libc::c_char,
806        ...
807    );
808    pub fn ca_host_name(channel: chid) -> *const libc::c_char;
809    pub fn ca_get_host_name(
810        pChan: chid,
811        pBuf: *mut libc::c_char,
812        bufLength: libc::c_uint,
813    ) -> libc::c_uint;
814    pub fn ca_add_fd_registration(pHandler: CAFDHANDLER, pArg: *mut libc::c_void) -> libc::c_int;
815    pub fn ca_sg_create(pgid: *mut CA_SYNC_GID) -> libc::c_int;
816    pub fn ca_sg_delete(gid: CA_SYNC_GID) -> libc::c_int;
817    pub fn ca_sg_block(gid: CA_SYNC_GID, timeout: ca_real) -> libc::c_int;
818    pub fn ca_sg_test(gid: CA_SYNC_GID) -> libc::c_int;
819    pub fn ca_sg_reset(gid: CA_SYNC_GID) -> libc::c_int;
820    pub fn ca_sg_array_get(
821        gid: CA_SYNC_GID,
822        type_: chtype,
823        count: libc::c_ulong,
824        chan: chid,
825        pValue: *mut libc::c_void,
826    ) -> libc::c_int;
827    pub fn ca_sg_array_put(
828        gid: CA_SYNC_GID,
829        type_: chtype,
830        count: libc::c_ulong,
831        chan: chid,
832        pValue: *const libc::c_void,
833    ) -> libc::c_int;
834    pub fn ca_sg_stat(gid: CA_SYNC_GID) -> libc::c_int;
835    pub fn ca_dump_dbr(type_: chtype, count: libc::c_uint, pbuffer: *const libc::c_void);
836    pub fn ca_v42_ok(chan: chid) -> libc::c_int;
837    pub fn ca_version() -> *const libc::c_char;
838    pub fn ca_get_ioc_connection_count() -> libc::c_uint;
839    pub fn ca_preemtive_callback_is_enabled() -> libc::c_int;
840    pub fn ca_self_test();
841    pub fn ca_beacon_anomaly_count() -> libc::c_uint;
842    pub fn ca_search_attempts(chan: chid) -> libc::c_uint;
843    pub fn ca_beacon_period(chan: chid) -> f64;
844    pub fn ca_receive_watchdog_delay(chan: chid) -> f64;
845    pub fn ca_current_context() -> *mut ca_client_context;
846    pub fn ca_attach_context(context: *mut ca_client_context) -> libc::c_int;
847    pub fn ca_client_status(level: libc::c_uint) -> libc::c_int;
848    pub fn ca_context_status(arg1: *mut ca_client_context, level: libc::c_uint) -> libc::c_int;
849    pub fn ca_build_and_connect(
850        pChanName: *const libc::c_char,
851        arg1: chtype,
852        arg2: libc::c_ulong,
853        pChanID: *mut chid,
854        arg3: *mut libc::c_void,
855        pFunc: caCh,
856        pArg: *mut libc::c_void,
857    ) -> libc::c_int;
858    pub fn ca_search_and_connect(
859        pChanName: *const libc::c_char,
860        pChanID: *mut chid,
861        pFunc: caCh,
862        pArg: *mut libc::c_void,
863    ) -> libc::c_int;
864    pub fn ca_channel_status(tid: epicsThreadId) -> libc::c_int;
865    pub fn ca_clear_event(eventID: evid) -> libc::c_int;
866    pub fn ca_add_masked_array_event(
867        type_: chtype,
868        count: libc::c_ulong,
869        chanId: chid,
870        pFunc: caEventCallBackFunc,
871        pArg: *mut libc::c_void,
872        p_delta: ca_real,
873        n_delta: ca_real,
874        timeout: ca_real,
875        pEventID: *mut evid,
876        mask: libc::c_long,
877    ) -> libc::c_int;
878    pub fn ca_modify_user_name(pUserName: *const libc::c_char) -> libc::c_int;
879    pub fn ca_modify_host_name(pHostName: *const libc::c_char) -> libc::c_int;
880    pub static mut epicsAlarmSeverityStrings: [*const libc::c_char; 4usize];
881    pub static mut epicsAlarmConditionStrings: [*const libc::c_char; 22usize];
882}