.file "terminal.c" .text .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "kaleid/kernel/io/terminal.c" .LC1: .string "kt->kt_init == INITOK" .section .rodata.str1.8,"aMS",@progbits,1 .align 8 .LC2: .string "(&(kt)->kt_lock)->lk_init == INITOK" .align 8 .LC3: .string "DosAquireLock on an already locked object" .align 8 .LC4: .string "DosReleaseLock on an unlocked object" .text .p2align 4,,15 .globl ClearTerm .type ClearTerm, @function ClearTerm: .LFB3: .cfi_startproc testq %rdi, %rdi je .L10 pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset 3, -16 cmpl $-889275714, 80(%rdi) movq %rdi, %rbx jne .L26 /APP # 69 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rdi) jne .L27 movl 4(%rdi), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rdi) jne .L28 .L5: /APP # 69 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP movq 48(%rbx), %rcx movzbl 40(%rbx), %edx imulq 56(%rbx), %rcx sall $8, %edx orl $32, %edx testq %rcx, %rcx je .L6 movq 32(%rbx), %rax leaq (%rax,%rcx,2), %rcx .p2align 4,,10 .p2align 3 .L7: movw %dx, (%rax) addq $2, %rax cmpq %rax, %rcx jne .L7 .L6: movq $0, 72(%rbx) movq $0, 64(%rbx) /APP # 71 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rbx) jne .L29 movl 4(%rbx), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rbx) jne .L30 .L9: /APP # 71 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP xorl %eax, %eax popq %rbx .cfi_remember_state .cfi_restore 3 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L30: .cfi_restore_state movabsq $.LC4, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L9 .p2align 4,,10 .p2align 3 .L28: movabsq $.LC3, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L5 .p2align 4,,10 .p2align 3 .L26: movabsq $__func__.1202, %rcx movl $67, %edx movabsq $.LC0, %rsi movabsq $.LC1, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L27: movabsq $__func__.1202, %rcx movl $69, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L29: movabsq $__func__.1202, %rcx movl $71, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .L10: .cfi_def_cfa_offset 8 .cfi_restore 3 movq $-6, %rax ret .cfi_endproc .LFE3: .size ClearTerm, .-ClearTerm .section .rodata.str1.8 .align 8 .LC5: .string "!stdout && _vga_term.kt_init != INITOK" .text .p2align 4,,15 .globl InitTerms .type InitTerms, @function InitTerms: .LFB2: .cfi_startproc movabsq $stdout, %rdx cmpq $0, (%rdx) jne .L32 movabsq $_vga_term, %rdi cmpl $-889275714, 80(%rdi) je .L32 movabsq $_vga_term+80, %rax movq %rdi, (%rdx) movl $-889275714, (%rax) movq %rdi, %rax movabsq %rax, stddbg movabsq $ClearTerm, %rax jmp *%rax .p2align 4,,10 .p2align 3 .L32: subq $8, %rsp .cfi_def_cfa_offset 16 movabsq $__func__.1198, %rcx movl $49, %edx movabsq $.LC0, %rsi movabsq $.LC5, %rdi movabsq $_assert_handler, %rax call *%rax .cfi_endproc .LFE2: .size InitTerms, .-InitTerms .p2align 4,,15 .globl ChTermColor .type ChTermColor, @function ChTermColor: .LFB4: .cfi_startproc cmpb $15, %sil ja .L42 testq %rdi, %rdi je .L43 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 movl %esi, %ebp movq %rdi, %rbx subq $8, %rsp .cfi_def_cfa_offset 32 /APP # 87 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rdi) jne .L54 movl 4(%rdi), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rdi) jne .L55 .L39: /APP # 87 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP movb %bpl, 40(%rbx) /APP # 89 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rbx) jne .L56 movl 4(%rbx), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rbx) jne .L57 .L41: /APP # 89 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP addq $8, %rsp .cfi_remember_state .cfi_def_cfa_offset 24 xorl %eax, %eax popq %rbx .cfi_restore 3 .cfi_def_cfa_offset 16 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L55: .cfi_restore_state movabsq $.LC3, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L39 .p2align 4,,10 .p2align 3 .L57: movabsq $.LC4, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L41 .p2align 4,,10 .p2align 3 .L54: movabsq $__func__.1210, %rcx movl $87, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L56: movabsq $__func__.1210, %rcx movl $89, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L42: .cfi_def_cfa_offset 8 .cfi_restore 3 .cfi_restore 6 movq $-5, %rax ret .L43: movq $-6, %rax ret .cfi_endproc .LFE4: .size ChTermColor, .-ChTermColor .p2align 4,,15 .globl ClearTermUnlocked .type ClearTermUnlocked, @function ClearTermUnlocked: .LFB7: .cfi_startproc movq 48(%rdi), %rcx movzbl 40(%rdi), %edx imulq 56(%rdi), %rcx sall $8, %edx orl $32, %edx testq %rcx, %rcx je .L59 movq 32(%rdi), %rax leaq (%rax,%rcx,2), %rcx .p2align 4,,10 .p2align 3 .L60: movw %dx, (%rax) addq $2, %rax cmpq %rcx, %rax jne .L60 .L59: movq $0, 72(%rdi) movq $0, 64(%rdi) ret .cfi_endproc .LFE7: .size ClearTermUnlocked, .-ClearTermUnlocked .p2align 4,,15 .globl PutOnTermUnlocked .type PutOnTermUnlocked, @function PutOnTermUnlocked: .LFB8: .cfi_startproc cmpb $13, %sil je .L69 movsbl %sil, %esi movabsq $PutOnTermUnlocked.part.0, %rax jmp *%rax .p2align 4,,10 .p2align 3 .L69: movq $0, 64(%rdi) ret .cfi_endproc .LFE8: .size PutOnTermUnlocked, .-PutOnTermUnlocked .p2align 4,,15 .type PutOnTermUnlocked.part.0, @function PutOnTermUnlocked.part.0: .LFB10: .cfi_startproc pushq %r13 .cfi_def_cfa_offset 16 .cfi_offset 13, -16 pushq %r12 .cfi_def_cfa_offset 24 .cfi_offset 12, -24 pushq %rbp .cfi_def_cfa_offset 32 .cfi_offset 6, -32 pushq %rbx .cfi_def_cfa_offset 40 .cfi_offset 3, -40 movq %rdi, %rbx subq $8, %rsp .cfi_def_cfa_offset 48 cmpb $10, %sil je .L81 cmpb $9, %sil movq 72(%rdi), %rbp je .L82 movq 48(%rdi), %rdx movzbl 40(%rbx), %ecx movsbw %sil, %si movq 64(%rdi), %rax movq 32(%rdi), %rdi imulq %rdx, %rbp sall $8, %ecx orl %ecx, %esi addq %rax, %rbp movw %si, (%rdi,%rbp,2) .L72: addq $1, %rax cmpq %rdx, %rax je .L77 movq %rax, 64(%rbx) .L70: addq $8, %rsp .cfi_remember_state .cfi_def_cfa_offset 40 popq %rbx .cfi_restore 3 .cfi_def_cfa_offset 32 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 24 popq %r12 .cfi_restore 12 .cfi_def_cfa_offset 16 popq %r13 .cfi_restore 13 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L82: .cfi_restore_state movq %rbp, %rax movl $4, %r12d movabsq $PutOnTermUnlocked, %r13 cmpq %rbp, %rax je .L83 .L74: subl $1, %r12d je .L84 movq 72(%rbx), %rax cmpq %rbp, %rax jne .L74 .L83: movl $32, %esi movq %rbx, %rdi call *%r13 jmp .L74 .p2align 4,,10 .p2align 3 .L77: movq 72(%rbx), %rax movq $0, 64(%rbx) addq $1, %rax cmpq 56(%rbx), %rax movq %rax, 72(%rbx) jne .L70 movq $0, 72(%rbx) addq $8, %rsp .cfi_remember_state .cfi_def_cfa_offset 40 popq %rbx .cfi_restore 3 .cfi_def_cfa_offset 32 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 24 popq %r12 .cfi_restore 12 .cfi_def_cfa_offset 16 popq %r13 .cfi_restore 13 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L81: .cfi_restore_state movq 48(%rdi), %rdx leaq -1(%rdx), %rax movq %rax, 72(%rdi) movq 64(%rdi), %rax jmp .L72 .p2align 4,,10 .p2align 3 .L84: movq 64(%rbx), %rax movq 48(%rbx), %rdx jmp .L72 .cfi_endproc .LFE10: .size PutOnTermUnlocked.part.0, .-PutOnTermUnlocked.part.0 .p2align 4,,15 .globl PutOnTerm .type PutOnTerm, @function PutOnTerm: .LFB5: .cfi_startproc testq %rdi, %rdi je .L94 pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 movl %esi, %ebp movq %rdi, %rbx subq $8, %rsp .cfi_def_cfa_offset 32 cmpl $-889275714, 80(%rdi) jne .L105 /APP # 104 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rdi) jne .L106 movl 4(%rdi), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rdi) jne .L107 .L89: /APP # 104 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP cmpb $13, %bpl jne .L90 movq $0, 64(%rbx) .L91: /APP # 106 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rbx) jne .L108 movl 4(%rbx), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rbx) jne .L109 .L93: /APP # 106 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP addq $8, %rsp .cfi_remember_state .cfi_def_cfa_offset 24 xorl %eax, %eax popq %rbx .cfi_restore 3 .cfi_def_cfa_offset 16 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L90: .cfi_restore_state movsbl %bpl, %esi movq %rbx, %rdi movabsq $PutOnTermUnlocked.part.0, %rax call *%rax jmp .L91 .p2align 4,,10 .p2align 3 .L107: movabsq $.LC3, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L89 .p2align 4,,10 .p2align 3 .L109: movabsq $.LC4, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L93 .p2align 4,,10 .p2align 3 .L105: movabsq $__func__.1217, %rcx movl $102, %edx movabsq $.LC0, %rsi movabsq $.LC1, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L106: movabsq $__func__.1217, %rcx movl $104, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L108: movabsq $__func__.1217, %rcx movl $106, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .L94: .cfi_def_cfa_offset 8 .cfi_restore 3 .cfi_restore 6 movq $-6, %rax ret .cfi_endproc .LFE5: .size PutOnTerm, .-PutOnTerm .p2align 4,,15 .globl PrintOnTerm .type PrintOnTerm, @function PrintOnTerm: .LFB6: .cfi_startproc testq %rdi, %rdi je .L121 pushq %r12 .cfi_def_cfa_offset 16 .cfi_offset 12, -16 pushq %rbp .cfi_def_cfa_offset 24 .cfi_offset 6, -24 movq %rdi, %rbp pushq %rbx .cfi_def_cfa_offset 32 .cfi_offset 3, -32 cmpl $-889275714, 80(%rdi) jne .L132 /APP # 121 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rdi) jne .L133 movl 4(%rdi), %eax movq %rsi, %rbx leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rdi) jne .L134 .L114: /APP # 121 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP movabsq $PutOnTermUnlocked.part.0, %r12 .L115: movsbl (%rbx), %esi testb %sil, %sil je .L135 .L118: addq $1, %rbx cmpb $13, %sil jne .L116 movq $0, 64(%rbp) movsbl (%rbx), %esi testb %sil, %sil jne .L118 .L135: /APP # 125 "kaleid/kernel/io/terminal.c" 1 cli # 0 "" 2 /NO_APP cmpl $-889275714, 24(%rbp) jne .L136 movl 4(%rbp), %eax leal 1(%rax), %edx testl %eax, %eax movl %edx, 4(%rbp) jne .L137 .L120: /APP # 125 "kaleid/kernel/io/terminal.c" 1 sti # 0 "" 2 /NO_APP xorl %eax, %eax popq %rbx .cfi_remember_state .cfi_restore 3 .cfi_def_cfa_offset 24 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 16 popq %r12 .cfi_restore 12 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L116: .cfi_restore_state movq %rbp, %rdi call *%r12 jmp .L115 .p2align 4,,10 .p2align 3 .L137: movabsq $.LC4, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L120 .p2align 4,,10 .p2align 3 .L134: movabsq $.LC3, %rdi xorl %eax, %eax movabsq $StartPanic, %rdx call *%rdx jmp .L114 .p2align 4,,10 .p2align 3 .L132: movabsq $__func__.1224, %rcx movl $119, %edx movabsq $.LC0, %rsi movabsq $.LC1, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L133: movabsq $__func__.1224, %rcx movl $121, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .p2align 4,,10 .p2align 3 .L136: movabsq $__func__.1224, %rcx movl $125, %edx movabsq $.LC0, %rsi movabsq $.LC2, %rdi movabsq $_assert_handler, %rax call *%rax .L121: .cfi_def_cfa_offset 8 .cfi_restore 3 .cfi_restore 6 .cfi_restore 12 movq $-6, %rax ret .cfi_endproc .LFE6: .size PrintOnTerm, .-PrintOnTerm .p2align 4,,15 .globl PrintOnTermUnlocked .type PrintOnTermUnlocked, @function PrintOnTermUnlocked: .LFB9: .cfi_startproc pushq %r12 .cfi_def_cfa_offset 16 .cfi_offset 12, -16 movabsq $PutOnTermUnlocked.part.0, %r12 pushq %rbp .cfi_def_cfa_offset 24 .cfi_offset 6, -24 movq %rdi, %rbp pushq %rbx .cfi_def_cfa_offset 32 .cfi_offset 3, -32 movq %rsi, %rbx .L139: movsbl (%rbx), %esi testb %sil, %sil je .L144 .L142: addq $1, %rbx cmpb $13, %sil jne .L140 movq $0, 64(%rbp) movsbl (%rbx), %esi testb %sil, %sil jne .L142 .L144: popq %rbx .cfi_remember_state .cfi_restore 3 .cfi_def_cfa_offset 24 popq %rbp .cfi_restore 6 .cfi_def_cfa_offset 16 popq %r12 .cfi_restore 12 .cfi_def_cfa_offset 8 ret .p2align 4,,10 .p2align 3 .L140: .cfi_restore_state movq %rbp, %rdi call *%r12 jmp .L139 .cfi_endproc .LFE9: .size PrintOnTermUnlocked, .-PrintOnTermUnlocked .section .rodata .align 8 .type __func__.1224, @object .size __func__.1224, 12 __func__.1224: .string "PrintOnTerm" .align 8 .type __func__.1217, @object .size __func__.1217, 10 __func__.1217: .string "PutOnTerm" .align 8 .type __func__.1210, @object .size __func__.1210, 12 __func__.1210: .string "ChTermColor" .align 8 .type __func__.1202, @object .size __func__.1202, 10 __func__.1202: .string "ClearTerm" .align 8 .type __func__.1198, @object .size __func__.1198, 10 __func__.1198: .string "InitTerms" .comm stddbg,8,8 .comm stdout,8,8 .data .align 32 .type _vga_term, @object .size _vga_term, 88 _vga_term: .byte 0 .zero 3 .long 0 .quad 0 .quad 0 .long -889275714 .zero 4 .quad 753664 .byte 7 .zero 7 .quad 80 .quad 25 .quad 0 .quad 0 .long 0 .zero 4 .ident "GCC: (GNU) 7.3.0"