aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2017-03-31 15:27:23 +0200
committerAndrey Konovalov <andreyknvl@google.com>2017-03-31 19:34:05 +0200
commit3312d2cafa0e194870a7aa74df80880e2adf52af (patch)
treeccd2034e32225d1830bf523fc4f8a66b19a00eda /sys
parent4862175c23fd81f1dff1c97bb70b1a61fbefbd68 (diff)
sys: add basic AF_IPX descriptions
Diffstat (limited to 'sys')
-rw-r--r--sys/socket_ipx.txt64
-rw-r--r--sys/socket_ipx_amd64.const25
-rw-r--r--sys/socket_ipx_arm64.const25
-rw-r--r--sys/socket_ipx_ppc64le.const25
4 files changed, 139 insertions, 0 deletions
diff --git a/sys/socket_ipx.txt b/sys/socket_ipx.txt
new file mode 100644
index 000000000..7e6d1c61f
--- /dev/null
+++ b/sys/socket_ipx.txt
@@ -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.
+
+# AF_IPX support.
+
+include <linux/socket.h>
+include <linux/net.h>
+include <linux/if_ether.h>
+include <linux/if_arp.h>
+include <linux/ipx.h>
+
+resource sock_ipx[sock]
+
+socket$ipx(domain const[AF_IPX], type const[SOCK_DGRAM], proto const[0]) sock_ipx
+socketpair$ipx(domain const[AF_IPX], type const[SOCK_DGRAM], proto const[0], fds ptr[out, ipx_pair])
+bind$ipx(fd sock_ipx, addr ptr[in, sockaddr_ipx], addrlen len[addr])
+connect$ipx(fd sock_ipx, addr ptr[in, sockaddr_ipx], addrlen len[addr])
+accept$ipx(fd sock_ipx, peer ptr[out, sockaddr_ipx, opt], peerlen ptr[inout, len[peer, int32]]) sock_ipx
+accept4$ipx(fd sock_ipx, peer ptr[out, sockaddr_ipx, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_ipx
+
+sendto$ipx(fd sock_ipx, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_ipx, opt], addrlen len[addr])
+recvfrom$ipx(fd sock_ipx, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_ipx, opt], addrlen len[addr])
+getsockname$ipx(fd sock_ipx, addr ptr[out, sockaddr_ipx], addrlen ptr[inout, len[addr, int32]])
+getpeername$ipx(fd sock_ipx, peer ptr[out, sockaddr_ipx], peerlen ptr[inout, len[peer, int32]])
+
+ipx_pair {
+ fd0 sock_ipx
+ fd1 sock_ipx
+}
+
+sockaddr_ipx {
+ sipx_family const[AF_IPX, int16]
+ sipx_port int16be
+ sipx_network int32be
+ sipx_node array[int8, 6]
+ sipx_type int8
+ pad const[0, int8]
+}
+
+# Specific options
+
+getsockopt$IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[in, int32], optlen len[optval])
+
+# ioctls
+
+# TODO: SIOCDELRT & SIOCADDRT (net/ipx/ipx_route.c)
+
+ioctl$SIOCSIFADDR(fd sock_ipx, cmd const[SIOCSIFADDR], arg ptr[in, ifreq_ipx])
+ioctl$SIOCGIFADDR(fd sock_ipx, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_ipx])
+ioctl$SIOCAIPXITFCRT(fd sock_ipx, cmd const[SIOCAIPXITFCRT], arg ptr[in, int32])
+ioctl$SIOCAIPXPRISLT(fd sock_ipx, cmd const[SIOCAIPXPRISLT], arg ptr[in, int32])
+ioctl$SIOCIPXCFGDATA(fd sock_ipx, cmd const[SIOCIPXCFGDATA], arg ptr[out, ipx_config_data])
+ioctl$SIOCIPXNCPCONN(fd sock_ipx, cmd const[SIOCIPXNCPCONN], arg ptr[in, int16])
+
+ifreq_ipx {
+ ifrn_name array[int8, IFNAMSIZ]
+ ifr_addr sockaddr_ipx
+}
+
+ipx_config_data {
+ ipxcfg_auto_select_primary int16
+ ipxcfg_auto_create_interfaces int16
+}
diff --git a/sys/socket_ipx_amd64.const b/sys/socket_ipx_amd64.const
new file mode 100644
index 000000000..b3acc48a0
--- /dev/null
+++ b/sys/socket_ipx_amd64.const
@@ -0,0 +1,25 @@
+# AUTOGENERATED FILE
+AF_IPX = 4
+IFNAMSIZ = 16
+IPX_TYPE = 1
+SIOCAIPXITFCRT = 35296
+SIOCAIPXPRISLT = 35297
+SIOCGIFADDR = 35093
+SIOCIPXCFGDATA = 35298
+SIOCIPXNCPCONN = 35299
+SIOCSIFADDR = 35094
+SOCK_DGRAM = 2
+SOL_IPX = 256
+__NR_accept = 43
+__NR_accept4 = 288
+__NR_bind = 49
+__NR_connect = 42
+__NR_getpeername = 52
+__NR_getsockname = 51
+__NR_getsockopt = 55
+__NR_ioctl = 16
+__NR_recvfrom = 45
+__NR_sendto = 44
+__NR_setsockopt = 54
+__NR_socket = 41
+__NR_socketpair = 53
diff --git a/sys/socket_ipx_arm64.const b/sys/socket_ipx_arm64.const
new file mode 100644
index 000000000..1a08a2d53
--- /dev/null
+++ b/sys/socket_ipx_arm64.const
@@ -0,0 +1,25 @@
+# AUTOGENERATED FILE
+AF_IPX = 4
+IFNAMSIZ = 16
+IPX_TYPE = 1
+SIOCAIPXITFCRT = 35296
+SIOCAIPXPRISLT = 35297
+SIOCGIFADDR = 35093
+SIOCIPXCFGDATA = 35298
+SIOCIPXNCPCONN = 35299
+SIOCSIFADDR = 35094
+SOCK_DGRAM = 2
+SOL_IPX = 256
+__NR_accept = 202
+__NR_accept4 = 242
+__NR_bind = 200
+__NR_connect = 203
+__NR_getpeername = 205
+__NR_getsockname = 204
+__NR_getsockopt = 209
+__NR_ioctl = 29
+__NR_recvfrom = 207
+__NR_sendto = 206
+__NR_setsockopt = 208
+__NR_socket = 198
+__NR_socketpair = 199
diff --git a/sys/socket_ipx_ppc64le.const b/sys/socket_ipx_ppc64le.const
new file mode 100644
index 000000000..0e06441cd
--- /dev/null
+++ b/sys/socket_ipx_ppc64le.const
@@ -0,0 +1,25 @@
+# AUTOGENERATED FILE
+AF_IPX = 4
+IFNAMSIZ = 16
+IPX_TYPE = 1
+SIOCAIPXITFCRT = 35296
+SIOCAIPXPRISLT = 35297
+SIOCGIFADDR = 35093
+SIOCIPXCFGDATA = 35298
+SIOCIPXNCPCONN = 35299
+SIOCSIFADDR = 35094
+SOCK_DGRAM = 2
+SOL_IPX = 256
+__NR_accept = 330
+__NR_accept4 = 344
+__NR_bind = 327
+__NR_connect = 328
+__NR_getpeername = 332
+__NR_getsockname = 331
+__NR_getsockopt = 340
+__NR_ioctl = 54
+__NR_recvfrom = 337
+__NR_sendto = 335
+__NR_setsockopt = 339
+__NR_socket = 326
+__NR_socketpair = 333