Home | History | Annotate | Download | only in i386
      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