Version 1.0.9.
[gnuk/neug.git] / src / neug.h
1 #define NEUG_NO_KICK      0
2 #define NEUG_KICK_FILLING 1
3
4 #define NEUG_PRE_LOOP 32
5
6 #define NEUG_MODE_CONDITIONED 0 /* Conditioned data.             */
7 #define NEUG_MODE_RAW         1 /* CRC-32 filtered sample data.  */
8 #define NEUG_MODE_RAW_DATA    2 /* Sample data directly.         */
9
10 extern uint8_t neug_mode;
11 extern uint16_t neug_err_cnt;
12 extern uint16_t neug_err_cnt_rc;
13 extern uint16_t neug_err_cnt_p64;
14 extern uint16_t neug_err_cnt_p4k;
15 extern uint16_t neug_rc_max;
16 extern uint16_t neug_p64_max;
17 extern uint16_t neug_p4k_max;
18
19 void neug_init (uint32_t *buf, uint8_t size);
20 uint32_t neug_get (int kick);
21 int neug_get_nonblock (uint32_t *p);
22 void neug_kick_filling (void);
23 void neug_flush (void);
24 void neug_wait_full (void);
25 void neug_fini (void);
26 void neug_mode_select (uint8_t mode);
27
28 int neug_consume_random (void (*proc) (uint32_t, int));
29
30 void crc32_rv_reset (void);
31 void crc32_rv_step (uint32_t v);
32 uint32_t crc32_rv_get (void);
33 uint32_t rbit (uint32_t v);