// File: /workspace/github_c_makefile_star2_O0/rouming[P]io/io-test.c
// Function: do_fixed_len_req
static void do_fixed_len_req(struct loop_ctx *ctx)
{
	int rc;
	struct io_req *m_s_req1, *m_s_req2, *s_m_req;

	/* Write master->slave, part1 */
	m_s_req1 = io_req_create(&ctx->master, REQ_WR, ctx,
				 on_write_fixed_len_req__master_to_slave);
	assert(m_s_req1);
	m_s_req1->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = "fixed ",
			.iov_len  = strlen("fixed ")
		},
		.iov_num  = 1,
		.is_vari_len = false
	};
	rc = io_queue_submit(m_s_req1);
	assert(rc == 0);

	/* Write master->slave, part1 */
	m_s_req2 = io_req_create(&ctx->master, REQ_WR, ctx,
				 on_write_fixed_len_req__master_to_slave);
	assert(m_s_req2);
	m_s_req2->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = "msg",
			.iov_len  = strlen("msg")
		},
		.iov_num  = 1,
		.is_vari_len = false
	};
	rc = io_queue_submit(m_s_req2);
	assert(rc == 0);

	/* Read slave<-master, part1 + part2 */
	s_m_req = io_req_create(&ctx->slave, REQ_RD, ctx,
				on_read_fixed_len_req__slave_from_master);
	assert(s_m_req);
	s_m_req->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = NULL,
			.iov_len  = 3
		},
		.iov[1] = {
			.iov_base = NULL,
			.iov_len  = 6
		},
		.iov_num  = 2,
		.is_vari_len = false
	};
	rc = io_queue_submit(s_m_req);
	assert(rc == 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x420, %rsp            # imm = 0x420
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl $0x1, %esi
leaq 0x4dd(%rip), %rcx       # 0x1d80
callq 0x4e10
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x18b5
jmp 0x18d4
leaq 0x6826(%rip), %rdi      # 0x80e2
leaq 0x676f(%rip), %rsi      # 0x8032
movl $0x5d, %edx
leaq 0x681c(%rip), %rcx      # 0x80eb
callq 0x1090
movq -0x18(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x408(%rbp)
leaq -0x170(%rbp), %rdi
xorl %esi, %esi
movl $0x148, %edx            # imm = 0x148
callq 0x10a0
movq -0x408(%rbp), %rdi
leaq 0x6810(%rip), %rax      # 0x8114
movq %rax, -0x170(%rbp)
movq $0x6, -0x168(%rbp)
movq $0x1, -0x50(%rbp)
movb $0x0, -0x48(%rbp)
leaq -0x170(%rbp), %rsi
movl $0x148, %edx            # imm = 0x148
callq 0x1140
movq -0x18(%rbp), %rdi
callq 0x4950
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x1947
jmp 0x1966
leaq 0x678c(%rip), %rdi      # 0x80da
leaq 0x66dd(%rip), %rsi      # 0x8032
movl $0x67, %edx
leaq 0x678a(%rip), %rcx      # 0x80eb
callq 0x1090
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl $0x1, %esi
leaq 0x406(%rip), %rcx       # 0x1d80
callq 0x4e10
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x198c
jmp 0x19ab
leaq 0x6788(%rip), %rdi      # 0x811b
leaq 0x6698(%rip), %rsi      # 0x8032
movl $0x6c, %edx
leaq 0x6745(%rip), %rcx      # 0x80eb
callq 0x1090
movq -0x20(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x410(%rbp)
leaq -0x2b8(%rbp), %rdi
xorl %esi, %esi
movl $0x148, %edx            # imm = 0x148
callq 0x10a0
movq -0x410(%rbp), %rdi
leaq 0x6749(%rip), %rax      # 0x8124
movq %rax, -0x2b8(%rbp)
movq $0x3, -0x2b0(%rbp)
movq $0x1, -0x198(%rbp)
movb $0x0, -0x190(%rbp)
leaq -0x2b8(%rbp), %rsi
movl $0x148, %edx            # imm = 0x148
callq 0x1140
movq -0x20(%rbp), %rdi
callq 0x4950
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x1a24
jmp 0x1a43
leaq 0x66af(%rip), %rdi      # 0x80da
leaq 0x6600(%rip), %rsi      # 0x8032
movl $0x76, %edx
leaq 0x66ad(%rip), %rcx      # 0x80eb
callq 0x1090
movq -0x8(%rbp), %rdi
addq $0x178, %rdi            # imm = 0x178
movq -0x8(%rbp), %rdx
xorl %esi, %esi
leaq 0x375(%rip), %rcx       # 0x1dd0
callq 0x4e10
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1a6d
jmp 0x1a8c
leaq 0x66b4(%rip), %rdi      # 0x8128
leaq 0x65b7(%rip), %rsi      # 0x8032
movl $0x7b, %edx
leaq 0x6664(%rip), %rcx      # 0x80eb
callq 0x1090
movq -0x28(%rbp), %rax
addq $0x28, %rax
movq %rax, -0x418(%rbp)
leaq -0x400(%rbp), %rdi
xorl %esi, %esi
movl $0x148, %edx            # imm = 0x148
callq 0x10a0
leaq -0x400(%rbp), %rdi
leaq 0x6a24(%rip), %rsi      # 0x84e0
movl $0x100, %edx            # imm = 0x100
callq 0x1140
movq -0x418(%rbp), %rdi
movq $0x2, -0x2e0(%rbp)
movb $0x0, -0x2d8(%rbp)
leaq -0x400(%rbp), %rsi
movl $0x148, %edx            # imm = 0x148
callq 0x1140
movq -0x28(%rbp), %rdi
callq 0x4950
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x1b04
jmp 0x1b23
leaq 0x65cf(%rip), %rdi      # 0x80da
leaq 0x6520(%rip), %rsi      # 0x8032
movl $0x89, %edx
leaq 0x65cd(%rip), %rcx      # 0x80eb
callq 0x1090
addq $0x420, %rsp            # imm = 0x420
popq %rbp
retq
nopl (%rax)