Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aafe4dbe authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Arnd Bergmann
Browse files

asm-generic: add generic versions of common headers



These are all kernel internal interfaces that get copied
around a lot. In most cases, architectures can provide
their own optimized versions, but these generic versions
can work as well.

I have tried to use the most common contents of each
header to allow existing architectures to migrate easily.

Thanks to Remis for suggesting a number of cleanups.

Signed-off-by: default avatarRemis Lima Baima <remis.developer@googlemail.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 9858c60c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
#ifndef __ASM_GENERIC_BUGS_H
#define __ASM_GENERIC_BUGS_H
/*
 * This file is included by 'init/main.c' to check for
 * architecture-dependent bugs.
 */

static inline void check_bugs(void) { }

#endif	/* __ASM_GENERIC_BUGS_H */
+9 −0
Original line number Diff line number Diff line
#ifndef __ASM_GENERIC_CURRENT_H
#define __ASM_GENERIC_CURRENT_H

#include <linux/thread_info.h>

#define get_current() (current_thread_info()->task)
#define current get_current()

#endif /* __ASM_GENERIC_CURRENT_H */
+9 −0
Original line number Diff line number Diff line
#ifndef __ASM_GENERIC_DELAY_H
#define __ASM_GENERIC_DELAY_H

extern void __udelay(unsigned long usecs);
extern void __delay(unsigned long loops);

#define udelay(n) __udelay(n)

#endif /* __ASM_GENERIC_DELAY_H */
+12 −0
Original line number Diff line number Diff line
#ifndef __ASM_GENERIC_FB_H_
#define __ASM_GENERIC_FB_H_
#include <linux/fb.h>

#define fb_pgprotect(...) do {} while (0)

static inline int fb_is_primary_device(struct fb_info *info)
{
	return 0;
}

#endif /* __ASM_GENERIC_FB_H_ */
+34 −0
Original line number Diff line number Diff line
#ifndef __ASM_GENERIC_HARDIRQ_H
#define __ASM_GENERIC_HARDIRQ_H

#include <linux/cache.h>
#include <linux/threads.h>
#include <linux/irq.h>

typedef struct {
	unsigned long __softirq_pending;
} ____cacheline_aligned irq_cpustat_t;

#include <linux/irq_cpustat.h>	/* Standard mappings for irq_cpustat_t above */

#ifndef HARDIRQ_BITS
#define HARDIRQ_BITS	8
#endif

/*
 * The hardirq mask has to be large enough to have
 * space for potentially all IRQ sources in the system
 * nesting on a single CPU:
 */
#if (1 << HARDIRQ_BITS) < NR_IRQS
# error HARDIRQ_BITS is too low!
#endif

#ifndef ack_bad_irq
static inline void ack_bad_irq(unsigned int irq)
{
	printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
}
#endif

#endif /* __ASM_GENERIC_HARDIRQ_H */
Loading