Xenomai
3.3.2
Loading...
Searching...
No Matches
machine.h
1
/*
2
* SPDX-License-Identifier: GPL-2.0
3
*
4
* Copyright (C) 2015 Dmitriy Cherkasov <dmitriy@mperpetuo.com>
5
*/
6
7
#ifndef _COBALT_ARM64_MACHINE_H
8
#define _COBALT_ARM64_MACHINE_H
9
10
#include <linux/version.h>
11
#include <asm/byteorder.h>
12
#include <cobalt/kernel/assert.h>
13
14
/* D-side always behaves as PIPT on AArch64 (see arch/arm64/include/asm/cachetype.h) */
15
#define xnarch_cache_aliasing() 0
16
17
static
inline
__attribute_const__
unsigned
long
ffnz(
unsigned
long
ul)
18
{
19
int
__r;
20
21
/* zero input is not valid */
22
XENO_WARN_ON(COBALT, ul == 0);
23
24
__asm__ (
"rbit\t%0, %1\n"
25
"clz\t%0, %0\n"
26
:
"=r"
(__r) :
"r"
(ul) :
"cc"
);
27
28
return
__r;
29
}
30
31
#include <asm-generic/xenomai/machine.h>
32
33
#endif
/* !_COBALT_ARM64_MACHINE_H */
kernel
cobalt
arch
arm64
include
asm
xenomai
machine.h
Generated by
1.9.8