int met_tag_dump_real(unsigned int class_id, const char *name, void *data, unsigned int length)
{
	int ret;
	if ((dump_data_size + length + sizeof(int)) > dump_buffer_size) {
		if (options_flag & OPFLAG_OVERWRITE) {
			dump_overrun_size = dump_data_size;
			dump_overrun++;
			memcpy(dump_buffer, &dump_seq_no, sizeof(int));
			memcpy(dump_buffer + sizeof(int), data, length);
			ret = tracing_mark_write(TYPE_DUMP, class_id, name,
		                         dump_seq_no++, 0, length + sizeof(int));
			dump_data_size = length + sizeof(int);
		}
		else {
			ret = tracing_mark_write(TYPE_DUMP, class_id, name, dump_seq_no++, 0, 0);
		}
	}
	else {
		memcpy(dump_buffer + dump_data_size, &dump_seq_no, sizeof(int));
		memcpy(dump_buffer + dump_data_size + sizeof(int), data, length);
		ret = tracing_mark_write(TYPE_DUMP, class_id, name,
		                         dump_seq_no++, dump_data_size, length + sizeof(int));
		dump_data_size += length + sizeof(int);
	}
	return ret;
}
Example #2
0
int met_tag_oneshot_real(unsigned int class_id, const char *name, unsigned int value)
{
	int ret;
	ret = tracing_mark_write(TYPE_ONESHOT, class_id, name, value, 0, 0);
#ifdef BUILD_WITH_MET
	if (irqs_disabled())
		force_sample(NULL);
	else
		on_each_cpu(force_sample, NULL, 1);
#endif
	return ret;
}
int met_tag_end_real(unsigned int class_id, const char *name)
{
	int ret;
#ifdef BUILD_WITH_MET
	if (irqs_disabled()) {
		force_sample(NULL);
	} else {
		on_each_cpu(force_sample, NULL, 1);
	}
#endif
	ret = tracing_mark_write(TYPE_END, class_id, name, 0, 0, 0);

	return ret;
}