diff options
Diffstat (limited to 'contrib/syslinux/latest/memdisk/start32.S')
-rw-r--r-- | contrib/syslinux/latest/memdisk/start32.S | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/contrib/syslinux/latest/memdisk/start32.S b/contrib/syslinux/latest/memdisk/start32.S deleted file mode 100644 index 4fb0537..0000000 --- a/contrib/syslinux/latest/memdisk/start32.S +++ /dev/null @@ -1,101 +0,0 @@ -/* ----------------------------------------------------------------------- - * - * Copyright 2003-2009 H. Peter Anvin - All Rights Reserved - * Copyright 2009 Intel Corporation; author: H. Peter Anvin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - * Boston MA 02110-1301, USA; either version 2 of the License, or - * (at your option) any later version; incorporated herein by reference. - * - * ----------------------------------------------------------------------- */ - -/* - * Simple stub to get us to the right point in the 32-bit code; - * this module must be linked first - */ - - .section ".init", "ax" - .globl _start -_start: - /* Zero the bss */ - cld - movl $__bss_start, %edi - movl $__bss_end, %ecx - subl %edi, %ecx - xorl %eax, %eax - shrl $2, %ecx - rep ; stosl - - /* Set up the protected-mode IDT and the interrupt jump buffers */ - movl $idt, %edi - movl $ijb, %eax - movl $0xee000000, %ebx /* Interrupt gate */ - movw %cs, %bx /* Target segment */ - - /* Make the IDT */ - movl $256, %ecx -1: - stosl - stosl - movl %ebx, -6(%edi) - addl $8, %eax - loop 1b - - /* - * Each entry in the interrupt jump buffer contains the following - * instructions: - * - * 60 pushal - * b0xx movb $xx, %al # interrupt number - * e9xxxxxxxx jmp handle_interrupt - */ - movl $0xe900b060, %eax - movl $256, %ecx -1: - movl %eax, (%edi) - addl $(1 << 16), %eax - movl $handle_interrupt-8, %edx - subl %edi, %edx - movl %edx, 4(%edi) - addl $8, %edi - loop 1b - - lidtl idt_ptr - - /* Save arguments, switch stacks */ - movl %esp, %eax /* Pointer to arguments */ - movl $__stack_end, %esp - - call setup - jmp *(rm_args) /* First argument is return */ - - .section ".text","ax" - .globl intcall - .type intcall, @function -intcall: - jmp *(rm_args+1*4) /* Intcall is argument 1 */ - .size intcall, .-intcall - - .type handle_interrupt, @function -handle_interrupt: - jmp *(rm_args+4*4) /* Interrupt pointer is argument 4 */ - .size handle_interrupt, .-handle_interrupt - - .section ".rodata","a" -idt_ptr: - .word 8*256-1 - .long idt - .word 0 - - .section ".bss.large","aw" - .balign 2048 -idt: - .space 8*256 -ijb: - .space 8*256 - -__stack: - .space 65536 -__stack_end: |