aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux
diff options
context:
space:
mode:
authorNecip Fazil Yildiran <necip@google.com>2020-06-23 08:53:15 +0300
committerDmitry Vyukov <dvyukov@google.com>2020-06-23 10:34:37 +0200
commit0c8fbbfce1e43634a1c3d71a173e6944e86da76b (patch)
tree26e6d8f8ce83f8a974629b182a98bbda3e05f873 /sys/linux
parent125d86d10169640c73e42208190f624d79a3bde7 (diff)
sys/linux: add descriptions for qrtr socket
Added descriptions to test Qualcomm's IPC router protocol for sockets. Update #533.
Diffstat (limited to 'sys/linux')
-rw-r--r--sys/linux/socket.txt6
-rw-r--r--sys/linux/socket_386.const1
-rw-r--r--sys/linux/socket_amd64.const1
-rw-r--r--sys/linux/socket_arm.const1
-rw-r--r--sys/linux/socket_arm64.const1
-rw-r--r--sys/linux/socket_mips64le.const1
-rw-r--r--sys/linux/socket_ppc64le.const1
-rw-r--r--sys/linux/socket_qipcrtr.txt32
-rw-r--r--sys/linux/socket_qipcrtr_386.const12
-rw-r--r--sys/linux/socket_qipcrtr_amd64.const12
-rw-r--r--sys/linux/socket_qipcrtr_arm.const12
-rw-r--r--sys/linux/socket_qipcrtr_arm64.const12
-rw-r--r--sys/linux/socket_qipcrtr_mips64le.const12
-rw-r--r--sys/linux/socket_qipcrtr_ppc64le.const12
14 files changed, 114 insertions, 2 deletions
diff --git a/sys/linux/socket.txt b/sys/linux/socket.txt
index 79a5c8004..a8595fc5e 100644
--- a/sys/linux/socket.txt
+++ b/sys/linux/socket.txt
@@ -41,7 +41,7 @@ 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_UNIX, AF_INET, AF_INET6, AF_IPX, AF_NETLINK, AF_X25, AF_AX25, AF_ATMPVC, AF_APPLETALK, AF_PACKET, AF_VSOCK, AF_XDP, AF_TIPC, AF_RXRPC, AF_PPPOX, AF_RDS, AF_ROSE, AF_PHONET, AF_NFC, AF_NETROM, AF_KEY, AF_KCM, AF_ISDN, AF_SMC, AF_CAN, AF_CAIF, AF_BLUETOOTH, AF_LLC, AF_ALG
+socket_domain = AF_UNIX, AF_INET, AF_INET6, AF_IPX, AF_NETLINK, AF_X25, AF_AX25, AF_ATMPVC, AF_APPLETALK, AF_PACKET, AF_VSOCK, AF_XDP, AF_TIPC, AF_RXRPC, AF_PPPOX, AF_RDS, AF_ROSE, AF_PHONET, AF_NFC, AF_NETROM, AF_KEY, AF_KCM, AF_ISDN, AF_SMC, AF_CAN, AF_CAIF, AF_BLUETOOTH, AF_LLC, AF_ALG, AF_QIPCRTR
socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, SOCK_RDM, SOCK_SEQPACKET, SOCK_DCCP, SOCK_PACKET, SOCK_NONBLOCK, SOCK_CLOEXEC
accept_flags = SOCK_NONBLOCK, SOCK_CLOEXEC
shutdown_flags = SHUT_RD, SHUT_WR
@@ -55,7 +55,7 @@ sock_pair {
}
# This sockaddr type corresponds to the struct sockaddr and is 16 bytes or less.
-# TODO: add AF_APPLETALK, AF_ATMPVC, AF_X25, AF_ROSE, AF_DECnet, AF_ATMSVC, AF_IRDA, AF_IB, AF_TIPC, AF_IUCV, AF_RXRPC, AF_ISDN, AF_PHONET, AF_IEEE802154, AF_CAIF, AF_QIPCRTR
+# TODO: add AF_APPLETALK, AF_ATMPVC, AF_X25, AF_ROSE, AF_DECnet, AF_ATMSVC, AF_IRDA, AF_IB, AF_TIPC, AF_IUCV, AF_RXRPC, AF_ISDN, AF_PHONET, AF_IEEE802154, AF_CAIF
# Note: AF_UNIX, AF_INET6, AF_PACKET, AF_ALG, AF_PPPOX sockaddr is bigger than 16 bytes
# Note: AF_NETROM sockaddr is the same as AF_AX25
sockaddr [
@@ -77,6 +77,7 @@ sockaddr [
l2tp sockaddr_l2tpip
phonet sockaddr_pn
ethernet sockaddr_ethernet
+ qipcrtr sockaddr_qrtr
generic sockaddr_generic
] [size[SOCKADDR_SIZE]]
@@ -115,6 +116,7 @@ sockaddr_storage [
rxrpc sockaddr_rxrpc
phonet sockaddr_pn
ethernet sockaddr_ethernet
+ qipcrtr sockaddr_qrtr
generic sockaddr_storage_generic
] [size[SOCKADDR_STORAGE_SIZE]]
diff --git a/sys/linux/socket_386.const b/sys/linux/socket_386.const
index 767963579..0e62d5872 100644
--- a/sys/linux/socket_386.const
+++ b/sys/linux/socket_386.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_amd64.const b/sys/linux/socket_amd64.const
index fe078230d..bd21edebd 100644
--- a/sys/linux/socket_amd64.const
+++ b/sys/linux/socket_amd64.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_arm.const b/sys/linux/socket_arm.const
index c7be66310..9566d4b4b 100644
--- a/sys/linux/socket_arm.const
+++ b/sys/linux/socket_arm.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_arm64.const b/sys/linux/socket_arm64.const
index 71a1e9f5d..e1e116965 100644
--- a/sys/linux/socket_arm64.const
+++ b/sys/linux/socket_arm64.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_mips64le.const b/sys/linux/socket_mips64le.const
index ffea43a76..6767c0c0f 100644
--- a/sys/linux/socket_mips64le.const
+++ b/sys/linux/socket_mips64le.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_ppc64le.const b/sys/linux/socket_ppc64le.const
index ab644a282..447394901 100644
--- a/sys/linux/socket_ppc64le.const
+++ b/sys/linux/socket_ppc64le.const
@@ -20,6 +20,7 @@ AF_NFC = 39
AF_PACKET = 17
AF_PHONET = 35
AF_PPPOX = 24
+AF_QIPCRTR = 42
AF_RDS = 21
AF_ROSE = 11
AF_RXRPC = 33
diff --git a/sys/linux/socket_qipcrtr.txt b/sys/linux/socket_qipcrtr.txt
new file mode 100644
index 000000000..cbbd5b559
--- /dev/null
+++ b/sys/linux/socket_qipcrtr.txt
@@ -0,0 +1,32 @@
+# Copyright 2020 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 <linux/socket.h>
+include <linux/net.h>
+include <asm/ioctls.h>
+include <linux/qrtr.h>
+
+# QIPCRTR sockets
+
+resource sock_qrtr[sock]
+
+sockaddr_qrtr {
+ sq_family const[AF_QIPCRTR, int16]
+ sq_node int32
+ sq_port int32
+}
+
+socket$qrtr(domain const[AF_QIPCRTR], type const[SOCK_DGRAM], proto const[0]) sock_qrtr
+
+bind$qrtr(fd sock_qrtr, addr ptr[in, sockaddr_qrtr], addrlen len[addr])
+connect$qrtr(fd sock_qrtr, addr ptr[in, sockaddr_qrtr], addrlen len[addr])
+
+getsockname$qrtr(fd sock_qrtr, addr ptr[out, sockaddr_qrtr], addrlen ptr[inout, len[addr, int32]])
+getpeername$qrtr(fd sock_qrtr, peer ptr[out, sockaddr_qrtr], peerlen ptr[inout, len[peer, int32]])
+
+# ioctls
+ioctl$sock_qrtr_TIOCOUTQ(fd sock_qrtr, cmd const[TIOCOUTQ], arg ptr[out, int64])
+ioctl$sock_qrtr_TIOCINQ(fd sock_qrtr, cmd const[TIOCINQ], arg ptr[out, int64])
+ioctl$sock_qrtr_SIOCGIFADDR(fd sock_qrtr, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_t[sockaddr_qrtr]])
+
+# TODO: sendmsg$qrtr, recvmsg$qrtr, msghdr_qrtr
diff --git a/sys/linux/socket_qipcrtr_386.const b/sys/linux/socket_qipcrtr_386.const
new file mode 100644
index 000000000..7c5e9cb29
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_386.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 2
+TIOCINQ = 21531
+TIOCOUTQ = 21521
+__NR_bind = 361
+__NR_connect = 362
+__NR_getpeername = 368
+__NR_getsockname = 367
+__NR_ioctl = 54
+__NR_socket = 359
diff --git a/sys/linux/socket_qipcrtr_amd64.const b/sys/linux/socket_qipcrtr_amd64.const
new file mode 100644
index 000000000..ac32171a1
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_amd64.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 2
+TIOCINQ = 21531
+TIOCOUTQ = 21521
+__NR_bind = 49
+__NR_connect = 42
+__NR_getpeername = 52
+__NR_getsockname = 51
+__NR_ioctl = 16
+__NR_socket = 41
diff --git a/sys/linux/socket_qipcrtr_arm.const b/sys/linux/socket_qipcrtr_arm.const
new file mode 100644
index 000000000..080981b74
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_arm.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 2
+TIOCINQ = 21531
+TIOCOUTQ = 21521
+__NR_bind = 282
+__NR_connect = 283
+__NR_getpeername = 287
+__NR_getsockname = 286
+__NR_ioctl = 54
+__NR_socket = 281
diff --git a/sys/linux/socket_qipcrtr_arm64.const b/sys/linux/socket_qipcrtr_arm64.const
new file mode 100644
index 000000000..9b6467c5c
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_arm64.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 2
+TIOCINQ = 21531
+TIOCOUTQ = 21521
+__NR_bind = 200
+__NR_connect = 203
+__NR_getpeername = 205
+__NR_getsockname = 204
+__NR_ioctl = 29
+__NR_socket = 198
diff --git a/sys/linux/socket_qipcrtr_mips64le.const b/sys/linux/socket_qipcrtr_mips64le.const
new file mode 100644
index 000000000..9c3245bd9
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_mips64le.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 1
+TIOCINQ = 18047
+TIOCOUTQ = 29810
+__NR_bind = 5048
+__NR_connect = 5041
+__NR_getpeername = 5051
+__NR_getsockname = 5050
+__NR_ioctl = 5015
+__NR_socket = 5040
diff --git a/sys/linux/socket_qipcrtr_ppc64le.const b/sys/linux/socket_qipcrtr_ppc64le.const
new file mode 100644
index 000000000..de5ce9b3b
--- /dev/null
+++ b/sys/linux/socket_qipcrtr_ppc64le.const
@@ -0,0 +1,12 @@
+# AUTOGENERATED FILE
+AF_QIPCRTR = 42
+SIOCGIFADDR = 35093
+SOCK_DGRAM = 2
+TIOCINQ = 1074030207
+TIOCOUTQ = 1074033779
+__NR_bind = 327
+__NR_connect = 328
+__NR_getpeername = 332
+__NR_getsockname = 331
+__NR_ioctl = 54
+__NR_socket = 326