1pub const FELICA_IDM_LENGTH: u16 = 8;
4pub const FELICA_PMM_LENGTH: u16 = 8;
5pub const FELICA_BLOCK_LENGTH: u16 = 16;
6pub const FELICA_AREA_NUM_MAX: u16 = 121;
7pub const FELICA_POLLING_ANY: u16 = 65535;
8pub const FELICA_POLLING_SUICA: u16 = 3;
9pub const FELICA_POLLING_EDY: u16 = 65024;
10pub const FELICA_SERVICE_SUICA_IN_OUT: u16 = 4239;
11pub const FELICA_SERVICE_SUICA_HISTORY: u16 = 2319;
12pub const FELICA_SERVICE_IRUCA_HISTORY: u16 = 56960;
13pub const FELICA_SERVICE_EDY_NUMBER: u16 = 4363;
14pub const FELICA_SERVICE_EDY_HISTORY: u16 = 5903;
15pub const FELICA_CMD_POLLING: u16 = 0;
16pub const FELICA_ANS_POLLING: u16 = 1;
17pub const FELICA_CMD_REQUEST_SERVICE: u16 = 2;
18pub const FELICA_ANS_REQUEST_SERVCCE: u16 = 3;
19pub const FELICA_CMD_REQUEST_RESPONSE: u16 = 4;
20pub const FELICA_ANS_REQUEST_RESPONSE: u16 = 5;
21pub const FELICA_CMD_READ_WITHOUT_ENCRYPTION: u16 = 6;
22pub const FELICA_ANS_READ_WITHOUT_ENCRYPTION: u16 = 7;
23pub const FELICA_CMD_WRITE_WITHOUT_ENCRYPTION: u16 = 8;
24pub const FELICA_ANS_WRITE_WITHOUT_ENCRYPTION: u16 = 9;
25pub const FELICA_CMD_AUTHENTICATION1: u16 = 16;
26pub const FELICA_ANS_AUTHENTICATION1: u16 = 17;
27pub const FELICA_CMD_AUTHENTICATION2: u16 = 18;
28pub const FELICA_ANS_AUTHENTICATION2: u16 = 19;
29pub const FELICA_CMD_READ_FROM_SECURE_FILE: u16 = 20;
30pub const FELICA_ANS_READ_FROM_SECURE_FILE: u16 = 21;
31pub const FELICA_CMD_WRITE_TO_SECURE_FILE: u16 = 22;
32pub const FELICA_ANS_WRITE_TO_SECURE_FILE: u16 = 23;
33pub const FELICA_CMD_SEARCH_SERVICE_CODE: u16 = 10;
34pub const FELICA_ANS_SEARCH_SERVICE_CODE: u16 = 11;
35pub const FELICA_CMD_REQUEST_SYSTEM: u16 = 12;
36pub const FELICA_ANS_REQUEST_SYSTEM: u16 = 13;
37pub const PASORI2_CMD_SELF_DIAGNOSIS: u16 = 82;
38pub const PASORI2_ANS_SELF_DIAGNOSIS: u16 = 83;
39pub const PASORI2_CMD_GET_FIRMWARE_VERSION: u16 = 88;
40pub const PASORI2_ANS_GET_FIRMWARE_VERSION: u16 = 89;
41pub const PASORI2_CMD_SEND_PACKET: u16 = 92;
42pub const PASORI2_ANS_SEND_PACKET: u16 = 93;
43pub const PASORI2_DIAG_COMMUNICATION_LINE_TEST: u16 = 0;
44pub const PASORI2_DIAG_EEPROM_TEST: u16 = 1;
45pub const PASORI2_DIAG_RAM_TEST: u16 = 2;
46pub const PASORI2_DIAG_CPU_FUNCTION_TEST: u16 = 3;
47pub const PASORI2_DIAG_CPU_FANCTION_TEST: u16 = 3;
48pub const PASORI2_DIAG_POLLING_TEST_TO_CARD: u16 = 16;
49pub const PASORI_ERR_PARM: u16 = 1;
50pub const PASORI_ERR_MEM: u16 = 2;
51pub const PASORI_ERR_COM: u16 = 3;
52pub const PASORI_ERR_DATA: u16 = 4;
53pub const PASORI_ERR_CHKSUM: u16 = 5;
54pub const PASORI_ERR_FORMAT: u16 = 6;
55pub const PASORI_ERR_TYPE: u16 = 7;
56pub type Uint8 = ::std::os::raw::c_uchar;
57pub type Uint16 = ::std::os::raw::c_ushort;
58pub const PASORI_TYPE_PASORI_TYPE_S310: PasoriType = 0;
59pub const PASORI_TYPE_PASORI_TYPE_S320: PasoriType = 1;
60pub const PASORI_TYPE_PASORI_TYPE_S330: PasoriType = 2;
61pub type PasoriType = ::std::os::raw::c_uint;
62#[repr(C)]
63#[derive(Debug, Copy, Clone)]
64pub struct tag_pasori {
65 _unused: [u8; 0],
66}
67pub type Pasori = tag_pasori;
68#[repr(C)]
69#[derive(Debug, Copy, Clone)]
70pub struct _ferica_area {
71 pub code: Uint16,
72 pub attr: Uint16,
73 pub bin: Uint16,
74 pub next: *mut _ferica_area,
75}
76#[test]
77fn bindgen_test_layout_ferica_area() {
78 assert_eq!(
79 ::std::mem::size_of::<_ferica_area>(),
80 16usize,
81 concat!("Size of: ", stringify!(_ferica_area))
82 );
83 assert_eq!(
84 ::std::mem::align_of::<_ferica_area>(),
85 8usize,
86 concat!("Alignment of ", stringify!(_ferica_area))
87 );
88 assert_eq!(
89 unsafe { &(*(::std::ptr::null::<_ferica_area>())).code as *const _ as usize },
90 0usize,
91 concat!(
92 "Offset of field: ",
93 stringify!(_ferica_area),
94 "::",
95 stringify!(code)
96 )
97 );
98 assert_eq!(
99 unsafe { &(*(::std::ptr::null::<_ferica_area>())).attr as *const _ as usize },
100 2usize,
101 concat!(
102 "Offset of field: ",
103 stringify!(_ferica_area),
104 "::",
105 stringify!(attr)
106 )
107 );
108 assert_eq!(
109 unsafe { &(*(::std::ptr::null::<_ferica_area>())).bin as *const _ as usize },
110 4usize,
111 concat!(
112 "Offset of field: ",
113 stringify!(_ferica_area),
114 "::",
115 stringify!(bin)
116 )
117 );
118 assert_eq!(
119 unsafe { &(*(::std::ptr::null::<_ferica_area>())).next as *const _ as usize },
120 8usize,
121 concat!(
122 "Offset of field: ",
123 stringify!(_ferica_area),
124 "::",
125 stringify!(next)
126 )
127 );
128}
129pub type FelicaArea = _ferica_area;
130#[repr(C)]
131#[derive(Copy, Clone)]
132#[allow(non_snake_case)]
133pub struct tag_felica {
134 pub p: *mut Pasori,
135 pub systemcode: Uint16,
136 pub IDm: [Uint8; 8usize],
137 pub PMm: [Uint8; 8usize],
138 pub area_num: Uint16,
139 pub area: [FelicaArea; 256usize],
140 pub service_num: Uint16,
141 pub service: [FelicaArea; 256usize],
142 pub next: *mut tag_felica,
143}
144#[test]
145fn bindgen_test_layout_tag_felica() {
146 assert_eq!(
147 ::std::mem::size_of::<tag_felica>(),
148 8240usize,
149 concat!("Size of: ", stringify!(tag_felica))
150 );
151 assert_eq!(
152 ::std::mem::align_of::<tag_felica>(),
153 8usize,
154 concat!("Alignment of ", stringify!(tag_felica))
155 );
156 assert_eq!(
157 unsafe { &(*(::std::ptr::null::<tag_felica>())).p as *const _ as usize },
158 0usize,
159 concat!(
160 "Offset of field: ",
161 stringify!(tag_felica),
162 "::",
163 stringify!(p)
164 )
165 );
166 assert_eq!(
167 unsafe { &(*(::std::ptr::null::<tag_felica>())).systemcode as *const _ as usize },
168 8usize,
169 concat!(
170 "Offset of field: ",
171 stringify!(tag_felica),
172 "::",
173 stringify!(systemcode)
174 )
175 );
176 assert_eq!(
177 unsafe { &(*(::std::ptr::null::<tag_felica>())).IDm as *const _ as usize },
178 10usize,
179 concat!(
180 "Offset of field: ",
181 stringify!(tag_felica),
182 "::",
183 stringify!(IDm)
184 )
185 );
186 assert_eq!(
187 unsafe { &(*(::std::ptr::null::<tag_felica>())).PMm as *const _ as usize },
188 18usize,
189 concat!(
190 "Offset of field: ",
191 stringify!(tag_felica),
192 "::",
193 stringify!(PMm)
194 )
195 );
196 assert_eq!(
197 unsafe { &(*(::std::ptr::null::<tag_felica>())).area_num as *const _ as usize },
198 26usize,
199 concat!(
200 "Offset of field: ",
201 stringify!(tag_felica),
202 "::",
203 stringify!(area_num)
204 )
205 );
206 assert_eq!(
207 unsafe { &(*(::std::ptr::null::<tag_felica>())).area as *const _ as usize },
208 32usize,
209 concat!(
210 "Offset of field: ",
211 stringify!(tag_felica),
212 "::",
213 stringify!(area)
214 )
215 );
216 assert_eq!(
217 unsafe { &(*(::std::ptr::null::<tag_felica>())).service_num as *const _ as usize },
218 4128usize,
219 concat!(
220 "Offset of field: ",
221 stringify!(tag_felica),
222 "::",
223 stringify!(service_num)
224 )
225 );
226 assert_eq!(
227 unsafe { &(*(::std::ptr::null::<tag_felica>())).service as *const _ as usize },
228 4136usize,
229 concat!(
230 "Offset of field: ",
231 stringify!(tag_felica),
232 "::",
233 stringify!(service)
234 )
235 );
236 assert_eq!(
237 unsafe { &(*(::std::ptr::null::<tag_felica>())).next as *const _ as usize },
238 8232usize,
239 concat!(
240 "Offset of field: ",
241 stringify!(tag_felica),
242 "::",
243 stringify!(next)
244 )
245 );
246}
247pub type Felica = tag_felica;
248#[repr(C)]
249#[derive(Debug, Copy, Clone)]
250pub struct tag_felica_block {
251 pub data: [Uint8; 8usize],
252}
253#[test]
254fn bindgen_test_layout_tag_felica_block() {
255 assert_eq!(
256 ::std::mem::size_of::<tag_felica_block>(),
257 8usize,
258 concat!("Size of: ", stringify!(tag_felica_block))
259 );
260 assert_eq!(
261 ::std::mem::align_of::<tag_felica_block>(),
262 1usize,
263 concat!("Alignment of ", stringify!(tag_felica_block))
264 );
265 assert_eq!(
266 unsafe { &(*(::std::ptr::null::<tag_felica_block>())).data as *const _ as usize },
267 0usize,
268 concat!(
269 "Offset of field: ",
270 stringify!(tag_felica_block),
271 "::",
272 stringify!(data)
273 )
274 );
275}
276pub type FelicaBlock = tag_felica_block;
277#[repr(C)]
278#[derive(Debug, Copy, Clone)]
279pub struct _felica_block_info {
280 pub service: Uint16,
281 pub mode: Uint8,
282 pub block: Uint16,
283}
284#[test]
285fn bindgen_test_layout_felica_block_info() {
286 assert_eq!(
287 ::std::mem::size_of::<_felica_block_info>(),
288 6usize,
289 concat!("Size of: ", stringify!(_felica_block_info))
290 );
291 assert_eq!(
292 ::std::mem::align_of::<_felica_block_info>(),
293 2usize,
294 concat!("Alignment of ", stringify!(_felica_block_info))
295 );
296 assert_eq!(
297 unsafe { &(*(::std::ptr::null::<_felica_block_info>())).service as *const _ as usize },
298 0usize,
299 concat!(
300 "Offset of field: ",
301 stringify!(_felica_block_info),
302 "::",
303 stringify!(service)
304 )
305 );
306 assert_eq!(
307 unsafe { &(*(::std::ptr::null::<_felica_block_info>())).mode as *const _ as usize },
308 2usize,
309 concat!(
310 "Offset of field: ",
311 stringify!(_felica_block_info),
312 "::",
313 stringify!(mode)
314 )
315 );
316 assert_eq!(
317 unsafe { &(*(::std::ptr::null::<_felica_block_info>())).block as *const _ as usize },
318 4usize,
319 concat!(
320 "Offset of field: ",
321 stringify!(_felica_block_info),
322 "::",
323 stringify!(block)
324 )
325 );
326}
327pub type FelicaBlockInfo = _felica_block_info;
328
329#[link(name = "pafe")]
330extern "C" {
331 pub fn pasori_open() -> *mut Pasori;
332 pub fn pasori_init(p: *mut Pasori) -> ::std::os::raw::c_int;
333 pub fn pasori_close(p: *mut Pasori);
334 pub fn pasori_send(
335 p: *mut Pasori,
336 data: *mut Uint8,
337 size: *mut ::std::os::raw::c_int,
338 ) -> ::std::os::raw::c_int;
339 pub fn pasori_recv(
340 p: *mut Pasori,
341 data: *mut Uint8,
342 size: *mut ::std::os::raw::c_int,
343 ) -> ::std::os::raw::c_int;
344 pub fn pasori_packet_write(
345 p: *mut Pasori,
346 data: *mut Uint8,
347 size: *mut ::std::os::raw::c_int,
348 ) -> ::std::os::raw::c_int;
349 pub fn pasori_packet_read(
350 p: *mut Pasori,
351 data: *mut Uint8,
352 size: *mut ::std::os::raw::c_int,
353 ) -> ::std::os::raw::c_int;
354 pub fn pasori_write(
355 p: *mut Pasori,
356 data: *mut Uint8,
357 size: *mut ::std::os::raw::c_int,
358 ) -> ::std::os::raw::c_int;
359 pub fn pasori_read(
360 p: *mut Pasori,
361 data: *mut Uint8,
362 size: *mut ::std::os::raw::c_int,
363 ) -> ::std::os::raw::c_int;
364 pub fn pasori_reset(p: *mut Pasori) -> ::std::os::raw::c_int;
365 pub fn pasori_version(
366 p: *mut Pasori,
367 v1: *mut ::std::os::raw::c_int,
368 v2: *mut ::std::os::raw::c_int,
369 ) -> ::std::os::raw::c_int;
370 pub fn pasori_type(p: *mut Pasori) -> ::std::os::raw::c_uint;
371 pub fn pasori_test(
372 p: *mut Pasori,
373 code: ::std::os::raw::c_int,
374 data: *mut Uint8,
375 size: *mut ::std::os::raw::c_int,
376 rdata: *mut Uint8,
377 rsize: *mut ::std::os::raw::c_int,
378 ) -> ::std::os::raw::c_int;
379 pub fn pasori_test_echo(
380 p: *mut Pasori,
381 data: *mut Uint8,
382 size: *mut ::std::os::raw::c_int,
383 ) -> ::std::os::raw::c_int;
384 pub fn pasori_test_eprom(p: *mut Pasori) -> ::std::os::raw::c_int;
385 pub fn pasori_test_ram(p: *mut Pasori) -> ::std::os::raw::c_int;
386 pub fn pasori_test_cpu(p: *mut Pasori) -> ::std::os::raw::c_int;
387 pub fn pasori_test_polling(p: *mut Pasori) -> ::std::os::raw::c_int;
388 pub fn pasori_list_passive_target(
389 pp: *mut Pasori,
390 payload: *mut ::std::os::raw::c_uchar,
391 size: *mut ::std::os::raw::c_int,
392 ) -> ::std::os::raw::c_int;
393 pub fn pasori_set_timeout(p: *mut Pasori, timeout: ::std::os::raw::c_int);
394 pub fn felica_polling(
395 p: *mut Pasori,
396 systemcode: Uint16,
397 RFU: Uint8,
398 timeslot: Uint8,
399 ) -> *mut Felica;
400 pub fn felica_get_idm(f: *mut Felica, idm: *mut Uint8) -> ::std::os::raw::c_int;
401 pub fn felica_get_pmm(f: *mut Felica, idm: *mut Uint8) -> ::std::os::raw::c_int;
402 pub fn felica_read(
403 f: *mut Felica,
404 n: *mut ::std::os::raw::c_int,
405 info: *mut FelicaBlockInfo,
406 data: *mut Uint8,
407 ) -> ::std::os::raw::c_int;
408 pub fn felica_read_single(
409 f: *mut Felica,
410 servicecode: ::std::os::raw::c_int,
411 mode: ::std::os::raw::c_int,
412 addr: Uint8,
413 data: *mut Uint8,
414 ) -> ::std::os::raw::c_int;
415 pub fn felica_write(
416 f: *mut Felica,
417 servicecode: ::std::os::raw::c_int,
418 mode: ::std::os::raw::c_int,
419 addr: Uint8,
420 data: *mut Uint8,
421 ) -> ::std::os::raw::c_int;
422 pub fn felica_request_service(
423 f: *mut Felica,
424 n: *mut ::std::os::raw::c_int,
425 list: *mut Uint16,
426 data: *mut Uint16,
427 ) -> ::std::os::raw::c_int;
428 pub fn felica_request_response(f: *mut Felica, mode: *mut Uint8) -> ::std::os::raw::c_int;
429 pub fn felica_search_service(f: *mut Felica) -> ::std::os::raw::c_int;
430 pub fn felica_request_system(
431 f: *mut Felica,
432 n: *mut ::std::os::raw::c_int,
433 data: *mut Uint16,
434 ) -> ::std::os::raw::c_int;
435}