| 
									
										
										
										
											2009-01-21 17:26:06 +09:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Per-cpu current frame pointer - the location of the last exception frame on | 
					
						
							|  |  |  |  * the stack, stored in the per-cpu area. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Jeremy Fitzhardinge <jeremy@goop.org> | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _ASM_X86_IRQ_REGS_H
 | 
					
						
							|  |  |  | #define _ASM_X86_IRQ_REGS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <asm/percpu.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ARCH_HAS_OWN_IRQ_REGS
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DECLARE_PER_CPU(struct pt_regs *, irq_regs); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline struct pt_regs *get_irq_regs(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2012-05-11 15:35:27 +08:00
										 |  |  | 	return this_cpu_read(irq_regs); | 
					
						
							| 
									
										
										
										
											2009-01-21 17:26:06 +09:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	struct pt_regs *old_regs; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	old_regs = get_irq_regs(); | 
					
						
							| 
									
										
										
										
											2012-05-11 15:35:27 +08:00
										 |  |  | 	this_cpu_write(irq_regs, new_regs); | 
					
						
							| 
									
										
										
										
											2009-01-21 17:26:06 +09:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	return old_regs; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _ASM_X86_IRQ_REGS_32_H */
 |