Define _GNU_SOURCE in config.h, remove definitions from source files.
[openocd.git] / src / target / oocd_trace.c
index b96116f3f86bf3ba36783b7a399174318f029116..d54766aeab8115cecfcd4c7aed8bd4497148e278 100644 (file)
 #include "config.h"
 #endif
 
-#define _GNU_SOURCE
-#include <string.h>
-#include <errno.h>
-
 #include "oocd_trace.h"
-#include "etm.h"
-
-#include "log.h"
-#include "types.h"
-#include "binarybuffer.h"
-#include "target.h"
-#include "register.h"
-#include "jtag.h"
 #include "arm7_9_common.h"
-#include "replacements.h"
 
-#include <stdlib.h>
 
-int oocd_trace_read_reg(oocd_trace_t *oocd_trace, int reg, u32 *value)
+static int oocd_trace_register_commands(struct command_context_s *cmd_ctx);
+
+static int oocd_trace_read_reg(oocd_trace_t *oocd_trace, int reg, u32 *value)
 {
        size_t bytes_written, bytes_read, bytes_to_read;
        u8 cmd;
@@ -54,31 +42,32 @@ int oocd_trace_read_reg(oocd_trace_t *oocd_trace, int reg, u32 *value)
                bytes_to_read -= bytes_read;
        }
 
-       DEBUG("reg #%i: 0x%8.8x\n", reg, *value);
+       LOG_DEBUG("reg #%i: 0x%8.8x\n", reg, *value);
        
        return ERROR_OK;
 }
 
-int oocd_trace_write_reg(oocd_trace_t *oocd_trace, int reg, u32 value)
+static int oocd_trace_write_reg(oocd_trace_t *oocd_trace, int reg, u32 value)
 {
-    size_t bytes_written;
-    u8 data[5];
+       size_t bytes_written;
+       u8 data[5];
 
-    data[0] = 0x18 | (reg & 0x7);
-    data[1] = value & 0xff;
-    data[2] = (value & 0xff00) >> 8;
-    data[3] = (value & 0xff0000) >> 16;
-    data[4] = (value & 0xff000000) >> 24;
+       data[0] = 0x18 | (reg & 0x7);
+       data[1] = value & 0xff;
+       data[2] = (value & 0xff00) >> 8;
+       data[3] = (value & 0xff0000) >> 16;
+       data[4] = (value & 0xff000000) >> 24;
 
-    bytes_written = write(oocd_trace->tty_fd, data, 5);
-    DEBUG("reg #%i: 0x%8.8x\n", reg, value);
+       bytes_written = write(oocd_trace->tty_fd, data, 5);
+       LOG_DEBUG("reg #%i: 0x%8.8x\n", reg, value);
 
-    return ERROR_OK;
+       return ERROR_OK;
 }
 
-int oocd_trace_read_memory(oocd_trace_t *oocd_trace, u8 *data, u32 address, u32 size)
+static int oocd_trace_read_memory(oocd_trace_t *oocd_trace, u8 *data, u32 address, u32 size)
 {
-       size_t bytes_written, bytes_read, bytes_to_read;
+       size_t bytes_written, bytes_to_read;
+       ssize_t bytes_read;
        u8 cmd;
 
        oocd_trace_write_reg(oocd_trace, OOCD_TRACE_ADDRESS, address);
@@ -93,7 +82,7 @@ int oocd_trace_read_memory(oocd_trace_t *oocd_trace, u8 *data, u32 address, u32
                if ((bytes_read = read(oocd_trace->tty_fd,
                                ((u8*)data) + (size * 16) - bytes_to_read, bytes_to_read)) < 0)
                {
-                       DEBUG("read() returned %i (%s)", bytes_read, strerror(errno));
+                       LOG_DEBUG("read() returned %zi (%s)", bytes_read, strerror(errno));
                }
                else
                        bytes_to_read -= bytes_read;
@@ -102,7 +91,7 @@ int oocd_trace_read_memory(oocd_trace_t *oocd_trace, u8 *data, u32 address, u32
        return ERROR_OK;
 }
 
-int oocd_trace_init(etm_context_t *etm_ctx)
+static int oocd_trace_init(etm_context_t *etm_ctx)
 {
        u8 trash[256];
        oocd_trace_t *oocd_trace = etm_ctx->capture_driver_priv;
@@ -112,7 +101,7 @@ int oocd_trace_init(etm_context_t *etm_ctx)
 
        if(oocd_trace->tty_fd < 0)
        {
-               ERROR("can't open tty");
+               LOG_ERROR("can't open tty");
                return ERROR_ETM_CAPTURE_INIT_FAILED;
        }
 
@@ -143,13 +132,13 @@ int oocd_trace_init(etm_context_t *etm_ctx)
         * read up any leftover characters to ensure communication is in sync */
        while ((bytes_read = read(oocd_trace->tty_fd, trash, sizeof(trash))) > 0)
        {
-           DEBUG("%i bytes read\n", bytes_read);
+               LOG_DEBUG("%zi bytes read\n", bytes_read);
        };
        
        return ERROR_OK;
 }
 
-trace_status_t oocd_trace_status(etm_context_t *etm_ctx)
+static trace_status_t oocd_trace_status(etm_context_t *etm_ctx)
 {
        oocd_trace_t *oocd_trace = etm_ctx->capture_driver_priv;
        u32 status;
@@ -181,17 +170,17 @@ trace_status_t oocd_trace_status(etm_context_t *etm_ctx)
        return etm_ctx->capture_status;
 }
 
-int oocd_trace_read_trace(etm_context_t *etm_ctx)
+static int oocd_trace_read_trace(etm_context_t *etm_ctx)
 {
        oocd_trace_t *oocd_trace = etm_ctx->capture_driver_priv;
        u32 status, address;
        u32 first_frame = 0x0;
        u32 num_frames = 1048576;
        u8 *trace_data;
-       int i;
+       u32 i;
 
-    oocd_trace_read_reg(oocd_trace, OOCD_TRACE_STATUS, &status);
-    oocd_trace_read_reg(oocd_trace, OOCD_TRACE_ADDRESS, &address);
+       oocd_trace_read_reg(oocd_trace, OOCD_TRACE_STATUS, &status);
+       oocd_trace_read_reg(oocd_trace, OOCD_TRACE_ADDRESS, &address);
 
        /* check if we overflowed, and adjust first frame of the trace accordingly
         * if we didn't overflow, read only up to the frame that would be written next,
@@ -239,7 +228,7 @@ int oocd_trace_read_trace(etm_context_t *etm_ctx)
        return ERROR_OK;
 }
 
-int oocd_trace_start_capture(etm_context_t *etm_ctx)
+static int oocd_trace_start_capture(etm_context_t *etm_ctx)
 {
        oocd_trace_t *oocd_trace = etm_ctx->capture_driver_priv;
        u32 control = 0x1;      /* 0x1: enabled */
@@ -248,7 +237,7 @@ int oocd_trace_start_capture(etm_context_t *etm_ctx)
        if (((etm_ctx->portmode & ETM_PORT_MODE_MASK) != ETM_PORT_NORMAL)
                || ((etm_ctx->portmode & ETM_PORT_WIDTH_MASK) != ETM_PORT_4BIT))
        {
-               DEBUG("OpenOCD+trace only supports normal 4-bit ETM mode");
+               LOG_DEBUG("OpenOCD+trace only supports normal 4-bit ETM mode");
                return ERROR_ETM_PORTMODE_NOT_SUPPORTED;
        }
        
@@ -272,7 +261,7 @@ int oocd_trace_start_capture(etm_context_t *etm_ctx)
        return ERROR_OK; 
 }
 
-int oocd_trace_stop_capture(etm_context_t *etm_ctx)
+static int oocd_trace_stop_capture(etm_context_t *etm_ctx)
 {
        oocd_trace_t *oocd_trace = etm_ctx->capture_driver_priv;
 
@@ -295,7 +284,7 @@ etm_capture_driver_t oocd_trace_capture_driver =
        .read_trace = oocd_trace_read_trace,
 };
 
-int handle_oocd_trace_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_oocd_trace_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        target_t *target;
        armv4_5_common_t *armv4_5;
@@ -303,7 +292,7 @@ int handle_oocd_trace_config_command(struct command_context_s *cmd_ctx, char *cm
        
        if (argc != 2)
        {
-               ERROR("incomplete 'oocd_trace config <target> <tty>' command");
+               LOG_ERROR("incomplete 'oocd_trace config <target> <tty>' command");
                exit(-1);
        }
        
@@ -327,13 +316,13 @@ int handle_oocd_trace_config_command(struct command_context_s *cmd_ctx, char *cm
        }
        else
        {
-               ERROR("target has no ETM defined, OpenOCD+trace left unconfigured");
+               LOG_ERROR("target has no ETM defined, OpenOCD+trace left unconfigured");
        }
 
        return ERROR_OK;
 }
 
-int handle_oocd_trace_status_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_oocd_trace_status_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        target_t *target;
        armv4_5_common_t *armv4_5;
@@ -373,7 +362,7 @@ int handle_oocd_trace_status_command(struct command_context_s *cmd_ctx, char *cm
        return ERROR_OK;
 }
 
-int handle_oocd_trace_resync_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
+static int handle_oocd_trace_resync_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
        target_t *target;
        armv4_5_common_t *armv4_5;
@@ -409,7 +398,7 @@ int handle_oocd_trace_resync_command(struct command_context_s *cmd_ctx, char *cm
        bytes_written = write(oocd_trace->tty_fd, cmd_array, 1);
        
        command_print(cmd_ctx, "requesting traceclock resync");
-       DEBUG("resyncing traceclk pll");
+       LOG_DEBUG("resyncing traceclk pll");
 
        return ERROR_OK;
 }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)