X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Ftarget%2Ftarget_type.h;h=1933e1cc7c3c209d386ed44f34a4c37074869dac;hb=ea49b2b2a21edf474236e3bdf0c681215c390787;hp=0f3df0002dd22bf18fecdd90026ac7040b73a94c;hpb=113f949ac11f28e4e653824bed11e48a2c699559;p=fw%2Fopenocd
diff --git a/src/target/target_type.h b/src/target/target_type.h
index 0f3df0002..1933e1cc7 100644
--- a/src/target/target_type.h
+++ b/src/target/target_type.h
@@ -1,3 +1,5 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
/***************************************************************************
* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
@@ -7,25 +9,12 @@
* *
* Copyright (C) 2008 by Spencer Oliver *
* spen@spen-soft.co.uk *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program. If not, see . *
***************************************************************************/
#ifndef OPENOCD_TARGET_TARGET_TYPE_H
#define OPENOCD_TARGET_TARGET_TYPE_H
-#include
+#include
struct target;
@@ -79,7 +68,7 @@ struct target_type {
* state correctly.
*
* Otherwise the following would fail, as there will not
- * be any "poll" invoked inbetween the "reset run" and
+ * be any "poll" invoked between the "reset run" and
* "halt".
*
* reset run; halt
@@ -210,11 +199,11 @@ struct target_type {
/* called for various config parameters */
/* returns JIM_CONTINUE - if option not understood */
/* otherwise: JIM_OK, or JIM_ERR, */
- int (*target_jim_configure)(struct target *target, Jim_GetOptInfo *goi);
+ int (*target_jim_configure)(struct target *target, struct jim_getopt_info *goi);
/* target commands specifically handled by the target */
/* returns JIM_OK, or JIM_ERR, or JIM_CONTINUE - if option not understood */
- int (*target_jim_commands)(struct target *target, Jim_GetOptInfo *goi);
+ int (*target_jim_commands)(struct target *target, struct jim_getopt_info *goi);
/**
* This method is used to perform target setup that requires
@@ -242,6 +231,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 +295,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 */