nifpga_dll_sys/
lib.rs

1extern crate libc;
2use libc::{c_char, c_void, size_t};
3
4//#[cfg_attr(feature = "static", link(name = "NiFpga", kind = "static"))]
5//#[cfg_attr(not(feature = "static"), link(name = "NiFpga", kind = "dylib"))]
6#[cfg_attr(not(feature = "static"), link(name = "NiFpga", kind = "raw-dylib"))]
7
8extern "C" {
9    // #[link_name = "NiFpga_Initialize"]
10    // pub fn initialize() -> i32;
11
12    #[link_name = "NiFpgaDll_Open"]
13    pub fn open(
14        bitfile: *const c_char,
15        signature: *const c_char,
16        resource: *const c_char,
17        attribute: u32,
18        session: *mut u32,
19    ) -> i32;
20
21    #[link_name = "NiFpgaDll_Close"]
22    pub fn close(session: u32, attribute: u32) -> i32;
23
24    // #[link_name = "NiFpga_Finalize"]
25    // pub fn finalize() -> i32;
26
27    #[link_name = "NiFpgaDll_Run"]
28    pub fn run(session: u32) -> i32;
29
30    #[link_name = "NiFpgaDll_Abort"]
31    pub fn abort(session: u32) -> i32;
32
33    #[link_name = "NiFpgaDll_Reset"]
34    pub fn reset(session: u32) -> i32;
35
36    #[link_name = "NiFpgaDll_Download"]
37    pub fn download(session: u32) -> i32;
38
39    #[link_name = "NiFpgaDll_ReadI8"]
40    pub fn read_i8(session: u32, indicator: u32, value: *mut i8) -> i32;
41
42    #[link_name = "NiFpgaDll_WriteI8"]
43    pub fn write_i8(session: u32, control: u32, value: i8) -> i32;
44
45    #[link_name = "NiFpgaDll_ReadArrayI8"]
46    pub fn read_array_i8(session: u32, indicator: u32, array: *mut i8, size: size_t) -> i32;
47
48    #[link_name = "NiFpgaDll_WriteArrayI8"]
49    pub fn write_array_i8(session: u32, indicator: u32, array: *const i8, size: size_t) -> i32;
50
51    #[link_name = "NiFpgaDll_ReadU8"]
52    pub fn read_u8(session: u32, indicator: u32, value: *mut u8) -> i32;
53
54    #[link_name = "NiFpgaDll_WriteU8"]
55    pub fn write_u8(session: u32, control: u32, value: u8) -> i32;
56
57    #[link_name = "NiFpgaDll_ReadArrayU8"]
58    pub fn read_array_u8(session: u32, indicator: u32, array: *mut u8, size: size_t) -> i32;
59
60    #[link_name = "NiFpgaDll_WriteArrayU8"]
61    pub fn write_array_u8(session: u32, indicator: u32, array: *const u8, size: size_t) -> i32;
62
63    #[link_name = "NiFpgaDll_ReadI16"]
64    pub fn read_i16(session: u32, indicator: u32, value: *mut i16) -> i32;
65
66    #[link_name = "NiFpgaDll_WriteI16"]
67    pub fn write_i16(session: u32, control: u32, value: i16) -> i32;
68
69    #[link_name = "NiFpgaDll_ReadArrayI16"]
70    pub fn read_array_i16(session: u32, indicator: u32, array: *mut i16, size: size_t) -> i32;
71
72    #[link_name = "NiFpgaDll_WriteArrayI16"]
73    pub fn write_array_i16(session: u32, indicator: u32, array: *const i16, size: size_t) -> i32;
74
75    #[link_name = "NiFpgaDll_ReadU16"]
76    pub fn read_u16(session: u32, indicator: u32, value: *mut u16) -> i32;
77
78    #[link_name = "NiFpgaDll_WriteU16"]
79    pub fn write_u16(session: u32, control: u32, value: u16) -> i32;
80
81    #[link_name = "NiFpgaDll_ReadArrayU16"]
82    pub fn read_array_u16(session: u32, indicator: u32, array: *mut u16, size: size_t) -> i32;
83
84    #[link_name = "NiFpgaDll_WriteArrayU16"]
85    pub fn write_array_u16(session: u32, indicator: u32, array: *const u16, size: size_t) -> i32;
86
87    #[link_name = "NiFpgaDll_ReadI32"]
88    pub fn read_i32(session: u32, indicator: u32, value: *mut i32) -> i32;
89
90    #[link_name = "NiFpgaDll_WriteI32"]
91    pub fn write_i32(session: u32, control: u32, value: i32) -> i32;
92
93    #[link_name = "NiFpgaDll_ReadArrayI32"]
94    pub fn read_array_i32(session: u32, indicator: u32, array: *mut i32, size: size_t) -> i32;
95
96    #[link_name = "NiFpgaDll_WriteArrayI32"]
97    pub fn write_array_i32(session: u32, indicator: u32, array: *const i32, size: size_t) -> i32;
98
99    #[link_name = "NiFpgaDll_ReadU32"]
100    pub fn read_u32(session: u32, indicator: u32, value: *mut u32) -> i32;
101
102    #[link_name = "NiFpgaDll_WriteU32"]
103    pub fn write_u32(session: u32, control: u32, value: u32) -> i32;
104
105    #[link_name = "NiFpgaDll_ReadArrayU32"]
106    pub fn read_array_u32(session: u32, indicator: u32, array: *mut u32, size: size_t) -> i32;
107
108    #[link_name = "NiFpgaDll_WriteArrayU32"]
109    pub fn write_array_u32(session: u32, indicator: u32, array: *const u32, size: size_t) -> i32;
110
111    #[link_name = "NiFpgaDll_ReadI64"]
112    pub fn read_i64(session: u32, indicator: u32, value: *mut i64) -> i32;
113
114    #[link_name = "NiFpgaDll_WriteI64"]
115    pub fn write_i64(session: u32, control: u32, value: i64) -> i32;
116
117    #[link_name = "NiFpgaDll_ReadArrayI64"]
118    pub fn read_array_i64(session: u32, indicator: u32, array: *mut i64, size: size_t) -> i32;
119
120    #[link_name = "NiFpgaDll_WriteArrayI64"]
121    pub fn write_array_i64(session: u32, indicator: u32, array: *const i64, size: size_t) -> i32;
122
123    #[link_name = "NiFpgaDll_ReadU64"]
124    pub fn read_u64(session: u32, indicator: u32, value: *mut u64) -> i32;
125
126    #[link_name = "NiFpgaDll_WriteU64"]
127    pub fn write_u64(session: u32, control: u32, value: u64) -> i32;
128
129    #[link_name = "NiFpgaDll_ReadArrayU64"]
130    pub fn read_array_u64(session: u32, indicator: u32, array: *mut u64, size: size_t) -> i32;
131
132    #[link_name = "NiFpgaDll_WriteArrayU64"]
133    pub fn write_array_u64(session: u32, indicator: u32, array: *const u64, size: size_t) -> i32;
134
135    #[link_name = "NiFpgaDll_ReadSgl"]
136    pub fn read_f32(session: u32, indicator: u32, value: *mut f32) -> i32;
137
138    #[link_name = "NiFpgaDll_WriteSgl"]
139    pub fn write_f32(session: u32, control: u32, value: f32) -> i32;
140
141    #[link_name = "NiFpgaDll_ReadArraySgl"]
142    pub fn read_array_f32(session: u32, indicator: u32, array: *mut f32, size: size_t) -> i32;
143
144    #[link_name = "NiFpgaDll_WriteArraySgl"]
145    pub fn write_array_f32(session: u32, indicator: u32, array: *const f32, size: size_t) -> i32;
146
147    #[link_name = "NiFpgaDll_ReadDbl"]
148    pub fn read_f64(session: u32, indicator: u32, value: *mut f64) -> i32;
149
150    #[link_name = "NiFpgaDll_WriteDbl"]
151    pub fn write_f64(session: u32, control: u32, value: f64) -> i32;
152
153    #[link_name = "NiFpgaDll_ReadArrayDbl"]
154    pub fn read_array_f64(session: u32, indicator: u32, array: *mut f64, size: size_t) -> i32;
155
156    #[link_name = "NiFpgaDll_WriteArrayDbl"]
157    pub fn write_array_f64(session: u32, indicator: u32, array: *const f64, size: size_t) -> i32;
158
159    #[link_name = "NiFpgaDll_ReadBool"]
160    pub fn read_bool(session: u32, indicator: u32, value: *mut bool) -> i32;
161
162    #[link_name = "NiFpgaDll_WriteBool"]
163    pub fn write_bool(session: u32, control: u32, value: bool) -> i32;
164
165    #[link_name = "NiFpgaDll_ReadArrayBool"]
166    pub fn read_array_bool(session: u32, indicator: u32, array: *mut bool, size: size_t) -> i32;
167
168    #[link_name = "NiFpgaDll_WriteArrayBool"]
169    pub fn write_array_bool(session: u32, indicator: u32, array: *const bool, size: size_t) -> i32;
170
171    #[link_name = "NiFpgaDll_ReserveIrqContext"]
172    pub fn reserve_irq_context(session: u32, context: *mut *const c_void) -> i32;
173
174    #[link_name = "NiFpgaDll_UnreserveIrqContext"]
175    pub fn unreserve_irq_context(session: u32, context: *const c_void) -> i32;
176
177    #[link_name = "NiFpgaDll_WaitOnIrqs"]
178    pub fn wait_on_irqs(
179        session: u32,
180        context: *const c_void,
181        irqs: u32,
182        timeout: u32,
183        irqsAsserted: *mut u32,
184        timedOut: *mut u8,
185    ) -> i32;
186    
187    #[link_name = "NiFpgaDll_AcknowledgeIrqs"]
188    pub fn acknowledge_irqs(session: u32, irqs: u32) -> i32;
189
190    #[link_name = "NiFpgaDll_ConfigureFifo"]
191    pub fn configure_fifo(session: u32, fifo: u32, depth: size_t) -> i32;
192
193    #[link_name = "NiFpgaDll_ConfigureFifo2"]
194    pub fn configure_fifo2(
195        session: u32,
196        fifo: u32,
197        requestedDepth: size_t,
198        actualDepth: *mut size_t,
199    ) -> i32;
200
201    #[link_name = "NiFpgaDll_StartFifo"]
202    pub fn start_fifo(session: u32, fifo: u32) -> i32;
203
204    #[link_name = "NiFpgaDll_StopFifo"]
205    pub fn stop_fifo(session: u32, fifo: u32) -> i32;
206
207    #[link_name = "NiFpgaDll_ReadFifoI8"]
208    pub fn read_fifo_i8(
209        session: u32,
210        fifo: u32,
211        data: *mut i8,
212        numberOfElements: size_t,
213        timeout: u32,
214        elementsRemaining: *mut size_t,
215    ) -> i32;
216
217    #[link_name = "NiFpgaDll_WriteFifoI8"]
218    pub fn write_fifo_i8(
219        session: u32,
220        fifo: u32,
221        data: *const i8,
222        numberOfElements: size_t,
223        timeout: u32,
224        emptyElementsRemaining: *mut size_t,
225    ) -> i32;
226
227    #[link_name = "NiFpgaDll_AcquireFifoReadElementsI8"]
228    pub fn acquire_fifo_read_elements_i8(
229        session: u32,
230        fifo: u32,
231        elements: *mut *const i8,
232        elementsRequested: size_t,
233        timeout: u32,
234        elementsAcquired: *mut size_t,
235        elementsRemaining: *mut size_t,
236    ) -> i32;
237
238    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsI8"]
239    pub fn acquire_fifo_write_elements_i8(
240        session: u32,
241        fifo: u32,
242        elements: *mut *mut i8,
243        elementsRequested: size_t,
244        timeout: u32,
245        elementsAcquired: *mut size_t,
246        elementsRemaining: *mut size_t,
247    ) -> i32;
248
249    #[link_name = "NiFpgaDll_ReadFifoU8"]
250    pub fn read_fifo_u8(
251        session: u32,
252        fifo: u32,
253        data: *mut u8,
254        numberOfElements: size_t,
255        timeout: u32,
256        elementsRemaining: *mut size_t,
257    ) -> i32;
258
259    #[link_name = "NiFpgaDll_WriteFifoU8"]
260    pub fn write_fifo_u8(
261        session: u32,
262        fifo: u32,
263        data: *const u8,
264        numberOfElements: size_t,
265        timeout: u32,
266        emptyElementsRemaining: *mut size_t,
267    ) -> i32;
268
269    #[link_name = "NiFpgaDll_AcquireFifoReadElementsU8"]
270    pub fn acquire_fifo_read_elements_u8(
271        session: u32,
272        fifo: u32,
273        elements: *mut *const u8,
274        elementsRequested: size_t,
275        timeout: u32,
276        elementsAcquired: *mut size_t,
277        elementsRemaining: *mut size_t,
278    ) -> i32;
279
280    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsU8"]
281    pub fn acquire_fifo_write_elements_u8(
282        session: u32,
283        fifo: u32,
284        elements: *mut *mut u8,
285        elementsRequested: size_t,
286        timeout: u32,
287        elementsAcquired: *mut size_t,
288        elementsRemaining: *mut size_t,
289    ) -> i32;
290
291    #[link_name = "NiFpgaDll_ReadFifoI16"]
292    pub fn read_fifo_i16(
293        session: u32,
294        fifo: u32,
295        data: *mut i16,
296        numberOfElements: size_t,
297        timeout: u32,
298        elementsRemaining: *mut size_t,
299    ) -> i32;
300
301    #[link_name = "NiFpgaDll_WriteFifoI16"]
302    pub fn write_fifo_i16(
303        session: u32,
304        fifo: u32,
305        data: *const i16,
306        numberOfElements: size_t,
307        timeout: u32,
308        emptyElementsRemaining: *mut size_t,
309    ) -> i32;
310
311    #[link_name = "NiFpgaDll_AcquireFifoReadElementsI16"]
312    pub fn acquire_fifo_read_elements_i16(
313        session: u32,
314        fifo: u32,
315        elements: *mut *const i16,
316        elementsRequested: size_t,
317        timeout: u32,
318        elementsAcquired: *mut size_t,
319        elementsRemaining: *mut size_t,
320    ) -> i32;
321
322    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsI16"]
323    pub fn acquire_fifo_write_elements_i16(
324        session: u32,
325        fifo: u32,
326        elements: *mut *mut i16,
327        elementsRequested: size_t,
328        timeout: u32,
329        elementsAcquired: *mut size_t,
330        elementsRemaining: *mut size_t,
331    ) -> i32;
332
333    #[link_name = "NiFpgaDll_ReadFifoU16"]
334    pub fn read_fifo_u16(
335        session: u32,
336        fifo: u32,
337        data: *mut u16,
338        numberOfElements: size_t,
339        timeout: u32,
340        elementsRemaining: *mut size_t,
341    ) -> i32;
342
343    #[link_name = "NiFpgaDll_WriteFifoU16"]
344    pub fn write_fifo_u16(
345        session: u32,
346        fifo: u32,
347        data: *const u16,
348        numberOfElements: size_t,
349        timeout: u32,
350        emptyElementsRemaining: *mut size_t,
351    ) -> i32;
352
353    #[link_name = "NiFpgaDll_AcquireFifoReadElementsU16"]
354    pub fn acquire_fifo_read_elements_u16(
355        session: u32,
356        fifo: u32,
357        elements: *mut *const u16,
358        elementsRequested: size_t,
359        timeout: u32,
360        elementsAcquired: *mut size_t,
361        elementsRemaining: *mut size_t,
362    ) -> i32;
363
364    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsU16"]
365    pub fn acquire_fifo_write_elements_u16(
366        session: u32,
367        fifo: u32,
368        elements: *mut *mut u16,
369        elementsRequested: size_t,
370        timeout: u32,
371        elementsAcquired: *mut size_t,
372        elementsRemaining: *mut size_t,
373    ) -> i32;
374
375    #[link_name = "NiFpgaDll_ReadFifoI32"]
376    pub fn read_fifo_i32(
377        session: u32,
378        fifo: u32,
379        data: *mut i32,
380        numberOfElements: size_t,
381        timeout: u32,
382        elementsRemaining: *mut size_t,
383    ) -> i32;
384
385    #[link_name = "NiFpgaDll_WriteFifoI32"]
386    pub fn write_fifo_i32(
387        session: u32,
388        fifo: u32,
389        data: *const i32,
390        numberOfElements: size_t,
391        timeout: u32,
392        emptyElementsRemaining: *mut size_t,
393    ) -> i32;
394
395    #[link_name = "NiFpgaDll_AcquireFifoReadElementsI32"]
396    pub fn acquire_fifo_read_elements_i32(
397        session: u32,
398        fifo: u32,
399        elements: *mut *const i32,
400        elementsRequested: size_t,
401        timeout: u32,
402        elementsAcquired: *mut size_t,
403        elementsRemaining: *mut size_t,
404    ) -> i32;
405
406    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsI32"]
407    pub fn acquire_fifo_write_elements_i32(
408        session: u32,
409        fifo: u32,
410        elements: *mut *mut i32,
411        elementsRequested: size_t,
412        timeout: u32,
413        elementsAcquired: *mut size_t,
414        elementsRemaining: *mut size_t,
415    ) -> i32;
416
417    #[link_name = "NiFpgaDll_ReadFifoU32"]
418    pub fn read_fifo_u32(
419        session: u32,
420        fifo: u32,
421        data: *mut u32,
422        numberOfElements: size_t,
423        timeout: u32,
424        elementsRemaining: *mut size_t,
425    ) -> i32;
426
427    #[link_name = "NiFpgaDll_WriteFifoU32"]
428    pub fn write_fifo_u32(
429        session: u32,
430        fifo: u32,
431        data: *const u32,
432        numberOfElements: size_t,
433        timeout: u32,
434        emptyElementsRemaining: *mut size_t,
435    ) -> i32;
436
437    #[link_name = "NiFpgaDll_AcquireFifoReadElementsU32"]
438    pub fn acquire_fifo_read_elements_u32(
439        session: u32,
440        fifo: u32,
441        elements: *mut *const u32,
442        elementsRequested: size_t,
443        timeout: u32,
444        elementsAcquired: *mut size_t,
445        elementsRemaining: *mut size_t,
446    ) -> i32;
447
448    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsU32"]
449    pub fn acquire_fifo_write_elements_u32(
450        session: u32,
451        fifo: u32,
452        elements: *mut *mut u32,
453        elementsRequested: size_t,
454        timeout: u32,
455        elementsAcquired: *mut size_t,
456        elementsRemaining: *mut size_t,
457    ) -> i32;
458
459    #[link_name = "NiFpgaDll_ReadFifoI64"]
460    pub fn read_fifo_i64(
461        session: u32,
462        fifo: u32,
463        data: *mut i64,
464        numberOfElements: size_t,
465        timeout: u32,
466        elementsRemaining: *mut size_t,
467    ) -> i32;
468
469    #[link_name = "NiFpgaDll_WriteFifoI64"]
470    pub fn write_fifo_i64(
471        session: u32,
472        fifo: u32,
473        data: *const i64,
474        numberOfElements: size_t,
475        timeout: u32,
476        emptyElementsRemaining: *mut size_t,
477    ) -> i32;
478
479    #[link_name = "NiFpgaDll_AcquireFifoReadElementsI64"]
480    pub fn acquire_fifo_read_elements_i64(
481        session: u32,
482        fifo: u32,
483        elements: *mut *const i64,
484        elementsRequested: size_t,
485        timeout: u32,
486        elementsAcquired: *mut size_t,
487        elementsRemaining: *mut size_t,
488    ) -> i32;
489
490    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsI64"]
491    pub fn acquire_fifo_write_elements_i64(
492        session: u32,
493        fifo: u32,
494        elements: *mut *mut i64,
495        elementsRequested: size_t,
496        timeout: u32,
497        elementsAcquired: *mut size_t,
498        elementsRemaining: *mut size_t,
499    ) -> i32;
500
501    #[link_name = "NiFpgaDll_ReadFifoU64"]
502    pub fn read_fifo_u64(
503        session: u32,
504        fifo: u32,
505        data: *mut u64,
506        numberOfElements: size_t,
507        timeout: u32,
508        elementsRemaining: *mut size_t,
509    ) -> i32;
510
511    #[link_name = "NiFpgaDll_WriteFifoU64"]
512    pub fn write_fifo_u64(
513        session: u32,
514        fifo: u32,
515        data: *const u64,
516        numberOfElements: size_t,
517        timeout: u32,
518        emptyElementsRemaining: *mut size_t,
519    ) -> i32;
520
521    #[link_name = "NiFpgaDll_AcquireFifoReadElementsU64"]
522    pub fn acquire_fifo_read_elements_u64(
523        session: u32,
524        fifo: u32,
525        elements: *mut *const u64,
526        elementsRequested: size_t,
527        timeout: u32,
528        elementsAcquired: *mut size_t,
529        elementsRemaining: *mut size_t,
530    ) -> i32;
531
532    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsU64"]
533    pub fn acquire_fifo_write_elements_u64(
534        session: u32,
535        fifo: u32,
536        elements: *mut *mut u64,
537        elementsRequested: size_t,
538        timeout: u32,
539        elementsAcquired: *mut size_t,
540        elementsRemaining: *mut size_t,
541    ) -> i32;
542
543    #[link_name = "NiFpgaDll_ReadFifoSgl"]
544    pub fn read_fifo_f32(
545        session: u32,
546        fifo: u32,
547        data: *mut f32,
548        numberOfElements: size_t,
549        timeout: u32,
550        elementsRemaining: *mut size_t,
551    ) -> i32;
552
553    #[link_name = "NiFpgaDll_WriteFifoSgl"]
554    pub fn write_fifo_f32(
555        session: u32,
556        fifo: u32,
557        data: *const f32,
558        numberOfElements: size_t,
559        timeout: u32,
560        emptyElementsRemaining: *mut size_t,
561    ) -> i32;
562
563    #[link_name = "NiFpgaDll_AcquireFifoReadElementsSgl"]
564    pub fn acquire_fifo_read_elements_f32(
565        session: u32,
566        fifo: u32,
567        elements: *mut *const f32,
568        elementsRequested: size_t,
569        timeout: u32,
570        elementsAcquired: *mut size_t,
571        elementsRemaining: *mut size_t,
572    ) -> i32;
573
574    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsSgl"]
575    pub fn acquire_fifo_write_elements_f32(
576        session: u32,
577        fifo: u32,
578        elements: *mut *mut f32,
579        elementsRequested: size_t,
580        timeout: u32,
581        elementsAcquired: *mut size_t,
582        elementsRemaining: *mut size_t,
583    ) -> i32;
584
585    #[link_name = "NiFpgaDll_ReadFifoDbl"]
586    pub fn read_fifo_f64(
587        session: u32,
588        fifo: u32,
589        data: *mut f64,
590        numberOfElements: size_t,
591        timeout: u32,
592        elementsRemaining: *mut size_t,
593    ) -> i32;
594
595    #[link_name = "NiFpgaDll_WriteFifoDbl"]
596    pub fn write_fifo_f64(
597        session: u32,
598        fifo: u32,
599        data: *const f64,
600        numberOfElements: size_t,
601        timeout: u32,
602        emptyElementsRemaining: *mut size_t,
603    ) -> i32;
604
605    #[link_name = "NiFpgaDll_AcquireFifoReadElementsDbl"]
606    pub fn acquire_fifo_read_elements_f64(
607        session: u32,
608        fifo: u32,
609        elements: *mut *const f64,
610        elementsRequested: size_t,
611        timeout: u32,
612        elementsAcquired: *mut size_t,
613        elementsRemaining: *mut size_t,
614    ) -> i32;
615
616    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsDbl"]
617    pub fn acquire_fifo_write_elements_f64(
618        session: u32,
619        fifo: u32,
620        elements: *mut *mut f64,
621        elementsRequested: size_t,
622        timeout: u32,
623        elementsAcquired: *mut size_t,
624        elementsRemaining: *mut size_t,
625    ) -> i32;
626
627    #[link_name = "NiFpgaDll_ReadFifoBool"]
628    pub fn read_fifo_bool(
629        session: u32,
630        fifo: u32,
631        data: *mut bool,
632        numberOfElements: size_t,
633        timeout: u32,
634        elementsRemaining: *mut size_t,
635    ) -> i32;
636
637    #[link_name = "NiFpgaDll_WriteFifoBool"]
638    pub fn write_fifo_bool(
639        session: u32,
640        fifo: u32,
641        data: *const bool,
642        numberOfElements: size_t,
643        timeout: u32,
644        emptyElementsRemaining: *mut size_t,
645    ) -> i32;
646
647    #[link_name = "NiFpgaDll_AcquireFifoReadElementsBool"]
648    pub fn acquire_fifo_read_elements_bool(
649        session: u32,
650        fifo: u32,
651        elements: *mut *const bool,
652        elementsRequested: size_t,
653        timeout: u32,
654        elementsAcquired: *mut size_t,
655        elementsRemaining: *mut size_t,
656    ) -> i32;
657
658    #[link_name = "NiFpgaDll_AcquireFifoWriteElementsBool"]
659    pub fn acquire_fifo_write_elements_bool(
660        session: u32,
661        fifo: u32,
662        elements: *mut *mut bool,
663        elementsRequested: size_t,
664        timeout: u32,
665        elementsAcquired: *mut size_t,
666        elementsRemaining: *mut size_t,
667    ) -> i32;
668
669    #[link_name = "NiFpgaDll_ReleaseFifoElements"]
670    pub fn release_fifo_elements(session: u32, fifo: u32, elements: size_t) -> i32;
671
672    #[link_name = "NiFpgaDll_GetPeerToPeerFifoEndpoint"]
673    pub fn get_p2p_fifo_endpoint(session: u32, fifo: u32, endpoint: *mut u32) -> i32;
674
675    #[link_name = "NiFpgaDll_GetBitfileContents"]
676    pub fn get_bitfile_contents(session: u32, contents: *mut *const c_char) -> i32;
677
678    #[link_name = "NiFpgaDll_ClientFunctionCall"]
679    pub fn client_function_call(
680        session: u32,
681        group: u32,
682        functionId: u32,
683        inBuffer: *const c_void,
684        inBufferSize: size_t,
685        outBuffer: *mut c_void,
686        outBufferSize: size_t,
687    ) -> i32;
688}