* 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, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifndef TARGET_H
int (*callback)(struct target *target, enum target_reset_mode reset_mode, void *priv);
};
+struct target_trace_callback {
+ struct list_head list;
+ void *priv;
+ int (*callback)(struct target *target, size_t len, uint8_t *data, void *priv);
+};
+
struct target_timer_callback {
int (*callback)(void *priv);
int time_ms;
enum target_reset_mode reset_mode, void *priv),
void *priv);
+int target_register_trace_callback(
+ int (*callback)(struct target *target,
+ size_t len, uint8_t *data, void *priv),
+ void *priv);
+int target_unregister_trace_callback(
+ int (*callback)(struct target *target,
+ size_t len, uint8_t *data, void *priv),
+ void *priv);
+
/* Poll the status of the target, detect any error conditions and report them.
*
* Also note that this fn will clear such error conditions, so a subsequent
int target_halt(struct target *target);
int target_call_event_callbacks(struct target *target, enum target_event event);
int target_call_reset_callbacks(struct target *target, enum target_reset_mode reset_mode);
+int target_call_trace_callbacks(struct target *target, size_t len, uint8_t *data);
/**
* The period is very approximate, the callback can happen much more often