diff options
| author | Ayushi Sharma <35501599+ais2397@users.noreply.github.com> | 2020-06-17 15:10:05 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-17 02:40:05 -0700 |
| commit | b6c46f43512613717ccfdfffd6e68ac943c0727a (patch) | |
| tree | 5323da2ecf02b6ca9284a6bbb5c2b27e7b29a2f6 /sys | |
| parent | b9f3810bc5c0698096fc7a54efc13d314e0dfca0 (diff) | |
sys/netbsd: adding filesystem and communication syscalls (#1826)
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netbsd/fs.txt | 19 | ||||
| -rw-r--r-- | sys/netbsd/fs_amd64.const | 1 | ||||
| -rw-r--r-- | sys/netbsd/socket.txt | 18 | ||||
| -rw-r--r-- | sys/netbsd/socket_amd64.const | 52 | ||||
| -rw-r--r-- | sys/netbsd/sys.txt | 29 | ||||
| -rw-r--r-- | sys/netbsd/sys_amd64.const | 21 |
6 files changed, 125 insertions, 15 deletions
diff --git a/sys/netbsd/fs.txt b/sys/netbsd/fs.txt index b68e04fa3..f4eb9d7b0 100644 --- a/sys/netbsd/fs.txt +++ b/sys/netbsd/fs.txt @@ -18,6 +18,7 @@ resource mode[int32]: 0, 0xffffffffffffffff resource ino[int64]: 0, 0xffffffffffffffff resource nlink[int32]: 0, 0xffffffffffffffff +compat_43_ocreat(path ptr[in, filename], mode flags[open_mode]) open(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd # Just so that we have something that creates fd_dir resources. open$dir(file ptr[in, filename], flags flags[open_flags], mode flags[open_mode]) fd_dir @@ -72,6 +73,24 @@ stat { spare2 int32 } +stat43 { + dev int16 + ino int32 + mode int16 + nlink int16 + uid int16 + gid int16 + rdev int16 + size int32 + atim timespec50 + mtim timespec50 + ctim timespec50 + blksize int32 + blocks int32 + flags int32 + gen int32 +} + open_flags = O_RDONLY, O_WRONLY, O_RDWR, O_APPEND, O_CREAT, O_TRUNC, O_EXCL, O_SHLOCK, O_EXLOCK, O_NOFOLLOW, O_CLOEXEC, O_NOSIGPIPE, O_DSYNC, O_SYNC, O_RSYNC, O_ALT_IO, O_NOCTTY, O_DIRECT, O_DIRECTORY, O_ASYNC open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH seek_whence = SEEK_SET, SEEK_CUR, SEEK_END diff --git a/sys/netbsd/fs_amd64.const b/sys/netbsd/fs_amd64.const index 173195455..d865ad0dc 100644 --- a/sys/netbsd/fs_amd64.const +++ b/sys/netbsd/fs_amd64.const @@ -25,6 +25,7 @@ SEEK_CUR = 1 SEEK_END = 2 SEEK_SET = 0 SYS_close = 6 +SYS_compat_43_ocreat = 8 SYS_dup = 41 SYS_dup2 = 90 SYS_lseek = 199 diff --git a/sys/netbsd/socket.txt b/sys/netbsd/socket.txt index d8168dc68..c2ec6e3bb 100644 --- a/sys/netbsd/socket.txt +++ b/sys/netbsd/socket.txt @@ -15,13 +15,16 @@ type sock_port proc[20000, 4, int16be] # TODO: describe socketcall syscall socket(domain flags[socket_domain], type flags[socket_type], proto int8) sock +compat_30_socket(domain flags[socket_domain], type flags[socket_type], proto int8) sock socketpair(domain flags[socket_domain], type flags[socket_type], proto int8, fds ptr[out, sock_pair]) bind(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr]) connect(fd sock, addr ptr[in, sockaddr_storage], addrlen len[addr]) -accept(fd sock, peer ptr[out, sockaddr_storage, opt], peerlen ptr[inout, len[peer, int32]]) sock +accept(s sock, addr ptr[out, sockaddr_storage, opt], addrlen ptr[inout, len[addr, int32]]) sock +compat_43_oaccept(s sock, name buffer[out], namelen ptr[inout, len[name, int32]]) sock paccept(fd sock, peer ptr[out, sockaddr_storage, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock sendto(fd sock, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_storage, opt], addrlen len[addr]) -recvfrom(fd sock, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_storage, opt], addrlen len[addr]) +recvfrom(fd sock, buf buffer[out], len len[buf], f flags[recv_flags], frm ptr[in, sockaddr_storage, opt], frmlen len[frm]) +compat_43_orecvfrom(s sock, buf buffer[out], len len[buf], f flags[recv_flags], frm buffer[in], frmlen len[frm]) getsockname(fd sock, addr ptr[out, sockaddr_storage], addrlen ptr[inout, len[addr, int32]]) getpeername(fd sock, peer ptr[out, sockaddr_storage], peerlen ptr[inout, len[peer, int32]]) @@ -34,13 +37,14 @@ shutdown(fd sock, how flags[shutdown_flags]) getsockopt(fd sock, level int32, optname int32, optval buffer[out], optlen ptr[inout, len[optval, int32]]) setsockopt(fd sock, level int32, optname int32, optval buffer[in], optlen len[optval]) -socket_domain = AF_LOCAL, AF_INET, AF_INET6, AF_NS, AF_BLUETOOTH, AF_APPLETALK +socket_domain = PF_LOCAL, PF_INET, PF_INET6, PF_NS, PF_BLUETOOTH, PF_APPLETALK, PF_CAN socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET, SOCK_NONBLOCK, SOCK_CLOEXEC, SOCK_NOSIGPIPE accept_flags = SOCK_NONBLOCK, SOCK_CLOEXEC, SOCK_NOSIGPIPE shutdown_flags = SHUT_RD, SHUT_WR, SHUT_RDWR send_flags = MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_EOR, MSG_NOSIGNAL recv_flags = MSG_CMSG_CLOEXEC, MSG_OOB, MSG_PEEK, MSG_WAITALL cmsg_levels = SOL_SOCKET, IPPROTO_ICMP, LINUX_SOL_IP, LINUX_SOL_TCP, LINUX_SOL_UDP, LINUX_SOL_IPV6, LINUX_SOL_IPX, LINUX_SOL_AX25 +addr_family = AF_UNSPEC, AF_LOCAL, AF_UNIX, AF_INET, AF_IMPLINK, AF_PUP, AF_CHAOS, AF_NS, AF_ISO, AF_OSI, AF_ECMA, AF_DATAKIT, AF_CCITT, AF_SNA, AF_DECnet, AF_DLI, AF_LAT, AF_HYLINK, AF_APPLETALK, AF_OROUTE, AF_LINK, AF_COIP, AF_CNT, pseudo_AF_RTIP, pseudo_AF_PIP, pseudo_AF_XTP, AF_IPX, AF_INET6, AF_ISDN, AF_E164, AF_NATM, AF_ARP, pseudo_AF_KEY, pseudo_AF_HDRCMPLT, AF_BLUETOOTH, AF_IEEE80211, AF_MPLS, AF_ROUTE, AF_CAN, AF_ETHER, AF_MAX sock_pair { fd0 sock @@ -49,10 +53,10 @@ sock_pair { # This sockaddr type corresponds to the sockaddr_storage type and is 128 bytes size. sockaddr_storage [ - un sockaddr_un - in sockaddr_in - in6 sockaddr_in6 -] [varlen] + len int8 + family flags[addr_family, int8] + data array[int8, 14] +] send_msghdr { msg_name ptr[in, sockaddr_storage, opt] diff --git a/sys/netbsd/socket_amd64.const b/sys/netbsd/socket_amd64.const index d565dc5f9..4dd88e997 100644 --- a/sys/netbsd/socket_amd64.const +++ b/sys/netbsd/socket_amd64.const @@ -1,14 +1,50 @@ # AUTOGENERATED FILE AF_APPLETALK = 16 +AF_ARP = 28 AF_BLUETOOTH = 31 +AF_CAN = 35 +AF_CCITT = 10 +AF_CHAOS = 5 +AF_CNT = 21 +AF_COIP = 20 +AF_DATAKIT = 9 +AF_DECnet = 12 +AF_DLI = 13 +AF_E164 = 26 +AF_ECMA = 8 +AF_ETHER = 36 +AF_HYLINK = 15 +AF_IEEE80211 = 32 +AF_IMPLINK = 3 AF_INET = 2 AF_INET6 = 24 +AF_IPX = 23 +AF_ISDN = 26 +AF_ISO = 7 +AF_LAT = 14 +AF_LINK = 18 AF_LOCAL = 1 +AF_MAX = 37 +AF_MPLS = 33 +AF_NATM = 27 AF_NS = 6 +AF_OROUTE = 17 +AF_OSI = 7 +AF_PUP = 4 +AF_ROUTE = 34 +AF_SNA = 11 +AF_UNIX = 1 +AF_UNSPEC = 0 IPPROTO_ICMP = 1 LINUX_AF_APPLETALK = 5 +LINUX_AF_DECnet = 12 LINUX_AF_INET = 2 LINUX_AF_INET6 = 10 +LINUX_AF_IPX = 4 +LINUX_AF_MAX = 32 +LINUX_AF_SNA = 22 +LINUX_AF_UNIX = 1 +LINUX_AF_UNSPEC = 0 LINUX_MSG_DONTROUTE = 4 LINUX_MSG_EOR = 128 LINUX_MSG_NOSIGNAL = 16384 @@ -38,6 +74,7 @@ LINUX_SO_SNDLOWAT = 19 LINUX_SO_SNDTIMEO = 21 LINUX_SO_TIMESTAMP = 29 LINUX_SO_TYPE = 3 +LINUX_pseudo_AF_KEY = 15 MSG_CMSG_CLOEXEC = 2048 MSG_DONTROUTE = 4 MSG_EOR = 8 @@ -45,6 +82,13 @@ MSG_NOSIGNAL = 1024 MSG_OOB = 1 MSG_PEEK = 2 MSG_WAITALL = 64 +PF_APPLETALK = 16 +PF_BLUETOOTH = 31 +PF_CAN = 35 +PF_INET = 2 +PF_INET6 = 24 +PF_LOCAL = 1 +PF_NS = 6 SHUT_RD = 0 SHUT_RDWR = 2 SHUT_WR = 1 @@ -79,6 +123,9 @@ SO_TIMESTAMP = 8192 SO_TYPE = 4104 SYS_accept = 30 SYS_bind = 104 +SYS_compat_30_socket = 97 +SYS_compat_43_oaccept = 99 +SYS_compat_43_orecvfrom = 125 SYS_connect = 98 SYS_getpeername = 31 SYS_getsockname = 32 @@ -93,3 +140,8 @@ SYS_setsockopt = 105 SYS_shutdown = 134 SYS_socket = 394 SYS_socketpair = 135 +pseudo_AF_HDRCMPLT = 30 +pseudo_AF_KEY = 29 +pseudo_AF_PIP = 25 +pseudo_AF_RTIP = 22 +pseudo_AF_XTP = 19 diff --git a/sys/netbsd/sys.txt b/sys/netbsd/sys.txt index e888155c6..8434d0411 100644 --- a/sys/netbsd/sys.txt +++ b/sys/netbsd/sys.txt @@ -24,11 +24,20 @@ syz_execute_func(text ptr[in, text[target]]) pipe(pipefd ptr[out, pipefd]) -stat(file ptr[in, filename], statbuf ptr[out, stat]) -lstat(file ptr[in, filename], statbuf ptr[out, stat]) +compat_43_stat43(file ptr[in, filename], ua ptr[out, stat43]) +__stat50(file ptr[in, filename], ua ptr[out, stat]) +compat_43_lstat43(file ptr[in, filename], ua ptr[out, stat43]) +__lstat50(file ptr[in, filename], ua ptr[out, stat]) +compat_43_fstat43(fd fd, sb ptr[out, stat43]) +__fstat50(fd fd, sb ptr[out, stat]) +profil(samples buffer[inout], size len[samples], offt intptr, scale int32) + +compat_12_msync(addr vma, len int32) +__msync13(addr vma, len int32, f flags[msync_flags]) poll(fds ptr[in, array[pollfd]], nfds len[fds], timeout int32) -select(n len[inp], inp ptr[inout, fd_set], outp ptr[inout, fd_set], exp ptr[inout, fd_set], tvp ptr[inout, timeval]) +compat_50_select(nd len[inp], inp ptr[inout, fd_set], ou ptr[inout, fd_set], ex ptr[inout, fd_set], tv ptr[inout, timeval50]) +__select50(n len[inp], inp ptr[inout, fd_set], ou ptr[inout, fd_set], ex ptr[inout, fd_set], tv ptr[inout, timeval]) mincore(addr vma, size len[addr], vec buffer[out]) minherit(addr vma, len len[addr], inherit flags[minherit_flags]) @@ -97,8 +106,10 @@ renameat(oldfd fd_dir, old ptr[in, filename], newfd fd_dir, new ptr[in, filename mkdir(path ptr[in, filename], mode flags[open_mode]) mkdirat(fd fd_dir, path ptr[in, filename], mode flags[open_mode]) rmdir(path ptr[in, filename]) -truncate(file ptr[in, filename], len intptr) -ftruncate(fd fd, len intptr) +truncate(file ptr[in, filename], pad const[0], len intptr) +compat_43_otruncate(file ptr[in, filename], len intptr) +ftruncate(fd fd, pad const[0], len intptr) +compat_43_oftruncate(fd fd, len intptr) flock(fd fd, op flags[flock_op]) fsync(fd fd) fdatasync(fd fd) @@ -123,6 +134,7 @@ getitimer(which flags[getitimer_which], cur ptr[out, itimerval]) setitimer(which flags[getitimer_which], new ptr[in, itimerval], old ptr[out, itimerval, opt]) wait4(pid pid, status ptr[out, int32, opt], options flags[wait_options], ru ptr[out, rusage, opt]) +dup3(oldfd fd, newfd fd, flags flags[dup_flags]) fd exit(code intptr) ptrace(request intptr, pid pid, addr ptr[out, intptr], data intptr) __clone(flags flags[clone_flags], sp buffer[in]) pid @@ -152,6 +164,11 @@ timeval { usec intptr } +timeval50 { + sec intptr + usec intptr +} + itimerval { interv timeval value timeval @@ -255,6 +272,7 @@ sched_param { pollfd_events = POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL, POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLWRBAND mknod_mode = S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK, S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH +msync_flags = MS_ASYNC, MS_SYNC, MS_INVALIDATE at_flags = AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW access_mode = R_OK, W_OK, X_OK, F_OK linkat_flags = AT_SYMLINK_FOLLOW @@ -278,3 +296,4 @@ flock_type = F_RDLCK, F_WRLCK, F_UNLCK chflags_flags = SF_APPEND, SF_IMMUTABLE, SF_ARCHIVED, UF_OPAQUE, UF_APPEND, UF_IMMUTABLE, UF_NODUMP clone_flags = CLONE_CSIGNAL, CLONE_VM, CLONE_FS, CLONE_FILES, CLONE_SIGHAND, CLONE_PID, CLONE_PTRACE, CLONE_VFORK sa_flags = SA_ONSTACK, SA_RESTART, SA_RESETHAND, SA_NODEFER, SA_NOCLDSTOP, SA_NOCLDWAIT, SA_SIGINFO, SA_NOKERNINFO, SA_ALLBITS +dup_flags = O_CLOEXEC, O_NONBLOCK, O_NOSIGPIPE diff --git a/sys/netbsd/sys_amd64.const b/sys/netbsd/sys_amd64.const index 57b60ab8f..c71335f0a 100644 --- a/sys/netbsd/sys_amd64.const +++ b/sys/netbsd/sys_amd64.const @@ -48,9 +48,13 @@ MAP_INHERIT_COPY = 1 MAP_INHERIT_NONE = 2 MAP_INHERIT_SHARE = 0 MAP_INHERIT_ZERO = 4 +MS_ASYNC = 1 +MS_INVALIDATE = 2 +MS_SYNC = 4 O_ALT_IO = 262144 O_APPEND = 8 O_ASYNC = 64 +O_CLOEXEC = 4194304 O_DIRECT = 524288 O_DSYNC = 65536 O_NONBLOCK = 4 @@ -93,8 +97,13 @@ SF_APPEND = 262144 SF_ARCHIVED = 65536 SF_IMMUTABLE = 131072 SYS___clone = 287 +SYS___fstat50 = 440 SYS___getcwd = 296 SYS___getlogin = 49 +SYS___lstat50 = 441 +SYS___msync13 = 277 +SYS___select50 = 417 +SYS___stat50 = 439 SYS___vfork14 = 282 SYS_access = 33 SYS_chdir = 12 @@ -106,6 +115,14 @@ SYS_clock_getres = 429 SYS_clock_gettime = 427 SYS_clock_nanosleep = 477 SYS_clock_settime = 428 +SYS_compat_12_msync = 65 +SYS_compat_43_fstat43 = 62 +SYS_compat_43_lstat43 = 40 +SYS_compat_43_oftruncate = 130 +SYS_compat_43_otruncate = 129 +SYS_compat_43_stat43 = 38 +SYS_compat_50_select = 93 +SYS_dup3 = 454 SYS_execve = 59 SYS_exit = 1 SYS_faccessat = 462 @@ -141,7 +158,6 @@ SYS_lchmod = 274 SYS_lchown = 275 SYS_link = 9 SYS_linkat = 457 -SYS_lstat = 441 SYS_mincore = 78 SYS_minherit = 273 SYS_mkdir = 136 @@ -152,13 +168,13 @@ SYS_nanosleep = 430 SYS_pipe = 42 SYS_poll = 209 SYS_posix_spawn = 474 +SYS_profil = 44 SYS_ptrace = 26 SYS_readlink = 58 SYS_readlinkat = 469 SYS_rename = 128 SYS_renameat = 458 SYS_rmdir = 137 -SYS_select = 417 SYS_setegid = 182 SYS_seteuid = 183 SYS_setgid = 181 @@ -169,7 +185,6 @@ SYS_setregid = 127 SYS_setreuid = 126 SYS_setrlimit = 195 SYS_setuid = 23 -SYS_stat = 439 SYS_symlink = 57 SYS_symlinkat = 470 SYS_sync = 36 |
