Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/arm64/include/asm/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 3 kB image not shown  

Quelle  syscall_wrapper.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * syscall_wrapper.h - arm64 specific wrappers to syscall definitions
 *
 * Based on arch/x86/include/asm_syscall_wrapper.h
 */


#ifndef __ASM_SYSCALL_WRAPPER_H
#define __ASM_SYSCALL_WRAPPER_H

#include <asm/ptrace.h>

#define SC_ARM64_REGS_TO_ARGS(x, ...)    \
 __MAP(x,__SC_ARGS     \
       ,,regs->regs[0],,regs->regs[1],,regs->regs[2] \
       ,,regs->regs[3],,regs->regs[4],,regs->regs[5])

#ifdef CONFIG_COMPAT

#define COMPAT_SYSCALL_DEFINEx(x, name, ...)      \
 asmlinkage long __arm64_compat_sys##name(const struct pt_regs *regs);  \
 ALLOW_ERROR_INJECTION(__arm64_compat_sys##name, ERRNO);    \
 static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));  \
 static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
 asmlinkage long __arm64_compat_sys##name(const struct pt_regs *regs)  \
 {          \
  return __se_compat_sys##name(SC_ARM64_REGS_TO_ARGS(x,__VA_ARGS__)); \
 }          \
 static long __se_compat_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))  \
 {          \
  return __do_compat_sys##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \
 }          \
 static inline long __do_compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))

#define COMPAT_SYSCALL_DEFINE0(sname)       \
 asmlinkage long __arm64_compat_sys_##sname(const struct pt_regs *__unused); \
 ALLOW_ERROR_INJECTION(__arm64_compat_sys_##sname, ERRNO);   \
 asmlinkage long __arm64_compat_sys_##sname(const struct pt_regs *__unused)

#define COND_SYSCALL_COMPAT(name)        \
 asmlinkage long __arm64_compat_sys_##name(const struct pt_regs *regs);  \
 asmlinkage long __weak __arm64_compat_sys_##name(const struct pt_regs *regs) \
 {          \
  return sys_ni_syscall();      \
 }

#endif /* CONFIG_COMPAT */

#define __SYSCALL_DEFINEx(x, name, ...)      \
 asmlinkage long __arm64_sys##name(const struct pt_regs *regs);  \
 ALLOW_ERROR_INJECTION(__arm64_sys##name, ERRNO);   \
 static long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__));  \
 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \
 asmlinkage long __arm64_sys##name(const struct pt_regs *regs)  \
 {         \
  return __se_sys##name(SC_ARM64_REGS_TO_ARGS(x,__VA_ARGS__)); \
 }         \
 static long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__))  \
 {         \
  long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__)); \
  __MAP(x,__SC_TEST,__VA_ARGS__);     \
  __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__));  \
  return ret;       \
 }         \
 static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))

#define SYSCALL_DEFINE0(sname)       \
 SYSCALL_METADATA(_##sname, 0);      \
 asmlinkage long __arm64_sys_##sname(const struct pt_regs *__unused); \
 ALLOW_ERROR_INJECTION(__arm64_sys_##sname, ERRNO);   \
 asmlinkage long __arm64_sys_##sname(const struct pt_regs *__unused)

#define COND_SYSCALL(name)       \
 asmlinkage long __arm64_sys_##name(const struct pt_regs *regs);  \
 asmlinkage long __weak __arm64_sys_##name(const struct pt_regs *regs) \
 {         \
  return sys_ni_syscall();     \
 }

asmlinkage long __arm64_sys_ni_syscall(const struct pt_regs *__unused);

#endif /* __ASM_SYSCALL_WRAPPER_H */

Messung V0.5
C=97 H=86 G=91

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.