X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7f3480429ba8a8fecc9768aceb11c74db7f186ae..37239a7c4b0d0db437e8aa5f1941280a74cd327e:/armsrc/apps.h

diff --git a/armsrc/apps.h b/armsrc/apps.h
index f2be7904..71c25d1a 100644
--- a/armsrc/apps.h
+++ b/armsrc/apps.h
@@ -7,70 +7,95 @@
 #ifndef __APPS_H
 #define __APPS_H
 
-/// appmain.c
-void AppMain(void);
-void DbpIntegers(int a, int b, int c);
+#include "stdint.h"
+#include "stddef.h"
+typedef unsigned char byte_t;
+
+// The large multi-purpose buffer, typically used to hold A/D samples,
+// maybe processed in some way.
+DWORD BigBuf[8000];
+
+/// appmain.h
+void ReadMem(int addr);
+void __attribute__((noreturn)) AppMain(void);
+void SamyRun(void);
+//void DbpIntegers(int a, int b, int c);
 void DbpString(char *str);
-void SpinDelay(int ms);
-void SpinDelayUs(int us);
+void Dbprintf(const char *fmt, ...);
+
 void ToSendStuffBit(int b);
 void ToSendReset(void);
-void ListenReaderField(int limit);
-void AcquireRawAdcSamples125k(BOOL at134khz);
-void DoAcquisition125k(BOOL at134khz);
+void ListenReaderField(int limit);
+void AcquireRawAdcSamples125k(BOOL at134khz);
+void DoAcquisition125k(void);
 extern int ToSendMax;
 extern BYTE ToSend[];
 extern DWORD BigBuf[];
 
-/// fpga.c
+/// fpga.h
 void FpgaSendCommand(WORD cmd, WORD v);
 void FpgaWriteConfWord(BYTE v);
 void FpgaDownloadAndGo(void);
+void FpgaGatherVersion(char *dst, int len);
 void FpgaSetupSsc(void);
 void SetupSpi(int mode);
 void FpgaSetupSscDma(BYTE *buf, int len);
-void SetAdcMuxFor(int whichGpio);
+void SetAdcMuxFor(DWORD whichGpio);
 
 // Definitions for the FPGA commands.
-#define FPGA_CMD_SET_CONFREG				(1<<12)
-#define FPGA_CMD_SET_DIVISOR				(2<<12)
+#define FPGA_CMD_SET_CONFREG						(1<<12)
+#define FPGA_CMD_SET_DIVISOR						(2<<12)
 // Definitions for the FPGA configuration word.
-#define FPGA_MAJOR_MODE_LF_READER			(0<<5)
-#define FPGA_MAJOR_MODE_LF_SIMULATOR		(1<<5)
-#define FPGA_MAJOR_MODE_HF_READER_TX		(2<<5)
-#define FPGA_MAJOR_MODE_HF_READER_RX_XCORR	(3<<5)
-#define FPGA_MAJOR_MODE_HF_SIMULATOR		(4<<5)
-#define FPGA_MAJOR_MODE_HF_ISO14443A		(5<<5)
-#define FPGA_MAJOR_MODE_UNUSED				(6<<5)
-#define FPGA_MAJOR_MODE_OFF					(7<<5)
-// Options for the LF reader
-#define FPGA_LF_READER_USE_125_KHZ			(1<<3)
-#define FPGA_LF_READER_USE_134_KHZ			(0<<3)
+#define FPGA_MAJOR_MODE_LF_READER					(0<<5)
+#define FPGA_MAJOR_MODE_LF_SIMULATOR				(1<<5)
+#define FPGA_MAJOR_MODE_HF_READER_TX				(2<<5)
+#define FPGA_MAJOR_MODE_HF_READER_RX_XCORR			(3<<5)
+#define FPGA_MAJOR_MODE_HF_SIMULATOR				(4<<5)
+#define FPGA_MAJOR_MODE_HF_ISO14443A				(5<<5)
+#define FPGA_MAJOR_MODE_LF_PASSTHRU					(6<<5)
+#define FPGA_MAJOR_MODE_OFF							(7<<5)
 // Options for the HF reader, tx to tag
-#define FPGA_HF_READER_TX_SHALLOW_MOD		(1<<0)
+#define FPGA_HF_READER_TX_SHALLOW_MOD				(1<<0)
 // Options for the HF reader, correlating against rx from tag
-#define FPGA_HF_READER_RX_XCORR_848_KHZ		(1<<0)
-#define FPGA_HF_READER_RX_XCORR_SNOOP		(1<<1)
+#define FPGA_HF_READER_RX_XCORR_848_KHZ				(1<<0)
+#define FPGA_HF_READER_RX_XCORR_SNOOP				(1<<1)
+#define FPGA_HF_READER_RX_XCORR_QUARTER_FREQ			(1<<2)
 // Options for the HF simulated tag, how to modulate
-#define FPGA_HF_SIMULATOR_NO_MODULATION		(0<<0)
-#define FPGA_HF_SIMULATOR_MODULATE_BPSK		(1<<0)
+#define FPGA_HF_SIMULATOR_NO_MODULATION				(0<<0)
+#define FPGA_HF_SIMULATOR_MODULATE_BPSK				(1<<0)
+#define FPGA_HF_SIMULATOR_MODULATE_212K				(2<<0)
 // Options for ISO14443A
-#define FPGA_HF_ISO14443A_SNIFFER			(0<<0)
-#define FPGA_HF_ISO14443A_TAGSIM_LISTEN		(1<<0)
-#define FPGA_HF_ISO14443A_TAGSIM_MOD		(2<<0)
-#define FPGA_HF_ISO14443A_READER_LISTEN		(3<<0)
-#define FPGA_HF_ISO14443A_READER_MOD		(4<<0)
+#define FPGA_HF_ISO14443A_SNIFFER					(0<<0)
+#define FPGA_HF_ISO14443A_TAGSIM_LISTEN				(1<<0)
+#define FPGA_HF_ISO14443A_TAGSIM_MOD				(2<<0)
+#define FPGA_HF_ISO14443A_READER_LISTEN				(3<<0)
+#define FPGA_HF_ISO14443A_READER_MOD				(4<<0)
+
+/// lfops.h
+void AcquireRawAdcSamples125k(BOOL at134khz);
+void ModThenAcquireRawAdcSamples125k(int delay_off,int period_0,int period_1,BYTE *command);
+void ReadTItag(void);
+void WriteTItag(DWORD idhi, DWORD idlo, WORD crc);
+void AcquireTiType(void);
+void AcquireRawBitsTI(void);
+void SimulateTagLowFrequency(int period, int gap, int ledcontrol);
+void CmdHIDsimTAG(int hi, int lo, int ledcontrol);
+void CmdHIDdemodFSK(int findone, int *high, int *low, int ledcontrol);
+void SimulateTagLowFrequencyBidir(int divisor, int max_bitlen);
 
 /// iso14443.h
 void SimulateIso14443Tag(void);
 void AcquireRawAdcSamplesIso14443(DWORD parameter);
-void ReadSRI512Iso14443(DWORD parameter);
+void ReadSRI512Iso14443(DWORD parameter);
+void ReadSRIX4KIso14443(DWORD parameter);
+void ReadSTMemoryIso14443(DWORD parameter,DWORD dwLast);
 void SnoopIso14443(void);
 
 /// iso14443a.h
 void SnoopIso14443a(void);
 void SimulateIso14443aTag(int tagType, int TagUid);	// ## simulate iso14443a tag
 void ReaderIso14443a(DWORD parameter);
+void ReaderMifare(DWORD parameter);
 
 /// iso15693.h
 void AcquireRawAdcSamplesIso15693(void);
@@ -78,9 +103,29 @@ void ReaderIso15693(DWORD parameter);	// Simulate an ISO15693 reader - greg
 void SimTagIso15693(DWORD parameter);	// simulate an ISO15693 tag - greg
 
 /// util.h
+#define LED_RED 1
+#define LED_ORANGE 2
+#define LED_GREEN 4
+#define LED_RED2 8
+#define BUTTON_HOLD 1
+#define BUTTON_NO_CLICK 0
+#define BUTTON_SINGLE_CLICK -1
+#define BUTTON_DOUBLE_CLICK -2
+#define BUTTON_ERROR -99
 int strlen(char *str);
 void *memcpy(void *dest, const void *src, int len);
 void *memset(void *dest, int c, int len);
 int memcmp(const void *av, const void *bv, int len);
+char *strncat(char *dest, const char *src, unsigned int n);
+void num_to_bytes(uint64_t n, size_t len, byte_t* dest);
+uint64_t bytes_to_num(byte_t* src, size_t len);
+
+void SpinDelay(int ms);
+void SpinDelayUs(int us);
+void LED(int led, int ms);
+void LEDsoff();
+int BUTTON_CLICKED(int ms);
+int BUTTON_HELD(int ms);
+void FormatVersionInformation(char *dst, int len, const char *prefix, void *version_information);
 
 #endif