]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/util.c
Implement version information storage and retrieval for the bootrom and the osimage.
[proxmark3-svn] / armsrc / util.c
index a102bbb5a461e52ba1cc870c777077e6fe5b1f02..650ba22bacb31914c142ffeee9a0a882c940fb3b 100644 (file)
@@ -235,3 +235,37 @@ void SpinDelay(int ms)
   // convert to uS and call microsecond delay function\r
        SpinDelayUs(ms*1000);\r
 }\r
+\r
+/* Similar to FpgaGatherVersion this formats stored version information\r
+ * into a string representation. It takes a pointer to the struct version_information,\r
+ * verifies the magic properties, then stores a formatted string, prefixed by\r
+ * prefix in dst.
+ */\r
+void FormatVersionInformation(char *dst, int len, const char *prefix, void *version_information)\r
+{\r
+       struct version_information *v = (struct version_information*)version_information;\r
+       dst[0] = 0;\r
+       strncat(dst, prefix, len);\r
+       if(v->magic != VERSION_INFORMATION_MAGIC) {\r
+               strncat(dst, "Missing/Invalid version information", len);\r
+               return;\r
+       }\r
+       if(v->versionversion != 1) {\r
+               strncat(dst, "Version information not understood", len);\r
+               return;\r
+       }\r
+       if(!v->present) {\r
+               strncat(dst, "Version information not available", len);\r
+               return;\r
+       }\r
+       \r
+       strncat(dst, v->svnversion, len);\r
+       if(v->clean == 0) {\r
+               strncat(dst, "-unclean", len);\r
+       } else if(v->clean == 2) {\r
+               strncat(dst, "-suspect", len);\r
+       }\r
+       \r
+       strncat(dst, " ", len);\r
+       strncat(dst, v->buildtime, len);\r
+}\r
Impressum, Datenschutz