/* CTF 1.8 */

/*
 * The MIT License (MIT)
 *
 * Copyright (c) 2015-2016 Philippe Proulx <pproulx@efficios.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 *
 * The following TSDL code was generated by barectf v2.2.1
 * on 2018-08-21 22:52:11.845006.
 *
 * For more details, see <http://barectf.org>.
 */

trace {
	major = 1;
	minor = 8;
	byte_order = le;
	uuid = "21c4e078-a5c7-11e8-8529-34f39aeaad30";
	packet.header := struct {
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} magic;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} uuid[16];
	} align(1);
};

env {
	tracer_major = 2;
	esmf_trace_version = "0.6";
	barectf_gen_date = "2018-08-21T22:52:11.844952";
	tracer_patch = 1;
	domain = "bare";
	tracer_minor = 2;
	tracer_name = "barectf";
};

clock {
	name = sys_clock;
	description = "System clock";
	freq = 1000000000;
	offset_s = 0;
	offset = 0;
	precision = 0;
	absolute = false;
};

/* default */
stream {
	packet.context := struct {
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
			map = clock.sys_clock.value;
		} timestamp_begin;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
			map = clock.sys_clock.value;
		} timestamp_end;
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} packet_size;
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} content_size;
		string {
			encoding = UTF8;
		} nodename;
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} pet;
	} align(1);
	event.header := struct {
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} id;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
			map = clock.sys_clock.value;
		} timestamp;
	} align(1);
};

event {
	name = "prologue_enter";
	id = 0; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"initialize" = 0,
			"run" = 1,
			"finalize" = 2,
		} method;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} phase;
	} align(1);
};

event {
	name = "epilogue_exit";
	id = 1; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"initialize" = 0,
			"run" = 1,
			"finalize" = 2,
		} method;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} phase;
	} align(1);
};

event {
	name = "phase_enter";
	id = 2; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"initialize" = 0,
			"run" = 1,
			"finalize" = 2,
		} method;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} phase;
	} align(1);
};

event {
	name = "phase_exit";
	id = 3; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"initialize" = 0,
			"run" = 1,
			"finalize" = 2,
		} method;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} phase;
	} align(1);
};

event {
	name = "region_enter";
	id = 4; /* default */
	fields := struct {
		string {
			encoding = UTF8;
		} name;
	} align(1);
};

event {
	name = "region_exit";
	id = 5; /* default */
	fields := struct {
		string {
			encoding = UTF8;
		} name;
	} align(1);
};

event {
	name = "define_region";
	id = 6; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} id;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"comp_phase" = 0,
			"user_defined" = 1,
		} type;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		enum : integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} {
			"initialize" = 0,
			"run" = 1,
			"finalize" = 2,
		} method;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} phase;
		string {
			encoding = UTF8;
		} name;
	} align(1);
};

event {
	name = "regionid_enter";
	id = 7; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} regionid;
	} align(1);
};

event {
	name = "regionid_exit";
	id = 8; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} regionid;
	} align(1);
};

event {
	name = "comp";
	id = 9; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} vmid;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} baseid;
		string {
			encoding = UTF8;
		} name;
		string {
			encoding = UTF8;
		} IPM;
		string {
			encoding = UTF8;
		} RPM;
		string {
			encoding = UTF8;
		} FPM;
	} align(1);
};

event {
	name = "mem";
	id = 10; /* default */
	fields := struct {
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} virtMem;
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} physMem;
	} align(1);
};

event {
	name = "clk";
	id = 11; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} year;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} month;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} day;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} hour;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} minute;
		integer {
			size = 8;
			align = 8;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} second;
	} align(1);
};

event {
	name = "mpiwait";
	id = 12; /* default */
	fields := struct {
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} count;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} time;
	} align(1);
};

event {
	name = "region_profile";
	id = 13; /* default */
	fields := struct {
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} id;
		integer {
			size = 16;
			align = 16;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} parentid;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} total;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} self;
		integer {
			size = 32;
			align = 32;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} count;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} max;
		integer {
			size = 64;
			align = 64;
			signed = false;
			byte_order = le;
			base = 10;
			encoding = none;
		} min;
		floating_point {
			exp_dig = 11;
			mant_dig = 53;
			align = 64;
			byte_order = le;
		} mean;
		floating_point {
			exp_dig = 11;
			mant_dig = 53;
			align = 64;
			byte_order = le;
		} stddev;
	} align(1);
};
