// USB declarations\r
\r
void UsbSendPacket(BYTE *packet, int len);\r
+BOOL UsbConnected();\r
BOOL UsbPoll(BOOL blinkLeds);\r
void UsbStart(void);\r
\r
// if data are available.\r
void UsbPacketReceived(BYTE *packet, int len);\r
\r
+#define VERSION_INFORMATION_MAGIC 0x56334d50\r
+struct version_information {\r
+ int magic; /* Magic sequence to identify this as a correct version information structure. Must be VERSION_INFORMATION_MAGIC */ \r
+ char versionversion; /* Must be 1 */\r
+ char present; /* 1 if the version information could be created at compile time, otherwise 0 and the remaining fields (except for magic) are empty */\r
+ char clean; /* 1: Tree was clean, no local changes. 0: Tree was unclean. 2: Couldn't be determined */\r
+ char svnversion[9]; /* String with the SVN revision */\r
+ char buildtime[30]; /* string with the build time */\r
+} __attribute__((packed));\r
+\r
+#define COMMON_AREA_MAGIC 0x43334d50\r
+#define COMMON_AREA_COMMAND_NONE 0\r
+#define COMMON_AREA_COMMAND_ENTER_FLASH_MODE 1\r
+struct common_area {\r
+ int magic; /* Magic sequence, to distinguish against random uninitialized memory */\r
+ char version; /* Must be 1 */\r
+ char command;\r
+ struct {\r
+ unsigned int bootrom_present:1; /* Set when a bootrom that is capable of parsing the common area is present */\r
+ unsigned int osimage_present:1; /* Set when a osimage that is capable of parsing the common area is present */\r
+ } __attribute__((packed)) flags;\r
+ int arg1, arg2;\r
+} __attribute__((packed));\r
+\r
#endif\r