target/armv7m: rework Cortex-M register handling part 1
[fw/openocd] / src / target / armv7m_trace.h
index c63f36dea40d5d3fce2a74697fbc5908ef61a56c..076f9d5829d119b4a2fddfe9c5cada03a7524008 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef OPENOCD_TARGET_ARMV7M_TRACE_H
 #define OPENOCD_TARGET_ARMV7M_TRACE_H
 
+#include <server/server.h>
 #include <target/target.h>
 #include <command.h>
 
@@ -32,8 +33,14 @@ enum trace_config_type {
        TRACE_CONFIG_TYPE_INTERNAL      /**< trace output is handled by OpenOCD adapter driver */
 };
 
+enum trace_internal_channel {
+       TRACE_INTERNAL_CHANNEL_TCL_ONLY,        /** trace data is sent only to 'tcl_trace'  */
+       TRACE_INTERNAL_CHANNEL_FILE,            /** trace data is appended to a file */
+       TRACE_INTERNAL_CHANNEL_TCP                      /** trace data is appended to a TCP/IP port*/
+};
+
 enum tpiu_pin_protocol {
-       TPIU_PIN_PROTOCOL_SYNC,                 /**< synchronous trace output */
+       TPIU_PIN_PROTOCOL_SYNC,                         /**< synchronous trace output */
        TPIU_PIN_PROTOCOL_ASYNC_MANCHESTER,     /**< asynchronous output with Manchester coding */
        TPIU_PIN_PROTOCOL_ASYNC_UART            /**< asynchronous output with NRZ coding */
 };
@@ -49,6 +56,9 @@ struct armv7m_trace_config {
        /** Currently active trace capture mode */
        enum trace_config_type config_type;
 
+       /** The used channel when internal mode is selected */
+       enum trace_internal_channel internal_channel;
+
        /** Currently active trace output mode */
        enum tpiu_pin_protocol pin_protocol;
        /** TPIU formatter enable/disable (in async mode) */
@@ -56,7 +66,7 @@ struct armv7m_trace_config {
        /** Synchronous output port width */
        uint32_t port_size;
 
-       /** Bitmask of currenty enabled ITM stimuli */
+       /** Bitmask of currently enabled ITM stimuli */
        uint32_t itm_ter[8];
        /** Identifier for multi-source trace stream formatting */
        unsigned int trace_bus_id;
@@ -73,8 +83,10 @@ struct armv7m_trace_config {
        unsigned int traceclkin_freq;
        /** Current frequency of trace port */
        unsigned int trace_freq;
-       /** Handle to output trace data in INTERNAL capture mode */
+       /** Handle to output trace data in INTERNAL capture mode via file */
        FILE *trace_file;
+       /** Handle to output trace data in INTERNAL capture mode via tcp */
+       struct service *trace_service;
 };
 
 extern const struct command_registration armv7m_trace_command_handlers[];