117d9ec2 |
1 | //----------------------------------------------------------------------------- |
2 | // Jonathan Westhues, Aug 2005 |
3 | // Gerhard de Koning Gans, April 2008, May 2011 |
4 | // |
5 | // This code is licensed to you under the terms of the GNU GPL, version 2 or, |
6 | // at your option, any later version. See the LICENSE.txt file for the text of |
7 | // the license. |
8 | //----------------------------------------------------------------------------- |
9 | // BigBuf and functions to allocate/free parts of it. |
10 | //----------------------------------------------------------------------------- |
11 | |
12 | #ifndef __BIGBUF_H |
13 | #define __BIGBUF_H |
14 | |
79dcb9e0 |
15 | #include <stdbool.h> // for bool |
16 | #include "common.h" // for ramfunc |
117d9ec2 |
17 | |
18 | #define BIGBUF_SIZE 40000 |
f71f4deb |
19 | #define MAX_FRAME_SIZE 256 // maximum allowed ISO14443 frame |
20 | #define MAX_PARITY_SIZE ((MAX_FRAME_SIZE + 7) / 8) |
21 | #define MAX_MIFARE_FRAME_SIZE 18 // biggest Mifare frame is answer to a read (one block = 16 Bytes) + 2 Bytes CRC |
22 | #define MAX_MIFARE_PARITY_SIZE 3 // need 18 parity bits for the 18 Byte above. 3 Bytes are enough to store these |
117d9ec2 |
23 | #define CARD_MEMORY_SIZE 4096 |
f71f4deb |
24 | #define DMA_BUFFER_SIZE 128 |
117d9ec2 |
25 | |
26 | extern uint8_t *BigBuf_get_addr(void); |
f71f4deb |
27 | extern uint8_t *BigBuf_get_EM_addr(void); |
28 | extern uint16_t BigBuf_max_traceLen(void); |
5330f532 |
29 | extern void BigBuf_Clear(void); |
7cfc777b |
30 | extern void BigBuf_Clear_ext(bool verbose); |
3cec7061 |
31 | extern void BigBuf_Clear_keep_EM(void); |
e7fd9f5f |
32 | extern void BigBuf_Clear_EM(void); |
117d9ec2 |
33 | extern uint8_t *BigBuf_malloc(uint16_t); |
34 | extern void BigBuf_free(void); |
f71f4deb |
35 | extern void BigBuf_free_keep_EM(void); |
e2012d1b |
36 | extern void BigBuf_print_status(void); |
5330f532 |
37 | extern uint16_t BigBuf_get_traceLen(void); |
e7fd9f5f |
38 | extern void clear_trace(void); |
5330f532 |
39 | extern void set_tracing(bool enable); |
6e49717b |
40 | extern bool get_tracing(void); |
5330f532 |
41 | extern bool RAMFUNC LogTrace(const uint8_t *btBytes, uint16_t iLen, uint32_t timestamp_start, uint32_t timestamp_end, uint8_t *parity, bool readerToTag); |
42 | extern int LogTraceHitag(const uint8_t * btBytes, int iBits, int iSamples, uint32_t dwParity, int bReader); |
43 | extern uint8_t emlSet(uint8_t *data, uint32_t offset, uint32_t length); |
117d9ec2 |
44 | #endif /* __BIGBUF_H */ |