aboutsummaryrefslogtreecommitdiffstats
path: root/sys/netbsd
diff options
context:
space:
mode:
authorAyushi Sharma <35501599+ais2397@users.noreply.github.com>2020-07-30 18:12:32 +0530
committerGitHub <noreply@github.com>2020-07-30 14:42:32 +0200
commit8df85ed9883abc2a200858f44f22c11c602d218a (patch)
treedb0fdabcbf673649f71900b0b88506c7defe08c0 /sys/netbsd
parent056be1b9c8d0c6942412dea4a4a104978a0a9311 (diff)
sys/netbsd: Adding syscalls related to mount(2),uname(2) and sockets (#1976)
* sys/netbsd: Adding syscalls related to mount(2),uname(2) and sockets * sys/netbsd: Adding missing flags for fstatat(2) * sys/netbsd: reordering rlimit_type * sys/netbsd: reordering flags for stat(2) and mount(2)
Diffstat (limited to 'sys/netbsd')
-rw-r--r--sys/netbsd/fs.txt11
-rw-r--r--sys/netbsd/fs_amd64.const16
-rw-r--r--sys/netbsd/socket.txt16
-rw-r--r--sys/netbsd/socket_amd64.const15
-rw-r--r--sys/netbsd/sys.txt28
-rw-r--r--sys/netbsd/sys_amd64.const7
6 files changed, 86 insertions, 7 deletions
diff --git a/sys/netbsd/fs.txt b/sys/netbsd/fs.txt
index 3e0821d8a..38250e144 100644
--- a/sys/netbsd/fs.txt
+++ b/sys/netbsd/fs.txt
@@ -43,6 +43,10 @@ dup2(oldfd fd, newfd fd) fd
dup3(oldfd fd, newfd fd, flags flags[dup_flags]) fd
pipe2(pipefd ptr[out, pipefd], flags flags[pipe_flags])
+compat_40_mount(type ptr[in, string[filesystem_types]], path ptr[in, filename], flags flags[mount_flags], data buffer[in])
+__mount50(type ptr[in, string[filesystem_types]], path ptr[in, filename], flags flags[mount_flags], data buffer[in], len len[data])
+unmount(path ptr[in, filename], flags flags[mount_flags])
+
compat_20_getfsstat(buf ptr[out, statfs12], size intptr, f flags[getfsstat_flags])
pipefd {
@@ -134,7 +138,7 @@ statfs12 {
ffree intptr
fsid fsid_t
owner uid
- flags flags[statfs_flags, intptr]
+ flags flags[mount_flags, intptr]
swrites intptr
aswrites intptr
spare array[intptr, 1]
@@ -147,9 +151,10 @@ fsid_t {
val array[int32, 2]
}
+filesystem_types = "ffs", "nfs", "mfs", "msdos", "lfs", "fdesc", "null", "overlay", "umap", "kernfs", "procfs", "afs", "cd9660", "union", "adosfs", "ext2fs", "coda", "filecore", "ntfs", "smbfs", "ptyfs", "tmpfs", "udf", "sysvbfs", "puffs", "hfs", "efs", "zfs", "nilfs", "rumpfs", "v7fs", "autofs"
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
+open_mode = S_IRWXU, S_IRUSR, S_IWUSR, S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH, S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX
seek_whence = SEEK_SET, SEEK_CUR, SEEK_END
pipe_flags = O_NONBLOCK, O_CLOEXEC, O_NOSIGPIPE
-statfs_flags = MNT_RDONLY, MNT_NOEXEC, MNT_NOSUID, MNT_NODEV, MNT_SYNCHRONOUS, MNT_ASYNC, MNT_UNION, MNT_NOCOREDUMP, MNT_SYMPERM, MNT_NODEVMTIME, MNT_SOFTDEP, MNT_LOCAL, MNT_QUOTA, MNT_ROOTFS, MNT_EXRDONLY, MNT_EXPORTED, MNT_DEFEXPORTED, MNT_EXPORTANON, MNT_EXKERB, MNT_EXNORESPORT, MNT_EXPUBLIC
+mount_flags = MNT_RDONLY, MNT_SYNCHRONOUS, MNT_NOEXEC, MNT_NOSUID, MNT_NODEV, MNT_UNION, MNT_ASYNC, MNT_NOCOREDUMP, MNT_RELATIME, MNT_IGNORE, MNT_DISCARD, MNT_EXTATTR, MNT_LOG, MNT_NOATIME, MNT_AUTOMOUNTED, MNT_SYMPERM, MNT_NODEVMTIME, MNT_SOFTDEP, MNT_EXRDONLY, MNT_EXPORTED, MNT_DEFEXPORTED, MNT_EXPORTANON, MNT_EXKERB, MNT_EXNORESPORT, MNT_EXPUBLIC, MNT_LOCAL, MNT_QUOTA, MNT_ROOTFS
getfsstat_flags = MNT_NOWAIT, MNT_WAIT, MNT_LAZY
diff --git a/sys/netbsd/fs_amd64.const b/sys/netbsd/fs_amd64.const
index a8e73d8d8..aae6710c9 100644
--- a/sys/netbsd/fs_amd64.const
+++ b/sys/netbsd/fs_amd64.const
@@ -3,15 +3,21 @@ AT_FDCWD = 18446744073709551516
MFSNAMELEN = 16
MNAMELEN = 90
MNT_ASYNC = 64
+MNT_AUTOMOUNTED = 268435456
MNT_DEFEXPORTED = 512
+MNT_DISCARD = 8388608
MNT_EXKERB = 2048
MNT_EXNORESPORT = 134217728
MNT_EXPORTANON = 1024
MNT_EXPORTED = 256
MNT_EXPUBLIC = 268435456
MNT_EXRDONLY = 128
+MNT_EXTATTR = 16777216
+MNT_IGNORE = 1048576
MNT_LAZY = 3
MNT_LOCAL = 4096
+MNT_LOG = 33554432
+MNT_NOATIME = 67108864
MNT_NOCOREDUMP = 32768
MNT_NODEV = 16
MNT_NODEVMTIME = 1073741824
@@ -20,6 +26,7 @@ MNT_NOSUID = 8
MNT_NOWAIT = 2
MNT_QUOTA = 8192
MNT_RDONLY = 1
+MNT_RELATIME = 131072
MNT_ROOTFS = 16384
MNT_SOFTDEP = 2147483648
MNT_SYMPERM = 536870912
@@ -50,8 +57,10 @@ O_WRONLY = 1
SEEK_CUR = 1
SEEK_END = 2
SEEK_SET = 0
+SYS___mount50 = 410
SYS_close = 6
SYS_compat_20_getfsstat = 18
+SYS_compat_40_mount = 21
SYS_compat_43_ocreat = 8
SYS_compat_43_olseek = 19
SYS_dup = 41
@@ -67,11 +76,18 @@ SYS_pwrite = 174
SYS_pwritev = 290
SYS_read = 3
SYS_readv = 120
+SYS_unmount = 22
SYS_write = 4
SYS_writev = 121
S_IRGRP = 32
S_IROTH = 4
S_IRUSR = 256
+S_IRWXG = 56
+S_IRWXO = 7
+S_IRWXU = 448
+S_ISGID = 1024
+S_ISUID = 2048
+S_ISVTX = 512
S_IWGRP = 16
S_IWOTH = 2
S_IWUSR = 128
diff --git a/sys/netbsd/socket.txt b/sys/netbsd/socket.txt
index c2ec6e3bb..3bda257c4 100644
--- a/sys/netbsd/socket.txt
+++ b/sys/netbsd/socket.txt
@@ -26,10 +26,14 @@ sendto(fd sock, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in,
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]])
+compat_43_ogetsockname(fdec sock, asa buffer[out], alen ptr[inout, len[asa, int32]])
getpeername(fd sock, peer ptr[out, sockaddr_storage], peerlen ptr[inout, len[peer, int32]])
+compat_43_ogetpeername(fdes sock, asa buffer[out], alen ptr[inout, len[asa, int32]])
sendmsg(fd sock, msg ptr[in, send_msghdr], f flags[send_flags])
+sendmmsg(s sock, mmsg ptr[inout, send_mmsghdr], len len[mmsg], f flags[send_flags], timeout ptr[in, timespec, opt])
recvmsg(fd sock, msg ptr[inout, recv_msghdr], f flags[recv_flags])
+recvmmsg(s sock, mmsg ptr[inout, recv_mmsghdr], len len[mmsg], f flags[recv_flags], timeout ptr[in, timespec, opt])
listen(fd sock, backlog int32)
shutdown(fd sock, how flags[shutdown_flags])
@@ -42,7 +46,7 @@ socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET, SOCK_
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
+recv_flags = MSG_OOB, MSG_PEEK, MSG_DONTROUTE, MSG_EOR, MSG_TRUNC, MSG_CTRUNC, MSG_WAITALL, MSG_DONTWAIT, MSG_BCAST, MSG_MCAST, MSG_NOSIGNAL, MSG_CMSG_CLOEXEC, MSG_NBIO, MSG_WAITFORONE, MSG_NOTIFICATION
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
@@ -58,6 +62,11 @@ sockaddr_storage [
data array[int8, 14]
]
+send_mmsghdr {
+ hdr ptr[inout, send_msghdr]
+ len int32
+}
+
send_msghdr {
msg_name ptr[in, sockaddr_storage, opt]
msg_namelen len[msg_name, int32]
@@ -68,6 +77,11 @@ send_msghdr {
msg_flags const[0, int32]
}
+recv_mmsghdr {
+ hdr ptr[inout, recv_msghdr]
+ len int32
+}
+
recv_msghdr {
msg_name ptr[out, sockaddr_storage, opt]
msg_namelen len[msg_name, int32]
diff --git a/sys/netbsd/socket_amd64.const b/sys/netbsd/socket_amd64.const
index 4dd88e997..df418a7ba 100644
--- a/sys/netbsd/socket_amd64.const
+++ b/sys/netbsd/socket_amd64.const
@@ -45,11 +45,14 @@ LINUX_AF_MAX = 32
LINUX_AF_SNA = 22
LINUX_AF_UNIX = 1
LINUX_AF_UNSPEC = 0
+LINUX_MSG_CTRUNC = 8
LINUX_MSG_DONTROUTE = 4
+LINUX_MSG_DONTWAIT = 64
LINUX_MSG_EOR = 128
LINUX_MSG_NOSIGNAL = 16384
LINUX_MSG_OOB = 1
LINUX_MSG_PEEK = 2
+LINUX_MSG_TRUNC = 32
LINUX_MSG_WAITALL = 256
LINUX_SOL_AX25 = 257
LINUX_SOL_IP = 0
@@ -75,13 +78,21 @@ LINUX_SO_SNDTIMEO = 21
LINUX_SO_TIMESTAMP = 29
LINUX_SO_TYPE = 3
LINUX_pseudo_AF_KEY = 15
+MSG_BCAST = 256
MSG_CMSG_CLOEXEC = 2048
+MSG_CTRUNC = 32
MSG_DONTROUTE = 4
+MSG_DONTWAIT = 128
MSG_EOR = 8
+MSG_MCAST = 512
+MSG_NBIO = 4096
MSG_NOSIGNAL = 1024
+MSG_NOTIFICATION = 16384
MSG_OOB = 1
MSG_PEEK = 2
+MSG_TRUNC = 16
MSG_WAITALL = 64
+MSG_WAITFORONE = 8192
PF_APPLETALK = 16
PF_BLUETOOTH = 31
PF_CAN = 35
@@ -125,6 +136,8 @@ SYS_accept = 30
SYS_bind = 104
SYS_compat_30_socket = 97
SYS_compat_43_oaccept = 99
+SYS_compat_43_ogetpeername = 141
+SYS_compat_43_ogetsockname = 150
SYS_compat_43_orecvfrom = 125
SYS_connect = 98
SYS_getpeername = 31
@@ -133,7 +146,9 @@ SYS_getsockopt = 118
SYS_listen = 106
SYS_paccept = 456
SYS_recvfrom = 29
+SYS_recvmmsg = 475
SYS_recvmsg = 27
+SYS_sendmmsg = 476
SYS_sendmsg = 28
SYS_sendto = 133
SYS_setsockopt = 105
diff --git a/sys/netbsd/sys.txt b/sys/netbsd/sys.txt
index 43c05c14a..cb4a2ae04 100644
--- a/sys/netbsd/sys.txt
+++ b/sys/netbsd/sys.txt
@@ -36,8 +36,11 @@ compat_43_fstat43(fd fd, sb ptr[out, stat43])
__fstat50(fd fd, sb ptr[out, stat])
compat_20_statfs(path ptr[in, filename], buf ptr[out, statfs12])
compat_20_fstatfs(fd fd, buf ptr[out, statfs12])
+fstatat(fd fd, path ptr[in, filename], buf ptr[out, stat], flag flags[fstatat_flags])
profil(samples buffer[inout], size len[samples], offt intptr, scale int32)
+compat_09_ouname(name ptr[out, outsname])
+
compat_12_msync(addr vma, len int32)
__msync13(addr vma, len int32, f flags[msync_flags])
@@ -72,6 +75,7 @@ compat_50_mknod(file ptr[in, filename], mode flags[mknod_mode], dev int32)
mknod(file ptr[in, filename], mode flags[mknod_mode], dev dev)
mknod$loop(file ptr[in, filename], mode flags[mknod_mode], dev proc[1792, 2])
mknodat(dirfd fd_dir, file ptr[in, filename], mode flags[mknod_mode], dev int32)
+umask(mode flags[open_mode])
chmod(file ptr[in, filename], mode flags[open_mode])
lchmod(file ptr[in, filename], mode flags[open_mode])
fchmod(fd fd, mode flags[open_mode])
@@ -85,6 +89,8 @@ chflags(file ptr[in, filename], flags flags[chflags_flags])
fchflags(fd fd, flags flags[chflags_flags])
lchflags(file ptr[in, filename], flags flags[chflags_flags])
faccessat(dirfd fd_dir, pathname ptr[in, filename], mode flags[access_mode], flags flags[faccessat_flags])
+compat_50_quotactl(path ptr[in, filename], cmd int32, id uid, addr buffer[in])
+
compat_50_utimes(filename ptr[in, filename], times ptr[in, timeval50])
compat_50_futimes(fd fd, times ptr[in, timeval50])
compat_50_lutimes(link ptr[in, filename], times ptr[in, timeval50])
@@ -151,8 +157,10 @@ acct(filename ptr[in, filename, opt])
compat_50_getrusage(who flags[rusage_who], usage ptr[out, rusage50])
__getrusage50(who flags[rusage_who], usage ptr[out, rusage])
-getrlimit(res flags[rlimit_type], rlim ptr[out, rlimit])
-setrlimit(res flags[rlimit_type], rlim ptr[in, rlimit])
+getrlimit(res flags[rlimit_type], rlp ptr[out, rlimit])
+compat_43_ogetrlimit(res flags[rlimit_type], rlp ptr[out, orlimit])
+setrlimit(res flags[rlimit_type], rlp ptr[in, rlimit])
+compat_43_osetrlimit(res flags[rlimit_type], rlp ptr[in, orlimit])
compat_50_clock_gettime(id flags[clock_id], tp ptr[out, timespec50])
compat_50_clock_settime(id flags[clock_id], tp ptr[in, timespec50])
@@ -178,6 +186,14 @@ __vfork14() pid
vfork() pid
posix_spawn(pid pid, path ptr[in, string], file_actions ptr[in, posix_spawn_file_actions], attrp ptr[in, posix_spawnattr], argv ptr[in, array[string]], envp ptr[in, array[string]]) pid
+outsname {
+ sname array[int8, 32]
+ nname array[int8, 32]
+ release array[int8, 32]
+ version array[int8, 32]
+ mach array[int8, 32]
+}
+
pollfd {
fd fd
events flags[pollfd_events, int16]
@@ -269,6 +285,11 @@ rlimit {
hard intptr
}
+orlimit {
+ cur int32
+ max int32
+}
+
flock {
type flags[flock_type, int16]
whence flags[seek_whence, int16]
@@ -329,6 +350,7 @@ sched_param {
sched_priority int32
}
+fstatat_flags = AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW, AT_EACCESS, AT_REMOVEDIR
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
@@ -340,7 +362,7 @@ unlinkat_flags = 0, AT_REMOVEDIR
flock_op = LOCK_SH, LOCK_EX, LOCK_UN, LOCK_NB
faccessat_flags = AT_EACCESS, AT_SYMLINK_NOFOLLOW
rusage_who = RUSAGE_SELF, RUSAGE_CHILDREN
-rlimit_type = RLIMIT_AS, RLIMIT_CORE, RLIMIT_CPU, RLIMIT_DATA, RLIMIT_FSIZE, RLIMIT_MEMLOCK, RLIMIT_NOFILE, RLIMIT_NPROC, RLIMIT_RSS, RLIMIT_STACK, RLIMIT_NTHR, RLIMIT_STACK
+rlimit_type = RLIMIT_CPU, RLIMIT_FSIZE, RLIMIT_DATA, RLIMIT_STACK, RLIMIT_CORE, RLIMIT_RSS, RLIMIT_MEMLOCK, RLIMIT_NPROC, RLIMIT_NOFILE, RLIMIT_SBSIZE, RLIMIT_AS, RLIMIT_NTHR
timer_flags = TIMER_RELTIME, TIMER_ABSTIME
clock_id = CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_VIRTUAL, CLOCK_PROF, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID
getitimer_which = ITIMER_REAL, ITIMER_VIRTUAL, ITIMER_PROF, ITIMER_MONOTONIC
diff --git a/sys/netbsd/sys_amd64.const b/sys/netbsd/sys_amd64.const
index c4af74108..57adb5527 100644
--- a/sys/netbsd/sys_amd64.const
+++ b/sys/netbsd/sys_amd64.const
@@ -94,6 +94,7 @@ RLIMIT_NOFILE = 8
RLIMIT_NPROC = 7
RLIMIT_NTHR = 11
RLIMIT_RSS = 5
+RLIMIT_SBSIZE = 9
RLIMIT_STACK = 3
RUSAGE_CHILDREN = 18446744073709551615
RUSAGE_SELF = 0
@@ -139,6 +140,7 @@ SYS_chmod = 15
SYS_chown = 16
SYS_chroot = 61
SYS_clock_nanosleep = 477
+SYS_compat_09_ouname = 164
SYS_compat_12_fstat12 = 189
SYS_compat_12_lstat12 = 190
SYS_compat_12_msync = 65
@@ -149,6 +151,8 @@ SYS_compat_30_getdents = 272
SYS_compat_43_fstat43 = 62
SYS_compat_43_lstat43 = 40
SYS_compat_43_oftruncate = 130
+SYS_compat_43_ogetrlimit = 144
+SYS_compat_43_osetrlimit = 145
SYS_compat_43_otruncate = 129
SYS_compat_43_stat43 = 38
SYS_compat_50_clock_getres = 234
@@ -160,6 +164,7 @@ SYS_compat_50_getrusage = 117
SYS_compat_50_lutimes = 276
SYS_compat_50_mknod = 14
SYS_compat_50_nanosleep = 240
+SYS_compat_50_quotactl = 148
SYS_compat_50_select = 93
SYS_compat_50_setitimer = 83
SYS_compat_50_utimes = 138
@@ -178,6 +183,7 @@ SYS_fcntl = 92
SYS_fdatasync = 241
SYS_flock = 131
SYS_fork = 2
+SYS_fstatat = 466
SYS_fsync = 95
SYS_ftruncate = 201
SYS_getegid = 43
@@ -228,6 +234,7 @@ SYS_symlink = 57
SYS_symlinkat = 470
SYS_sync = 36
SYS_truncate = 200
+SYS_umask = 60
SYS_unlink = 10
SYS_unlinkat = 471
SYS_utimensat = 467