Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/kernel/trace/rv/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 4 kB image not shown  

Quelle  rv_trace.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
#undef TRACE_SYSTEM
#define TRACE_SYSTEM rv

#if !defined(_TRACE_RV_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_RV_H

#include <linux/rv.h>
#include <linux/tracepoint.h>

#ifdef CONFIG_DA_MON_EVENTS_IMPLICIT
DECLARE_EVENT_CLASS(event_da_monitor,

 TP_PROTO(char *state, char *event, char *next_state, bool final_state),

 TP_ARGS(state, event, next_state, final_state),

 TP_STRUCT__entry(
  __string( state,  state  )
  __string( event,  event  )
  __string( next_state, next_state )
  __field( bool,  final_state )
 ),

 TP_fast_assign(
  __assign_str(state);
  __assign_str(event);
  __assign_str(next_state);
  __entry->final_state = final_state;
 ),

 TP_printk("%s x %s -> %s%s",
  __get_str(state),
  __get_str(event),
  __get_str(next_state),
  __entry->final_state ? " (final)" : "")
);

DECLARE_EVENT_CLASS(error_da_monitor,

 TP_PROTO(char *state, char *event),

 TP_ARGS(state, event),

 TP_STRUCT__entry(
  __string( state, state )
  __string( event, event )
 ),

 TP_fast_assign(
  __assign_str(state);
  __assign_str(event);
 ),

 TP_printk("event %s not expected in the state %s",
  __get_str(event),
  __get_str(state))
);

#include <monitors/wip/wip_trace.h>
#include <monitors/sco/sco_trace.h>
#include <monitors/scpd/scpd_trace.h>
#include <monitors/snep/snep_trace.h>
#include <monitors/sts/sts_trace.h>
#include <monitors/opid/opid_trace.h>
// Add new monitors based on CONFIG_DA_MON_EVENTS_IMPLICIT here

#endif /* CONFIG_DA_MON_EVENTS_IMPLICIT */

#ifdef CONFIG_DA_MON_EVENTS_ID
DECLARE_EVENT_CLASS(event_da_monitor_id,

 TP_PROTO(int id, char *state, char *event, char *next_state, bool final_state),

 TP_ARGS(id, state, event, next_state, final_state),

 TP_STRUCT__entry(
  __field( int,  id  )
  __string( state,  state  )
  __string( event,  event  )
  __string( next_state, next_state )
  __field( bool,  final_state )
 ),

 TP_fast_assign(
  __assign_str(state);
  __assign_str(event);
  __assign_str(next_state);
  __entry->id  = id;
  __entry->final_state = final_state;
 ),

 TP_printk("%d: %s x %s -> %s%s",
  __entry->id,
  __get_str(state),
  __get_str(event),
  __get_str(next_state),
  __entry->final_state ? " (final)" : "")
);

DECLARE_EVENT_CLASS(error_da_monitor_id,

 TP_PROTO(int id, char *state, char *event),

 TP_ARGS(id, state, event),

 TP_STRUCT__entry(
  __field( int, id )
  __string( state, state )
  __string( event, event )
 ),

 TP_fast_assign(
  __assign_str(state);
  __assign_str(event);
  __entry->id = id;
 ),

 TP_printk("%d: event %s not expected in the state %s",
  __entry->id,
  __get_str(event),
  __get_str(state))
);

#include <monitors/wwnr/wwnr_trace.h>
#include <monitors/snroc/snroc_trace.h>
#include <monitors/nrp/nrp_trace.h>
#include <monitors/sssw/sssw_trace.h>
// Add new monitors based on CONFIG_DA_MON_EVENTS_ID here

#endif /* CONFIG_DA_MON_EVENTS_ID */
#ifdef CONFIG_LTL_MON_EVENTS_ID
DECLARE_EVENT_CLASS(event_ltl_monitor_id,

 TP_PROTO(struct task_struct *task, char *states, char *atoms, char *next),

 TP_ARGS(task, states, atoms, next),

 TP_STRUCT__entry(
  __string(comm, task->comm)
  __field(pid_t, pid)
  __string(states, states)
  __string(atoms, atoms)
  __string(next, next)
 ),

 TP_fast_assign(
  __assign_str(comm);
  __entry->pid = task->pid;
  __assign_str(states);
  __assign_str(atoms);
  __assign_str(next);
 ),

 TP_printk("%s[%d]: (%s) x (%s) -> (%s)", __get_str(comm), __entry->pid,
    __get_str(states), __get_str(atoms), __get_str(next))
);

DECLARE_EVENT_CLASS(error_ltl_monitor_id,

 TP_PROTO(struct task_struct *task),

 TP_ARGS(task),

 TP_STRUCT__entry(
  __string(comm, task->comm)
  __field(pid_t, pid)
 ),

 TP_fast_assign(
  __assign_str(comm);
  __entry->pid = task->pid;
 ),

 TP_printk("%s[%d]: violation detected", __get_str(comm), __entry->pid)
);
#include <monitors/pagefault/pagefault_trace.h>
#include <monitors/sleep/sleep_trace.h>
// Add new monitors based on CONFIG_LTL_MON_EVENTS_ID here
#endif /* CONFIG_LTL_MON_EVENTS_ID */

#ifdef CONFIG_RV_MON_MAINTENANCE_EVENTS
/* Tracepoint useful for monitors development, currenly only used in DA */
TRACE_EVENT(rv_retries_error,

 TP_PROTO(char *name, char *event),

 TP_ARGS(name, event),

 TP_STRUCT__entry(
  __string( name, name )
  __string( event, event )
 ),

 TP_fast_assign(
  __assign_str(name);
  __assign_str(event);
 ),

 TP_printk(__stringify(MAX_DA_RETRY_RACING_EVENTS)
  " retries reached for event %s, resetting monitor %s",
  __get_str(event), __get_str(name))
);
#endif /* CONFIG_RV_MON_MAINTENANCE_EVENTS */
#endif /* _TRACE_RV_H */

/* This part must be outside protection */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE rv_trace
#include <trace/define_trace.h>

Messung V0.5
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.