Xenomai
3.1.2
machine.h
1
23
#ifndef _COBALT_ARM64_ASM_MACHINE_H
24
#define _COBALT_ARM64_ASM_MACHINE_H
25
26
#include <linux/version.h>
27
#include <asm/byteorder.h>
28
29
#define XNARCH_HOST_TICK_IRQ __ipipe_hrtimer_irq
30
31
#include <asm/barrier.h>
32
33
#if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0)
34
#include <asm/compiler.h>
35
#endif
36
37
#include <asm/cmpxchg.h>
38
#include <asm/switch_to.h>
39
#include <asm/system_misc.h>
40
#include <asm/timex.h>
41
#include <asm/processor.h>
42
#include <asm/ipipe.h>
43
#include <asm/cacheflush.h>
44
#include <cobalt/kernel/assert.h>
45
46
/* D-side always behaves as PIPT on AArch64 (see arch/arm64/include/asm/cachetype.h) */
47
#define xnarch_cache_aliasing() 0
48
49
static
inline
__attribute_const__
unsigned
long
ffnz(
unsigned
long
ul)
50
{
51
int
__r;
52
53
/* zero input is not valid */
54
XENO_WARN_ON(COBALT, ul == 0);
55
56
__asm__ (
"rbit\t%0, %1\n"
57
"clz\t%0, %0\n"
58
:
"=r"
(__r) :
"r"
(ul) :
"cc"
);
59
60
return
__r;
61
}
62
63
#include <asm-generic/xenomai/machine.h>
64
65
#endif
/* !_COBALT_ARM64_ASM_MACHINE_H */
kernel
cobalt
arch
arm64
include
asm
xenomai
machine.h
Generated by
1.9.1