target: document possibly unreachable target in deinit_target()
[fw/openocd] / src / target / target_type.h
index cc51c0401659405d2307f79766673126f22f7101..a26c2e7d875a7145041b9ba3c5ffe343ea4d8520 100644 (file)
@@ -25,7 +25,7 @@
 #ifndef OPENOCD_TARGET_TARGET_TYPE_H
 #define OPENOCD_TARGET_TARGET_TYPE_H
 
-#include <jim-nvp.h>
+#include <helper/jim-nvp.h>
 
 struct target;
 
@@ -242,6 +242,17 @@ struct target_type {
        /**
         * Free all the resources allocated by the target.
         *
+        * WARNING: deinit_target is called unconditionally regardless the target has
+        * ever been examined/initialised or not.
+        * If a problem has prevented establishing JTAG/SWD/... communication
+        *  or
+        * if the target was created with -defer-examine flag and has never been
+        *  examined
+        * then it is not possible to communicate with the target.
+        *
+        * If you need to talk to the target during deinit, first check if
+        * target_was_examined()!
+        *
         * @param target The target to deinit
         */
        void (*deinit_target)(struct target *target);
@@ -295,6 +306,11 @@ struct target_type {
         * typically be 32 for 32-bit targets, and 64 for 64-bit targets. If not
         * implemented, it's assumed to be 32. */
        unsigned (*address_bits)(struct target *target);
+
+       /* Return the number of system bus data bits this target supports. This
+        * will typically be 32 for 32-bit targets, and 64 for 64-bit targets. If
+        * not implemented, it's assumed to be 32. */
+       unsigned int (*data_bits)(struct target *target);
 };
 
 #endif /* OPENOCD_TARGET_TARGET_TYPE_H */