forked from Imagelibrary/rtems
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.
This commit is contained in:
@@ -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.
|
||||
*/
|
||||
|
||||
36
cpukit/libmisc/capture/rtems-trace-buffer-default.c
Normal file
36
cpukit/libmisc/capture/rtems-trace-buffer-default.c
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2015 Chris Johns <chrisj@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));
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user