// File: /workspace/github_cpp_makefile_star2_O2/CMU-SAFARI[P]MQSim/src/ssd/Host_Interface_NVMe.cpp
// Function: SSD_Components::Host_Interface_NVMe::Report_results_in_XML(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Utils::XmlWriter&)
void Host_Interface_NVMe::Report_results_in_XML(std::string name_prefix, Utils::XmlWriter &xmlwriter)
{
	std::string tmp = name_prefix + ".HostInterface";
	xmlwriter.Write_open_tag(tmp);

	std::string attr = "Name";
	std::string val = ID();
	xmlwriter.Write_attribute_string(attr, val);

	for (unsigned int stream_id = 0; stream_id < no_of_input_streams; stream_id++)
	{
		std::string tmp = name_prefix + ".IO_Stream";
		xmlwriter.Write_open_tag(tmp);

		attr = "Stream_ID";
		val = std::to_string(stream_id);
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Read_Transaction_Turnaround_Time";
		val = std::to_string(input_stream_manager->Get_average_read_transaction_turnaround_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Read_Transaction_Execution_Time";
		val = std::to_string(input_stream_manager->Get_average_read_transaction_execution_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Read_Transaction_Transfer_Time";
		val = std::to_string(input_stream_manager->Get_average_read_transaction_transfer_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Read_Transaction_Waiting_Time";
		val = std::to_string(input_stream_manager->Get_average_read_transaction_waiting_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Write_Transaction_Turnaround_Time";
		val = std::to_string(input_stream_manager->Get_average_write_transaction_turnaround_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Write_Transaction_Execution_Time";
		val = std::to_string(input_stream_manager->Get_average_write_transaction_execution_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Write_Transaction_Transfer_Time";
		val = std::to_string(input_stream_manager->Get_average_write_transaction_transfer_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		attr = "Average_Write_Transaction_Waiting_Time";
		val = std::to_string(input_stream_manager->Get_average_write_transaction_waiting_time(stream_id));
		xmlwriter.Write_attribute_string(attr, val);

		xmlwriter.Write_close_tag();
	}

	xmlwriter.Write_close_tag();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x378, %rsp            # imm = 0x378
movq %rdx, %rbx
movq %rdi, 0x8(%rsp)
leaq 0x103d8(%rip), %rdx     # 0x45630
leaq 0x218(%rsp), %r14
movq %r14, %rdi
movq %rsi, 0x30(%rsp)
callq 0x11c18
leaq 0x98(%rsp), %rdi
movq %r14, %rsi
callq 0x7480
leaq 0x98(%rsp), %rsi
movq %rbx, %rdi
callq 0x419e0
leaq 0x98(%rsp), %rdi
callq 0x7678
leaq 0x1076b(%rip), %rsi     # 0x45a0c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x7150
movq 0x8(%rsp), %rax
leaq 0x8(%rax), %rsi
leaq 0x38(%rsp), %rdi
callq 0x7480
leaq 0x78(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x7480
leaq 0x78(%rsp), %rsi
leaq 0x58(%rsp), %rdx
movq %rbx, %rdi
callq 0x41adc
leaq 0x58(%rsp), %rdi
callq 0x7678
leaq 0x78(%rsp), %rdi
callq 0x7678
xorl %ebp, %ebp
leaq 0x358(%rsp), %r13
leaq 0x38(%rsp), %r12
movq 0x8(%rsp), %rax
cmpl 0x8c(%rax), %ebp
jae 0x35853
leaq 0x1f8(%rsp), %r15
movq %r15, %rdi
movq 0x30(%rsp), %rsi
leaq 0x12b8f(%rip), %rdx     # 0x47ecd
callq 0x11c18
leaq 0x1d8(%rsp), %rdi
movq %r15, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x1d8(%rsp), %r15
movq %r15, %rsi
callq 0x419e0
movq %r15, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12b5e(%rip), %rsi     # 0x47ed8
callq 0x7640
movq %r13, %rdi
movl %ebp, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x1b8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x338(%rsp), %r14
movq %r14, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x1b8(%rsp), %r15
movq %r15, %rsi
movq %r14, %rdx
callq 0x41adc
movq %r14, %rdi
callq 0x7678
movq %r15, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12aef(%rip), %rsi     # 0x47ee2
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x34644
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x198(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x318(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x198(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12a8e(%rip), %rsi     # 0x47f0b
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x34676
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x178(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x2f8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x178(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12a2c(%rip), %rsi     # 0x47f33
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x346a0
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x158(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x2d8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x158(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x129c9(%rip), %rsi     # 0x47f5a
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x346ca
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x138(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x2b8(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x138(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12965(%rip), %rsi     # 0x47f80
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x346f4
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0x118(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x298(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0x118(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12905(%rip), %rsi     # 0x47faa
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x34726
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0xf8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x278(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0xf8(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x128a4(%rip), %rsi     # 0x47fd3
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x34750
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0xd8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x258(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0xd8(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
leaq 0x12842(%rip), %rsi     # 0x47ffb
callq 0x7640
movq 0x8(%rsp), %rax
movq 0x50(%rax), %rdi
movzwl %bp, %esi
callq 0x3477a
movq %r13, %rdi
movl %eax, %esi
callq 0xe74b
movq %r12, %rdi
movq %r13, %rsi
callq 0x73f0
movq %r13, %rdi
callq 0x7678
leaq 0xb8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x7480
leaq 0x238(%rsp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x7480
movq %rbx, %rdi
leaq 0xb8(%rsp), %r14
movq %r14, %rsi
movq %r15, %rdx
callq 0x41adc
movq %r15, %rdi
callq 0x7678
movq %r14, %rdi
callq 0x7678
movq %rbx, %rdi
callq 0x41c5c
leaq 0x1f8(%rsp), %rdi
callq 0x7678
incl %ebp
jmp 0x35316
movq %rbx, %rdi
callq 0x41c5c
leaq 0x38(%rsp), %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
callq 0x7678
leaq 0x218(%rsp), %rdi
callq 0x7678
addq $0x378, %rsp            # imm = 0x378
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x7678
jmp 0x358a0
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
jmp 0x35a2e
movq %rax, %rbx
jmp 0x35a3d
jmp 0x358c4
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
jmp 0x35a42
movq %rax, %rbx
jmp 0x35a47
jmp 0x359db
movq %rax, %rbx
jmp 0x358e6
movq %rax, %rbx
leaq 0x238(%rsp), %rdi
callq 0x7678
leaq 0xb8(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
jmp 0x3591a
movq %rax, %rbx
jmp 0x35959
movq %rax, %rbx
jmp 0x359b2
movq %rax, %rbx
jmp 0x3593c
movq %rax, %rbx
leaq 0x2d8(%rsp), %rdi
callq 0x7678
leaq 0x158(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
jmp 0x35998
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
callq 0x7678
leaq 0x118(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x2b8(%rsp), %rdi
callq 0x7678
leaq 0x138(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x258(%rsp), %rdi
callq 0x7678
jmp 0x3597b
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x2f8(%rsp), %rdi
callq 0x7678
leaq 0x178(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x278(%rsp), %rdi
callq 0x7678
leaq 0xf8(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x338(%rsp), %rdi
callq 0x7678
jmp 0x359d1
movq %rax, %rbx
leaq 0x1b8(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
jmp 0x35a33
movq %rax, %rbx
leaq 0x318(%rsp), %rdi
callq 0x7678
jmp 0x359f5
movq %rax, %rbx
leaq 0x198(%rsp), %rdi
jmp 0x35a0a
movq %rax, %rbx
leaq 0x1d8(%rsp), %rdi
callq 0x7678
jmp 0x35a26
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
jmp 0x35a23
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
callq 0x7678
leaq 0x38(%rsp), %rdi
callq 0x7678
leaq 0x10(%rsp), %rdi
callq 0x7678
leaq 0x218(%rsp), %rdi
callq 0x7678
movq %rbx, %rdi
callq 0x75d0