https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| ;/** @file
 | |
| ;
 | |
| ;    IDT vector entry.
 | |
| ;
 | |
| ;  Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>
 | |
| ;  SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| ;
 | |
| ;**/
 | |
| 
 | |
|     SECTION .text
 | |
| 
 | |
| ;
 | |
| ;------------------------------------------------------------------------------
 | |
| ;  Generic IDT Vector Handlers for the Host.
 | |
| ;
 | |
| ;------------------------------------------------------------------------------
 | |
| 
 | |
| ALIGN   8
 | |
| global ASM_PFX(AsmGetVectorTemplatInfo)
 | |
| global ASM_PFX(AsmVectorFixup)
 | |
| 
 | |
| @VectorTemplateBase:
 | |
|         push  eax
 | |
|         db    0x6a       ; push #VectorNumber
 | |
| @VectorNum:
 | |
|         db    0
 | |
|         mov   eax, CommonInterruptEntry
 | |
|         jmp   eax
 | |
| @VectorTemplateEnd:
 | |
| 
 | |
| global ASM_PFX(AsmGetVectorTemplatInfo)
 | |
| ASM_PFX(AsmGetVectorTemplatInfo):
 | |
|         mov   ecx, [esp + 4]
 | |
|         mov   dword [ecx], @VectorTemplateBase
 | |
|         mov   eax, (@VectorTemplateEnd - @VectorTemplateBase)
 | |
|         ret
 | |
| 
 | |
| global ASM_PFX(AsmVectorFixup)
 | |
| ASM_PFX(AsmVectorFixup):
 | |
|         mov   eax, dword [esp + 8]
 | |
|         mov   ecx, [esp + 4]
 | |
|         mov   [ecx + (@VectorNum - @VectorTemplateBase)], al
 | |
|         ret
 | |
| 
 | |
| ;---------------------------------------;
 | |
| ; CommonInterruptEntry                  ;
 | |
| ;---------------------------------------;
 | |
| ; The follow algorithm is used for the common interrupt routine.
 | |
| 
 | |
| ;
 | |
| ; +---------------------+ <-- 16-byte aligned ensured by processor
 | |
| ; +    Old SS           +
 | |
| ; +---------------------+
 | |
| ; +    Old RSP          +
 | |
| ; +---------------------+
 | |
| ; +    RFlags           +
 | |
| ; +---------------------+
 | |
| ; +    CS               +
 | |
| ; +---------------------+
 | |
| ; +    RIP              +
 | |
| ; +---------------------+
 | |
| ; +    Error Code       +
 | |
| ; +---------------------+
 | |
| ; +    Vector Number    +
 | |
| ; +---------------------+
 | |
| 
 | |
| CommonInterruptEntry:
 | |
|   cli
 | |
| 
 | |
|   jmp $
 | |
| 
 |