--- /dev/null
+//-----------------------------------------------------------------------------\r
+// Definitions of interest to most of the software for this project.\r
+// Jonathan Westhues, Mar 2006\r
+//-----------------------------------------------------------------------------\r
+\r
+#ifndef __PROXMARK3_H\r
+#define __PROXMARK3_H\r
+\r
+// Might as well have the hardware-specific defines everywhere.\r
+#include <at91sam7s128.h>\r
+\r
+#include <config_gpio.h>\r
+#define LOW(x) PIO_OUTPUT_DATA_CLEAR = (1 << (x))\r
+#define HIGH(x) PIO_OUTPUT_DATA_SET = (1 << (x))\r
+\r
+#define SPI_FPGA_MODE 0\r
+#define SPI_LCD_MODE 1\r
+\r
+typedef unsigned long DWORD;\r
+typedef signed long SDWORD;\r
+typedef unsigned long long QWORD;\r
+typedef int BOOL;\r
+typedef unsigned char BYTE;\r
+typedef signed char SBYTE;\r
+typedef unsigned short WORD;\r
+typedef signed short SWORD;\r
+#define TRUE 1\r
+#define FALSE 0\r
+\r
+#include <usb_cmd.h>\r
+\r
+#define PACKED __attribute__((__packed__))\r
+\r
+#define USB_D_PLUS_PULLUP_ON() { \\r
+ PIO_OUTPUT_DATA_SET = (1<<GPIO_USB_PU); \\r
+ PIO_OUTPUT_ENABLE = (1<<GPIO_USB_PU); \\r
+ }\r
+#define USB_D_PLUS_PULLUP_OFF() PIO_OUTPUT_DISABLE = (1<<GPIO_USB_PU)\r
+\r
+#define LED_A_ON() PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_A)\r
+#define LED_A_OFF() PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_A)\r
+#define LED_B_ON() PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_B)\r
+#define LED_B_OFF() PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_B)\r
+#define LED_C_ON() PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_C)\r
+#define LED_C_OFF() PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_C)\r
+#define LED_D_ON() PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_D)\r
+#define LED_D_OFF() PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_D)\r
+#define RELAY_ON() PIO_OUTPUT_DATA_SET = (1<<GPIO_RELAY)\r
+#define RELAY_OFF() PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_RELAY)\r
+#define BUTTON_PRESS() !(PIO_PIN_DATA_STATUS & (1<<GPIO_BUTTON))\r
+//--------------------------------\r
+// USB declarations\r
+\r
+void UsbSendPacket(BYTE *packet, int len);\r
+BOOL UsbPoll(BOOL blinkLeds);\r
+void UsbStart(void);\r
+\r
+// This function is provided by the apps/bootrom, and called from UsbPoll\r
+// if data are available.\r
+void UsbPacketReceived(BYTE *packet, int len);\r
+\r
+#endif\r