mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
parent
80a422e590
commit
086f3efef2
@ -26,6 +26,7 @@ namespace Genode { namespace Trace {
|
||||
struct Signal_submit;
|
||||
struct Signal_received;
|
||||
struct Checkpoint;
|
||||
struct Ethernet_packet;
|
||||
} }
|
||||
|
||||
|
||||
@ -151,4 +152,33 @@ struct Genode::Trace::Checkpoint
|
||||
};
|
||||
|
||||
|
||||
struct Genode::Trace::Ethernet_packet
|
||||
{
|
||||
enum Direction : char {
|
||||
RECV = 0x0,
|
||||
SENT = 0x1
|
||||
};
|
||||
|
||||
char const *name;
|
||||
Direction direction;
|
||||
char *data;
|
||||
size_t length;
|
||||
|
||||
Ethernet_packet(char const *name, Direction direction, char *data, size_t len)
|
||||
: name(name), direction(direction), data(data), length(len)
|
||||
{
|
||||
Thread::trace(this);
|
||||
}
|
||||
|
||||
Ethernet_packet(char const *name, Direction direction, void *data, size_t len)
|
||||
: name(name), direction(direction), data((char*)data), length(len)
|
||||
{
|
||||
Thread::trace(this);
|
||||
}
|
||||
|
||||
size_t generate(Policy_module &policy, char *dst) const {
|
||||
return policy.trace_eth_packet(dst, name, direction == Direction::SENT, data, length); }
|
||||
};
|
||||
|
||||
|
||||
#endif /* _INCLUDE__BASE__TRACE__EVENTS_H_ */
|
||||
|
@ -32,6 +32,7 @@ namespace Genode {
|
||||
struct Genode::Trace::Policy_module
|
||||
{
|
||||
size_t (*max_event_size) ();
|
||||
size_t (*trace_eth_packet) (char *, char const *, bool, char *, size_t);
|
||||
size_t (*checkpoint) (char *, char const *, unsigned long, void *, unsigned char);
|
||||
size_t (*log_output) (char *, char const *, size_t);
|
||||
size_t (*rpc_call) (char *, char const *, Msgbuf_base const &);
|
||||
|
@ -22,6 +22,7 @@ namespace Genode {
|
||||
}
|
||||
|
||||
extern "C" size_t max_event_size ();
|
||||
extern "C" size_t trace_eth_packet (char *dst, char const *name, bool out, char *data, size_t len);
|
||||
extern "C" size_t checkpoint (char *dst, char const *name, unsigned long, void *, unsigned char);
|
||||
extern "C" size_t log_output (char *dst, char const *log_message, size_t len);
|
||||
extern "C" size_t rpc_call (char *dst, char const *rpc_name, Genode::Msgbuf_base const &);
|
||||
|
@ -18,6 +18,10 @@ size_t max_event_size()
|
||||
return MAX_EVENT_SIZE;
|
||||
}
|
||||
|
||||
size_t trace_eth_packet(char *, char const *, bool, char *, size_t)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t checkpoint(char *dst, char const *, unsigned long, void *, unsigned char)
|
||||
{
|
||||
|
@ -10,6 +10,11 @@ size_t max_event_size()
|
||||
return MAX_EVENT_SIZE;
|
||||
}
|
||||
|
||||
size_t trace_eth_packet(char *, char const *, bool, char *, size_t)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t checkpoint(char *dst, char const *, unsigned long, void *, unsigned char)
|
||||
{
|
||||
return 0;
|
||||
|
@ -7,6 +7,11 @@ size_t max_event_size()
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t trace_eth_packet(char *, char const *, bool, char *, size_t)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t checkpoint(char *dst, char const *, unsigned long, void *, unsigned char)
|
||||
{
|
||||
return 0;
|
||||
|
@ -10,6 +10,11 @@ size_t max_event_size()
|
||||
return MAX_EVENT_SIZE;
|
||||
}
|
||||
|
||||
size_t trace_eth_packet(char *, char const *, bool, char *, size_t)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t checkpoint(char *, char const *, unsigned long, void *, unsigned char)
|
||||
{
|
||||
return 0;
|
||||
|
@ -19,6 +19,7 @@ extern "C" {
|
||||
Genode::Trace::Policy_module policy_jump_table =
|
||||
{
|
||||
max_event_size,
|
||||
trace_eth_packet,
|
||||
checkpoint,
|
||||
log_output,
|
||||
rpc_call,
|
||||
|
Loading…
x
Reference in New Issue
Block a user