// File: /workspace/github_c_makefile_star2_O1/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 0x422(%rip), %rcx       # 0x1b95
movl $0x1, %esi
movq %rdi, %rdx
callq 0x41cc
testq %rax, %rax
je 0x18f5
movq %rax, %r14
leaq 0x3a80(%rip), %rax      # 0x5213
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 0x3ef1
testl %eax, %eax
jne 0x1914
leaq 0x3ae(%rip), %rcx       # 0x1b95
movq %rbx, %rdi
movl $0x1, %esi
movq %rbx, %rdx
callq 0x41cc
testq %rax, %rax
je 0x1933
movq %rax, %r14
leaq 0x3a19(%rip), %rax      # 0x5223
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 0x3ef1
testl %eax, %eax
jne 0x1952
leaq 0x178(%rbx), %rdi
leaq 0x35f(%rip), %rcx       # 0x1bc4
xorl %esi, %esi
movq %rbx, %rdx
callq 0x41cc
testq %rax, %rax
je 0x1971
movq %rax, %rbx
movq %rax, %r14
addq $0x28, %r14
xorps %xmm0, %xmm0
movq %rsp, %r15
movups %xmm0, 0x110(%r15)
movups %xmm0, 0x100(%r15)
leaq 0x3789(%rip), %rsi      # 0x5028
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 0x3ef1
testl %eax, %eax
jne 0x1990
addq $0x120, %rsp            # imm = 0x120
popq %rbx
popq %r14
popq %r15
retq
leaq 0x38e5(%rip), %rdi      # 0x51e1
leaq 0x382e(%rip), %rsi      # 0x5131
leaq 0x38e0(%rip), %rcx      # 0x51ea
movl $0x5d, %edx
callq 0x10a0
leaq 0x38be(%rip), %rdi      # 0x51d9
leaq 0x380f(%rip), %rsi      # 0x5131
leaq 0x38c1(%rip), %rcx      # 0x51ea
movl $0x67, %edx
callq 0x10a0
leaq 0x38e0(%rip), %rdi      # 0x521a
leaq 0x37f0(%rip), %rsi      # 0x5131
leaq 0x38a2(%rip), %rcx      # 0x51ea
movl $0x6c, %edx
callq 0x10a0
leaq 0x3880(%rip), %rdi      # 0x51d9
leaq 0x37d1(%rip), %rsi      # 0x5131
leaq 0x3883(%rip), %rcx      # 0x51ea
movl $0x76, %edx
callq 0x10a0
leaq 0x38af(%rip), %rdi      # 0x5227
leaq 0x37b2(%rip), %rsi      # 0x5131
leaq 0x3864(%rip), %rcx      # 0x51ea
movl $0x7b, %edx
callq 0x10a0
leaq 0x3842(%rip), %rdi      # 0x51d9
leaq 0x3793(%rip), %rsi      # 0x5131
leaq 0x3845(%rip), %rcx      # 0x51ea
movl $0x89, %edx
callq 0x10a0