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

TOMOYO Linux Cross Reference
Linux/arch/sparc/kernel/irq.h

Version: ~ [ linux-5.6-rc7 ] ~ [ linux-5.5.11 ] ~ [ linux-5.4.27 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.112 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.174 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.217 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.217 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.82 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #include <linux/platform_device.h>
  2 
  3 #include <asm/cpu_type.h>
  4 
  5 struct irq_bucket {
  6         struct irq_bucket *next;
  7         unsigned int real_irq;
  8         unsigned int irq;
  9         unsigned int pil;
 10 };
 11 
 12 #define SUN4M_HARD_INT(x)       (0x000000001 << (x))
 13 #define SUN4M_SOFT_INT(x)       (0x000010000 << (x))
 14 
 15 #define SUN4D_MAX_BOARD 10
 16 #define SUN4D_MAX_IRQ ((SUN4D_MAX_BOARD + 2) << 5)
 17 
 18 /* Map between the irq identifier used in hw to the
 19  * irq_bucket. The map is sufficient large to hold
 20  * the sun4d hw identifiers.
 21  */
 22 extern struct irq_bucket *irq_map[SUN4D_MAX_IRQ];
 23 
 24 
 25 /* sun4m specific type definitions */
 26 
 27 /* This maps direct to CPU specific interrupt registers */
 28 struct sun4m_irq_percpu {
 29         u32     pending;
 30         u32     clear;
 31         u32     set;
 32 };
 33 
 34 /* This maps direct to global interrupt registers */
 35 struct sun4m_irq_global {
 36         u32     pending;
 37         u32     mask;
 38         u32     mask_clear;
 39         u32     mask_set;
 40         u32     interrupt_target;
 41 };
 42 
 43 extern struct sun4m_irq_percpu __iomem *sun4m_irq_percpu[SUN4M_NCPUS];
 44 extern struct sun4m_irq_global __iomem *sun4m_irq_global;
 45 
 46 /* The following definitions describe the individual platform features: */
 47 #define FEAT_L10_CLOCKSOURCE (1 << 0) /* L10 timer is used as a clocksource */
 48 #define FEAT_L10_CLOCKEVENT  (1 << 1) /* L10 timer is used as a clockevent */
 49 #define FEAT_L14_ONESHOT     (1 << 2) /* L14 timer clockevent can oneshot */
 50 
 51 /*
 52  * Platform specific configuration
 53  * The individual platforms assign their platform
 54  * specifics in their init functions.
 55  */
 56 struct sparc_config {
 57         void (*init_timers)(void);
 58         unsigned int (*build_device_irq)(struct platform_device *op,
 59                                          unsigned int real_irq);
 60 
 61         /* generic clockevent features - see FEAT_* above */
 62         int features;
 63 
 64         /* clock rate used for clock event timer */
 65         int clock_rate;
 66 
 67         /* one period for clock source timer */
 68         unsigned int cs_period;
 69 
 70         /* function to obtain offsett for cs period */
 71         unsigned int (*get_cycles_offset)(void);
 72 
 73         void (*clear_clock_irq)(void);
 74         void (*load_profile_irq)(int cpu, unsigned int limit);
 75 };
 76 extern struct sparc_config sparc_config;
 77 
 78 unsigned int irq_alloc(unsigned int real_irq, unsigned int pil);
 79 void irq_link(unsigned int irq);
 80 void irq_unlink(unsigned int irq);
 81 void handler_irq(unsigned int pil, struct pt_regs *regs);
 82 
 83 unsigned long leon_get_irqmask(unsigned int irq);
 84 
 85 #ifdef CONFIG_SMP
 86 
 87 /* All SUN4D IPIs are sent on this IRQ, may be shared with hard IRQs */
 88 #define SUN4D_IPI_IRQ 13
 89 
 90 extern void sun4d_ipi_interrupt(void);
 91 
 92 #endif
 93 

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

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | 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.

osdn.jp