| 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 | |
| 15 | #include <stdbool.h> // for bool |
| 16 | #include "common.h" // for ramfunc |
| 17 | |
| 18 | #define BIGBUF_SIZE 40000 |
| 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 |
| 23 | #define CARD_MEMORY_SIZE 4096 |
| 24 | #define DMA_BUFFER_SIZE 128 |
| 25 | |
| 26 | extern uint8_t *BigBuf_get_addr(void); |
| 27 | extern uint8_t *BigBuf_get_EM_addr(void); |
| 28 | extern uint16_t BigBuf_max_traceLen(void); |
| 29 | extern void BigBuf_Clear(void); |
| 30 | extern void BigBuf_Clear_ext(bool verbose); |
| 31 | extern void BigBuf_Clear_keep_EM(void); |
| 32 | extern void BigBuf_Clear_EM(void); |
| 33 | extern uint8_t *BigBuf_malloc(uint16_t); |
| 34 | extern void BigBuf_free(void); |
| 35 | extern void BigBuf_free_keep_EM(void); |
| 36 | extern void BigBuf_print_status(void); |
| 37 | extern uint16_t BigBuf_get_traceLen(void); |
| 38 | extern void clear_trace(void); |
| 39 | extern void set_tracing(bool enable); |
| 40 | extern bool get_tracing(void); |
| 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); |
| 44 | #endif /* __BIGBUF_H */ |