[rtems commit] capture: Move default trace data

Sebastian Huber sebh at rtems.org
Sun Sep 20 15:32:20 UTC 2020


Module:    rtems
Branch:    master
Commit:    9f2a2075fca6493cf9232e11a2b9b72cc4ade5a6
Changeset: http://git.rtems.org/rtems/commit/?id=9f2a2075fca6493cf9232e11a2b9b72cc4ade5a6

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Sun Sep 20 15:09:48 2020 +0200

capture: Move default trace data

Provide the default trace data in a separate file to avoid issues on targets
with a small-data area.

Close #3883.

---

 .../include/rtems/trace/rtems-trace-buffer-vars.h  | 25 +++++++++++++++
 .../libmisc/capture/rtems-trace-buffer-default.c   | 36 ++++++++++++++++++++++
 cpukit/libmisc/capture/rtems-trace-buffer-vars.c   | 29 +----------------
 spec/build/cpukit/librtemscpu.yml                  |  1 +
 4 files changed, 63 insertions(+), 28 deletions(-)

diff --git a/cpukit/include/rtems/trace/rtems-trace-buffer-vars.h b/cpukit/include/rtems/trace/rtems-trace-buffer-vars.h
index 8f0ff08..c6a13b9 100644
--- a/cpukit/include/rtems/trace/rtems-trace-buffer-vars.h
+++ b/cpukit/include/rtems/trace/rtems-trace-buffer-vars.h
@@ -16,6 +16,9 @@
 #if !defined (_RTEMS_TRACE_BUFFER_VARS_H_)
 #define _RTEMS_TRACE_BUFFER_VARS_H_
 
+#include <stdbool.h>
+#include <stdint.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -43,6 +46,28 @@ typedef struct
 typedef __rtld_trace_sig_arg rtems_trace_sig_arg;
 typedef __rtld_trace_sig rtems_trace_sig;
 
+/*
+ * Trace linker data.
+ */
+extern uint32_t __rtld_trace_names_size;
+extern const char *const __rtld_trace_names[];
+extern uint32_t __rtld_trace_enables_size;
+extern const uint32_t __rtld_trace_enables[];
+extern uint32_t __rtld_trace_triggers_size;
+extern const uint32_t __rtld_trace_triggers[];
+extern const __rtld_trace_sig __rtld_trace_signatures[];
+
+/*
+ * Trace buffer generator data.
+ */
+extern const bool __rtld_tbg_present;
+extern const uint32_t __rtld_tbg_mode;
+extern const uint32_t __rtld_tbg_buffer_size;
+extern uint32_t __rtld_tbg_buffer[];
+extern volatile uint32_t __rtld_tbg_buffer_in;
+extern volatile bool __rtld_tbg_finished;
+extern volatile bool __rtld_tbg_triggered;
+
 /**
  * Returns the number of trace functions.
  */
diff --git a/cpukit/libmisc/capture/rtems-trace-buffer-default.c b/cpukit/libmisc/capture/rtems-trace-buffer-default.c
new file mode 100644
index 0000000..23c66cd
--- /dev/null
+++ b/cpukit/libmisc/capture/rtems-trace-buffer-default.c
@@ -0,0 +1,36 @@
+/*
+ *  Copyright (c) 2015 Chris Johns <chrisj at rtems.org>
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.org/license/LICENSE.
+ */
+
+#include <rtems/trace/rtems-trace-buffer-vars.h>
+
+/**
+ * External Trace Linker and TBG data. We provide weak versions to allow us to
+ * link and be present in an application that has not been trace linked.
+ */
+
+/*
+ * Trace linker data.
+ */
+uint32_t __rtld_trace_names_size __attribute__ ((weak));
+const char *const __rtld_trace_names[1] __attribute__ ((weak));
+uint32_t __rtld_trace_enables_size __attribute__ ((weak));
+const uint32_t __rtld_trace_enables[1] __attribute__ ((weak));
+uint32_t __rtld_trace_triggers_size __attribute__ ((weak));
+const uint32_t __rtld_trace_triggers[1] __attribute__ ((weak));
+const __rtld_trace_sig __rtld_trace_signatures[1] __attribute__ ((weak));
+
+/*
+ * Trace buffer generator data.
+ */
+const bool __rtld_tbg_present __attribute__ ((weak));
+const uint32_t __rtld_tbg_mode __attribute__ ((weak));
+const uint32_t __rtld_tbg_buffer_size __attribute__ ((weak));
+uint32_t __rtld_tbg_buffer[1] __attribute__ ((weak));
+volatile uint32_t __rtld_tbg_buffer_in __attribute__ ((weak));
+volatile bool __rtld_tbg_finished __attribute__ ((weak));
+volatile bool __rtld_tbg_triggered __attribute__ ((weak));
diff --git a/cpukit/libmisc/capture/rtems-trace-buffer-vars.c b/cpukit/libmisc/capture/rtems-trace-buffer-vars.c
index b0f7070..ec24181 100644
--- a/cpukit/libmisc/capture/rtems-trace-buffer-vars.c
+++ b/cpukit/libmisc/capture/rtems-trace-buffer-vars.c
@@ -6,36 +6,9 @@
  *  http://www.rtems.org/license/LICENSE.
  */
 
-#include <rtems.h>
-
 #include <rtems/trace/rtems-trace-buffer-vars.h>
 
-/**
- * External Trace Linker and TBG data. We provide weak versions to allow us to
- * link and be present in an application that has not been trace linked.
- */
-
-/*
- * Trace linker data.
- */
-uint32_t __rtld_trace_names_size __attribute__ ((weak));
-const char *const __rtld_trace_names[1] __attribute__ ((weak));
-uint32_t __rtld_trace_enables_size __attribute__ ((weak));
-const uint32_t __rtld_trace_enables[1] __attribute__ ((weak));
-uint32_t __rtld_trace_triggers_size __attribute__ ((weak));
-const uint32_t __rtld_trace_triggers[1] __attribute__ ((weak));
-const __rtld_trace_sig __rtld_trace_signatures[1] __attribute__ ((weak));
-
-/*
- * Trace buffer generator data.
- */
-const bool __rtld_tbg_present __attribute__ ((weak));
-const uint32_t __rtld_tbg_mode __attribute__ ((weak));
-const uint32_t __rtld_tbg_buffer_size __attribute__ ((weak));
-uint32_t __rtld_tbg_buffer[1] __attribute__ ((weak));
-volatile uint32_t __rtld_tbg_buffer_in __attribute__ ((weak));
-volatile bool __rtld_tbg_finished __attribute__ ((weak));
-volatile bool __rtld_tbg_triggered __attribute__ ((weak));
+#include <rtems.h>
 
 ISR_LOCK_DEFINE (static, __rtld_tbg_lock, "RTLD TBG")
 
diff --git a/spec/build/cpukit/librtemscpu.yml b/spec/build/cpukit/librtemscpu.yml
index 95322e0..37f63d5 100644
--- a/spec/build/cpukit/librtemscpu.yml
+++ b/spec/build/cpukit/librtemscpu.yml
@@ -893,6 +893,7 @@ source:
 - cpukit/libmisc/capture/capture-cli.c
 - cpukit/libmisc/capture/capture_support.c
 - cpukit/libmisc/capture/capture_user_extension.c
+- cpukit/libmisc/capture/rtems-trace-buffer-default.c
 - cpukit/libmisc/capture/rtems-trace-buffer-vars.c
 - cpukit/libmisc/cpuuse/cpuinforeport.c
 - cpukit/libmisc/cpuuse/cpuusagedata.c



More information about the vc mailing list