this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Implement sys_linkat()

+30 -1
+1
src/kernel/emulation/linux/CMakeLists.txt
··· 65 65 unistd/readlink.c 66 66 unistd/symlink.c 67 67 unistd/link.c 68 + unistd/linkat.c 68 69 unistd/unlink.c 69 70 unistd/chdir.c 70 71 unistd/mknod.c
+3 -1
src/kernel/emulation/linux/syscalls.c
··· 39 39 #include "unistd/umask.h" 40 40 #include "unistd/chroot.h" 41 41 #include "unistd/link.h" 42 + #include "unistd/linkat.h" 42 43 #include "unistd/unlink.h" 43 44 #include "unistd/chdir.h" 44 45 #include "unistd/mknod.h" ··· 345 346 [465] = sys_renameat, 346 347 [466] = sys_faccessat, 347 348 [467] = sys_fchmodat, 348 - [468] = sys_fchownat 349 + [468] = sys_fchownat, 349 350 [469] = sys_fstatat, 350 351 [470] = sys_fstatat64, 352 + [471] = sys_linkat, 351 353 [500] = sys_getentropy, 352 354 }; 353 355
+19
src/kernel/emulation/linux/unistd/linkat.c
··· 1 + #include "link.h" 2 + #include "../base.h" 3 + #include "../errno.h" 4 + #include <linux-syscalls/linux.h> 5 + #include "../../../../../platform-include/sys/errno.h" 6 + #include "../common_at.h" 7 + 8 + extern char* strcpy(char* dst, const char* src); 9 + 10 + long sys_linkat(int fd, const char* path, int fdlink, const char* link, int flag) 11 + { 12 + int ret; 13 + 14 + ret = LINUX_SYSCALL(__NR_linkat, atfd(fd), path, atfd(fdlink), link, atflags_bsd_to_linux(flag)); 15 + if (ret < 0) 16 + ret = errno_linux_to_bsd(ret); 17 + 18 + return ret; 19 + }
+7
src/kernel/emulation/linux/unistd/linkat.h
··· 1 + #ifndef LINUX_LINKAT_H 2 + #define LINUX_LINKAT_H 3 + 4 + long sys_linkat(int fd, const char* path, int fdlink, const char* link, int flag); 5 + 6 + #endif 7 +