]> git.sur5r.net Git - openocd/blobdiff - src/helper/replacements.h
move options handling to separate file to better support embedded implementations...
[openocd] / src / helper / replacements.h
index 99aaba4396d5b6f34c89065260c574e17f4bc875..84705c528acd42013efd8e4688483b6888b3e5d7 100644 (file)
@@ -67,7 +67,40 @@ struct timezone {
 };
 
 extern int gettimeofday(struct timeval *tv, struct timezone *tz);
-#endif
+#endif\r
+\r
+/**** clear_malloc & fill_malloc ****/
+void *clear_malloc(size_t size);
+void *fill_malloc(size_t size);
+\r
+/*\r
+ * Now you have 3 ways for the malloc function:\r
+ *\r
+ * 1. Do not change anything, use the original malloc\r
+ *\r
+ * 2. Use the clear_malloc function instead of the original malloc.\r
+ *    In this case you must use the following define:\r
+ *    #define malloc((_a)) clear_malloc((_a))\r
+ *\r
+ * 3. Use the fill_malloc function instead of the original malloc.\r
+ *    In this case you must use the following define:\r
+ *    #define malloc((_a)) fill_malloc((_a))\r
+ *\r
+ * We have figured out that there could exist some malloc problems\r
+ * where variables are using without to be initialise. To find this\r
+ * places, use the fill_malloc function. With this function we want \r
+ * to initialize memory to some known bad state. This is quite easily \r
+ * spotted in the debugger and will trap to an invalid address. \r
+ *\r
+ * clear_malloc can be used if you want to set not initialise \r
+ * variable to 0.\r
+ *\r
+ * If you do not want to change the malloc function, to not use one of\r
+ * the following macros. Which is the default way.\r
+ */\r
\r
+//#define malloc(_a) clear_malloc(_a)
+//#define malloc(_a) fill_malloc(_a)
 
 /* GNU extensions to the C library that may be missing on some systems */
 #ifndef HAVE_STRNDUP