From 3312d2cafa0e194870a7aa74df80880e2adf52af Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 31 Mar 2017 15:27:23 +0200 Subject: sys: add basic AF_IPX descriptions --- sys/socket_ipx.txt | 64 ++++++++++++++++++++++++++++++++++++++++++++ sys/socket_ipx_amd64.const | 25 +++++++++++++++++ sys/socket_ipx_arm64.const | 25 +++++++++++++++++ sys/socket_ipx_ppc64le.const | 25 +++++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 sys/socket_ipx.txt create mode 100644 sys/socket_ipx_amd64.const create mode 100644 sys/socket_ipx_arm64.const create mode 100644 sys/socket_ipx_ppc64le.const (limited to 'sys') 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 +include +include +include +include + +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 -- cgit mrf-deployment