// File: CMU-SAFARI[P]MQSim/src/ssd/Host_Interface_SATA.cpp
// Function: SSD_Components::Host_Interface_SATA::Report_results_in_XML(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Utils::XmlWriter&)
void Host_Interface_SATA::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);

		attr = "Average_Read_Transaction_Turnaround_Time";
		val = std::to_string(input_stream_manager->Get_average_read_transaction_turnaround_time(SATA_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(SATA_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(SATA_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(SATA_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(SATA_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(SATA_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(SATA_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(SATA_STREAM_ID));
		xmlwriter.Write_attribute_string(attr, val);

		xmlwriter.Write_close_tag();
	}

// Assembly:
subq $0x4d8, %rsp            # imm = 0x4D8
movq %rdi, 0x4d0(%rsp)
movq %rsi, 0x4c8(%rsp)
movq %rdx, 0x4c0(%rsp)
movq 0x4d0(%rsp), %rax
movq %rax, 0xd0(%rsp)
leaq 0x2122a(%rip), %rdx     # 0xab8c0
leaq 0x4a0(%rsp), %rdi
movq %rdi, 0xd8(%rsp)
callq 0x1fe40
movq 0xd8(%rsp), %rsi
movq 0x4c0(%rsp), %rax
movq %rax, 0xe0(%rsp)
leaq 0x480(%rsp), %rdi
callq 0x81a0
jmp 0x8a6d2
movq 0xe0(%rsp), %rdi
leaq 0x480(%rsp), %rsi
callq 0xa7d60
jmp 0x8a6e9
leaq 0x480(%rsp), %rdi
callq 0x8848
leaq 0x44f(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0x8780
movq 0xc8(%rsp), %rdx
leaq 0x21486(%rip), %rsi     # 0xabba0
leaq 0x450(%rsp), %rdi
callq 0x85d0
jmp 0x8a729
leaq 0x44f(%rsp), %rdi
callq 0x84a0
movq 0xd0(%rsp), %rsi
leaq 0x428(%rsp), %rdi
callq 0xcdf0
jmp 0x8a74d
movq 0x4c0(%rsp), %rax
movq %rax, 0xc0(%rsp)
leaq 0x408(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8a774
leaq 0x3e8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8a78b
movq 0xc0(%rsp), %rdi
leaq 0x408(%rsp), %rsi
leaq 0x3e8(%rsp), %rdx
callq 0xa7eb0
jmp 0x8a7aa
leaq 0x3e8(%rsp), %rdi
callq 0x8848
leaq 0x408(%rsp), %rdi
callq 0x8848
leaq 0x23b0b(%rip), %rsi     # 0xae2d6
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8a7da
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84ab0
movl %eax, 0xbc(%rsp)
jmp 0x8a7f6
movl 0xbc(%rsp), %esi
leaq 0x3c8(%rsp), %rdi
callq 0x18f30
jmp 0x8a80c
leaq 0x428(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
movq %rsi, 0xa8(%rsp)
callq 0x8510
movq 0xa8(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0xb0(%rsp)
leaq 0x3a8(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8a85d
leaq 0x388(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8a874
movq 0xb0(%rsp), %rdi
leaq 0x3a8(%rsp), %rsi
leaq 0x388(%rsp), %rdx
callq 0xa7eb0
jmp 0x8a893
leaq 0x388(%rsp), %rdi
callq 0x8848
leaq 0x3a8(%rsp), %rdi
callq 0x8848
leaq 0x23a4b(%rip), %rsi     # 0xae2ff
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8a8c3
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84bb0
movl %eax, 0xa4(%rsp)
jmp 0x8a8df
movl 0xa4(%rsp), %esi
leaq 0x368(%rsp), %rdi
callq 0x18f30
jmp 0x8a8f5
leaq 0x428(%rsp), %rdi
leaq 0x368(%rsp), %rsi
movq %rsi, 0x90(%rsp)
callq 0x8510
movq 0x90(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x348(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8a946
leaq 0x328(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8a95d
movq 0x98(%rsp), %rdi
leaq 0x348(%rsp), %rsi
leaq 0x328(%rsp), %rdx
callq 0xa7eb0
jmp 0x8a97c
leaq 0x328(%rsp), %rdi
callq 0x8848
leaq 0x348(%rsp), %rdi
callq 0x8848
leaq 0x2398a(%rip), %rsi     # 0xae327
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8a9ac
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84c50
movl %eax, 0x8c(%rsp)
jmp 0x8a9c8
movl 0x8c(%rsp), %esi
leaq 0x308(%rsp), %rdi
callq 0x18f30
jmp 0x8a9de
leaq 0x428(%rsp), %rdi
leaq 0x308(%rsp), %rsi
movq %rsi, 0x78(%rsp)
callq 0x8510
movq 0x78(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x80(%rsp)
leaq 0x2e8(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8aa29
leaq 0x2c8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8aa40
movq 0x80(%rsp), %rdi
leaq 0x2e8(%rsp), %rsi
leaq 0x2c8(%rsp), %rdx
callq 0xa7eb0
jmp 0x8aa5f
leaq 0x2c8(%rsp), %rdi
callq 0x8848
leaq 0x2e8(%rsp), %rdi
callq 0x8848
leaq 0x238ce(%rip), %rsi     # 0xae34e
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8aa8f
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84cf0
movl %eax, 0x74(%rsp)
jmp 0x8aaa8
movl 0x74(%rsp), %esi
leaq 0x2a8(%rsp), %rdi
callq 0x18f30
jmp 0x8aabb
leaq 0x428(%rsp), %rdi
leaq 0x2a8(%rsp), %rsi
movq %rsi, 0x60(%rsp)
callq 0x8510
movq 0x60(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x68(%rsp)
leaq 0x288(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8ab03
leaq 0x268(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8ab1a
movq 0x68(%rsp), %rdi
leaq 0x288(%rsp), %rsi
leaq 0x268(%rsp), %rdx
callq 0xa7eb0
jmp 0x8ab36
leaq 0x268(%rsp), %rdi
callq 0x8848
leaq 0x288(%rsp), %rdi
callq 0x8848
leaq 0x2381d(%rip), %rsi     # 0xae374
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8ab66
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84d90
movl %eax, 0x5c(%rsp)
jmp 0x8ab7f
movl 0x5c(%rsp), %esi
leaq 0x248(%rsp), %rdi
callq 0x18f30
jmp 0x8ab92
leaq 0x428(%rsp), %rdi
leaq 0x248(%rsp), %rsi
movq %rsi, 0x48(%rsp)
callq 0x8510
movq 0x48(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x50(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8abda
leaq 0x208(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8abf1
movq 0x50(%rsp), %rdi
leaq 0x228(%rsp), %rsi
leaq 0x208(%rsp), %rdx
callq 0xa7eb0
jmp 0x8ac0d
leaq 0x208(%rsp), %rdi
callq 0x8848
leaq 0x228(%rsp), %rdi
callq 0x8848
leaq 0x23770(%rip), %rsi     # 0xae39e
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8ac3d
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84e90
movl %eax, 0x44(%rsp)
jmp 0x8ac56
movl 0x44(%rsp), %esi
leaq 0x1e8(%rsp), %rdi
callq 0x18f30
jmp 0x8ac69
leaq 0x428(%rsp), %rdi
leaq 0x1e8(%rsp), %rsi
movq %rsi, 0x30(%rsp)
callq 0x8510
movq 0x30(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x38(%rsp)
leaq 0x1c8(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8acb1
leaq 0x1a8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8acc8
movq 0x38(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
leaq 0x1a8(%rsp), %rdx
callq 0xa7eb0
jmp 0x8ace4
leaq 0x1a8(%rsp), %rdi
callq 0x8848
leaq 0x1c8(%rsp), %rdi
callq 0x8848
leaq 0x236c2(%rip), %rsi     # 0xae3c7
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8ad14
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84f30
movl %eax, 0x2c(%rsp)
jmp 0x8ad2d
movl 0x2c(%rsp), %esi
leaq 0x188(%rsp), %rdi
callq 0x18f30
jmp 0x8ad40
leaq 0x428(%rsp), %rdi
leaq 0x188(%rsp), %rsi
movq %rsi, 0x18(%rsp)
callq 0x8510
movq 0x18(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x168(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8ad88
leaq 0x148(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8ad9f
movq 0x20(%rsp), %rdi
leaq 0x168(%rsp), %rsi
leaq 0x148(%rsp), %rdx
callq 0xa7eb0
jmp 0x8adbb
leaq 0x148(%rsp), %rdi
callq 0x8848
leaq 0x168(%rsp), %rdi
callq 0x8848
leaq 0x23613(%rip), %rsi     # 0xae3ef
leaq 0x450(%rsp), %rdi
callq 0x85c0
jmp 0x8adeb
movq 0xd0(%rsp), %rax
movq 0x50(%rax), %rdi
xorl %esi, %esi
callq 0x84fd0
movl %eax, 0x14(%rsp)
jmp 0x8ae04
movl 0x14(%rsp), %esi
leaq 0x128(%rsp), %rdi
callq 0x18f30
jmp 0x8ae17
leaq 0x428(%rsp), %rdi
leaq 0x128(%rsp), %rsi
movq %rsi, (%rsp)
callq 0x8510
movq (%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x450(%rsp), %rsi
callq 0x81a0
jmp 0x8ae5d
leaq 0xe8(%rsp), %rdi
leaq 0x428(%rsp), %rsi
callq 0x81a0
jmp 0x8ae74
movq 0x8(%rsp), %rdi
leaq 0x108(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0xa7eb0
jmp 0x8ae90
leaq 0xe8(%rsp), %rdi
callq 0x8848
leaq 0x108(%rsp), %rdi
callq 0x8848
movq 0x4c0(%rsp), %rdi
callq 0xa80f0
jmp 0x8aeb9
leaq 0x428(%rsp), %rdi
callq 0x8848
leaq 0x450(%rsp), %rdi
callq 0x8848
leaq 0x4a0(%rsp), %rdi
callq 0x8848
addq $0x4d8, %rsp            # imm = 0x4D8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x480(%rsp), %rdi
callq 0x8848
jmp 0x8b222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x44f(%rsp), %rdi
callq 0x84a0
jmp 0x8b222
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b215
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8afb6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x3e8(%rsp), %rdi
callq 0x8848
leaq 0x408(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8afff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x388(%rsp), %rdi
callq 0x8848
leaq 0x3a8(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b048
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x8848
leaq 0x348(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b091
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x2c8(%rsp), %rdi
callq 0x8848
leaq 0x2e8(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b0da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x268(%rsp), %rdi
callq 0x8848
leaq 0x288(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b123
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x8848
leaq 0x228(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b16c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x8848
leaq 0x1c8(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b1b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x8848
leaq 0x168(%rsp), %rdi
callq 0x8848
jmp 0x8b208
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
jmp 0x8b1fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x478(%rsp)
movl %eax, 0x474(%rsp)
leaq 0xe8(%rsp), %rdi
callq 0x8848
leaq 0x108(%rsp), %rdi
callq 0x8848
leaq 0x428(%rsp), %rdi
callq 0x8848
leaq 0x450(%rsp), %rdi
callq 0x8848
leaq 0x4a0(%rsp), %rdi
callq 0x8848
movq 0x478(%rsp), %rdi
callq 0x8770
nopl (%rax)