gic_hw_ops->gic_host_irq_type->end(irq);
}
-hw_irq_controller no_irq_type = {
- .typename = "none",
- .startup = irq_startup_none,
- .shutdown = irq_shutdown_none,
- .enable = irq_enable_none,
- .disable = irq_disable_none,
- .ack = irq_ack_none,
- .end = irq_end_none
-};
-
static irq_desc_t irq_desc[NR_IRQS];
static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
BUG_ON("unimplemented");
}
-hw_irq_controller no_irq_type = {
- .typename = "none",
- .startup = irq_startup_none,
- .shutdown = irq_shutdown_none,
- .enable = irq_enable_none,
- .disable = irq_disable_none,
- .ack = irq_ack_none,
-};
-
int arch_init_one_irq_desc(struct irq_desc *desc)
{
BUG_ON("unimplemented");
ack_bad_irq(desc->irq);
}
-hw_irq_controller no_irq_type = {
- "none",
- irq_startup_none,
- irq_shutdown_none,
- irq_enable_none,
- irq_disable_none,
- irq_ack_none,
-};
-
static vmask_t *irq_get_used_vector_mask(int irq)
{
vmask_t *ret = NULL;
DEFINE_PER_CPU(const struct cpu_user_regs *, irq_regs);
+const hw_irq_controller no_irq_type = {
+ .typename = "none",
+ .startup = irq_startup_none,
+ .shutdown = irq_shutdown_none,
+ .enable = irq_enable_none,
+ .disable = irq_disable_none,
+ .ack = irq_ack_none,
+
+#ifdef irq_end_none /* Hook is optional per arch */
+ .end = irq_end_none,
+#endif
+};
+
int init_one_irq_desc(struct irq_desc *desc)
{
int err;
void (*handler)(int irq, void *dev_id),
const char *devname, void *dev_id);
-extern hw_irq_controller no_irq_type;
+extern const hw_irq_controller no_irq_type;
void cf_check no_action(int cpl, void *dev_id);
unsigned int cf_check irq_startup_none(struct irq_desc *desc);
void cf_check irq_actor_none(struct irq_desc *desc);