From 53f576e50e7a9304bc1472211f7b165a52e442ef Mon Sep 17 00:00:00 2001 From: Johannes Schlatow Date: Fri, 20 May 2022 14:26:40 +0200 Subject: [PATCH] trace_recorder: add pcapng policy genodelabs/genode#4352 --- .../trace_recorder/policy/pcapng/policy.cc | 60 +++++++++++++++++++ .../trace_recorder/policy/pcapng/target.mk | 5 ++ 2 files changed, 65 insertions(+) create mode 100644 repos/gems/src/lib/trace_recorder/policy/pcapng/policy.cc create mode 100644 repos/gems/src/lib/trace_recorder/policy/pcapng/target.mk diff --git a/repos/gems/src/lib/trace_recorder/policy/pcapng/policy.cc b/repos/gems/src/lib/trace_recorder/policy/pcapng/policy.cc new file mode 100644 index 0000000000..3d76c23e7f --- /dev/null +++ b/repos/gems/src/lib/trace_recorder/policy/pcapng/policy.cc @@ -0,0 +1,60 @@ +#include +#include + +using namespace Genode; + +enum { MAX_CAPTURE_LEN = 100 }; + + +size_t max_event_size() { + return Trace_recorder::Pcapng_event::max_size(MAX_CAPTURE_LEN); } + + +size_t trace_eth_packet(char *dst, char const *if_name, bool out, char *pkt_data, size_t pkt_len) +{ + using namespace Pcapng; + Trace_recorder::Pcapng_event *e = + new (dst) Trace_recorder::Pcapng_event(Link_type::ETHERNET, if_name, out, pkt_len, pkt_data, MAX_CAPTURE_LEN); + + return e->total_length(); +} + +size_t checkpoint(char *dst, char const *, unsigned long, void *, unsigned char) +{ + return 0; +} + +size_t log_output(char *dst, char const *log_message, size_t len) +{ + return 0; +} + +size_t rpc_call(char *dst, char const *rpc_name, Msgbuf_base const &) +{ + return 0; +} + +size_t rpc_returned(char *dst, char const *rpc_name, Msgbuf_base const &) +{ + return 0; +} + +size_t rpc_dispatch(char *dst, char const *rpc_name) +{ + return 0; +} + +size_t rpc_reply(char *dst, char const *rpc_name) +{ + return 0; +} + +size_t signal_submit(char *dst, unsigned const) +{ + return 0; +} + +size_t signal_receive(char *dst, Signal_context const &, unsigned) +{ + return 0; +} diff --git a/repos/gems/src/lib/trace_recorder/policy/pcapng/target.mk b/repos/gems/src/lib/trace_recorder/policy/pcapng/target.mk new file mode 100644 index 0000000000..ff7affa0cc --- /dev/null +++ b/repos/gems/src/lib/trace_recorder/policy/pcapng/target.mk @@ -0,0 +1,5 @@ +TARGET = pcapng_policy + +TARGET_POLICY = pcapng + +include $(PRG_DIR)/../policy.inc