// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
subq $0x120, %rsp            # imm = 0x120
movq %rdi, %rbx
leaq 0x402(%rip), %rcx       # 0x1b43
pushq $0x1
popq %rsi
movq %rdi, %rdx
callq 0x3c44
testq %rax, %rax
je 0x18bf
movq %rax, %r14
leaq 0x3990(%rip), %rax      # 0x50ef
movq %rax, 0x28(%r14)
movq $0x6, 0x30(%r14)
movq %r14, %rdi
addq $0x38, %rdi
movl $0x110, %edx            # imm = 0x110
xorl %esi, %esi
callq 0x10b0
movq $0x1, 0x148(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%r14)
movups %xmm0, 0x160(%r14)
movq %r14, %rdi
callq 0x39b9
testl %eax, %eax
jne 0x18d8
leaq 0x390(%rip), %rcx       # 0x1b43
pushq $0x1
popq %rsi
movq %rbx, %rdi
movq %rbx, %rdx
callq 0x3c44
testq %rax, %rax
je 0x18f1
movq %rax, %r14
leaq 0x392b(%rip), %rax      # 0x50ff
movq %rax, 0x28(%r14)
movq $0x3, 0x30(%r14)
movq %r14, %rdi
addq $0x38, %rdi
movl $0x110, %edx            # imm = 0x110
xorl %esi, %esi
callq 0x10b0
movq $0x1, 0x148(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%r14)
movups %xmm0, 0x160(%r14)
movq %r14, %rdi
callq 0x39b9
testl %eax, %eax
jne 0x190a
leaq 0x178(%rbx), %rdi
leaq 0x341(%rip), %rcx       # 0x1b70
xorl %esi, %esi
movq %rbx, %rdx
callq 0x3c44
testq %rax, %rax
je 0x1923
movq %rax, %rbx
movq %rax, %r14
addq $0x28, %r14
xorps %xmm0, %xmm0
movq %rsp, %r15
movups %xmm0, 0x110(%r15)
movups %xmm0, 0x100(%r15)
leaq 0x3c77(%rip), %rsi      # 0x54e0
movl $0x100, %edx            # imm = 0x100
movq %r15, %rdi
callq 0x1140
movl $0x120, %edx            # imm = 0x120
movq %r14, %rdi
movq %r15, %rsi
callq 0x1140
movq $0x2, 0x148(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%rbx)
movups %xmm0, 0x160(%rbx)
movq %rbx, %rdi
callq 0x39b9
testl %eax, %eax
jne 0x1940
addq $0x120, %rsp            # imm = 0x120
popq %rbx
popq %r14
popq %r15
retq
leaq 0x37f7(%rip), %rdi      # 0x50bd
leaq 0x3740(%rip), %rsi      # 0x500d
leaq 0x37f2(%rip), %rcx      # 0x50c6
pushq $0x5d
jmp 0x193a
leaq 0x37d6(%rip), %rdi      # 0x50b5
leaq 0x3727(%rip), %rsi      # 0x500d
leaq 0x37d9(%rip), %rcx      # 0x50c6
pushq $0x67
jmp 0x193a
leaq 0x37fe(%rip), %rdi      # 0x50f6
leaq 0x370e(%rip), %rsi      # 0x500d
leaq 0x37c0(%rip), %rcx      # 0x50c6
pushq $0x6c
jmp 0x193a
leaq 0x37a4(%rip), %rdi      # 0x50b5
leaq 0x36f5(%rip), %rsi      # 0x500d
leaq 0x37a7(%rip), %rcx      # 0x50c6
pushq $0x76
jmp 0x193a
leaq 0x37d9(%rip), %rdi      # 0x5103
leaq 0x36dc(%rip), %rsi      # 0x500d
leaq 0x378e(%rip), %rcx      # 0x50c6
pushq $0x7b
popq %rdx
callq 0x10a0
leaq 0x376e(%rip), %rdi      # 0x50b5
leaq 0x36bf(%rip), %rsi      # 0x500d
leaq 0x3771(%rip), %rcx      # 0x50c6
movl $0x89, %edx
callq 0x10a0