blob: 4049ad4d6474073158aedcb1cae8a64d28048db7 [file] [log] [blame]
/* ----------------------------------------------------------------------- *
*
* Copyright 2013 Intel Corporation; author: Matt Fleming
*
* 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.
*
* ----------------------------------------------------------------------- */
.globl kernel_jump
.type kernel_jump,@function
.text
kernel_jump:
cli
movl 0x8(%esp), %esi
movl 0x4(%esp), %ecx
jmp *%ecx
/*
* The default handover function should only be invoked for
* bzImage boot protocol versions < 2.12.
*/
.globl efi_handover
.type efi_handover,@function
efi_handover:
cli
popl %ecx /* discard return address */
movl 0xc(%esp), %ecx
jmp *%ecx
.globl efi_handover_32
.type efi_handover_32,@function
efi_handover_32:
cli
popl %ecx /* discard return address */
movl 0xc(%esp), %ecx
call *%ecx
.globl efi_handover_64
.type efi_handover_64,@function
efi_handover_64:
call 1f
1:
popl %eax
subl $1b, %eax
movl $38, errno(%eax) /* ENOSYS */
ret