1 /* ----------------------------------------------------------------------- * 2 * 3 * Copyright 2013 Intel Corporation; author: Matt Fleming 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 8 * Boston MA 02110-1301, USA; either version 2 of the License, or 9 * (at your option) any later version; incorporated herein by reference. 10 * 11 * ----------------------------------------------------------------------- */ 12 13 .globl kernel_jump 14 .type kernel_jump,@function 15 .text 16 kernel_jump: 17 cli 18 movl 0x8(%esp), %esi 19 movl 0x4(%esp), %ecx 20 jmp *%ecx 21 22 /* 23 * The default handover function should only be invoked for 24 * bzImage boot protocol versions < 2.12. 25 */ 26 .globl efi_handover 27 .type efi_handover,@function 28 efi_handover: 29 cli 30 popl %ecx /* discard return address */ 31 movl 0xc(%esp), %ecx 32 jmp *%ecx 33 34 .globl efi_handover_32 35 .type efi_handover_32,@function 36 efi_handover_32: 37 cli 38 popl %ecx /* discard return address */ 39 movl 0xc(%esp), %ecx 40 call *%ecx 41 42 .globl efi_handover_64 43 .type efi_handover_64,@function 44 efi_handover_64: 45 call 1f 46 1: 47 popl %eax 48 subl $1b, %eax 49 movl $38, errno(%eax) /* ENOSYS */ 50 ret 51