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

Linux Cross Reference
Linux/include/asm-ppc/hw_irq.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * $Id: irq_control.h,v 1.8 1999/09/15 23:58:48 cort Exp $
  3  *
  4  * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu>
  5  */
  6 #ifdef __KERNEL__
  7 #ifndef _PPC_HW_IRQ_H
  8 #define _PPC_HW_IRQ_H
  9 
 10 struct int_control_struct
 11 {
 12         void (*int_cli)(void);
 13         void (*int_sti)(void);
 14         void (*int_restore_flags)(unsigned long);
 15         void (*int_save_flags)(unsigned long *);
 16         void (*int_set_lost)(unsigned long);
 17 };
 18 extern struct int_control_struct int_control;
 19 extern unsigned long timer_interrupt_intercept;
 20 extern unsigned long do_IRQ_intercept;
 21 int timer_interrupt(struct pt_regs *);
 22 
 23 extern void __no_use_sti(void);
 24 extern void __no_use_cli(void);
 25 extern void __no_use_restore_flags(unsigned long);
 26 extern void __no_use_save_flags(unsigned long *);
 27 extern void __no_use_set_lost(unsigned long);
 28 
 29 #define __cli() int_control.int_cli()
 30 #define __sti() int_control.int_sti()
 31 #define __save_flags(flags) int_control.int_save_flags(&flags)
 32 #define __restore_flags(flags) int_control.int_restore_flags(flags)
 33 #define __save_and_cli(flags) ({__save_flags(flags);__cli();})
 34 #define __set_lost(irq) ({ if ((ulong)int_control.int_set_lost) int_control.int_set_lost(irq); })
 35 
 36 extern void do_lost_interrupts(unsigned long);
 37 extern atomic_t ppc_n_lost_interrupts;
 38 
 39 #define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);})
 40 #define unmask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->enable) irq_desc[irq].handler->enable(irq);})
 41 #define mask_and_ack_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->ack) irq_desc[irq].handler->ack(irq);})
 42 
 43 #endif /* _PPC_HW_IRQ_H */
 44 #endif /* __KERNEL__ */
 45 

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

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.