404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.14.251.36: ~ $
/*
 *  C6X IRQ flag handling
 *
 * Copyright (C) 2010 Texas Instruments Incorporated
 * Written by Mark Salter (msalter@redhat.com)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public Licence
 * as published by the Free Software Foundation; either version
 * 2 of the Licence, or (at your option) any later version.
 */

#ifndef _ASM_IRQFLAGS_H
#define _ASM_IRQFLAGS_H

#ifndef __ASSEMBLY__

/* read interrupt enabled status */
static inline unsigned long arch_local_save_flags(void)
{
	unsigned long flags;

	asm volatile (" mvc .s2 CSR,%0\n" : "=b"(flags));
	return flags;
}

/* set interrupt enabled status */
static inline void arch_local_irq_restore(unsigned long flags)
{
	asm volatile (" mvc .s2 %0,CSR\n" : : "b"(flags) : "memory");
}

/* unconditionally enable interrupts */
static inline void arch_local_irq_enable(void)
{
	unsigned long flags = arch_local_save_flags();
	flags |= 1;
	arch_local_irq_restore(flags);
}

/* unconditionally disable interrupts */
static inline void arch_local_irq_disable(void)
{
	unsigned long flags = arch_local_save_flags();
	flags &= ~1;
	arch_local_irq_restore(flags);
}

/* get status and disable interrupts */
static inline unsigned long arch_local_irq_save(void)
{
	unsigned long flags;

	flags = arch_local_save_flags();
	arch_local_irq_restore(flags & ~1);
	return flags;
}

/* test flags */
static inline int arch_irqs_disabled_flags(unsigned long flags)
{
	return (flags & 1) == 0;
}

/* test hardware interrupt enable bit */
static inline int arch_irqs_disabled(void)
{
	return arch_irqs_disabled_flags(arch_local_save_flags());
}

#endif /* __ASSEMBLY__ */
#endif /* __ASM_IRQFLAGS_H */

Filemanager

Name Type Size Permission Actions
Kbuild File 865 B 0644
asm-offsets.h File 35 B 0644
bitops.h File 2.17 KB 0644
bug.h File 705 B 0644
cache.h File 3.1 KB 0644
cacheflush.h File 2.05 KB 0644
checksum.h File 947 B 0644
clock.h File 3.51 KB 0644
cmpxchg.h File 1.57 KB 0644
delay.h File 1.67 KB 0644
dma-mapping.h File 911 B 0644
dscr.h File 909 B 0644
elf.h File 3.18 KB 0644
flat.h File 677 B 0644
ftrace.h File 97 B 0644
hardirq.h File 572 B 0644
irq.h File 1.59 KB 0644
irqflags.h File 1.67 KB 0644
linkage.h File 497 B 0644
megamod-pic.h File 213 B 0644
module.h File 639 B 0644
page.h File 312 B 0644
pgtable.h File 2.29 KB 0644
processor.h File 3.31 KB 0644
procinfo.h File 673 B 0644
ptrace.h File 998 B 0644
sections.h File 287 B 0644
setup.h File 914 B 0644
soc.h File 929 B 0644
special_insns.h File 1.82 KB 0644
string.h File 616 B 0644
switch_to.h File 992 B 0644
syscall.h File 2.2 KB 0644
syscalls.h File 1.73 KB 0644
thread_info.h File 2.63 KB 0644
timer64.h File 154 B 0644
timex.h File 867 B 0644
tlb.h File 192 B 0644
traps.h File 1.29 KB 0644
uaccess.h File 2.14 KB 0644
unaligned.h File 4.63 KB 0644