summaryrefslogtreecommitdiff
path: root/Platform/BroxtonPlatformPkg/Common/Library/PlatformBdsLib/Ia32/JumpToVector.Asm
blob: 4cd4bfe0013805a6c3aa0bfb5748322210620171 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
;; @file
;  This is the ASM for Jump to a specific address.
;
;  Copyright (c) 1999 - 2016, Intel Corporation. All rights reserved.<BR>
;
;  This program and the accompanying materials
;  are licensed and made available under the terms and conditions of the BSD License
;  which accompanies this distribution.  The full text of the license may be found at
;  http://opensource.org/licenses/bsd-license.php.
;
;  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
;  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED
;
;;

  .686P
  .MMX
  .MODEL SMALL
  .CODE


JumpToVector    PROTO  C \
   EntryPoint:PTR DWORD, \
   Parameter:DWORD
;
; Routine Description:
;       This allows the caller to switch the stack and goes to the new entry point
;
; Arguments:
;       EntryPoint      - Pointer to the location to enter
;       Parameter       - Parameter to pass in
;
; Returns:
;
;       Nothing. Goes to the Entry Point passing in the new parameters
;
JumpToVector    PROC  C \
  EntryPoint:PTR DWORD, \
  Parameter:DWORD

  push  ebx

  mov   ebx, Parameter
  mov   ecx, EntryPoint
  push  ebx
  push  0
  jmp   ecx

  pop   ebx
  ret

JumpToVector    ENDP
  END