cregit-Linux how code gets into the kernel

Release 4.14 arch/s390/include/asm/irqflags.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 *    Copyright IBM Corp. 2006, 2010
 *    Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
 */

#ifndef __ASM_IRQFLAGS_H

#define __ASM_IRQFLAGS_H

#include <linux/types.h>


#define ARCH_IRQ_ENABLED	(3UL << (BITS_PER_LONG - 8))

/* store then OR system mask. */

#define __arch_local_irq_stosm(__or)					\
({                                                                      \
        unsigned long __mask;                                           \
        asm volatile(                                                   \
                "       stosm   %0,%1"                                  \
                : "=Q" (__mask) : "i" (__or) : "memory");               \
        __mask;                                                         \
})

/* store then AND system mask. */

#define __arch_local_irq_stnsm(__and)					\
({                                                                      \
        unsigned long __mask;                                           \
        asm volatile(                                                   \
                "       stnsm   %0,%1"                                  \
                : "=Q" (__mask) : "i" (__and) : "memory");              \
        __mask;                                                         \
})

/* set system mask. */

static inline notrace void __arch_local_irq_ssm(unsigned long flags) { asm volatile("ssm %0" : : "Q" (flags) : "memory"); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1280.00%125.00%
Heiko Carstens16.67%125.00%
Martin Schwidefsky16.67%125.00%
Steven Rostedt16.67%125.00%
Total15100.00%4100.00%


static inline notrace unsigned long arch_local_save_flags(void) { return __arch_local_irq_stnsm(0xff); }

Contributors

PersonTokensPropCommitsCommitProp
Martin Schwidefsky1376.47%125.00%
Christian Bornträger211.76%125.00%
David Howells15.88%125.00%
Steven Rostedt15.88%125.00%
Total17100.00%4100.00%


static inline notrace unsigned long arch_local_irq_save(void) { return __arch_local_irq_stnsm(0xfc); }

Contributors

PersonTokensPropCommitsCommitProp
Martin Schwidefsky1482.35%133.33%
David Howells211.76%133.33%
Steven Rostedt15.88%133.33%
Total17100.00%3100.00%


static inline notrace void arch_local_irq_disable(void) { arch_local_irq_save(); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1076.92%133.33%
Martin Schwidefsky215.38%133.33%
Steven Rostedt17.69%133.33%
Total13100.00%3100.00%


static inline notrace void arch_local_irq_enable(void) { __arch_local_irq_stosm(0x03); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1173.33%133.33%
Martin Schwidefsky320.00%133.33%
Steven Rostedt16.67%133.33%
Total15100.00%3100.00%

/* This only restores external and I/O interrupt state */
static inline notrace void arch_local_irq_restore(unsigned long flags) { /* only disabled->disabled and disabled->enabled is valid */ if (flags & ARCH_IRQ_ENABLED) arch_local_irq_enable(); }

Contributors

PersonTokensPropCommitsCommitProp
Martin Schwidefsky940.91%125.00%
Christian Bornträger836.36%125.00%
David Howells418.18%125.00%
Steven Rostedt14.55%125.00%
Total22100.00%4100.00%


static inline notrace bool arch_irqs_disabled_flags(unsigned long flags) { return !(flags & ARCH_IRQ_ENABLED); }

Contributors

PersonTokensPropCommitsCommitProp
Heiko Carstens1680.00%125.00%
David Howells210.00%125.00%
Christian Bornträger15.00%125.00%
Steven Rostedt15.00%125.00%
Total20100.00%4100.00%


static inline notrace bool arch_irqs_disabled(void) { return arch_irqs_disabled_flags(arch_local_save_flags()); }

Contributors

PersonTokensPropCommitsCommitProp
David Howells1482.35%133.33%
Heiko Carstens211.76%133.33%
Steven Rostedt15.88%133.33%
Total17100.00%3100.00%

#endif /* __ASM_IRQFLAGS_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
David Howells6034.48%111.11%
Martin Schwidefsky5330.46%111.11%
Heiko Carstens3620.69%333.33%
Christian Bornträger169.20%222.22%
Steven Rostedt84.60%111.11%
Greg Kroah-Hartman10.57%111.11%
Total174100.00%9100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.