mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-01-30 23:02:18 +00:00
2a709f28fa
* 0day explit mitigation * Memory corruption prevention * Privilege escalation prevention * Buffer over flow prevention * File System corruption defense * Thread escape prevention This may very well be the most intensive inclusion to BrooklynR. This will not be part of an x86 suite nor it will be released as tool kit. The security core toolkit will remain part of kernel base.
67 lines
1.5 KiB
C
67 lines
1.5 KiB
C
#ifndef __ASM_GENERIC_IRQFLAGS_H
|
|
#define __ASM_GENERIC_IRQFLAGS_H
|
|
|
|
/*
|
|
* All architectures should implement at least the first two functions,
|
|
* usually inline assembly will be the best way.
|
|
*/
|
|
#ifndef ARCH_IRQ_DISABLED
|
|
#define ARCH_IRQ_DISABLED 0
|
|
#define ARCH_IRQ_ENABLED 1
|
|
#endif
|
|
|
|
/* read interrupt enabled status */
|
|
#ifndef arch_local_save_flags
|
|
unsigned long arch_local_save_flags(void);
|
|
#endif
|
|
|
|
/* set interrupt enabled status */
|
|
#ifndef arch_local_irq_restore
|
|
void arch_local_irq_restore(unsigned long flags);
|
|
#endif
|
|
|
|
/* get status and disable interrupts */
|
|
#ifndef arch_local_irq_save
|
|
static inline unsigned long arch_local_irq_save(void)
|
|
{
|
|
unsigned long flags;
|
|
flags = arch_local_save_flags();
|
|
arch_local_irq_restore(ARCH_IRQ_DISABLED);
|
|
return flags;
|
|
}
|
|
#endif
|
|
|
|
/* test flags */
|
|
#ifndef arch_irqs_disabled_flags
|
|
static inline int arch_irqs_disabled_flags(unsigned long flags)
|
|
{
|
|
return flags == ARCH_IRQ_DISABLED;
|
|
}
|
|
#endif
|
|
|
|
/* unconditionally enable interrupts */
|
|
#ifndef arch_local_irq_enable
|
|
static inline void arch_local_irq_enable(void)
|
|
{
|
|
arch_local_irq_restore(ARCH_IRQ_ENABLED);
|
|
}
|
|
#endif
|
|
|
|
/* unconditionally disable interrupts */
|
|
#ifndef arch_local_irq_disable
|
|
static inline void arch_local_irq_disable(void)
|
|
{
|
|
arch_local_irq_restore(ARCH_IRQ_DISABLED);
|
|
}
|
|
#endif
|
|
|
|
/* test hardware interrupt enable bit */
|
|
#ifndef arch_irqs_disabled
|
|
static inline int arch_irqs_disabled(void)
|
|
{
|
|
return arch_irqs_disabled_flags(arch_local_save_flags());
|
|
}
|
|
#endif
|
|
|
|
#endif /* __ASM_GENERIC_IRQFLAGS_H */
|