1#![allow(
2 non_camel_case_types,
3 non_upper_case_globals,
4 non_snake_case,
5 clippy::missing_safety_doc
6)]
7
8mod generated;
9pub use generated::*;
10
11#[cfg(all(test, feature = "test"))]
12mod test;
13
14#[repr(C)]
15#[derive(Debug, Copy, Clone)]
16pub struct epicsThreadOSD {
17 _unused: [u8; 0],
18}
19
20pub const fn CA_EXTRACT_MSG_NO(code: i32) -> i32 {
21 (code & CA_M_MSG_NO) >> CA_V_MSG_NO
22}
23pub const fn CA_EXTRACT_SEVERITY(code: i32) -> i32 {
24 (code & CA_M_SEVERITY) >> CA_V_SEVERITY
25}
26pub const fn CA_EXTRACT_SUCCESS(code: i32) -> i32 {
27 (code & CA_M_SUCCESS) >> CA_V_SUCCESS
28}
29pub const fn CA_INSERT_MSG_NO(code: i32) -> i32 {
30 (code << CA_V_MSG_NO) & CA_M_MSG_NO
31}
32pub const fn CA_INSERT_SEVERITY(code: i32) -> i32 {
33 (code << CA_V_SEVERITY) & CA_M_SEVERITY
34}
35pub const fn CA_INSERT_SUCCESS(code: i32) -> i32 {
36 (code << CA_V_SUCCESS) & CA_M_SUCCESS
37}
38const fn DEFMSG(SEVERITY: i32, NUMBER: i32) -> i32 {
39 CA_INSERT_MSG_NO(NUMBER) | CA_INSERT_SEVERITY(SEVERITY)
40}
41
42pub const ECA_NORMAL: i32 = DEFMSG(CA_K_SUCCESS, 0);
43pub const ECA_MAXIOC: i32 = DEFMSG(CA_K_ERROR, 1);
44pub const ECA_UKNHOST: i32 = DEFMSG(CA_K_ERROR, 2);
45pub const ECA_UKNSERV: i32 = DEFMSG(CA_K_ERROR, 3);
46pub const ECA_SOCK: i32 = DEFMSG(CA_K_ERROR, 4);
47pub const ECA_CONN: i32 = DEFMSG(CA_K_WARNING, 5);
48pub const ECA_ALLOCMEM: i32 = DEFMSG(CA_K_WARNING, 6);
49pub const ECA_UKNCHAN: i32 = DEFMSG(CA_K_WARNING, 7);
50pub const ECA_UKNFIELD: i32 = DEFMSG(CA_K_WARNING, 8);
51pub const ECA_TOLARGE: i32 = DEFMSG(CA_K_WARNING, 9);
52pub const ECA_TIMEOUT: i32 = DEFMSG(CA_K_WARNING, 10);
53pub const ECA_NOSUPPORT: i32 = DEFMSG(CA_K_WARNING, 11);
54pub const ECA_STRTOBIG: i32 = DEFMSG(CA_K_WARNING, 12);
55pub const ECA_DISCONNCHID: i32 = DEFMSG(CA_K_ERROR, 13);
56pub const ECA_BADTYPE: i32 = DEFMSG(CA_K_ERROR, 14);
57pub const ECA_CHIDNOTFND: i32 = DEFMSG(CA_K_INFO, 15);
58pub const ECA_CHIDRETRY: i32 = DEFMSG(CA_K_INFO, 16);
59pub const ECA_INTERNAL: i32 = DEFMSG(CA_K_FATAL, 17);
60pub const ECA_DBLCLFAIL: i32 = DEFMSG(CA_K_WARNING, 18);
61pub const ECA_GETFAIL: i32 = DEFMSG(CA_K_WARNING, 19);
62pub const ECA_PUTFAIL: i32 = DEFMSG(CA_K_WARNING, 20);
63pub const ECA_ADDFAIL: i32 = DEFMSG(CA_K_WARNING, 21);
64pub const ECA_BADCOUNT: i32 = DEFMSG(CA_K_WARNING, 22);
65pub const ECA_BADSTR: i32 = DEFMSG(CA_K_ERROR, 23);
66pub const ECA_DISCONN: i32 = DEFMSG(CA_K_WARNING, 24);
67pub const ECA_DBLCHNL: i32 = DEFMSG(CA_K_WARNING, 25);
68pub const ECA_EVDISALLOW: i32 = DEFMSG(CA_K_ERROR, 26);
69pub const ECA_BUILDGET: i32 = DEFMSG(CA_K_WARNING, 27);
70pub const ECA_NEEDSFP: i32 = DEFMSG(CA_K_WARNING, 28);
71pub const ECA_OVEVFAIL: i32 = DEFMSG(CA_K_WARNING, 29);
72pub const ECA_BADMONID: i32 = DEFMSG(CA_K_ERROR, 30);
73pub const ECA_NEWADDR: i32 = DEFMSG(CA_K_WARNING, 31);
74pub const ECA_NEWCONN: i32 = DEFMSG(CA_K_INFO, 32);
75pub const ECA_NOCACTX: i32 = DEFMSG(CA_K_WARNING, 33);
76pub const ECA_DEFUNCT: i32 = DEFMSG(CA_K_FATAL, 34);
77pub const ECA_EMPTYSTR: i32 = DEFMSG(CA_K_WARNING, 35);
78pub const ECA_NOREPEATER: i32 = DEFMSG(CA_K_WARNING, 36);
79pub const ECA_NOCHANMSG: i32 = DEFMSG(CA_K_WARNING, 37);
80pub const ECA_DLCKREST: i32 = DEFMSG(CA_K_WARNING, 38);
81pub const ECA_SERVBEHIND: i32 = DEFMSG(CA_K_WARNING, 39);
82pub const ECA_NOCAST: i32 = DEFMSG(CA_K_WARNING, 40);
83pub const ECA_BADMASK: i32 = DEFMSG(CA_K_ERROR, 41);
84pub const ECA_IODONE: i32 = DEFMSG(CA_K_INFO, 42);
85pub const ECA_IOINPROGRESS: i32 = DEFMSG(CA_K_INFO, 43);
86pub const ECA_BADSYNCGRP: i32 = DEFMSG(CA_K_ERROR, 44);
87pub const ECA_PUTCBINPROG: i32 = DEFMSG(CA_K_ERROR, 45);
88pub const ECA_NORDACCESS: i32 = DEFMSG(CA_K_WARNING, 46);
89pub const ECA_NOWTACCESS: i32 = DEFMSG(CA_K_WARNING, 47);
90pub const ECA_ANACHRONISM: i32 = DEFMSG(CA_K_ERROR, 48);
91pub const ECA_NOSEARCHADDR: i32 = DEFMSG(CA_K_WARNING, 49);
92pub const ECA_NOCONVERT: i32 = DEFMSG(CA_K_WARNING, 50);
93pub const ECA_BADCHID: i32 = DEFMSG(CA_K_ERROR, 51);
94pub const ECA_BADFUNCPTR: i32 = DEFMSG(CA_K_ERROR, 52);
95pub const ECA_ISATTACHED: i32 = DEFMSG(CA_K_WARNING, 53);
96pub const ECA_UNAVAILINSERV: i32 = DEFMSG(CA_K_WARNING, 54);
97pub const ECA_CHANDESTROY: i32 = DEFMSG(CA_K_WARNING, 55);
98pub const ECA_BADPRIORITY: i32 = DEFMSG(CA_K_ERROR, 56);
99pub const ECA_NOTTHREADED: i32 = DEFMSG(CA_K_ERROR, 57);
100pub const ECA_16KARRAYCLIENT: i32 = DEFMSG(CA_K_WARNING, 58);
101pub const ECA_CONNSEQTMO: i32 = DEFMSG(CA_K_WARNING, 59);
102pub const ECA_UNRESPTMO: i32 = DEFMSG(CA_K_WARNING, 60);
103
104pub type ca_access_rights = u32;
105#[cfg(target_endian = "big")]
106pub const CA_READ_ACCESS: u32 = 1 << 31;
107#[cfg(target_endian = "little")]
108pub const CA_READ_ACCESS: u32 = 1 << 0;
109#[cfg(target_endian = "big")]
110pub const CA_READ_ACCESS: u32 = 1 << 30;
111#[cfg(target_endian = "little")]
112pub const CA_WRITE_ACCESS: u32 = 1 << 1;
113
114pub unsafe fn ca_put(type_: chtype, chanId: chid, pValue: *const libc::c_void) -> libc::c_int {
115 ca_array_put(type_, 1, chanId, pValue)
116}
117pub unsafe fn ca_put_callback(
118 type_: chtype,
119 chanId: chid,
120 pValue: *const libc::c_void,
121 pFunc: caEventCallBackFunc,
122 pArg: *mut libc::c_void,
123) -> libc::c_int {
124 ca_array_put_callback(type_, 1, chanId, pValue, pFunc, pArg)
125}
126pub unsafe fn ca_get(type_: chtype, chanId: chid, pValue: *mut libc::c_void) -> libc::c_int {
127 ca_array_get(type_, 1, chanId, pValue)
128}
129pub unsafe fn ca_get_callback(
130 type_: chtype,
131 chanId: chid,
132 pFunc: caEventCallBackFunc,
133 pArg: *mut libc::c_void,
134) -> libc::c_int {
135 ca_array_get_callback(type_, 1, chanId, pFunc, pArg)
136}