]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - kernel/irq/settings.h
genirq: Mirror IRQ_PER_CPU and IRQ_NO_BALANCING in irq_data.state
[mirror_ubuntu-zesty-kernel.git] / kernel / irq / settings.h
index bb104a2dce73088ebe800b9ca78d2dcc14c35e89..ba0fffe410ad2b58904078093872dff4dcb2ad38 100644 (file)
@@ -4,6 +4,9 @@
  */
 enum {
        _IRQ_DEFAULT_INIT_FLAGS = IRQ_DEFAULT_INIT_FLAGS,
+       _IRQ_PER_CPU            = IRQ_PER_CPU,
+       _IRQ_NO_BALANCING       = IRQ_NO_BALANCING,
+       _IRQF_MODIFY_MASK       = IRQF_MODIFY_MASK,
 };
 
 #undef IRQ_INPROGRESS
@@ -22,3 +25,36 @@ enum {
 #define IRQ_WAKEUP             GOT_YOU_MORON
 #undef IRQ_MOVE_PENDING
 #define IRQ_MOVE_PENDING       GOT_YOU_MORON
+#undef IRQ_PER_CPU
+#define IRQ_PER_CPU            GOT_YOU_MORON
+#undef IRQ_NO_BALANCING
+#define IRQ_NO_BALANCING       GOT_YOU_MORON
+#undef IRQF_MODIFY_MASK
+#define IRQF_MODIFY_MASK       GOT_YOU_MORON
+
+static inline void
+irq_settings_clr_and_set(struct irq_desc *desc, u32 clr, u32 set)
+{
+       desc->status &= ~(clr & _IRQF_MODIFY_MASK);
+       desc->status |= (set & _IRQF_MODIFY_MASK);
+}
+
+static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
+{
+       return desc->status & _IRQ_PER_CPU;
+}
+
+static inline void irq_settings_set_per_cpu(struct irq_desc *desc)
+{
+       desc->status |= _IRQ_PER_CPU;
+}
+
+static inline void irq_settings_set_no_balancing(struct irq_desc *desc)
+{
+       desc->status |= _IRQ_NO_BALANCING;
+}
+
+static inline bool irq_settings_has_no_balance_set(struct irq_desc *desc)
+{
+       return desc->status & _IRQ_NO_BALANCING;
+}