X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fmissing.h;h=cdc38b2dd8945850b9b316c29eabe9af0a176391;hb=c5e04d51277994cca29234b33a6b8fc90a183cf3;hp=94d9d8d35dd3e8e66daeee4e787c14e83ba2391b;hpb=b6b1849830f5e4a6065c3b0c993668e500c954d3;p=elogind.git diff --git a/src/shared/missing.h b/src/shared/missing.h index 94d9d8d35..cdc38b2dd 100644 --- a/src/shared/missing.h +++ b/src/shared/missing.h @@ -679,6 +679,30 @@ static inline pid_t raw_getpid(void) { } #if !HAVE_DECL_RENAMEAT2 + +#ifndef __NR_renameat2 +# if defined __x86_64__ +# define __NR_renameat2 316 +# elif defined __arm__ +# define __NR_renameat2 382 +# elif defined _MIPS_SIM +# if _MIPS_SIM == _MIPS_SIM_ABI32 +# define __NR_renameat2 4351 +# endif +# if _MIPS_SIM == _MIPS_SIM_NABI32 +# define __NR_renameat2 6315 +# endif +# if _MIPS_SIM == _MIPS_SIM_ABI64 +# define __NR_renameat2 5311 +# endif +# elif defined __i386__ +# define __NR_renameat2 353 +# else +# warning "__NR_renameat2 unknown for your architecture" +# define __NR_renameat2 0xffffffff +# endif +#endif + static inline int renameat2(int oldfd, const char *oldname, int newfd, const char *newname, unsigned flags) { return syscall(__NR_renameat2, oldfd, oldname, newfd, newname, flags); } @@ -687,3 +711,13 @@ static inline int renameat2(int oldfd, const char *oldname, int newfd, const cha #ifndef RENAME_NOREPLACE #define RENAME_NOREPLACE (1 << 0) #endif + +#if !HAVE_DECL_KCMP +static inline int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2) { + return syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2); +} +#endif + +#ifndef KCMP_FILE +#define KCMP_FILE 0 +#endif