~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/boot/bioscall.S

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/x86/boot/bioscall.S (Version linux-6.12-rc7) and /arch/alpha/boot/bioscall.S (Version linux-5.8.18)


  1 /* SPDX-License-Identifier: GPL-2.0-or-later *    
  2 /* -------------------------------------------    
  3  *                                                
  4  *   Copyright 2009-2014 Intel Corporation; au    
  5  *                                                
  6  * -------------------------------------------    
  7                                                   
  8 /*                                                
  9  * "Glove box" for BIOS calls.  Avoids the con    
 10  * touching registers they shouldn't be.          
 11  */                                               
 12                                                   
 13         .code16                                   
 14         .section ".inittext","ax"                 
 15         .globl  intcall                           
 16         .type   intcall, @function                
 17 intcall:                                          
 18         /* Self-modify the INT instruction.  U    
 19         cmpb    %al, 3f                           
 20         je      1f                                
 21         movb    %al, 3f                           
 22         jmp     1f              /* Synchronize    
 23 1:                                                
 24         /* Save state */                          
 25         pushfl                                    
 26         pushw   %fs                               
 27         pushw   %gs                               
 28         pushal                                    
 29                                                   
 30         /* Copy input state to stack frame */     
 31         subw    $44, %sp                          
 32         movw    %dx, %si                          
 33         movw    %sp, %di                          
 34         movw    $11, %cx                          
 35         rep; movsl                                
 36                                                   
 37         /* Pop full state from the stack */       
 38         popal                                     
 39         popw    %gs                               
 40         popw    %fs                               
 41         popw    %es                               
 42         popw    %ds                               
 43         popfl                                     
 44                                                   
 45         /* Actual INT */                          
 46         .byte   0xcd            /* INT opcode     
 47 3:      .byte   0                                 
 48                                                   
 49         /* Push full state to the stack */        
 50         pushfl                                    
 51         pushw   %ds                               
 52         pushw   %es                               
 53         pushw   %fs                               
 54         pushw   %gs                               
 55         pushal                                    
 56                                                   
 57         /* Re-establish C environment invarian    
 58         cld                                       
 59         movzwl  %sp, %esp                         
 60         movw    %cs, %ax                          
 61         movw    %ax, %ds                          
 62         movw    %ax, %es                          
 63                                                   
 64         /* Copy output state from stack frame     
 65         movw    68(%esp), %di   /* Original %c    
 66         andw    %di, %di                          
 67         jz      4f                                
 68         movw    %sp, %si                          
 69         movw    $11, %cx                          
 70         rep; movsl                                
 71 4:      addw    $44, %sp                          
 72                                                   
 73         /* Restore state and return */            
 74         popal                                     
 75         popw    %gs                               
 76         popw    %fs                               
 77         popfl                                     
 78         retl                                      
 79         .size   intcall, .-intcall                
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php