Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "ioset.c"
- .data
- .align 4
- .type epoll_fd, @object
- .size epoll_fd, 4
- epoll_fd:
- .long -1
- .text
- .type ioq_init, @function
- ioq_init:
- .LFB0:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $16, %rsp
- movq %rdi, -8(%rbp)
- movq %rsi, -16(%rbp)
- movq -8(%rbp), %rax
- movq -16(%rbp), %rdx
- movq %rdx, 8(%rax)
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call malloc
- movq %rax, %rdx
- movq -8(%rbp), %rax
- movq %rdx, (%rax)
- movq -8(%rbp), %rax
- movq $0, 16(%rax)
- movq -8(%rbp), %rax
- movq 16(%rax), %rdx
- movq -8(%rbp), %rax
- movq %rdx, 24(%rax)
- leave
- ret
- .cfi_endproc
- .LFE0:
- .size ioq_init, .-ioq_init
- .type ioq_put_avail, @function
- ioq_put_avail:
- .LFB1:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movq 24(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L4
- movq -8(%rbp), %rax
- movq 16(%rax), %rdx
- movq -8(%rbp), %rax
- movq 24(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- subq $1, %rax
- jmp .L5
- .L4:
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- testq %rax, %rax
- jne .L6
- movq -8(%rbp), %rax
- movq 8(%rax), %rdx
- movq -8(%rbp), %rax
- movq 24(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- subq $1, %rax
- jmp .L5
- .L6:
- movq -8(%rbp), %rax
- movq 8(%rax), %rdx
- movq -8(%rbp), %rax
- movq 24(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- .L5:
- leave
- ret
- .cfi_endproc
- .LFE1:
- .size ioq_put_avail, .-ioq_put_avail
- .type ioq_get_avail, @function
- ioq_get_avail:
- .LFB2:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movq 24(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L9
- movq -8(%rbp), %rax
- movq 8(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- jmp .L10
- .L9:
- movq -8(%rbp), %rax
- movq 24(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- .L10:
- leave
- ret
- .cfi_endproc
- .LFE2:
- .size ioq_get_avail, .-ioq_get_avail
- .type ioq_used, @function
- ioq_used:
- .LFB3:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movq 24(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L13
- movq -8(%rbp), %rax
- movq 8(%rax), %rdx
- movq -8(%rbp), %rax
- movq 24(%rax), %rax
- addq %rax, %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- jmp .L14
- .L13:
- movq -8(%rbp), %rax
- movq 24(%rax), %rdx
- movq -8(%rbp), %rax
- movq 16(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- .L14:
- leave
- ret
- .cfi_endproc
- .LFE3:
- .size ioq_used, .-ioq_used
- .type ioq_expand, @function
- ioq_expand:
- .LFB4:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- pushq %rbx
- subq $56, %rsp
- movq %rdi, -56(%rbp)
- movq -56(%rbp), %rax
- movq 8(%rax), %rax
- addq %rax, %rax
- movq %rax, -24(%rbp)
- movq -24(%rbp), %rax
- movq %rax, %rdi
- .cfi_offset 3, -24
- call malloc
- movq %rax, -32(%rbp)
- movq -56(%rbp), %rax
- movq %rax, %rdi
- call ioq_get_avail
- movq %rax, -40(%rbp)
- movq -56(%rbp), %rax
- movq (%rax), %rdx
- movq -56(%rbp), %rax
- movq 16(%rax), %rax
- leaq (%rdx,%rax), %rcx
- movq -40(%rbp), %rdx
- movq -32(%rbp), %rax
- movq %rcx, %rsi
- movq %rax, %rdi
- call memcpy
- movq -56(%rbp), %rax
- movq 24(%rax), %rdx
- movq -56(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L17
- movq -56(%rbp), %rax
- movq 24(%rax), %rdx
- movq -56(%rbp), %rax
- movq (%rax), %rax
- movq -40(%rbp), %rcx
- movq -32(%rbp), %rbx
- leaq (%rbx,%rcx), %rcx
- movq %rax, %rsi
- movq %rcx, %rdi
- call memcpy
- .L17:
- movq -56(%rbp), %rax
- movq (%rax), %rax
- movq %rax, %rdi
- call free
- movq -56(%rbp), %rax
- movq $0, 16(%rax)
- movq -56(%rbp), %rax
- movq %rax, %rdi
- call ioq_used
- movq -56(%rbp), %rdx
- movq %rax, 24(%rdx)
- movq -56(%rbp), %rax
- movq -24(%rbp), %rdx
- movq %rdx, 8(%rax)
- movq -56(%rbp), %rax
- movq -32(%rbp), %rdx
- movq %rdx, (%rax)
- movq -56(%rbp), %rax
- movq 8(%rax), %rdx
- movq -56(%rbp), %rax
- movq 24(%rax), %rax
- movq %rdx, %rcx
- subq %rax, %rcx
- movq %rcx, %rax
- subq $1, %rax
- addq $56, %rsp
- popq %rbx
- leave
- ret
- .cfi_endproc
- .LFE4:
- .size ioq_expand, .-ioq_expand
- .type epoll_init, @function
- epoll_init:
- .LFB5:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movl $1024, %edi
- call epoll_create
- movl %eax, epoll_fd(%rip)
- movl epoll_fd(%rip), %eax
- leave
- ret
- .cfi_endproc
- .LFE5:
- .size epoll_init, .-epoll_init
- .type epoll_cleanup, @function
- epoll_cleanup:
- .LFB6:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movl epoll_fd(%rip), %eax
- movl %eax, %edi
- call close
- leave
- ret
- .cfi_endproc
- .LFE6:
- .size epoll_cleanup, .-epoll_cleanup
- .type epoll_events, @function
- epoll_events:
- .LFB7:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -24(%rbp)
- movl $3, -4(%rbp)
- orl $24, -4(%rbp)
- movq -24(%rbp), %rax
- movq 32(%rax), %rdx
- movq -24(%rbp), %rax
- movq 40(%rax), %rax
- cmpq %rax, %rdx
- jne .L24
- movq -24(%rbp), %rax
- movl 80(%rax), %eax
- cmpl $2, %eax
- jne .L25
- .L24:
- movl -4(%rbp), %eax
- orl $4, %eax
- jmp .L26
- .L25:
- movl -4(%rbp), %eax
- .L26:
- leave
- ret
- .cfi_endproc
- .LFE7:
- .size epoll_events, .-epoll_events
- .type epoll_add, @function
- epoll_add:
- .LFB8:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $32, %rsp
- movq %rdi, -24(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -12(%rbp)
- movq -24(%rbp), %rax
- movq %rax, %rdi
- call epoll_events
- movl %eax, -16(%rbp)
- movq -24(%rbp), %rax
- movl (%rax), %edx
- movl epoll_fd(%rip), %eax
- leaq -16(%rbp), %rcx
- movl $1, %esi
- movl %eax, %edi
- call epoll_ctl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- leave
- ret
- .cfi_endproc
- .LFE8:
- .size epoll_add, .-epoll_add
- .type epoll_update, @function
- epoll_update:
- .LFB9:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $32, %rsp
- movq %rdi, -24(%rbp)
- movq -24(%rbp), %rax
- movq %rax, -12(%rbp)
- movq -24(%rbp), %rax
- movq %rax, %rdi
- call epoll_events
- movl %eax, -16(%rbp)
- movq -24(%rbp), %rax
- movl (%rax), %edx
- movl epoll_fd(%rip), %eax
- leaq -16(%rbp), %rcx
- movl $3, %esi
- movl %eax, %edi
- call epoll_ctl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- leave
- ret
- .cfi_endproc
- .LFE9:
- .size epoll_update, .-epoll_update
- .type epoll_remove, @function
- epoll_remove:
- .LFB10:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $32, %rsp
- movq %rdi, -24(%rbp)
- movq -24(%rbp), %rax
- movl (%rax), %edx
- movl epoll_fd(%rip), %eax
- leaq -16(%rbp), %rcx
- movl $2, %esi
- movl %eax, %edi
- call epoll_ctl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- leave
- ret
- .cfi_endproc
- .LFE10:
- .size epoll_remove, .-epoll_remove
- .section .rodata
- .align 8
- .LC0:
- .string "Unable to intialize ioset: Already initialized."
- .align 8
- .LC1:
- .string "Unable to initialize epoll: %s\n"
- .text
- .globl ioset_init
- .type ioset_init, @function
- ioset_init:
- .LFB11:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $16, %rsp
- movl epoll_fd(%rip), %eax
- testl %eax, %eax
- js .L35
- movl $.LC0, %edi
- call puts
- movl $0, %eax
- jmp .L36
- .L35:
- call epoll_init
- movl %eax, -4(%rbp)
- cmpl $0, -4(%rbp)
- jns .L37
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC1, %eax
- movq %rdx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl $0, %eax
- jmp .L36
- .L37:
- movl epoll_fd(%rip), %eax
- movl $1, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- movl %eax, %edx
- orl $1, %edx
- movl epoll_fd(%rip), %eax
- movl $2, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl $1, %eax
- .L36:
- leave
- ret
- .cfi_endproc
- .LFE11:
- .size ioset_init, .-ioset_init
- .section .rodata
- .LC2:
- .string "Unable to clean-up epoll: %s\n"
- .text
- .globl ioset_cleanup
- .type ioset_cleanup, @function
- ioset_cleanup:
- .LFB12:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $16, %rsp
- call epoll_cleanup
- movl %eax, -4(%rbp)
- cmpl $0, -4(%rbp)
- jns .L40
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC2, %eax
- movq %rdx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl $0, %eax
- jmp .L41
- .L40:
- movl $-1, epoll_fd(%rip)
- movl $1, %eax
- .L41:
- leave
- ret
- .cfi_endproc
- .LFE12:
- .size ioset_cleanup, .-ioset_cleanup
- .section .rodata
- .align 8
- .LC3:
- .string "Invalid fd (%d) passed to ioset_add()\n"
- .align 8
- .LC4:
- .string "Unable to add fd %d to epoll: %s\n"
- .text
- .globl ioset_add
- .type ioset_add, @function
- ioset_add:
- .LFB13:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $32, %rsp
- movl %edi, -20(%rbp)
- cmpl $0, -20(%rbp)
- jns .L44
- movl $.LC3, %eax
- movl -20(%rbp), %edx
- movl %edx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl $0, %eax
- jmp .L45
- .L44:
- movl $120, %esi
- movl $1, %edi
- call calloc
- movq %rax, -16(%rbp)
- movq -16(%rbp), %rax
- movl -20(%rbp), %edx
- movl %edx, (%rax)
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call epoll_add
- movl %eax, -4(%rbp)
- cmpl $0, -4(%rbp)
- jns .L46
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC4, %eax
- movl -20(%rbp), %ecx
- movl %ecx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call free
- movl $0, %eax
- jmp .L45
- .L46:
- movl -20(%rbp), %eax
- movl $3, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- movl %eax, %edx
- orb $8, %dh
- movl -20(%rbp), %eax
- movl $4, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl -20(%rbp), %eax
- movl $1, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- movl %eax, %edx
- orl $1, %edx
- movl -20(%rbp), %eax
- movl $2, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movq -16(%rbp), %rax
- addq $16, %rax
- movl $1024, %esi
- movq %rax, %rdi
- call ioq_init
- movq -16(%rbp), %rax
- addq $48, %rax
- movl $1024, %esi
- movq %rax, %rdi
- call ioq_init
- movq -16(%rbp), %rax
- .L45:
- leave
- ret
- .cfi_endproc
- .LFE13:
- .size ioset_add, .-ioset_add
- .section .rodata
- .LC5:
- .string "%u"
- .align 8
- .LC6:
- .string "getaddrinfo() for %s:%u failed: %s\n"
- .align 8
- .LC7:
- .string "Unable to create socket fd for %s:%u... %s\n"
- .align 8
- .LC8:
- .string "Unable to bind %s:%u fd: %d to local address: %s\n"
- .align 8
- .LC9:
- .string "Unable to mark bind address for %s:%u as re-useable: %s\n"
- .align 8
- .LC10:
- .string "Unable to connect to %s:%u on fd %d... %s\n"
- .text
- .globl ioset_connect
- .type ioset_connect, @function
- ioset_connect:
- .LFB14:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- pushq %rbx
- subq $152, %rsp
- movq %rdi, -120(%rbp)
- movq %rsi, -128(%rbp)
- movq %rdx, -136(%rbp)
- movl %ecx, -140(%rbp)
- movq %r8, -152(%rbp)
- movq %fs:40, %rax
- movq %rax, -24(%rbp)
- xorl %eax, %eax
- leaq -112(%rbp), %rax
- movl $48, %edx
- movl $0, %esi
- movq %rax, %rdi
- .cfi_offset 3, -24
- call memset
- movl $1, -104(%rbp)
- cmpq $0, -120(%rbp)
- je .L49
- movq -120(%rbp), %rax
- movzwl (%rax), %eax
- movzwl %ax, %eax
- jmp .L50
- .L49:
- movl $2, %eax
- .L50:
- movl %eax, -108(%rbp)
- movl $.LC5, %edx
- movl -140(%rbp), %ecx
- leaq -32(%rbp), %rax
- movl $8, %esi
- movq %rax, %rdi
- movl $0, %eax
- call snprintf
- leaq -112(%rbp), %rdx
- leaq -32(%rbp), %rbx
- leaq -56(%rbp), %rcx
- movq -136(%rbp), %rax
- movq %rbx, %rsi
- movq %rax, %rdi
- call getaddrinfo
- movl %eax, -40(%rbp)
- cmpl $0, -40(%rbp)
- je .L51
- movl -40(%rbp), %eax
- movl %eax, %edi
- call gai_strerror
- movq %rax, %rcx
- movl $.LC6, %eax
- movl -140(%rbp), %edx
- movq -136(%rbp), %rbx
- movq %rbx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl $0, %eax
- jmp .L52
- .L51:
- cmpq $0, -120(%rbp)
- je .L53
- movq -120(%rbp), %rax
- movzwl (%rax), %eax
- movzwl %ax, %eax
- jmp .L54
- .L53:
- movl $2, %eax
- .L54:
- movl $6, %edx
- movl $1, %esi
- movl %eax, %edi
- call socket
- movl %eax, -36(%rbp)
- cmpl $0, -36(%rbp)
- jns .L55
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rcx
- movl $.LC7, %eax
- movl -140(%rbp), %edx
- movq -136(%rbp), %rbx
- movq %rbx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movq -56(%rbp), %rax
- movq %rax, %rdi
- call freeaddrinfo
- movl $0, %eax
- jmp .L52
- .L55:
- cmpq $0, -120(%rbp)
- je .L56
- movq -128(%rbp), %rax
- movl %eax, %edx
- movq -120(%rbp), %rcx
- movl -36(%rbp), %eax
- movq %rcx, %rsi
- movl %eax, %edi
- call bind
- movl %eax, -40(%rbp)
- cmpl $0, -40(%rbp)
- jns .L57
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rsi
- movl $.LC8, %eax
- movl -36(%rbp), %ecx
- movl -140(%rbp), %edx
- movq -136(%rbp), %rbx
- movq %rsi, %r8
- movq %rbx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- .L57:
- movl $1, -44(%rbp)
- leaq -44(%rbp), %rdx
- movl -36(%rbp), %eax
- movl $4, %r8d
- movq %rdx, %rcx
- movl $2, %edx
- movl $1, %esi
- movl %eax, %edi
- call setsockopt
- movl %eax, -40(%rbp)
- cmpl $0, -40(%rbp)
- jns .L56
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rcx
- movl $.LC9, %eax
- movl -140(%rbp), %edx
- movq -136(%rbp), %rbx
- movq %rbx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- .L56:
- movl -36(%rbp), %eax
- movl %eax, %edi
- call ioset_add
- movq %rax, -64(%rbp)
- movq -56(%rbp), %rax
- movl 16(%rax), %edx
- movq -56(%rbp), %rax
- movq 24(%rax), %rcx
- movl -36(%rbp), %eax
- movq %rcx, %rsi
- movl %eax, %edi
- call connect
- movl %eax, -40(%rbp)
- movq -56(%rbp), %rax
- movq %rax, %rdi
- call freeaddrinfo
- movq -64(%rbp), %rax
- testq %rax, %rax
- jne .L58
- movl -36(%rbp), %eax
- movl %eax, %edi
- call close
- movl $0, %eax
- jmp .L52
- .L58:
- movq -64(%rbp), %rax
- movl $2, 80(%rax)
- movq -64(%rbp), %rax
- movq -152(%rbp), %rdx
- movq %rdx, 104(%rax)
- cmpl $0, -40(%rbp)
- jns .L59
- call __errno_location
- movl (%rax), %eax
- cmpl $115, %eax
- jne .L65
- .L61:
- movq -64(%rbp), %rax
- movq %rax, %rdi
- call epoll_update
- movq -64(%rbp), %rax
- jmp .L52
- .L65:
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rsi
- movl $.LC10, %eax
- movl -36(%rbp), %ecx
- movl -140(%rbp), %edx
- movq -136(%rbp), %rbx
- movq %rsi, %r8
- movq %rbx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- leaq -64(%rbp), %rax
- movl $1, %esi
- movq %rax, %rdi
- call ioset_shutdown
- movl $0, %eax
- jmp .L52
- .L59:
- movq -64(%rbp), %rax
- movl $3, 80(%rax)
- cmpq $0, -152(%rbp)
- je .L62
- movq -64(%rbp), %rax
- movq -152(%rbp), %rdx
- movl $0, %esi
- movq %rax, %rdi
- call *%rdx
- .L62:
- movq -64(%rbp), %rax
- movq %rax, %rdi
- call epoll_update
- movq -64(%rbp), %rax
- .L52:
- movq -24(%rbp), %rdx
- xorq %fs:40, %rdx
- je .L64
- call __stack_chk_fail
- .L64:
- addq $152, %rsp
- popq %rbx
- leave
- ret
- .cfi_endproc
- .LFE14:
- .size ioset_connect, .-ioset_connect
- .section .rodata
- .align 8
- .LC11:
- .string "Unable to create listening socket fd: %s\n"
- .align 8
- .LC12:
- .string "Unable to bind listening socket fd %d: %s\n"
- .align 8
- .LC13:
- .string "Unable to mark listener address as re-useable: %s\n"
- .align 8
- .LC14:
- .string "Unable to listen on socket fd %d: %s\n"
- .text
- .globl ioset_listen
- .type ioset_listen, @function
- ioset_listen:
- .LFB15:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $64, %rsp
- movq %rdi, -40(%rbp)
- movq %rsi, -48(%rbp)
- movq %rdx, -56(%rbp)
- cmpq $0, -40(%rbp)
- je .L67
- movq -40(%rbp), %rax
- movzwl (%rax), %eax
- movzwl %ax, %eax
- jmp .L68
- .L67:
- movl $2, %eax
- .L68:
- movl $6, %edx
- movl $1, %esi
- movl %eax, %edi
- call socket
- movl %eax, -4(%rbp)
- cmpl $0, -4(%rbp)
- jns .L69
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC11, %eax
- movq %rdx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl $0, %eax
- jmp .L70
- .L69:
- cmpq $0, -40(%rbp)
- je .L71
- movq -48(%rbp), %rax
- movl %eax, %edx
- movq -40(%rbp), %rcx
- movl -4(%rbp), %eax
- movq %rcx, %rsi
- movl %eax, %edi
- call bind
- movl %eax, -8(%rbp)
- cmpl $0, -8(%rbp)
- jns .L72
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC12, %eax
- movl -4(%rbp), %ecx
- movl %ecx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl -4(%rbp), %eax
- movl %eax, %edi
- call close
- movl $0, %eax
- jmp .L70
- .L72:
- movl $1, -12(%rbp)
- leaq -12(%rbp), %rdx
- movl -4(%rbp), %eax
- movl $4, %r8d
- movq %rdx, %rcx
- movl $2, %edx
- movl $1, %esi
- movl %eax, %edi
- call setsockopt
- movl %eax, -8(%rbp)
- cmpl $0, -8(%rbp)
- jns .L71
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC13, %eax
- movq %rdx, %rsi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- .L71:
- movl -4(%rbp), %eax
- movl $1, %esi
- movl %eax, %edi
- call listen
- movl %eax, -8(%rbp)
- cmpl $0, -4(%rbp)
- jns .L73
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movl $.LC14, %eax
- movl -4(%rbp), %ecx
- movl %ecx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movl -4(%rbp), %eax
- movl %eax, %edi
- call close
- movl $0, %eax
- jmp .L70
- .L73:
- movl -4(%rbp), %eax
- movl %eax, %edi
- call ioset_add
- movq %rax, -24(%rbp)
- cmpq $0, -24(%rbp)
- jne .L74
- movl -4(%rbp), %eax
- movl %eax, %edi
- call close
- movl $0, %eax
- jmp .L70
- .L74:
- movq -24(%rbp), %rax
- movl $1, 80(%rax)
- movq -24(%rbp), %rax
- movq -56(%rbp), %rdx
- movq %rdx, 112(%rax)
- movq -24(%rbp), %rax
- movq %rax, %rdi
- call epoll_update
- movq -24(%rbp), %rax
- .L70:
- leave
- ret
- .cfi_endproc
- .LFE15:
- .size ioset_listen, .-ioset_listen
- .section .rodata
- .LC15:
- .string "write() error on fd %d: %s\n"
- .text
- .type ioset_flush_sendq, @function
- ioset_flush_sendq:
- .LFB16:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $48, %rsp
- movq %rdi, -40(%rbp)
- movq -40(%rbp), %rax
- addq $16, %rax
- movq %rax, -24(%rbp)
- movq -24(%rbp), %rax
- movq %rax, %rdi
- call ioq_get_avail
- movq %rax, -16(%rbp)
- movq -24(%rbp), %rax
- movq (%rax), %rdx
- movq -24(%rbp), %rax
- movq 16(%rax), %rax
- leaq (%rdx,%rax), %rcx
- movq -40(%rbp), %rax
- movl (%rax), %eax
- movq -16(%rbp), %rdx
- movq %rcx, %rsi
- movl %eax, %edi
- call write
- movq %rax, -8(%rbp)
- cmpq $0, -8(%rbp)
- jns .L77
- call __errno_location
- movl (%rax), %eax
- cmpl $11, %eax
- je .L80
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movq -40(%rbp), %rax
- movl (%rax), %ecx
- movl $.LC15, %eax
- movl %ecx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- jmp .L80
- .L77:
- movq -24(%rbp), %rax
- movq 16(%rax), %rdx
- movq -8(%rbp), %rax
- addq %rax, %rdx
- movq -24(%rbp), %rax
- movq %rdx, 16(%rax)
- movq -24(%rbp), %rax
- movq 16(%rax), %rdx
- movq -24(%rbp), %rax
- movq 8(%rax), %rax
- cmpq %rax, %rdx
- jne .L79
- movq -24(%rbp), %rax
- movq $0, 8(%rax)
- .L79:
- movq -40(%rbp), %rax
- movq %rax, %rdi
- call epoll_update
- .L80:
- leave
- ret
- .cfi_endproc
- .LFE16:
- .size ioset_flush_sendq, .-ioset_flush_sendq
- .globl ioset_close
- .type ioset_close, @function
- ioset_close:
- .LFB17:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $16, %rsp
- movq %rdi, -8(%rbp)
- movq -8(%rbp), %rax
- movl $3, %esi
- movq %rax, %rdi
- call ioset_shutdown
- leave
- ret
- .cfi_endproc
- .LFE17:
- .size ioset_close, .-ioset_close
- .globl ioset_shutdown
- .type ioset_shutdown, @function
- ioset_shutdown:
- .LFB18:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- subq $48, %rsp
- movq %rdi, -40(%rbp)
- movl %esi, -44(%rbp)
- movq -40(%rbp), %rax
- movq (%rax), %rax
- movq %rax, -16(%rbp)
- movq -16(%rbp), %rax
- addq $16, %rax
- movq %rax, -24(%rbp)
- movq -40(%rbp), %rax
- movq $0, (%rax)
- movq -16(%rbp), %rax
- movq 88(%rax), %rax
- testq %rax, %rax
- je .L84
- movq -16(%rbp), %rax
- movq 88(%rax), %rdx
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call *%rdx
- .L84:
- movq -24(%rbp), %rax
- movq 16(%rax), %rdx
- movq -24(%rbp), %rax
- movq 24(%rax), %rax
- cmpq %rax, %rdx
- je .L85
- movl -44(%rbp), %eax
- andl $2, %eax
- testl %eax, %eax
- je .L85
- movq -16(%rbp), %rax
- movl (%rax), %eax
- movl $3, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movl %eax, -4(%rbp)
- movl -4(%rbp), %eax
- movl %eax, %edx
- andb $247, %dh
- movq -16(%rbp), %rax
- movl (%rax), %eax
- movl $4, %esi
- movl %eax, %edi
- movl $0, %eax
- call fcntl
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call ioset_flush_sendq
- movq -24(%rbp), %rax
- movq 16(%rax), %rdx
- movq -24(%rbp), %rax
- movq 24(%rax), %rax
- cmpq %rax, %rdx
- je .L85
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call ioset_flush_sendq
- .L85:
- movq -16(%rbp), %rax
- movl (%rax), %eax
- movl %eax, -4(%rbp)
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call epoll_remove
- movq -16(%rbp), %rax
- movq 16(%rax), %rax
- movq %rax, %rdi
- call free
- movq -16(%rbp), %rax
- movq 48(%rax), %rax
- movq %rax, %rdi
- call free
- movq -16(%rbp), %rax
- movq %rax, %rdi
- call free
- movl -44(%rbp), %eax
- andl $1, %eax
- testb %al, %al
- je .L86
- movl -4(%rbp), %eax
- movl %eax, %edi
- call close
- jmp .L87
- .L86:
- movl -4(%rbp), %eax
- .L87:
- leave
- ret
- .cfi_endproc
- .LFE18:
- .size ioset_shutdown, .-ioset_shutdown
- .type ioset_find_line_length, @function
- ioset_find_line_length:
- .LFB19:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -40(%rbp)
- movq $0, -24(%rbp)
- movq -40(%rbp), %rax
- addq $48, %rax
- movq %rax, -32(%rbp)
- movq -32(%rbp), %rax
- movq 24(%rax), %rdx
- movq -32(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L90
- movq -32(%rbp), %rax
- movq 8(%rax), %rax
- jmp .L91
- .L90:
- movq -32(%rbp), %rax
- movq 24(%rax), %rax
- .L91:
- movq %rax, -16(%rbp)
- movq -32(%rbp), %rax
- movq 16(%rax), %rax
- movq %rax, -8(%rbp)
- jmp .L92
- .L95:
- movq -32(%rbp), %rax
- movq (%rax), %rax
- addq -8(%rbp), %rax
- movzbl (%rax), %eax
- cmpb $10, %al
- jne .L93
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq -40(%rbp), %rax
- movq %rdx, 8(%rax)
- movq -40(%rbp), %rax
- movq 8(%rax), %rax
- jmp .L94
- .L93:
- addq $1, -8(%rbp)
- addq $1, -24(%rbp)
- .L92:
- movq -8(%rbp), %rax
- cmpq -16(%rbp), %rax
- jb .L95
- movq -32(%rbp), %rax
- movq 24(%rax), %rdx
- movq -32(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L96
- movq -32(%rbp), %rax
- movq 16(%rax), %rax
- movq %rax, -8(%rbp)
- jmp .L97
- .L99:
- movq -32(%rbp), %rax
- movq (%rax), %rax
- addq -8(%rbp), %rax
- movzbl (%rax), %eax
- cmpb $10, %al
- jne .L98
- movq -24(%rbp), %rax
- leaq 1(%rax), %rdx
- movq -40(%rbp), %rax
- movq %rdx, 8(%rax)
- movq -40(%rbp), %rax
- movq 8(%rax), %rax
- jmp .L94
- .L98:
- addq $1, -8(%rbp)
- addq $1, -24(%rbp)
- .L97:
- movq -32(%rbp), %rax
- movq 24(%rax), %rax
- cmpq -8(%rbp), %rax
- ja .L99
- .L96:
- movq -40(%rbp), %rax
- movq $0, 8(%rax)
- movq -40(%rbp), %rax
- movq 8(%rax), %rax
- .L94:
- leave
- ret
- .cfi_endproc
- .LFE19:
- .size ioset_find_line_length, .-ioset_find_line_length
- .section .rodata
- .align 8
- .LC16:
- .string "read() error on socket fd %d: %s\n"
- .text
- .type ioset_read_to_recvq, @function
- ioset_read_to_recvq:
- .LFB20:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- pushq %rbx
- subq $56, %rsp
- movq %rdi, -56(%rbp)
- movq -56(%rbp), %rax
- addq $48, %rax
- movq %rax, -40(%rbp)
- movq -40(%rbp), %rax
- movq %rax, %rdi
- .cfi_offset 3, -24
- call ioq_put_avail
- movq %rax, -32(%rbp)
- cmpq $0, -32(%rbp)
- jne .L102
- movq -40(%rbp), %rax
- movq %rax, %rdi
- call ioq_expand
- movq %rax, -32(%rbp)
- .L102:
- movq -40(%rbp), %rax
- movq (%rax), %rdx
- movq -40(%rbp), %rax
- movq 24(%rax), %rax
- leaq (%rdx,%rax), %rcx
- movq -56(%rbp), %rax
- movl (%rax), %eax
- movq -32(%rbp), %rdx
- movq %rcx, %rsi
- movl %eax, %edi
- call read
- movq %rax, -24(%rbp)
- cmpq $0, -24(%rbp)
- jns .L103
- call __errno_location
- movl (%rax), %eax
- cmpl $11, %eax
- je .L116
- call __errno_location
- movl (%rax), %eax
- movl %eax, %edi
- call strerror
- movq %rax, %rdx
- movq -56(%rbp), %rax
- movl (%rax), %ecx
- movl $.LC16, %eax
- movl %ecx, %esi
- movq %rax, %rdi
- movl $0, %eax
- call printf
- movq -56(%rbp), %rax
- movl $-1, 80(%rax)
- movq -56(%rbp), %rax
- movq 96(%rax), %rdx
- leaq -56(%rbp), %rax
- movq %rax, %rdi
- call *%rdx
- movq -56(%rbp), %rax
- testq %rax, %rax
- je .L116
- leaq -56(%rbp), %rax
- movl $1, %esi
- movq %rax, %rdi
- call ioset_shutdown
- jmp .L116
- .L103:
- cmpq $0, -24(%rbp)
- jne .L105
- movq -56(%rbp), %rax
- movl $0, 80(%rax)
- movq -56(%rbp), %rax
- movq 96(%rax), %rdx
- leaq -56(%rbp), %rax
- movq %rax, %rdi
- call *%rdx
- movq -56(%rbp), %rax
- testq %rax, %rax
- je .L116
- leaq -56(%rbp), %rax
- movl $1, %esi
- movq %rax, %rdi
- call ioset_shutdown
- jmp .L116
- .L105:
- movq -56(%rbp), %rax
- movq 8(%rax), %rax
- testq %rax, %rax
- jne .L116
- movq -40(%rbp), %rax
- movq 24(%rax), %rax
- movq %rax, -48(%rbp)
- jmp .L106
- .L111:
- movq -40(%rbp), %rax
- movq (%rax), %rax
- addq -48(%rbp), %rax
- movzbl (%rax), %eax
- cmpb $10, %al
- jne .L107
- movq -40(%rbp), %rax
- movq 24(%rax), %rdx
- movq -40(%rbp), %rax
- movq 16(%rax), %rax
- cmpq %rax, %rdx
- jae .L108
- movq -56(%rbp), %rax
- movq -40(%rbp), %rdx
- movq 8(%rdx), %rdx
- movq %rdx, %rcx
- addq -48(%rbp), %rcx
- movq -40(%rbp), %rdx
- movq 16(%rdx), %rdx
- movq %rcx, %rbx
- subq %rdx, %rbx
- movq %rbx, %rdx
- addq $1, %rdx
- movq %rdx, 8(%rax)
- jmp .L110
- .L108:
- movq -56(%rbp), %rax
- movq -40(%rbp), %rdx
- movq 16(%rdx), %rdx
- movq -48(%rbp), %rcx
- movq %rcx, %rbx
- subq %rdx, %rbx
- movq %rbx, %rdx
- addq $1, %rdx
- movq %rdx, 8(%rax)
- jmp .L110
- .L107:
- addq $1, -48(%rbp)
- .L106:
- movq -40(%rbp), %rax
- movq 24(%rax), %rdx
- movq -24(%rbp), %rax
- leaq (%rdx,%rax), %rax
- cmpq -48(%rbp), %rax
- ja .L111
- .L110:
- movq -40(%rbp), %rax
- movq 24(%rax), %rdx
- movq -24(%rbp), %rax
- addq %rax, %rdx
- movq -40(%rbp), %rax
- movq %rdx, 24(%rax)
- movq -40(%rbp), %rax
- movq 24(%rax), %rdx
- movq -40(%rbp), %rax
- movq 8(%rax), %rax
- cmpq %rax, %rdx
- jne .L117
- movq -40(%rbp), %rax
- movq $0, 24(%rax)
- jmp .L113
- .L115:
- movq -56(%rbp), %rax
- movq 96(%rax), %rdx
- leaq -56(%rbp), %rax
- movq %rax, %rdi
- call *%rdx
- movq -56(%rbp), %rax
- testq %rax, %rax
- je .L118
- movq -56(%rbp), %rax
- movq %rax, %rdi
- call ioset_find_line_length
- jmp .L113
- .L117:
- nop
- .L113:
- movq -56(%rbp), %rax
- movq 8(%rax), %rax
- testq %rax, %rax
- jne .L115
- jmp .L116
- .L118:
- nop
- .L116:
- addq $56, %rsp
- popq %rbx
- leave
- ret
- .cfi_endproc
- .LFE20:
- .size ioset_read_to_recvq, .-ioset_read_to_recvq
- .globl ioset_read
- .type ioset_read, @function
- ioset_read:
- .LFB21:
- .cfi_startproc
- pushq %rbp
- .cfi_def_cfa_offset 16
- movq %rsp, %rbp
- .cfi_offset 6, -16
- .cfi_def_cfa_register 6
- movq %rdi, -24(%rbp)
- movq %rsi, -32(%rbp)
- movq %rdx, -40(%rbp)
- leave
- ret
- .cfi_endproc
- .LFE21:
- .size ioset_read, .-ioset_read
- .ident "GCC: (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5"
- .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement