From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 01 Nov 2024 02:11:33 +0000 Subject: [PATCH] add xenomai --- kernel/arch/arm64/include/asm/vdso/gettimeofday.h | 65 ++++++++++++++++++++++++++++++++ 1 files changed, 65 insertions(+), 0 deletions(-) diff --git a/kernel/arch/arm64/include/asm/vdso/gettimeofday.h b/kernel/arch/arm64/include/asm/vdso/gettimeofday.h index 4b4c0da..030fe8d 100644 --- a/kernel/arch/arm64/include/asm/vdso/gettimeofday.h +++ b/kernel/arch/arm64/include/asm/vdso/gettimeofday.h @@ -102,6 +102,71 @@ } #endif +#ifdef CONFIG_GENERIC_CLOCKSOURCE_VDSO + +#include <uapi/linux/fcntl.h> + +extern struct vdso_priv _vdso_priv; /* vdso.lds.S */ + +static __always_inline struct vdso_priv *__arch_get_vdso_priv(void) +{ + return &_vdso_priv; +} + +static __always_inline int clock_open_device(const char *path, int mode) +{ + register int sc asm("w8") = __NR_openat; + register long ret asm("x0"); + register long x0 asm("x0") = AT_FDCWD; + register long x1 asm("x1") = (long)path; + register long x2 asm("x2") = mode; + + asm volatile( + "svc #0\n" + : "=r" (ret) + : "r" (sc), + "r" (x0), "r" (x1), "r" (x2) + : "cc", "memory"); + + return ret; +} + +static __always_inline int clock_ioctl_device(int fd, unsigned int cmd, long arg) +{ + register int sc asm("w8") = __NR_ioctl; + register long ret asm("x0"); + register long x0 asm("x0") = fd; + register long x1 asm("x1") = cmd; + register long x2 asm("x2") = arg; + + asm volatile( + "svc #0\n" + : "=r" (ret) + : "r" (sc), + "r" (x0), "r" (x1), "r" (x2) + : "cc", "memory"); + + return ret; +} + +static __always_inline int clock_close_device(int fd) +{ + register int sc asm("w8") = __NR_close; + register long ret asm("x0"); + register long x0 asm("x0") = fd; + + asm volatile( + "svc #0\n" + : "=r" (ret) + : "r" (sc), + "r" (x0) + : "cc", "memory"); + + return ret; +} + +#endif /* CONFIG_GENERIC_CLOCKSOURCE_VDSO */ + #endif /* !__ASSEMBLY__ */ #endif /* __ASM_VDSO_GETTIMEOFDAY_H */ -- Gitblit v1.6.2