示例#1
0
文件: baselib.c 项目: joelagnel/ktap
/* don't engage with tstring when printf, use buffer directly */
static int ktap_lib_printf(ktap_state *ks)
{
	struct trace_seq *seq;

	preempt_disable_notrace();

	seq = kp_percpu_data(KTAP_PERCPU_DATA_BUFFER);
	trace_seq_init(seq);

	if (kp_strfmt(ks, seq))
		return 0;

	seq->buffer[seq->len] = '\0';
	kp_transport_write(ks, seq->buffer, seq->len + 1);

	preempt_enable_notrace();
	return 0;
}
示例#2
0
文件: baselib.c 项目: WeiY/ktap
/* don't engage with tstring when printf, use buffer directly */
static int ktap_lib_printf(ktap_State *ks)
{
	struct trace_seq *seq;

	if (ks == G(ks)->mainthread) {
		seq = &mainthread_printf_seq;		
	} else {
		seq = &per_cpu(printf_seq, smp_processor_id());
	}

	trace_seq_init(seq);
	if (kp_strfmt(ks, seq)) {
		return 0;
	}

	seq->buffer[seq->len] = '\0';
	kp_transport_write(ks, seq->buffer, seq->len);

	return 0;
}