From 59d87ccc99f431da06a0ffab0d3e702d9ef82f48 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Fri, 19 Nov 2021 05:44:21 -0800 Subject: chore: make dependence on static syscalls explicit --- sys/linux/src/internal.h | 271 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 sys/linux/src/internal.h (limited to 'sys/linux/src/internal.h') diff --git a/sys/linux/src/internal.h b/sys/linux/src/internal.h new file mode 100644 index 0000000..e8bb76c --- /dev/null +++ b/sys/linux/src/internal.h @@ -0,0 +1,271 @@ +#pragma once + +#include +#include +#include + +#define syscall0(n) _syscall0(n) +#define syscall1(n,a1) _syscall1(n,sysarg(a1)) +#define syscall2(n,a1,a2) _syscall2(n,sysarg(a1),sysarg(a2)) +#define syscall3(n,a1,a2,a3) _syscall3(n,sysarg(a1),sysarg(a2),sysarg(a3)) +#define syscall4(n,a1,a2,a3,a4) _syscall4(n,sysarg(a1),sysarg(a2),sysarg(a3),sysarg(a4)) +#define syscall5(n,a1,a2,a3,a4,a5) _syscall5(n,sysarg(a1),sysarg(a2),sysarg(a3),sysarg(a4),sysarg(a5)) +#define syscall6(n,a1,a2,a3,a4,a5,a6) _syscall6(n,sysarg(a1),sysarg(a2),sysarg(a3),sysarg(a4),sysarg(a5),sysarg(a6)) +#define syscall7(n,a1,a2,a3,a4,a5,a6,a7) _syscall7(n,sysarg(a1),sysarg(a2),sysarg(a3),sysarg(a4),sysarg(a5),sysarg(a6),sysarg(a7)) + +#define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n +#define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) +#define __SYSCALL_CONCAT_X(a,b) a##b +#define __SYSCALL_CONCAT(a,b) __SYSCALL_CONCAT_X(a,b) +#define __SYSCALL_DISP(b,...) __SYSCALL_CONCAT(b,__SYSCALL_NARGS(__VA_ARGS__))(__VA_ARGS__) + +#define syscall(...) __SYSCALL_DISP(syscall,__VA_ARGS__) + +#ifndef sysarg +# define sysarg(x) ((long)(x)) +#endif + +#define error(ret) ((ret) < 0 && (ret) > -4096) ? (-(ret)) : 0 + +/********************************************* + * XXX: below this line is computer generated + *********************************************/ + +/* legacy cleanup */ +#ifdef ·SocketCall +#endif + +#ifdef ·GetUid32 +# undef ·LChown +# undef ·GetUid +# undef ·GetGid +# undef ·GetEUid +# undef ·GetEGid +# undef ·SetReUid +# undef ·SetReGid +# undef ·GetGroups +# undef ·SetGroups +# undef ·FChown +# undef ·SetResUid +# undef ·GetResUid +# undef ·SetResGid +# undef ·GetResGid +# undef ·Chown +# undef ·SetUid +# undef ·SetGid +# undef ·SetFsUid +# undef ·SetFsGid +# define ·LChown ·LChown32 +# define ·GetUid ·GetUid32 +# define ·GetGid ·GetGid32 +# define ·GetEUid ·GetEUid32 +# define ·GetEGid ·GetEGid32 +# define ·SetReUid ·SetReUid32 +# define ·SetReGid ·SetReGid32 +# define ·GetGroups ·GetGroups32 +# define ·SetGroups ·SetGroups32 +# define ·FChown ·FChown32 +# define ·SetResUid ·SetResUid32 +# define ·GetResUid ·GetResUid32 +# define ·SetResGid ·SetResGid32 +# define ·GetResGid ·GetResGid32 +# define ·Chown ·Chown32 +# define ·SetUid ·SetUid32 +# define ·SetGid ·SetGid32 +# define ·SetFsUid ·SetFsUid32 +# define ·SetFsGid ·SetFsGid32 +#endif + +#ifdef ·FCntl64 +# undef ·FCntl +# define ·FCntl ·FCntl64 +#endif + +#ifdef ·GetDents64 +# undef ·GetDents +# define ·GetDents ·GetDents64 +#endif + +#ifdef ·FTruncate64 +# undef ·FTruncate +# undef ·Truncate +# define ·FTruncate ·FTruncate64 +# define ·Truncate ·Truncate64 +#endif + +#ifdef ·Stat64 +# undef ·Stat +# define ·Stat ·Stat64 +#endif + +#ifdef ·FStat64 +# undef ·FStat +# define ·FStat ·FStat64 +#endif + +#ifdef ·LStat64 +# undef ·LStat +# define ·LStat ·LStat64 +#endif + +#ifdef ·StatFs64 +# undef ·StatFs +# define ·StatFs ·StatFs64 +#endif + +#ifdef ·FStatFs64 +# undef ·FStatFs +# define ·FStatFs ·FStatFs64 +#endif + +#ifdef ·NewFStatAt +# undef ·FStatAt +# define ·FStatAt ·NewFStatAt +# undef ·FStatAt +# define ·FStatAt ·FStatAt64 +#endif + +#ifdef ·UGetRLimit +# undef ·GetRLimit +# define ·GetRLimit ·UGetRLimit +#endif + +#ifdef ·NewSelect +# undef ·Select +# define ·Select ·NewSelect +#endif + +#ifdef ·PRead64 +# undef ·PRead +# undef ·PWrite +# define ·PRead ·PRead64 +# define ·PWrite ·PWrite64 +#endif + +#ifdef ·FAdvise6464 +# undef ·FAdvise +# define ·FAdvise ·FAdvise6464 +# undef ·FAdvise +# define ·FAdvise ·FAdvise64 +#endif + +#ifdef ·SendFile64 +# undef ·SendFile +# define ·SendFile ·SendFile64 +#endif + +#ifndef ·TimerSetTime +# define ·TimerSetTime ·TimerSetTime32 +#endif + +#ifndef ·TimerGetTime +# define ·TimerGetTime ·TimerGetTime32 +#endif + +#ifndef ·TimerFdSetTime +# define ·TimerFdSetTime ·TimerFdSetTime32 +#endif + +#ifndef ·TimerFdGetTime +# define ·TimerFdGetTime ·TimerFdGetTime32 +#endif + +#ifndef ·ClockSetTime +# define ·ClockSetTime ·ClockSetTime32 +#endif + +#ifndef ·ClockGetTime +# define ·ClockGetTime ·ClockGetTime32 +#endif + +#ifndef ·ClockGetRes +# define ·ClockGetRes ·ClockGetResTime32 +#endif + +#ifndef ·ClockNanoSleep +# define ·ClockNanoSleep ·ClockNanoSleepTime32 +#endif + +#ifndef ·GetTimeOfDay +# define ·GetTimeOfDay ·GetTimeOfDayTime32 +#endif + +#ifndef ·SetTimeOfDay +# define ·SetTimeOfDay ·SetTimeOfDayTime32 +#endif + +#ifndef ·ClockGetTime +# define ·ClockGetTime ·ClockGetTime64 +#endif + +#ifndef ·ClockSetTime +# define ·ClockSetTime ·ClockSetTime64 +#endif + +#ifndef ·ClockAdjTime +# define ·ClockAdjTime ·ClockAdjTime64 +#endif + +#ifndef ·ClockGetRes +# define ·ClockGetRes ·ClockGetResTime64 +#endif + +#ifndef ·ClockNanoSleep +# define ·ClockNanoSleep ·ClockNanoSleepTime64 +#endif + +#ifndef ·TimerGetTime +# define ·TimerGetTime ·TimerGetTime64 +#endif + +#ifndef ·TimerSetTime +# define ·TimerSetTime ·TimerSetTime64 +#endif + +#ifndef ·TimerFdGetTime +# define ·TimerFdGetTime ·TimerFdGetTime64 +#endif + +#ifndef ·TimerFdSetTime +# define ·TimerFdSetTime ·TimerFdSetTime64 +#endif + +#ifndef ·UTimeNsAt +# define ·UTimeNsAt ·UTimeNsAtTime64 +#endif + +#ifndef ·PSelect6 +# define ·PSelect6 ·PSelect6Time64 +#endif + +#ifndef ·PPoll +# define ·PPoll ·PPollTime64 +#endif + +#ifndef ·RecvMMsg +# define ·RecvMMsg ·RecvMMsgTime64 +#endif + +#ifndef ·MQTimedSend +# define ·MQTimedSend ·MQTimedSendTime64 +#endif + +#ifndef ·MQTimedReceive +# define ·MQTimedReceive ·MQTimedReceiveTime64 +#endif + +#ifndef ·RtSigTimedWait +# define ·RtSigTimedWait ·RtSigTimedWaitTime64 +#endif + +#ifndef ·Futex +# define ·Futex ·FutexTime64 +#endif + +#ifndef ·SchedRrGetInterval +# define ·SchedRrGetInterval ·SchedRrGetIntervalTime64 +#endif + +#ifndef ·Accept +# define ·Accept ·Accept4 +#endif -- cgit v1.2.1