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

TOMOYO Linux Cross Reference
Linux/arch/x86/include/asm/vm86.h

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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/x86/include/asm/vm86.h (Architecture sparc64) and /arch/mips/include/asm-mips/vm86.h (Architecture mips)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 #ifndef _ASM_X86_VM86_H                           
  3 #define _ASM_X86_VM86_H                           
  4                                                   
  5 #include <asm/ptrace.h>                           
  6 #include <uapi/asm/vm86.h>                        
  7                                                   
  8 /*                                                
  9  * This is the (kernel) stack-layout when we h    
 10  * mode - the main change is that the old segm    
 11  * useful any more and are forced to be zero b    
 12  * hardware when a trap occurs), and the real     
 13  * at the end of the structure. Look at ptrace    
 14  * setup. For user space layout see 'struct vm    
 15  */                                               
 16                                                   
 17 struct kernel_vm86_regs {                         
 18 /*                                                
 19  * normal regs, with special meaning for the s    
 20  */                                               
 21         struct pt_regs pt;                        
 22 /*                                                
 23  * these are specific to v86 mode:                
 24  */                                               
 25         unsigned short es, __esh;                 
 26         unsigned short ds, __dsh;                 
 27         unsigned short fs, __fsh;                 
 28         unsigned short gs, __gsh;                 
 29 };                                                
 30                                                   
 31 struct vm86 {                                     
 32         struct vm86plus_struct __user *user_vm    
 33         struct pt_regs regs32;                    
 34         unsigned long veflags;                    
 35         unsigned long veflags_mask;               
 36         unsigned long saved_sp0;                  
 37                                                   
 38         unsigned long flags;                      
 39         unsigned long cpu_type;                   
 40         struct revectored_struct int_revectore    
 41         struct revectored_struct int21_revecto    
 42         struct vm86plus_info_struct vm86plus;     
 43 };                                                
 44                                                   
 45 #ifdef CONFIG_VM86                                
 46                                                   
 47 void handle_vm86_fault(struct kernel_vm86_regs    
 48 int handle_vm86_trap(struct kernel_vm86_regs *    
 49 void save_v86_state(struct kernel_vm86_regs *,    
 50                                                   
 51 struct task_struct;                               
 52                                                   
 53 #define free_vm86(t) do {                         
 54         struct thread_struct *__t = (t);          
 55         if (__t->vm86 != NULL) {                  
 56                 kfree(__t->vm86);                 
 57                 __t->vm86 = NULL;                 
 58         }                                         
 59 } while (0)                                       
 60                                                   
 61 /*                                                
 62  * Support for VM86 programs to request interr    
 63  * real mode hardware drivers:                    
 64  */                                               
 65 #define FIRST_VM86_IRQ           3                
 66 #define LAST_VM86_IRQ           15                
 67                                                   
 68 static inline int invalid_vm86_irq(int irq)       
 69 {                                                 
 70         return irq < FIRST_VM86_IRQ || irq > L    
 71 }                                                 
 72                                                   
 73 void release_vm86_irqs(struct task_struct *);     
 74                                                   
 75 #else                                             
 76                                                   
 77 #define handle_vm86_fault(a, b)                   
 78 #define release_vm86_irqs(a)                      
 79                                                   
 80 static inline int handle_vm86_trap(struct kern    
 81 {                                                 
 82         return 0;                                 
 83 }                                                 
 84                                                   
 85 static inline void save_v86_state(struct kerne    
 86                                                   
 87 #define free_vm86(task) do { (void)(task); } w    
 88                                                   
 89 #endif /* CONFIG_VM86 */                          
 90                                                   
 91 #endif /* _ASM_X86_VM86_H */                      
 92                                                   

~ [ 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