From 75ef93e42a7067028e8cd2afbc9b9e938db598f0 Mon Sep 17 00:00:00 2001 From: Petr Machata Date: Thu, 30 Jan 2014 19:35:56 -0500 Subject: [PATCH] Add some missing system calls to syscalls.conf --- etc/syscalls.conf | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/etc/syscalls.conf b/etc/syscalls.conf index 562f4e7..09d347d 100644 --- a/etc/syscalls.conf +++ b/etc/syscalls.conf @@ -1,6 +1,10 @@ # syscall.conf -- system call prototypes # See ltrace.conf(5) for description of syntax of this file. +# Special value used to indicate the *at functions should use the +# current working directory. +typedef at_dirfd_t = enum[int](AT_FDCWD=-100); + addr brk(addr); int close(int); int execve(string,addr,addr); @@ -14,7 +18,7 @@ int getpid(); addr mmap(addr,ulong,int,int,int,long); int munmap(addr,ulong); -int open(string,int,octal); +int open(string, hex(uint), oct(uint)); int personality(uint); long read(int,+string0,ulong); int stat(string,addr); @@ -113,3 +117,30 @@ ulong writev(int,addr,int); int mprotect(addr,int,int); int access(string,octal); int getdents(uint, void *, uint); + +int openat(at_dirfd_t, string, hex(uint), oct(uint)); +int mknodat(at_dirfd_t, string, oct(uint), ushort) +int mkdirat(at_dirfd_t, string, oct(uint)); +int unlinkat(at_dirfd_t, string, hex(uint)); +int symlinkat(string, at_dirfd_t, string); +int linkat(at_dirfd_t, string, at_dirfd_t, string, hex(uint)); +int renameat(at_dirfd_t, string, at_dirfd_t, string); +int faccessat(at_dirfd_t, string, oct(uint), hex(uint)); +int fchmodat(at_dirfd_t, string, oct(uint), hex(uint)); +int fchownat(at_dirfd_t, string, int, int, hex(uint)); +int readlinkat(at_dirfd_t, string, +string[arg4], ulong); +int fstatat(at_dirfd_t, string, addr, hex(uint)); +int utimensat(at_dirfd_t, string, addr, hex(uint)); +int futimens(int, addr); +int futimesat(at_dirfd_t, string, addr); +addr shmat(int, addr, hex(uint)); +int shmdt(addr); + +typedef fid_type = enum(FILEID_ROOT=0, FILEID_INO32_GEN=1, FILEID_INO32_GEN_PARENT=2, FILEID_BTRFS_WITHOUT_PARENT=0x4d, FILEID_BTRFS_WITH_PARENT=0x4e, FILEID_BTRFS_WITH_PARENT_ROOT=0x4f, FILEID_UDF_WITHOUT_PARENT=0x51, FILEID_UDF_WITH_PARENT=0x52, FILEID_NILFS_WITHOUT_PARENT=0x61, FILEID_NILFS_WITH_PARENT=0x62); +typedef file_handle = struct(uint, fid_type, array(hex(char), elt1)*); +int name_to_handle_at(at_dirfd_t, string, file_handle, int*, hex(uint)); +int open_by_handle_at(at_dirfd_t, file_handle, hex(uint)); + +int newfstatat(at_dirfd_t, string, addr, hex(uint)); +int creat(string, oct(int)); +int ustat(ushort, addr); -- 2.7.4