mirror of
https://github.com/reactos/syzkaller.git
synced 2024-10-07 09:03:28 +00:00
Added a few more syscall descriptions, consts
and other related files.
This commit is contained in:
parent
9b42a968df
commit
4b567b4940
@ -2,15 +2,93 @@
|
||||
|
||||
#if defined(__x86_64__) || 0
|
||||
#define GOARCH "amd64"
|
||||
#define SYZ_REVISION "604a77c538a0eb3ca09ec1ccdbcd056632216f56"
|
||||
#define SYZ_REVISION "0bd253c590edd5bab97c9303498e5e6ca82b973e"
|
||||
|
||||
unsigned syscall_count = 51;
|
||||
unsigned syscall_count = 188;
|
||||
call_t syscalls[] = {
|
||||
{"accept", 30},
|
||||
{"accept$inet", 30},
|
||||
{"accept$inet6", 30},
|
||||
{"accept$unix", 30},
|
||||
{"bind", 104},
|
||||
{"bind$inet", 104},
|
||||
{"bind$inet6", 104},
|
||||
{"bind$unix", 104},
|
||||
{"chdir", 12},
|
||||
{"chmod", 15},
|
||||
{"chown", 16},
|
||||
{"chroot", 61},
|
||||
{"clock_getres", 429},
|
||||
{"clock_gettime", 427},
|
||||
{"clock_nanosleep", 477},
|
||||
{"clock_settime", 428},
|
||||
{"close", 6},
|
||||
{"connect", 98},
|
||||
{"connect$inet", 98},
|
||||
{"connect$inet6", 98},
|
||||
{"connect$unix", 98},
|
||||
{"dup", 41},
|
||||
{"dup2", 90},
|
||||
{"execve", 59},
|
||||
{"faccessat", 462},
|
||||
{"fchdir", 13},
|
||||
{"fchmod", 124},
|
||||
{"fchmodat", 463},
|
||||
{"fchown", 123},
|
||||
{"fchownat", 464},
|
||||
{"fchroot", 297},
|
||||
{"fcntl$dupfd", 92},
|
||||
{"fcntl$getflags", 92},
|
||||
{"fcntl$getown", 92},
|
||||
{"fcntl$lock", 92},
|
||||
{"fcntl$setflags", 92},
|
||||
{"fcntl$setown", 92},
|
||||
{"fcntl$setstatus", 92},
|
||||
{"fdatasync", 241},
|
||||
{"flock", 131},
|
||||
{"fsync", 95},
|
||||
{"ftruncate", 201},
|
||||
{"getdents", 390},
|
||||
{"getegid", 43},
|
||||
{"geteuid", 25},
|
||||
{"getgid", 47},
|
||||
{"getgroups", 79},
|
||||
{"getitimer", 426},
|
||||
{"getpeername", 31},
|
||||
{"getpeername$inet", 31},
|
||||
{"getpeername$inet6", 31},
|
||||
{"getpeername$unix", 31},
|
||||
{"getpgid", 207},
|
||||
{"getpgrp", 81},
|
||||
{"getpid", 20},
|
||||
{"getppid", 39},
|
||||
{"getrlimit", 194},
|
||||
{"getrusage", 445},
|
||||
{"getsockname", 32},
|
||||
{"getsockname$inet", 32},
|
||||
{"getsockname$inet6", 32},
|
||||
{"getsockname$unix", 32},
|
||||
{"getsockopt", 118},
|
||||
{"getsockopt$SO_PEERCRED", 118},
|
||||
{"getsockopt$inet_opts", 118},
|
||||
{"getsockopt$sock_cred", 118},
|
||||
{"getsockopt$sock_int", 118},
|
||||
{"getsockopt$sock_linger", 118},
|
||||
{"getsockopt$sock_timeval", 118},
|
||||
{"getuid", 24},
|
||||
{"lchown", 275},
|
||||
{"link", 9},
|
||||
{"linkat", 457},
|
||||
{"listen", 106},
|
||||
{"lseek", 199},
|
||||
{"lstat", 441},
|
||||
{"madvise", 75},
|
||||
{"mincore", 78},
|
||||
{"mkdir", 136},
|
||||
{"mkdirat", 461},
|
||||
{"mknod", 450},
|
||||
{"mknod$loop", 450},
|
||||
{"mknodat", 460},
|
||||
{"mlock", 203},
|
||||
{"mlockall", 242},
|
||||
{"mmap", 197},
|
||||
@ -25,14 +103,29 @@ call_t syscalls[] = {
|
||||
{"munlock", 204},
|
||||
{"munlockall", 243},
|
||||
{"munmap", 73},
|
||||
{"nanosleep", 430},
|
||||
{"open", 5},
|
||||
{"open$dir", 5},
|
||||
{"openat", 468},
|
||||
{"paccept", 456},
|
||||
{"pipe", 42},
|
||||
{"pipe2", 453},
|
||||
{"poll", 209},
|
||||
{"preadv", 289},
|
||||
{"pwritev", 290},
|
||||
{"read", 3},
|
||||
{"readlink", 58},
|
||||
{"readlinkat", 469},
|
||||
{"readv", 120},
|
||||
{"recvfrom", 29},
|
||||
{"recvfrom$inet", 29},
|
||||
{"recvfrom$inet6", 29},
|
||||
{"recvfrom$unix", 29},
|
||||
{"recvmsg", 27},
|
||||
{"rename", 128},
|
||||
{"renameat", 458},
|
||||
{"rmdir", 137},
|
||||
{"select", 417},
|
||||
{"semctl$GETALL", 442},
|
||||
{"semctl$GETNCNT", 442},
|
||||
{"semctl$GETPID", 442},
|
||||
@ -46,6 +139,31 @@ call_t syscalls[] = {
|
||||
{"semget", 221},
|
||||
{"semget$private", 221},
|
||||
{"semop", 222},
|
||||
{"sendmsg", 28},
|
||||
{"sendmsg$unix", 28},
|
||||
{"sendto", 133},
|
||||
{"sendto$inet", 133},
|
||||
{"sendto$inet6", 133},
|
||||
{"sendto$unix", 133},
|
||||
{"setegid", 182},
|
||||
{"seteuid", 183},
|
||||
{"setgid", 181},
|
||||
{"setgroups", 80},
|
||||
{"setitimer", 425},
|
||||
{"setpgid", 82},
|
||||
{"setregid", 127},
|
||||
{"setreuid", 126},
|
||||
{"setrlimit", 195},
|
||||
{"setsockopt", 105},
|
||||
{"setsockopt$inet6_MRT6_ADD_MFC", 105},
|
||||
{"setsockopt$inet6_MRT6_ADD_MIF", 105},
|
||||
{"setsockopt$inet6_MRT6_DEL_MFC", 105},
|
||||
{"setsockopt$inet_opts", 105},
|
||||
{"setsockopt$sock_cred", 105},
|
||||
{"setsockopt$sock_int", 105},
|
||||
{"setsockopt$sock_linger", 105},
|
||||
{"setsockopt$sock_timeval", 105},
|
||||
{"setuid", 23},
|
||||
{"shmat", 228},
|
||||
{"shmctl$IPC_RMID", 443},
|
||||
{"shmctl$IPC_SET", 443},
|
||||
@ -55,6 +173,25 @@ call_t syscalls[] = {
|
||||
{"shmdt", 230},
|
||||
{"shmget", 231},
|
||||
{"shmget$private", 231},
|
||||
{"shutdown", 134},
|
||||
{"socket", 394},
|
||||
{"socket$inet", 394},
|
||||
{"socket$inet6", 394},
|
||||
{"socket$unix", 394},
|
||||
{"socketpair", 135},
|
||||
{"socketpair$inet", 135},
|
||||
{"socketpair$inet6", 135},
|
||||
{"socketpair$unix", 135},
|
||||
{"stat", 439},
|
||||
{"symlink", 57},
|
||||
{"symlinkat", 470},
|
||||
{"sync", 36},
|
||||
{"truncate", 200},
|
||||
{"unlink", 10},
|
||||
{"unlinkat", 471},
|
||||
{"utimensat", 467},
|
||||
{"utimes", 420},
|
||||
{"wait4", 449},
|
||||
{"write", 4},
|
||||
{"writev", 121},
|
||||
|
||||
|
1335
sys/netbsd/amd64.go
1335
sys/netbsd/amd64.go
File diff suppressed because it is too large
Load Diff
@ -9,6 +9,10 @@ include <unistd.h>
|
||||
resource fd[int32]: 0xffffffffffffffff, AT_FDCWD
|
||||
resource fd_dir[fd]
|
||||
|
||||
resource pid[int32]: 0, 0xffffffffffffffff
|
||||
resource uid[int32]: 0, 0xffffffffffffffff
|
||||
resource gid[int32]: 0, 0xffffffffffffffff
|
||||
|
||||
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
|
||||
|
@ -65,6 +65,10 @@ shmat_flags = SHM_RND, SHM_RDONLY
|
||||
|
||||
ipc_perm {
|
||||
key int32
|
||||
uid uid
|
||||
gid gid
|
||||
cuid uid
|
||||
cgid gid
|
||||
mode flags[open_mode, int32]
|
||||
seq int16
|
||||
pad0 const[0, int16]
|
||||
@ -76,6 +80,8 @@ msqid_ds {
|
||||
perm ipc_perm
|
||||
qnum intptr
|
||||
qbytes intptr
|
||||
lspid pid
|
||||
lrpid pid
|
||||
stime intptr
|
||||
rtime intptr
|
||||
ctime intptr
|
||||
@ -88,6 +94,8 @@ shmid_ds {
|
||||
perm ipc_perm
|
||||
segsz int32
|
||||
nattch int16
|
||||
cpid pid
|
||||
lpid pid
|
||||
atime intptr
|
||||
dtime intptr
|
||||
ctime intptr
|
||||
|
117
sys/netbsd/socket.txt
Normal file
117
sys/netbsd/socket.txt
Normal file
@ -0,0 +1,117 @@
|
||||
# Copyright 2017 syzkaller project authors. All rights reserved.
|
||||
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
||||
|
||||
# TODO: due to autobind a socket can bind to port 0, that will result in a random port which is not reproducible
|
||||
|
||||
include <sys/types.h>
|
||||
include <sys/socket.h>
|
||||
include <netinet/in.h>
|
||||
include <compat/linux/common/linux_socket.h>
|
||||
|
||||
resource sock[fd]
|
||||
|
||||
# TODO: describe socketcall syscall
|
||||
|
||||
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, pipefd])
|
||||
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
|
||||
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])
|
||||
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]])
|
||||
|
||||
sendmsg(fd sock, msg ptr[in, send_msghdr], f flags[send_flags])
|
||||
recvmsg(fd sock, msg ptr[in, recv_msghdr], f flags[recv_flags])
|
||||
|
||||
listen(fd sock, backlog int32)
|
||||
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_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
|
||||
|
||||
# This sockaddr type corresponds to the struct sockaddr and is 16 bytes or less.
|
||||
sockaddr [
|
||||
# AF_UNIX sockaddr in bigger than 16 bytes
|
||||
in sockaddr_in
|
||||
random array[int32, 4]
|
||||
]
|
||||
|
||||
# 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]
|
||||
|
||||
sockaddr_generic {
|
||||
sa_family flags[socket_domain, int16]
|
||||
sa_data array[int8, 14]
|
||||
}
|
||||
|
||||
sockaddr_storage_generic {
|
||||
sa_family flags[socket_domain, int16]
|
||||
sa_data array[int8, 126]
|
||||
}
|
||||
|
||||
send_msghdr {
|
||||
msg_name ptr[in, sockaddr_storage, opt]
|
||||
msg_namelen len[msg_name, int32]
|
||||
msg_iov ptr[in, array[iovec_in]]
|
||||
msg_iovlen len[msg_iov, intptr]
|
||||
msg_control ptr[in, array[cmsghdr]]
|
||||
msg_controllen len[msg_control, intptr]
|
||||
msg_flags flags[send_flags, int32]
|
||||
}
|
||||
|
||||
send_mmsghdr {
|
||||
msg_hdr send_msghdr
|
||||
msg_len int32
|
||||
}
|
||||
|
||||
recv_msghdr {
|
||||
msg_name ptr[out, sockaddr_storage, opt]
|
||||
msg_namelen len[msg_name, int32]
|
||||
msg_iov ptr[in, array[iovec_out]]
|
||||
msg_iovlen len[msg_iov, intptr]
|
||||
msg_control buffer[out]
|
||||
msg_controllen len[msg_control, intptr]
|
||||
msg_flags int32
|
||||
}
|
||||
|
||||
recv_mmsghdr {
|
||||
msg_hdr recv_msghdr
|
||||
msg_len int32
|
||||
}
|
||||
|
||||
cmsghdr {
|
||||
cmsg_len len[parent, intptr]
|
||||
cmsg_level flags[cmsg_levels, int32]
|
||||
cmsg_type int32
|
||||
data array[int8]
|
||||
} [align_ptr]
|
||||
|
||||
# Socket options
|
||||
|
||||
getsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
|
||||
setsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[in, int32], optlen len[optval])
|
||||
getsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[out, linger], optlen ptr[inout, len[optval, int32]])
|
||||
setsockopt$sock_linger(fd sock, level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[in, linger], optlen len[optval])
|
||||
getsockopt$sock_cred(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen ptr[inout, len[optval, int32]])
|
||||
setsockopt$sock_cred(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[in, ucred], optlen len[optval])
|
||||
getsockopt$sock_timeval(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[out, timeval], optlen ptr[inout, len[optval, int32]])
|
||||
setsockopt$sock_timeval(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[in, timeval], optlen len[optval])
|
||||
getsockopt$SO_PEERCRED(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen len[optval])
|
||||
|
||||
sockopt_opt_sock_int = SO_DEBUG, SO_REUSEADDR, SO_REUSEPORT, SO_KEEPALIVE, SO_DONTROUTE, SO_LINGER, SO_BROADCAST, SO_OOBINLINE, SO_SNDBUF, SO_RCVBUF, SO_SNDLOWAT, SO_RCVLOWAT, SO_TIMESTAMP, SO_ACCEPTFILTER, SO_NOSIGPIPE, SO_TYPE, SO_ERROR
|
||||
sockopt_opt_sock_timeval = SO_RCVTIMEO, SO_SNDTIMEO
|
95
sys/netbsd/socket_amd64.const
Normal file
95
sys/netbsd/socket_amd64.const
Normal file
@ -0,0 +1,95 @@
|
||||
# AUTOGENERATED FILE
|
||||
AF_APPLETALK = 16
|
||||
AF_BLUETOOTH = 31
|
||||
AF_INET = 2
|
||||
AF_INET6 = 24
|
||||
AF_LOCAL = 1
|
||||
AF_NS = 6
|
||||
IPPROTO_ICMP = 1
|
||||
LINUX_AF_APPLETALK = 5
|
||||
LINUX_AF_INET = 2
|
||||
LINUX_AF_INET6 = 10
|
||||
LINUX_MSG_DONTROUTE = 4
|
||||
LINUX_MSG_EOR = 128
|
||||
LINUX_MSG_NOSIGNAL = 16384
|
||||
LINUX_MSG_OOB = 1
|
||||
LINUX_MSG_PEEK = 2
|
||||
LINUX_MSG_WAITALL = 256
|
||||
LINUX_SOL_AX25 = 257
|
||||
LINUX_SOL_IP = 0
|
||||
LINUX_SOL_IPV6 = 41
|
||||
LINUX_SOL_IPX = 256
|
||||
LINUX_SOL_SOCKET = 1
|
||||
LINUX_SOL_TCP = 6
|
||||
LINUX_SOL_UDP = 17
|
||||
LINUX_SO_BROADCAST = 6
|
||||
LINUX_SO_DEBUG = 1
|
||||
LINUX_SO_DONTROUTE = 5
|
||||
LINUX_SO_ERROR = 4
|
||||
LINUX_SO_KEEPALIVE = 9
|
||||
LINUX_SO_LINGER = 13
|
||||
LINUX_SO_OOBINLINE = 10
|
||||
LINUX_SO_RCVBUF = 8
|
||||
LINUX_SO_RCVLOWAT = 18
|
||||
LINUX_SO_RCVTIMEO = 20
|
||||
LINUX_SO_REUSEADDR = 2
|
||||
LINUX_SO_SNDBUF = 7
|
||||
LINUX_SO_SNDLOWAT = 19
|
||||
LINUX_SO_SNDTIMEO = 21
|
||||
LINUX_SO_TIMESTAMP = 29
|
||||
LINUX_SO_TYPE = 3
|
||||
MSG_CMSG_CLOEXEC = 2048
|
||||
MSG_DONTROUTE = 4
|
||||
MSG_EOR = 8
|
||||
MSG_NOSIGNAL = 1024
|
||||
MSG_OOB = 1
|
||||
MSG_PEEK = 2
|
||||
MSG_WAITALL = 64
|
||||
SHUT_RD = 0
|
||||
SHUT_RDWR = 2
|
||||
SHUT_WR = 1
|
||||
SOCK_CLOEXEC = 268435456
|
||||
SOCK_DGRAM = 2
|
||||
SOCK_NONBLOCK = 536870912
|
||||
SOCK_NOSIGPIPE = 1073741824
|
||||
SOCK_RAW = 3
|
||||
SOCK_RDM = 4
|
||||
SOCK_SEQPACKET = 5
|
||||
SOCK_STREAM = 1
|
||||
SOL_SOCKET = 65535
|
||||
SO_ACCEPTFILTER = 4096
|
||||
SO_BROADCAST = 32
|
||||
SO_DEBUG = 1
|
||||
SO_DONTROUTE = 16
|
||||
SO_ERROR = 4103
|
||||
SO_KEEPALIVE = 8
|
||||
SO_LINGER = 128
|
||||
SO_NOSIGPIPE = 2048
|
||||
SO_OOBINLINE = 256
|
||||
SO_PEERCRED = 17
|
||||
SO_RCVBUF = 4098
|
||||
SO_RCVLOWAT = 4100
|
||||
SO_RCVTIMEO = 4108
|
||||
SO_REUSEADDR = 4
|
||||
SO_REUSEPORT = 512
|
||||
SO_SNDBUF = 4097
|
||||
SO_SNDLOWAT = 4099
|
||||
SO_SNDTIMEO = 4107
|
||||
SO_TIMESTAMP = 8192
|
||||
SO_TYPE = 4104
|
||||
SYS_accept = 30
|
||||
SYS_bind = 104
|
||||
SYS_connect = 98
|
||||
SYS_getpeername = 31
|
||||
SYS_getsockname = 32
|
||||
SYS_getsockopt = 118
|
||||
SYS_listen = 106
|
||||
SYS_paccept = 456
|
||||
SYS_recvfrom = 29
|
||||
SYS_recvmsg = 27
|
||||
SYS_sendmsg = 28
|
||||
SYS_sendto = 133
|
||||
SYS_setsockopt = 105
|
||||
SYS_shutdown = 134
|
||||
SYS_socket = 394
|
||||
SYS_socketpair = 135
|
64
sys/netbsd/socket_inet.txt
Normal file
64
sys/netbsd/socket_inet.txt
Normal file
@ -0,0 +1,64 @@
|
||||
# Copyright 2017 syzkaller project authors. All rights reserved.
|
||||
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
||||
|
||||
include <sys/types.h>
|
||||
include <sys/socket.h>
|
||||
include <sys/sockio.h>
|
||||
include <netinet/in.h>
|
||||
|
||||
# IP sockets
|
||||
|
||||
resource sock_in[sock]
|
||||
|
||||
sock_in_pair {
|
||||
f0 sock_in
|
||||
f1 sock_in
|
||||
}
|
||||
|
||||
sockaddr_in {
|
||||
family const[AF_INET, int16]
|
||||
port proc[20000, 4, int16be]
|
||||
pad array[const[0, int8], 8]
|
||||
}
|
||||
|
||||
sockaddr_storage_in {
|
||||
addr sockaddr_in
|
||||
pad array[const[0, int64], 15]
|
||||
}
|
||||
|
||||
socket$inet(domain const[AF_INET], type flags[socket_type], proto int8) sock_in
|
||||
socketpair$inet(domain const[AF_INET], type flags[socket_type], proto int8, fds ptr[out, sock_in_pair])
|
||||
accept$inet(fd sock_in, peer ptr[out, sockaddr_in, opt], peerlen ptr[inout, len[peer, int32]]) sock_in
|
||||
bind$inet(fd sock_in, addr ptr[in, sockaddr_in], addrlen len[addr])
|
||||
connect$inet(fd sock_in, addr ptr[in, sockaddr_in], addrlen len[addr])
|
||||
sendto$inet(fd sock_in, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in, opt], addrlen len[addr])
|
||||
recvfrom$inet(fd sock_in, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in, opt], addrlen len[addr])
|
||||
getsockname$inet(fd sock_in, addr ptr[out, sockaddr_in], addrlen ptr[inout, len[addr, int32]])
|
||||
getpeername$inet(fd sock_in, peer ptr[out, sockaddr_in], peerlen ptr[inout, len[peer, int32]])
|
||||
|
||||
# Generic IP options
|
||||
|
||||
# Specific IP options
|
||||
|
||||
sockopt_opt_ip_opts = IP_OPTIONS
|
||||
|
||||
getsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[out], optlen ptr[inout, len[optval, int32]])
|
||||
setsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[in], optlen len[optval])
|
||||
|
||||
group_req_in {
|
||||
gr_interface int32
|
||||
gr_group sockaddr_storage_in
|
||||
}
|
||||
|
||||
group_source_req_in {
|
||||
gsr_interface int32
|
||||
gsr_group sockaddr_storage_in
|
||||
gsr_source sockaddr_storage_in
|
||||
}
|
||||
|
||||
group_filter_in {
|
||||
gf_interface int32
|
||||
gf_group sockaddr_storage_in
|
||||
gf_numsrc len[gf_slist, int32]
|
||||
gf_slist array[sockaddr_storage_in]
|
||||
}
|
93
sys/netbsd/socket_inet6.txt
Normal file
93
sys/netbsd/socket_inet6.txt
Normal file
@ -0,0 +1,93 @@
|
||||
# Copyright 2017 syzkaller project authors. All rights reserved.
|
||||
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
||||
|
||||
include <sys/types.h>
|
||||
include <sys/param.h>
|
||||
include <sys/socket.h>
|
||||
include <netinet/in.h>
|
||||
include <net/route.h>
|
||||
include <netinet6/ip6_mroute.h>
|
||||
include <compat/linux/common/linux_socket.h>
|
||||
include <sys/sockio.h>
|
||||
|
||||
# IPv6 sockets
|
||||
|
||||
resource sock_in6[sock]
|
||||
|
||||
sock_in6_pair {
|
||||
f0 sock_in6
|
||||
f1 sock_in6
|
||||
}
|
||||
|
||||
sockaddr_in6 {
|
||||
family const[AF_INET6, int16]
|
||||
port proc[20000, 4, int16be]
|
||||
flow int32
|
||||
scope int32
|
||||
}
|
||||
|
||||
sockaddr_storage_in6 {
|
||||
addr sockaddr_in6
|
||||
pad array[const[0, int64], 12]
|
||||
}
|
||||
|
||||
socket$inet6(domain const[AF_INET6], type flags[socket_type], proto int8) sock_in6
|
||||
socketpair$inet6(domain const[AF_INET6], type flags[socket_type], proto int8, fds ptr[out, sock_in6_pair])
|
||||
accept$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]]) sock_in6
|
||||
bind$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
|
||||
connect$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
|
||||
sendto$inet6(fd sock_in6, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
|
||||
recvfrom$inet6(fd sock_in6, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
|
||||
getsockname$inet6(fd sock_in6, addr ptr[out, sockaddr_in6], addrlen ptr[inout, len[addr, int32]])
|
||||
getpeername$inet6(fd sock_in6, peer ptr[out, sockaddr_in6], peerlen ptr[inout, len[peer, int32]])
|
||||
|
||||
# Generic IPv6 options
|
||||
|
||||
# Specific IPv6 options
|
||||
|
||||
# TODO: IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS
|
||||
# TODO: IPV6_PATHMTU
|
||||
# TODO: IP6T_SO_GET_REVISION_MATCH, IP6T_SO_GET_REVISION_TARGET
|
||||
|
||||
setsockopt$inet6_MRT6_ADD_MIF(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MIF], optval ptr[in, mif6ctl], optlen len[optval])
|
||||
setsockopt$inet6_MRT6_ADD_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_ADD_MFC], optval ptr[in, mf6cctl], optlen len[optval])
|
||||
setsockopt$inet6_MRT6_DEL_MFC(fd sock_in6, level const[IPPROTO_IPV6], optname const[MRT6_DEL_MFC], optval ptr[in, mf6cctl], optlen len[optval])
|
||||
|
||||
mif6ctl {
|
||||
mif6c_mifi int16
|
||||
mif6c_flags flags[mif6c_flags, int8]
|
||||
vifc_threshold int8
|
||||
mif6c_pifi int16
|
||||
vifc_rate_limit int32
|
||||
}
|
||||
|
||||
mif6c_flags = MIFF_REGISTER
|
||||
|
||||
mf6cctl {
|
||||
mf6cc_origin sockaddr_in6
|
||||
mf6cc_mcastgrp sockaddr_in6
|
||||
mf6cc_parent int16
|
||||
mf6cc_ifset array[int32, 8]
|
||||
}
|
||||
|
||||
group_req_in6 {
|
||||
gr_interface int32
|
||||
gr_group sockaddr_storage_in6
|
||||
}
|
||||
|
||||
group_source_req_in6 {
|
||||
gsr_interface int32
|
||||
gsr_group sockaddr_storage_in6
|
||||
gsr_source sockaddr_storage_in6
|
||||
}
|
||||
|
||||
group_filter_in6 {
|
||||
gf_interface int32
|
||||
gf_group sockaddr_storage_in6
|
||||
gf_numsrc len[gf_slist, int32]
|
||||
gf_slist array[sockaddr_storage_in6]
|
||||
}
|
||||
|
||||
in6_ifreq {
|
||||
ifr6_prefixlen int32
|
||||
}
|
18
sys/netbsd/socket_inet6_amd64.const
Normal file
18
sys/netbsd/socket_inet6_amd64.const
Normal file
@ -0,0 +1,18 @@
|
||||
# AUTOGENERATED FILE
|
||||
AF_INET6 = 24
|
||||
IPPROTO_IPV6 = 41
|
||||
LINUX_AF_INET6 = 10
|
||||
MIFF_REGISTER = 1
|
||||
MRT6_ADD_MFC = 104
|
||||
MRT6_ADD_MIF = 102
|
||||
MRT6_DEL_MFC = 105
|
||||
SYS_accept = 30
|
||||
SYS_bind = 104
|
||||
SYS_connect = 98
|
||||
SYS_getpeername = 31
|
||||
SYS_getsockname = 32
|
||||
SYS_recvfrom = 29
|
||||
SYS_sendto = 133
|
||||
SYS_setsockopt = 105
|
||||
SYS_socket = 394
|
||||
SYS_socketpair = 135
|
15
sys/netbsd/socket_inet_amd64.const
Normal file
15
sys/netbsd/socket_inet_amd64.const
Normal file
@ -0,0 +1,15 @@
|
||||
# AUTOGENERATED FILE
|
||||
AF_INET = 2
|
||||
IPPROTO_IP = 0
|
||||
IP_OPTIONS = 1
|
||||
SYS_accept = 30
|
||||
SYS_bind = 104
|
||||
SYS_connect = 98
|
||||
SYS_getpeername = 31
|
||||
SYS_getsockname = 32
|
||||
SYS_getsockopt = 118
|
||||
SYS_recvfrom = 29
|
||||
SYS_sendto = 133
|
||||
SYS_setsockopt = 105
|
||||
SYS_socket = 394
|
||||
SYS_socketpair = 135
|
78
sys/netbsd/socket_unix.txt
Normal file
78
sys/netbsd/socket_unix.txt
Normal file
@ -0,0 +1,78 @@
|
||||
# Copyright 2017 syzkaller project authors. All rights reserved.
|
||||
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
||||
|
||||
# AF_UNIX support.
|
||||
|
||||
include <sys/types.h>
|
||||
include <sys/socket.h>
|
||||
include <netinet/in.h>
|
||||
include <compat/linux/common/linux_socket.h>
|
||||
|
||||
resource sock_unix[sock]
|
||||
|
||||
socket$unix(domain const[AF_UNIX], type flags[unix_socket_type], proto const[0]) sock_unix
|
||||
socketpair$unix(domain const[AF_UNIX], type flags[unix_socket_type], proto const[0], fds ptr[out, unix_pair])
|
||||
bind$unix(fd sock_unix, addr ptr[in, sockaddr_un], addrlen len[addr])
|
||||
connect$unix(fd sock_unix, addr ptr[in, sockaddr_un], addrlen len[addr])
|
||||
accept$unix(fd sock_unix, peer ptr[out, sockaddr_un, opt], peerlen ptr[inout, len[peer, int32]]) sock_unix
|
||||
|
||||
sendto$unix(fd sock_unix, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
|
||||
sendmsg$unix(fd sock_unix, msg ptr[in, msghdr_un], f flags[send_flags])
|
||||
recvfrom$unix(fd sock_unix, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_un, opt], addrlen len[addr])
|
||||
getsockname$unix(fd sock_unix, addr ptr[out, sockaddr_un], addrlen ptr[inout, len[addr, int32]])
|
||||
getpeername$unix(fd sock_unix, peer ptr[out, sockaddr_un], peerlen ptr[inout, len[peer, int32]])
|
||||
|
||||
unix_socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET
|
||||
unix_socket_family = AF_UNIX, AF_UNSPEC
|
||||
|
||||
unix_pair {
|
||||
fd0 sock_unix
|
||||
fd1 sock_unix
|
||||
}
|
||||
|
||||
sockaddr_un [
|
||||
file sockaddr_un_file
|
||||
abs sockaddr_un_abstract
|
||||
] [varlen]
|
||||
|
||||
sockaddr_un_file {
|
||||
family flags[unix_socket_family, int16]
|
||||
path filename
|
||||
} [packed]
|
||||
|
||||
sockaddr_un_abstract {
|
||||
family flags[unix_socket_family, int16]
|
||||
ind const[0, int8]
|
||||
id proc[20000, 4, int32]
|
||||
}
|
||||
|
||||
msghdr_un {
|
||||
addr ptr[in, sockaddr_un]
|
||||
addrlen len[addr, int32]
|
||||
vec ptr[in, array[iovec_in]]
|
||||
vlen len[vec, intptr]
|
||||
ctrl ptr[in, array[cmsghdr_un], opt]
|
||||
ctrllen len[ctrl, intptr]
|
||||
f flags[send_flags, int32]
|
||||
}
|
||||
|
||||
cmsghdr_un [
|
||||
rights cmsghdr_un_rights
|
||||
cred cmsghdr_un_cred
|
||||
] [varlen]
|
||||
|
||||
cmsghdr_un_rights {
|
||||
len len[parent, intptr]
|
||||
level const[SOL_SOCKET, int32]
|
||||
type const[SCM_RIGHTS, int32]
|
||||
fds array[fd]
|
||||
} [align_ptr]
|
||||
|
||||
cmsghdr_un_cred {
|
||||
len len[parent, intptr]
|
||||
level const[SOL_SOCKET, int32]
|
||||
type const[LINUX_SCM_CREDENTIALS, int32]
|
||||
pid pid
|
||||
uid uid
|
||||
gid gid
|
||||
} [align_ptr]
|
23
sys/netbsd/socket_unix_amd64.const
Normal file
23
sys/netbsd/socket_unix_amd64.const
Normal file
@ -0,0 +1,23 @@
|
||||
# AUTOGENERATED FILE
|
||||
AF_UNIX = 1
|
||||
AF_UNSPEC = 0
|
||||
LINUX_AF_UNIX = 1
|
||||
LINUX_AF_UNSPEC = 0
|
||||
LINUX_SCM_CREDENTIALS = 2
|
||||
LINUX_SCM_RIGHTS = 1
|
||||
LINUX_SOL_SOCKET = 1
|
||||
SCM_RIGHTS = 1
|
||||
SOCK_DGRAM = 2
|
||||
SOCK_SEQPACKET = 5
|
||||
SOCK_STREAM = 1
|
||||
SOL_SOCKET = 65535
|
||||
SYS_accept = 30
|
||||
SYS_bind = 104
|
||||
SYS_connect = 98
|
||||
SYS_getpeername = 31
|
||||
SYS_getsockname = 32
|
||||
SYS_recvfrom = 29
|
||||
SYS_sendmsg = 28
|
||||
SYS_sendto = 133
|
||||
SYS_socket = 394
|
||||
SYS_socketpair = 135
|
404
sys/netbsd/sys.txt
Normal file
404
sys/netbsd/sys.txt
Normal file
@ -0,0 +1,404 @@
|
||||
# Copyright 2017 syzkaller project authors. All rights reserved.
|
||||
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
||||
|
||||
include <sys/types.h>
|
||||
include <sys/mman.h>
|
||||
include <sys/stat.h>
|
||||
include <fcntl.h>
|
||||
include <unistd.h>
|
||||
include <sys/time.h>
|
||||
include <dirent.h>
|
||||
include <poll.h>
|
||||
include <sys/select.h>
|
||||
include <sys/param.h>
|
||||
include <sys/resource.h>
|
||||
include <time.h>
|
||||
include <signal.h>
|
||||
include <sys/wait.h>
|
||||
|
||||
pipe(pipefd ptr[out, pipefd])
|
||||
|
||||
stat(file ptr[in, filename], statbuf ptr[out, stat])
|
||||
lstat(file ptr[in, filename], statbuf ptr[out, stat])
|
||||
|
||||
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])
|
||||
|
||||
mincore(addr vma, size len[addr], vec buffer[out])
|
||||
|
||||
fcntl$dupfd(fd fd, cmd flags[fcntl_dupfd], arg fd) fd
|
||||
fcntl$getflags(fd fd, cmd flags[fcntl_getflags])
|
||||
fcntl$setflags(fd fd, cmd const[F_SETFD], flags flags[fcntl_flags])
|
||||
fcntl$setstatus(fd fd, cmd const[F_SETFL], flags flags[fcntl_status])
|
||||
fcntl$lock(fd fd, cmd flags[fcntl_lock], lock ptr[in, flock])
|
||||
fcntl$getown(fd fd, cmd const[F_GETOWN]) pid
|
||||
fcntl$setown(fd fd, cmd const[F_SETOWN], pid pid)
|
||||
|
||||
mknod(file ptr[in, filename], mode flags[mknod_mode], dev int32)
|
||||
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)
|
||||
chmod(file ptr[in, filename], mode flags[open_mode])
|
||||
fchmod(fd fd, mode flags[open_mode])
|
||||
fchmodat(dirfd fd_dir, file ptr[in, filename], mode flags[open_mode], flags flags[at_flags])
|
||||
chown(file ptr[in, filename], uid uid, gid gid)
|
||||
lchown(file ptr[in, filename], uid uid, gid gid)
|
||||
fchown(fd fd, uid uid, gid gid)
|
||||
fchownat(dirfd fd_dir, file ptr[in, filename], uid uid, gid gid, flags flags[at_flags])
|
||||
faccessat(dirfd fd_dir, pathname ptr[in, filename], mode flags[open_mode], flags flags[faccessat_flags])
|
||||
utimes(filename ptr[in, filename], times ptr[in, itimerval])
|
||||
utimensat(dir fd_dir, pathname ptr[in, filename], times ptr[in, itimerval], flags flags[utimensat_flags])
|
||||
|
||||
execve(file ptr[in, filename], argv ptr[in, array[ptr[in, string]]], envp ptr[in, array[ptr[in, string]]])
|
||||
|
||||
getgid() gid
|
||||
getegid() gid
|
||||
setuid(uid uid)
|
||||
setgid(gid gid)
|
||||
seteuid(euid uid)
|
||||
setegid(egid gid)
|
||||
getuid() uid
|
||||
geteuid() uid
|
||||
setpgid(pid pid, pgid pid)
|
||||
getpgid(pid pid) pid
|
||||
getpgrp() pid
|
||||
getpid() pid
|
||||
getppid() pid
|
||||
setreuid(ruid uid, euid uid)
|
||||
setregid(rgid gid, egid gid)
|
||||
getgroups(size len[list], list ptr[inout, array[gid]])
|
||||
setgroups(size len[list], list ptr[in, array[gid]])
|
||||
|
||||
link(old ptr[in, filename], new ptr[in, filename])
|
||||
linkat(oldfd fd_dir, old ptr[in, filename], newfd fd_dir, new ptr[in, filename], flags flags[linkat_flags])
|
||||
symlinkat(old ptr[in, filename], newfd fd_dir, new ptr[in, filename])
|
||||
symlink(old ptr[in, filename], new ptr[in, filename])
|
||||
unlink(path ptr[in, filename])
|
||||
unlinkat(fd fd_dir, path ptr[in, filename], flags flags[unlinkat_flags])
|
||||
readlink(path ptr[in, filename], buf buffer[out], siz len[buf])
|
||||
readlinkat(fd fd_dir, path ptr[in, filename], buf buffer[out], siz len[buf])
|
||||
rename(old ptr[in, filename], new ptr[in, filename])
|
||||
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)
|
||||
flock(fd fd, op flags[flock_op])
|
||||
fsync(fd fd)
|
||||
fdatasync(fd fd)
|
||||
sync()
|
||||
getdents(fd fd_dir, ent buffer[out], count len[ent])
|
||||
chroot(dir ptr[in, filename])
|
||||
fchroot(fd fd)
|
||||
chdir(dir ptr[in, filename])
|
||||
fchdir(fd fd)
|
||||
|
||||
getrusage(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])
|
||||
|
||||
clock_gettime(id flags[clock_id], tp ptr[out, timespec])
|
||||
clock_settime(id flags[clock_id], tp ptr[in, timespec])
|
||||
clock_getres(id flags[clock_id], tp ptr[out, timespec])
|
||||
clock_nanosleep(id flags[clock_id], flags flags[timer_flags], rqtp ptr[in, timespec], rmtp ptr[out, timespec, opt])
|
||||
nanosleep(req ptr[in, timespec], rem ptr[out, timespec, opt])
|
||||
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])
|
||||
|
||||
pollfd {
|
||||
fd fd
|
||||
events flags[pollfd_events, int16]
|
||||
revents const[0, int16]
|
||||
}
|
||||
|
||||
sigset {
|
||||
mask int64
|
||||
}
|
||||
|
||||
sigset_size {
|
||||
ss ptr[inout, sigset]
|
||||
len len[ss, intptr]
|
||||
}
|
||||
|
||||
resource time_sec[intptr]
|
||||
resource time_nsec[intptr]
|
||||
resource time_usec[intptr]
|
||||
|
||||
# prog knowns about this struct type
|
||||
timespec {
|
||||
sec intptr
|
||||
nsec intptr
|
||||
}
|
||||
|
||||
# prog knowns about this struct type
|
||||
timeval {
|
||||
sec intptr
|
||||
usec intptr
|
||||
}
|
||||
|
||||
statx_timestamp {
|
||||
sec int64
|
||||
nsec int32
|
||||
__reserved int32
|
||||
}
|
||||
|
||||
itimerspec {
|
||||
interv timespec
|
||||
value timespec
|
||||
}
|
||||
|
||||
itimerval {
|
||||
interv timeval
|
||||
value timeval
|
||||
}
|
||||
|
||||
utimbuf {
|
||||
actime intptr
|
||||
modtime intptr
|
||||
}
|
||||
|
||||
io_event {
|
||||
data int64
|
||||
obj int64
|
||||
res int64
|
||||
res2 int32
|
||||
}
|
||||
|
||||
sigevent {
|
||||
val const[0, intptr]
|
||||
signo signalno
|
||||
notify flags[sigev_notify, int32]
|
||||
u sigevent_u
|
||||
pad array[const[0, int64], 8]
|
||||
}
|
||||
|
||||
sigevent_u [
|
||||
tid pid
|
||||
thr sigevent_thread
|
||||
]
|
||||
|
||||
sigevent_thread {
|
||||
# TODO: this is function pointer and pthread_attr_t (?)
|
||||
func buffer[in]
|
||||
attr buffer[in]
|
||||
}
|
||||
|
||||
cap_header {
|
||||
var flags[cap_version, int32]
|
||||
pid pid
|
||||
}
|
||||
|
||||
cap_data {
|
||||
eff0 int32
|
||||
perm0 int32
|
||||
inher0 int32
|
||||
eff1 int32
|
||||
perm1 int32
|
||||
inher1 int32
|
||||
}
|
||||
|
||||
# TODO: fd_set needs to be a separate type
|
||||
fd_set {
|
||||
mask0 int64
|
||||
mask1 int64
|
||||
mask2 int64
|
||||
mask3 int64
|
||||
mask4 int64
|
||||
mask5 int64
|
||||
mask6 int64
|
||||
mask7 int64
|
||||
}
|
||||
|
||||
sock_fprog {
|
||||
len len[filter, int16]
|
||||
filter ptr[in, array[sock_filter]]
|
||||
}
|
||||
|
||||
sock_filter {
|
||||
code int16
|
||||
jt int8
|
||||
jf int8
|
||||
k int32
|
||||
}
|
||||
|
||||
file_handle {
|
||||
bytes len[parent, int32]
|
||||
type int32
|
||||
handle array[int8]
|
||||
}
|
||||
|
||||
mq_attr {
|
||||
flags intptr
|
||||
maxmsg intptr
|
||||
msgsize intptr
|
||||
curmsg intptr
|
||||
res0 intptr
|
||||
res1 intptr
|
||||
res2 intptr
|
||||
res3 intptr
|
||||
}
|
||||
|
||||
kexec_segment {
|
||||
buf buffer[in]
|
||||
sz len[buf, intptr]
|
||||
# TODO: this is address in kernel
|
||||
mem intptr
|
||||
memsz intptr
|
||||
}
|
||||
|
||||
robust_list {
|
||||
next vma
|
||||
off intptr
|
||||
pend vma
|
||||
}
|
||||
|
||||
rusage {
|
||||
utime timeval
|
||||
stime timeval
|
||||
maxrss intptr
|
||||
ixrss intptr
|
||||
idrss intptr
|
||||
isrss intptr
|
||||
minflt intptr
|
||||
majflt intptr
|
||||
nswap intptr
|
||||
inblock intptr
|
||||
oublock intptr
|
||||
msgsnd intptr
|
||||
msgrcv intptr
|
||||
signals intptr
|
||||
nvcsw intptr
|
||||
nivcsw intptr
|
||||
}
|
||||
|
||||
rlimit {
|
||||
soft intptr
|
||||
hard intptr
|
||||
}
|
||||
|
||||
sigaction {
|
||||
# TODO: function pointers need special support
|
||||
handler intptr
|
||||
mask sigset
|
||||
flags flags[sigaction_flags, intptr]
|
||||
restor intptr
|
||||
}
|
||||
|
||||
tms {
|
||||
utime intptr
|
||||
stime intptr
|
||||
cutime intptr
|
||||
cstime intptr
|
||||
}
|
||||
|
||||
siginfo {
|
||||
signo signalno
|
||||
errno int32
|
||||
code int32
|
||||
pad3 int32
|
||||
# actual size is 128 bytes
|
||||
}
|
||||
|
||||
timex {
|
||||
stuff0 intptr
|
||||
stuff1 intptr
|
||||
stuff2 intptr
|
||||
stuff3 intptr
|
||||
stuff4 intptr
|
||||
stuff5 intptr
|
||||
stuff6 intptr
|
||||
stuff7 intptr
|
||||
stuff8 intptr
|
||||
stuff9 intptr
|
||||
stuff10 intptr
|
||||
stuff11 intptr
|
||||
stuff12 intptr
|
||||
stuff13 intptr
|
||||
stuff14 intptr
|
||||
stuff15 intptr
|
||||
stuff16 intptr
|
||||
stuff17 intptr
|
||||
stuff18 intptr
|
||||
stuff19 intptr
|
||||
stuff20 intptr
|
||||
stuff21 intptr
|
||||
stuff22 intptr
|
||||
stuff23 intptr
|
||||
stuff24 intptr
|
||||
stuff25 intptr
|
||||
}
|
||||
|
||||
ustat {
|
||||
free int32
|
||||
inode intptr
|
||||
nampac0 int32
|
||||
nampac1 int32
|
||||
nampac2 int32
|
||||
}
|
||||
|
||||
user_desc {
|
||||
entry_number int32
|
||||
# Base should be vma and limit should be len[base]
|
||||
# But these fields are int32, so we can't use vma.
|
||||
base_addr flags[user_desc_bases, int32]
|
||||
limit flags[user_desc_limits, int32]
|
||||
seg_32bit int32:1
|
||||
contents int32:2
|
||||
read_exec_only int32:1
|
||||
limit_in_pages int32:1
|
||||
seg_not_present int32:1
|
||||
useable int32:1
|
||||
lm int32:1
|
||||
}
|
||||
|
||||
user_desc_bases = 0, 4096, 1048576, 536870912, 536872960, 536875008, 0xffffffff
|
||||
user_desc_limits = 0, 1024, 4096, 8192, 16384, 0xffffffff
|
||||
|
||||
flock {
|
||||
type flags[flock_type, int16]
|
||||
whence flags[seek_whence, int16]
|
||||
start intptr
|
||||
len intptr
|
||||
pid pid
|
||||
}
|
||||
|
||||
linger {
|
||||
onoff int32
|
||||
linger int32
|
||||
}
|
||||
|
||||
ucred {
|
||||
pid pid
|
||||
uid uid
|
||||
gid gid
|
||||
}
|
||||
|
||||
fadvise_flags = POSIX_FADV_NORMAL, POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_NOREUSE, POSIX_FADV_WILLNEED, POSIX_FADV_DONTNEED
|
||||
clock_type = CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID
|
||||
sigev_notify = SIGEV_NONE, SIGEV_SIGNAL, SIGEV_THREAD
|
||||
cap_version = 0x19980330, 0x20071026, 0x20080522
|
||||
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
|
||||
at_flags = AT_SYMLINK_NOFOLLOW, AT_SYMLINK_FOLLOW
|
||||
linkat_flags = AT_SYMLINK_FOLLOW
|
||||
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
|
||||
clock_id = CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_PROCESS_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID, CLOCK_VIRTUAL, CLOCK_PROF
|
||||
sigprocmask_how = SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK
|
||||
getitimer_which = ITIMER_REAL, ITIMER_VIRTUAL, ITIMER_PROF, ITIMER_MONOTONIC
|
||||
wait_options = WALLSIG, WALTSIG, WCONTINUED, WEXITED, WNOHANG, WNOZOMBIE, WSTOPPED, WTRAPPED, WUNTRACED
|
||||
waitid_which = P_PID, P_PGID, P_ALL
|
||||
sigaction_flags = SA_NOCLDSTOP, SA_NOCLDWAIT, SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_RESTART, SA_SIGINFO
|
||||
timer_flags = 0, TIMER_ABSTIME
|
||||
utimensat_flags = 0, AT_SYMLINK_NOFOLLOW
|
||||
priority_which = PRIO_PROCESS, PRIO_PGRP, PRIO_USER
|
||||
fcntl_dupfd = F_DUPFD, F_DUPFD_CLOEXEC
|
||||
fcntl_getflags = F_GETFD, F_GETFL
|
||||
fcntl_lock = F_SETLK, F_SETLKW, F_GETLK
|
||||
fcntl_flags = FD_CLOEXEC
|
||||
fcntl_status = O_APPEND, O_ASYNC, O_NONBLOCK, O_DSYNC, O_RSYNC, O_ALT_IO, O_DIRECT, O_NOSIGPIPE
|
||||
flock_type = F_RDLCK, F_WRLCK, F_UNLCK
|
186
sys/netbsd/sys_amd64.const
Normal file
186
sys/netbsd/sys_amd64.const
Normal file
@ -0,0 +1,186 @@
|
||||
# AUTOGENERATED FILE
|
||||
AT_EACCESS = 256
|
||||
AT_REMOVEDIR = 2048
|
||||
AT_SYMLINK_FOLLOW = 1024
|
||||
AT_SYMLINK_NOFOLLOW = 512
|
||||
CLOCK_MONOTONIC = 3
|
||||
CLOCK_PROCESS_CPUTIME_ID = 1073741824
|
||||
CLOCK_PROF = 2
|
||||
CLOCK_REALTIME = 0
|
||||
CLOCK_THREAD_CPUTIME_ID = 536870912
|
||||
CLOCK_VIRTUAL = 1
|
||||
FD_CLOEXEC = 1
|
||||
F_DUPFD = 0
|
||||
F_DUPFD_CLOEXEC = 12
|
||||
F_GETFD = 1
|
||||
F_GETFL = 3
|
||||
F_GETLK = 7
|
||||
F_GETOWN = 5
|
||||
F_RDLCK = 1
|
||||
F_SETFD = 2
|
||||
F_SETFL = 4
|
||||
F_SETLK = 8
|
||||
F_SETLKW = 9
|
||||
F_SETOWN = 6
|
||||
F_UNLCK = 2
|
||||
F_WRLCK = 3
|
||||
ITIMER_MONOTONIC = 3
|
||||
ITIMER_PROF = 2
|
||||
ITIMER_REAL = 0
|
||||
ITIMER_VIRTUAL = 1
|
||||
LOCK_EX = 2
|
||||
LOCK_NB = 4
|
||||
LOCK_SH = 1
|
||||
LOCK_UN = 8
|
||||
O_ALT_IO = 262144
|
||||
O_APPEND = 8
|
||||
O_ASYNC = 64
|
||||
O_DIRECT = 524288
|
||||
O_DSYNC = 65536
|
||||
O_NONBLOCK = 4
|
||||
O_NOSIGPIPE = 16777216
|
||||
O_RSYNC = 131072
|
||||
POLLERR = 8
|
||||
POLLHUP = 16
|
||||
POLLIN = 1
|
||||
POLLNVAL = 32
|
||||
POLLOUT = 4
|
||||
POLLPRI = 2
|
||||
POLLRDBAND = 128
|
||||
POLLRDNORM = 64
|
||||
POLLWRBAND = 256
|
||||
POLLWRNORM = 4
|
||||
POSIX_FADV_DONTNEED = 4
|
||||
POSIX_FADV_NOREUSE = 5
|
||||
POSIX_FADV_NORMAL = 0
|
||||
POSIX_FADV_RANDOM = 1
|
||||
POSIX_FADV_SEQUENTIAL = 2
|
||||
POSIX_FADV_WILLNEED = 3
|
||||
PRIO_PGRP = 1
|
||||
PRIO_PROCESS = 0
|
||||
PRIO_USER = 2
|
||||
P_ALL = 0
|
||||
P_PGID = 4
|
||||
P_PID = 1
|
||||
RLIMIT_AS = 10
|
||||
RLIMIT_CORE = 4
|
||||
RLIMIT_CPU = 0
|
||||
RLIMIT_DATA = 2
|
||||
RLIMIT_FSIZE = 1
|
||||
RLIMIT_MEMLOCK = 6
|
||||
RLIMIT_NOFILE = 8
|
||||
RLIMIT_NPROC = 7
|
||||
RLIMIT_NTHR = 11
|
||||
RLIMIT_RSS = 5
|
||||
RLIMIT_STACK = 3
|
||||
RUSAGE_CHILDREN = 18446744073709551615
|
||||
RUSAGE_SELF = 0
|
||||
SA_NOCLDSTOP = 8
|
||||
SA_NOCLDWAIT = 32
|
||||
SA_NODEFER = 16
|
||||
SA_ONSTACK = 1
|
||||
SA_RESETHAND = 4
|
||||
SA_RESTART = 2
|
||||
SA_SIGINFO = 64
|
||||
SIGEV_NONE = 0
|
||||
SIGEV_SIGNAL = 1
|
||||
SIGEV_THREAD = 2
|
||||
SIG_BLOCK = 1
|
||||
SIG_SETMASK = 3
|
||||
SIG_UNBLOCK = 2
|
||||
SYS_chdir = 12
|
||||
SYS_chmod = 15
|
||||
SYS_chown = 16
|
||||
SYS_chroot = 61
|
||||
SYS_clock_getres = 429
|
||||
SYS_clock_gettime = 427
|
||||
SYS_clock_nanosleep = 477
|
||||
SYS_clock_settime = 428
|
||||
SYS_execve = 59
|
||||
SYS_faccessat = 462
|
||||
SYS_fchdir = 13
|
||||
SYS_fchmod = 124
|
||||
SYS_fchmodat = 463
|
||||
SYS_fchown = 123
|
||||
SYS_fchownat = 464
|
||||
SYS_fchroot = 297
|
||||
SYS_fcntl = 92
|
||||
SYS_fdatasync = 241
|
||||
SYS_flock = 131
|
||||
SYS_fsync = 95
|
||||
SYS_ftruncate = 201
|
||||
SYS_getdents = 390
|
||||
SYS_getegid = 43
|
||||
SYS_geteuid = 25
|
||||
SYS_getgid = 47
|
||||
SYS_getgroups = 79
|
||||
SYS_getitimer = 426
|
||||
SYS_getpgid = 207
|
||||
SYS_getpgrp = 81
|
||||
SYS_getpid = 20
|
||||
SYS_getppid = 39
|
||||
SYS_getrlimit = 194
|
||||
SYS_getrusage = 445
|
||||
SYS_getuid = 24
|
||||
SYS_lchown = 275
|
||||
SYS_link = 9
|
||||
SYS_linkat = 457
|
||||
SYS_lstat = 441
|
||||
SYS_mincore = 78
|
||||
SYS_mkdir = 136
|
||||
SYS_mkdirat = 461
|
||||
SYS_mknod = 450
|
||||
SYS_mknodat = 460
|
||||
SYS_nanosleep = 430
|
||||
SYS_pipe = 42
|
||||
SYS_poll = 209
|
||||
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
|
||||
SYS_setgroups = 80
|
||||
SYS_setitimer = 425
|
||||
SYS_setpgid = 82
|
||||
SYS_setregid = 127
|
||||
SYS_setreuid = 126
|
||||
SYS_setrlimit = 195
|
||||
SYS_setuid = 23
|
||||
SYS_stat = 439
|
||||
SYS_symlink = 57
|
||||
SYS_symlinkat = 470
|
||||
SYS_sync = 36
|
||||
SYS_truncate = 200
|
||||
SYS_unlink = 10
|
||||
SYS_unlinkat = 471
|
||||
SYS_utimensat = 467
|
||||
SYS_utimes = 420
|
||||
SYS_wait4 = 449
|
||||
S_IFBLK = 24576
|
||||
S_IFCHR = 8192
|
||||
S_IFIFO = 4096
|
||||
S_IFREG = 32768
|
||||
S_IFSOCK = 49152
|
||||
S_IRGRP = 32
|
||||
S_IROTH = 4
|
||||
S_IRUSR = 256
|
||||
S_IWGRP = 16
|
||||
S_IWOTH = 2
|
||||
S_IWUSR = 128
|
||||
S_IXGRP = 8
|
||||
S_IXOTH = 1
|
||||
S_IXUSR = 64
|
||||
TIMER_ABSTIME = 1
|
||||
WALLSIG = 8
|
||||
WALTSIG = 4
|
||||
WCONTINUED = 16
|
||||
WEXITED = 32
|
||||
WNOHANG = 1
|
||||
WNOZOMBIE = 131072
|
||||
WSTOPPED = 2
|
||||
WTRAPPED = 64
|
||||
WUNTRACED = 2
|
@ -59,9 +59,11 @@ func (*netbsd) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]uin
|
||||
const SYS = "SYS_"
|
||||
if strings.HasPrefix(val, SYS) {
|
||||
for _, prefix := range []string{"_", "__", "___"} {
|
||||
compat := SYS + prefix + val[len(SYS):] + "50"
|
||||
compatNames[val] = append(compatNames[val], compat)
|
||||
info.Consts = append(info.Consts, compat)
|
||||
for _, suffix := range []string{"30", "50"} {
|
||||
compat := SYS + prefix + val[len(SYS):] + suffix
|
||||
compatNames[val] = append(compatNames[val], compat)
|
||||
info.Consts = append(info.Consts, compat)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
compat := "LINUX_" + val
|
||||
|
Loading…
Reference in New Issue
Block a user