#ifndef __KTSTR_INTF_H
#define __KTSTR_INTF_H
#define MAX_ARGS 6
#define MAX_FIELDS 16
#define MAX_STACK_DEPTH 32
#define MAX_FUNCS 64
#define MAX_MISS_LOG 16
#define FENTRY_BATCH 4
#define MAX_STR_LEN 64
struct probe_entry {
unsigned long long ts;
unsigned long long args[MAX_ARGS];
unsigned long long fields[MAX_FIELDS];
unsigned int nr_fields;
char str_val[MAX_STR_LEN];
unsigned char has_str;
unsigned char str_param_idx;
unsigned long long exit_ts;
unsigned long long exit_fields[MAX_FIELDS];
unsigned int nr_exit_fields;
unsigned char has_exit;
};
struct field_spec {
unsigned int param_idx;
unsigned int offset;
unsigned int size;
unsigned int field_idx;
unsigned int ptr_offset;
};
struct func_meta {
unsigned int func_idx;
unsigned int nr_field_specs;
struct field_spec specs[MAX_FIELDS];
unsigned char str_param_idx;
};
enum event_type {
EVENT_PROBE_HIT = 1,
EVENT_TRIGGER = 2,
};
struct probe_event {
unsigned int type;
unsigned int tid;
unsigned int func_idx;
unsigned long long ts;
unsigned long long args[MAX_ARGS];
unsigned long long fields[MAX_FIELDS];
unsigned int nr_fields;
unsigned long long kstack[MAX_STACK_DEPTH];
unsigned int kstack_sz;
};
#endif