RTEMS  5.0.0
Data Structures | Macros | Typedefs | Enumerations | Functions
capture.h File Reference

Capture Engine Component of the RTEMS Measurement and Monitoring System. More...

#include <rtems.h>
#include <rtems/rtems/tasksimpl.h>
#include <rtems/score/schedulerimpl.h>
#include <string.h>

Go to the source code of this file.

Data Structures

struct  rtems_capture_from
 Task id and mask for the from trigger. More...
 
struct  rtems_capture_control
 Capture control structure for a group of tasks. More...
 
struct  rtems_capture_record
 
struct  rtems_capture_task_record
 
struct  rtems_capture_record_lock_context
 Capture record lock context. More...
 

Macros

#define RTEMS_CAPTURE_INIT   (1u << 0)
 
#define RTEMS_CAPTURE_ON   (1U << 1)
 
#define RTEMS_CAPTURE_NO_MEMORY   (1U << 2)
 
#define RTEMS_CAPTURE_TRIGGERED   (1U << 3)
 
#define RTEMS_CAPTURE_GLOBAL_WATCH   (1U << 4)
 
#define RTEMS_CAPTURE_ONLY_MONITOR   (1U << 5)
 
#define RTEMS_CAPTURE_OVERFLOW   (1U << 0)
 
#define RTEMS_CAPTURE_READER_ACTIVE   (1U << 1)
 
#define RTEMS_CAPTURE_READER_WAITING   (1U << 2)
 
#define RTEMS_CAPTURE_TRIGGER_TASKS   (32)
 
#define RTEMS_CAPTURE_CONTROL_FROM_MASK(_s)   (UINT32_C(1) << (RTEMS_CAPTURE_TRIGGER_TASKS - ((_s) + 1)))
 
#define RTEMS_CAPTURE_WATCH   (1U << 0)
 
#define RTEMS_CAPTURE_SWITCH   (1 << 0)
 
#define RTEMS_CAPTURE_CREATE   (1 << 1)
 
#define RTEMS_CAPTURE_START   (1 << 2)
 
#define RTEMS_CAPTURE_RESTART   (1 << 3)
 
#define RTEMS_CAPTURE_DELETE   (1 << 4)
 
#define RTEMS_CAPTURE_BEGIN   (1 << 5)
 
#define RTEMS_CAPTURE_EXITTED   (1 << 6)
 
#define RTEMS_CAPTURE_TERMINATED   (1 << 7)
 
#define RTEMS_CAPTURE_FROM_TRIGS
 
#define RTEMS_CAPTURE_TO_TRIGS
 
#define RTEMS_CAPTURE_TRACED   (1U << 0)
 
#define RTEMS_CAPTURE_INIT_TASK   (1U << 1)
 
#define RTEMS_CAPTURE_RECORD_TASK   (1U << 2)
 
#define RTEMS_CAPTURE_REAL_PRI_EVENT_MASK   UINT32_C (0x000000ff)
 
#define RTEMS_CAPTURE_CURR_PRI_EVENT_MASK   UINT32_C (0x0000ff00)
 
#define RTEMS_CAPTURE_REAL_PRIORITY_EVENT   (0)
 
#define RTEMS_CAPTURE_CURR_PRIORITY_EVENT   (8)
 
#define RTEMS_CAPTURE_EVENT_START   (16)
 
#define RTEMS_CAPTURE_CREATED_BY_EVENT   UINT32_C (0x00010000)
 
#define RTEMS_CAPTURE_CREATED_EVENT   UINT32_C (0x00020000)
 
#define RTEMS_CAPTURE_STARTED_BY_EVENT   UINT32_C (0x00040000)
 
#define RTEMS_CAPTURE_STARTED_EVENT   UINT32_C (0x00080000)
 
#define RTEMS_CAPTURE_RESTARTED_BY_EVENT   UINT32_C (0x00100000)
 
#define RTEMS_CAPTURE_RESTARTED_EVENT   UINT32_C (0x00200000)
 
#define RTEMS_CAPTURE_DELETED_BY_EVENT   UINT32_C (0x00400000)
 
#define RTEMS_CAPTURE_DELETED_EVENT   UINT32_C (0x00800000)
 
#define RTEMS_CAPTURE_TERMINATED_EVENT   UINT32_C (0x01000000)
 
#define RTEMS_CAPTURE_BEGIN_EVENT   UINT32_C (0x02000000)
 
#define RTEMS_CAPTURE_EXITTED_EVENT   UINT32_C (0x04000000)
 
#define RTEMS_CAPTURE_SWITCHED_OUT_EVENT   UINT32_C (0x08000000)
 
#define RTEMS_CAPTURE_SWITCHED_IN_EVENT   UINT32_C (0x10000000)
 
#define RTEMS_CAPTURE_TIMESTAMP   UINT32_C (0x20000000)
 
#define RTEMS_CAPTURE_EVENT_END   (29)
 

Typedefs

typedef uint64_t rtems_capture_time
 A capture timestamp. More...
 
typedef struct rtems_capture_from rtems_capture_from
 Task id and mask for the from trigger. More...
 
typedef struct rtems_capture_control rtems_capture_control
 Capture control structure for a group of tasks. More...
 
typedef struct rtems_capture_record rtems_capture_record
 
typedef struct rtems_capture_task_record rtems_capture_task_record
 
typedef enum rtems_capture_trigger_mode rtems_capture_trigger_mode
 Capture trigger modes. More...
 
typedef enum rtems_capture_trigger rtems_capture_trigger
 Capture trigger. More...
 
typedef void(* rtems_capture_timestamp) (rtems_capture_time *time)
 Capture timestamp callout handler. More...
 

Enumerations

enum  rtems_capture_trigger_mode { rtems_capture_to_any, rtems_capture_from_any, rtems_capture_from_to }
 Capture trigger modes. More...
 
enum  rtems_capture_trigger {
  rtems_capture_switch, rtems_capture_create, rtems_capture_start, rtems_capture_restart,
  rtems_capture_delete, rtems_capture_begin, rtems_capture_exitted, rtems_capture_terminated
}
 Capture trigger. More...
 

Functions

rtems_status_code rtems_capture_open (uint32_t size, rtems_capture_timestamp timestamp)
 Capture open. More...
 
rtems_status_code rtems_capture_close (void)
 Capture close. More...
 
rtems_status_code rtems_capture_set_control (bool enable)
 Capture control trace enable/disable. More...
 
rtems_status_code rtems_capture_set_monitor (bool enable)
 Capture monitor enable/disable. More...
 
rtems_status_code rtems_capture_flush (bool prime)
 
rtems_status_code rtems_capture_watch_add (rtems_name name, rtems_id id)
 Capture add watch. More...
 
rtems_status_code rtems_capture_watch_del (rtems_name name, rtems_id id)
 Capture delete watch. More...
 
rtems_status_code rtems_capture_watch_ctrl (rtems_name name, rtems_id id, bool enable)
 Capture enable/disable watch. More...
 
rtems_status_code rtems_capture_watch_global (bool enable)
 Capture enable/disable global watch. More...
 
bool rtems_capture_watch_global_on (void)
 Get global watch state. More...
 
rtems_status_code rtems_capture_watch_ceiling (rtems_task_priority ceiling)
 Set watch ceiling. More...
 
rtems_task_priority rtems_capture_watch_get_ceiling (void)
 Get watch ceiling. More...
 
rtems_status_code rtems_capture_watch_floor (rtems_task_priority floor)
 Capture set watch floor. More...
 
rtems_task_priority rtems_capture_watch_get_floor (void)
 Capture set watch floor. More...
 
rtems_status_code rtems_capture_set_trigger (rtems_name from_name, rtems_id from_id, rtems_name to_name, rtems_id to_id, rtems_capture_trigger_mode mode, rtems_capture_trigger trigger)
 Capture set trigger. More...
 
rtems_status_code rtems_capture_clear_trigger (rtems_name from_name, rtems_id from_id, rtems_name to_name, rtems_id to_id, rtems_capture_trigger_mode mode, rtems_capture_trigger trigger)
 Capture clear trigger. More...
 
rtems_status_code rtems_capture_read (uint32_t cpu, size_t *read, const void **recs)
 Capture read records from capture buffer. More...
 
rtems_status_code rtems_capture_release (uint32_t cpu, uint32_t count)
 Capture release records. More...
 
bool rtems_capture_filter (rtems_tcb *task, uint32_t events)
 Capture filter. More...
 
void rtems_capture_get_time (rtems_capture_time *time)
 Capture returns the current time. More...
 
const char * rtems_capture_event_text (int event)
 Capture get event text. More...
 
void rtems_capture_initialize_task (rtems_tcb *tcb)
 Capture initialize task. More...
 
void rtems_capture_record_task (rtems_tcb *tcb)
 Capture record task. More...
 
void rtems_capture_record_lock (rtems_capture_record_lock_context *context)
 Capture record lock. More...
 
void rtems_capture_record_unlock (rtems_capture_record_lock_context *context)
 Capture record unlock. More...
 
void * rtems_capture_record_open (rtems_tcb *task, uint32_t events, size_t size, rtems_capture_record_lock_context *context)
 Capture record open. More...
 
void rtems_capture_record_close (rtems_capture_record_lock_context *context)
 Capture record close. More...
 
rtems_capture_controlrtems_capture_get_control_list (void)
 Capture get control list. More...
 

Detailed Description

Capture Engine Component of the RTEMS Measurement and Monitoring System.

This is the Capture Engine component of the RTEMS Measurement and Monitoring system.