android_kernel_modules_leno.../drivers/misc/tp2e/tp2e_test.c

41 lines
1.1 KiB
C

#define TP2E_CRASH_DATA_LEN 10
static char trace_tp2e_crash_str[4 * (TP2E_CRASH_DATA_LEN + 1)] = {'\0',};
static int set_tp2e_crash(const char *val, const struct kernel_param *kp)
{
char ev_name[TP2E_CRASH_DATA_LEN],
data0[TP2E_CRASH_DATA_LEN],
data1[TP2E_CRASH_DATA_LEN],
data2[TP2E_CRASH_DATA_LEN];
int ret = -EINVAL;
unsigned int add_steps;
if (sscanf(val, "%s %s %s %s %d", ev_name, data0, data1, data2,
&add_steps) != 5)
return ret;
memcpy(trace_tp2e_crash_str, val, strlen(val));
trace_tp2e_generic_event(TP2E_EV_INFO, "tp2e_test", ev_name,
data0, data1, data2, "", "", "", "",add_steps);
return 0;
}
static int get_tp2e_crash(char *buf,const struct kernel_param *kp)
{
size_t len = strlen(trace_tp2e_crash_str);
memcpy(buf, trace_tp2e_crash_str, len);
return len;
}
static struct kernel_param_ops trigger_ops = {
.set = set_tp2e_crash,
.get = get_tp2e_crash,
};
module_param_cb(trace_tp2e_crash_str, &trigger_ops, NULL, 0644);
MODULE_PARM_DESC(trace_tp2e_crash_str, "log trace tp2e "
"crash <ev_name> <data0> <data1> <data2> <additional steps>");