Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
traps.c File Reference
#include <linux/interrupt.h>
#include <linux/kallsyms.h>
#include <linux/spinlock.h>
#include <linux/kprobes.h>
#include <linux/uaccess.h>
#include <linux/kdebug.h>
#include <linux/kgdb.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/ptrace.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/kexec.h>
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/init.h>
#include <linux/bug.h>
#include <linux/nmi.h>
#include <linux/mm.h>
#include <linux/smp.h>
#include <linux/io.h>
#include <asm/kmemcheck.h>
#include <asm/stacktrace.h>
#include <asm/processor.h>
#include <asm/debugreg.h>
#include <linux/atomic.h>
#include <asm/ftrace.h>
#include <asm/traps.h>
#include <asm/desc.h>
#include <asm/i387.h>
#include <asm/fpu-internal.h>
#include <asm/mce.h>
#include <asm/rcu.h>
#include <asm/mach_traps.h>
#include <asm/processor-flags.h>
#include <asm/setup.h>

Go to the source code of this file.

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define DO_ERROR(trapnr, signr, str, name)
 
#define DO_ERROR_INFO(trapnr, signr, str, name, sicode, siaddr)
 

Functions

asmlinkage int system_call (void)
 
 DECLARE_BITMAP (used_vectors, NR_VECTORS)
 
 EXPORT_SYMBOL_GPL (used_vectors)
 
 DO_ERROR_INFO (X86_TRAP_DE, SIGFPE,"divide error", divide_error, FPE_INTDIV, regs->ip) DO_ERROR_INFO(X86_TRAP_UD
 
invalid regs ip DO_ERROR (X86_TRAP_OLD_MF, SIGFPE,"coprocessor segment overrun", coprocessor_segment_overrun)
 
dotraplinkage void __kprobes
notrace 
do_int3 (struct pt_regs *regs, long error_code)
 
dotraplinkage void __kprobes do_debug (struct pt_regs *regs, long error_code)
 
void math_error (struct pt_regs *regs, int error_code, int trapnr)
 
dotraplinkage void do_coprocessor_error (struct pt_regs *regs, long error_code)
 
dotraplinkage void do_simd_coprocessor_error (struct pt_regs *regs, long error_code)
 
dotraplinkage void do_spurious_interrupt_bug (struct pt_regs *regs, long error_code)
 
asmlinkage void __attribute__ ((weak))
 
void math_state_restore (void)
 
 EXPORT_SYMBOL_GPL (math_state_restore)
 
dotraplinkage void __kprobes do_device_not_available (struct pt_regs *regs, long error_code)
 
void __init early_trap_init (void)
 
void __init trap_init (void)
 

Variables

char ignore_fpu_irq
 
gate_desc idt_table[NR_VECTORS__page_aligned_data = { { { { 0, 0 } } }, }
 
 SIGILL
 
invalid opcode
 
invalid invalid_op
 
invalid ILL_ILLOPN
 

Macro Definition Documentation

#define DO_ERROR (   trapnr,
  signr,
  str,
  name 
)
Value:
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
{ \
exception_enter(regs); \
trapnr, signr) == NOTIFY_STOP) { \
exception_exit(regs); \
return; \
} \
conditional_sti(regs); \
do_trap(trapnr, signr, str, regs, error_code, NULL); \
exception_exit(regs); \
}

Definition at line 179 of file traps.c.

#define DO_ERROR_INFO (   trapnr,
  signr,
  str,
  name,
  sicode,
  siaddr 
)
Value:
dotraplinkage void do_##name(struct pt_regs *regs, long error_code) \
{ \
info.si_signo = signr; \
info.si_errno = 0; \
info.si_code = sicode; \
info.si_addr = (void __user *)siaddr; \
exception_enter(regs); \
trapnr, signr) == NOTIFY_STOP) { \
exception_exit(regs); \
return; \
} \
conditional_sti(regs); \
do_trap(trapnr, signr, str, regs, error_code, &info); \
exception_exit(regs); \
}

Definition at line 193 of file traps.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 13 of file traps.c.

Function Documentation

asmlinkage void __attribute__ ( (weak)  )
read

Definition at line 593 of file traps.c.

DECLARE_BITMAP ( used_vectors  ,
NR_VECTORS   
)
dotraplinkage void do_coprocessor_error ( struct pt_regs regs,
long  error_code 
)

Definition at line 565 of file traps.c.

dotraplinkage void __kprobes do_debug ( struct pt_regs regs,
long  error_code 
)

Definition at line 396 of file traps.c.

dotraplinkage void __kprobes do_device_not_available ( struct pt_regs regs,
long  error_code 
)

Definition at line 646 of file traps.c.

invalid regs ip DO_ERROR ( X86_TRAP_OLD_MF  ,
SIGFPE  ,
"coprocessor segment overrun ,
coprocessor_segment_overrun   
)

Definition at line 218 of file traps.c.

DO_ERROR_INFO ( X86_TRAP_DE  ,
SIGFPE  ,
"divide error ,
divide_error  ,
FPE_INTDIV  ,
regs->  ip 
)
dotraplinkage void __kprobes notrace do_int3 ( struct pt_regs regs,
long  error_code 
)

Definition at line 310 of file traps.c.

dotraplinkage void do_simd_coprocessor_error ( struct pt_regs regs,
long  error_code 
)

Definition at line 576 of file traps.c.

dotraplinkage void do_spurious_interrupt_bug ( struct pt_regs regs,
long  error_code 
)

Definition at line 584 of file traps.c.

void __init early_trap_init ( void  )

Definition at line 692 of file traps.c.

EXPORT_SYMBOL_GPL ( used_vectors  )
EXPORT_SYMBOL_GPL ( math_state_restore  )
void math_error ( struct pt_regs regs,
int  error_code,
int  trapnr 
)

Definition at line 481 of file traps.c.

void math_state_restore ( void  )

Definition at line 611 of file traps.c.

asmlinkage int system_call ( void  )
void __init trap_init ( void  )

Definition at line 701 of file traps.c.

Variable Documentation

gate_desc idt_table [NR_VECTORS] __page_aligned_data = { { { { 0, 0 } } }, }

Definition at line 79 of file traps.c.

char ignore_fpu_irq

Definition at line 73 of file traps.c.

invalid ILL_ILLOPN

Definition at line 216 of file traps.c.

invalid invalid_op

Definition at line 216 of file traps.c.

Definition at line 216 of file traps.c.

SIGILL

Definition at line 216 of file traps.c.