From fb1044f22d5c88328d8104ec2146d9bb7ca0b152 Mon Sep 17 00:00:00 2001 From: Andrey Konovalov Date: Fri, 31 Mar 2017 17:44:32 +0200 Subject: sys: add basic AF_AX25 descriptions --- sys/socket_ax25.txt | 64 +++++++++++++++++++++++++++++++++++++++++++ sys/socket_ax25_amd64.const | 44 +++++++++++++++++++++++++++++ sys/socket_ax25_arm64.const | 44 +++++++++++++++++++++++++++++ sys/socket_ax25_ppc64le.const | 44 +++++++++++++++++++++++++++++ 4 files changed, 196 insertions(+) create mode 100755 sys/socket_ax25.txt create mode 100644 sys/socket_ax25_amd64.const create mode 100644 sys/socket_ax25_arm64.const create mode 100644 sys/socket_ax25_ppc64le.const (limited to 'sys') diff --git a/sys/socket_ax25.txt b/sys/socket_ax25.txt new file mode 100755 index 000000000..16bfa8032 --- /dev/null +++ b/sys/socket_ax25.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_AX25 support. + +include +include +include +include +include +include + +resource sock_ax25[sock] + +socket$ax25(domain const[AF_AX25], type flags[ax25_socket_types], proto flags[ax25_protocols]) sock_ax25 +socketpair$ax25(domain const[AF_AX25], type flags[ax25_socket_types], proto flags[ax25_protocols], fds ptr[out, ax25_pair]) +bind$ax25(fd sock_ax25, addr ptr[in, sockaddr_ax25], addrlen len[addr]) +connect$ax25(fd sock_ax25, addr ptr[in, sockaddr_ax25], addrlen len[addr]) +accept$ax25(fd sock_ax25, peer ptr[out, sockaddr_ax25, opt], peerlen ptr[inout, len[peer, int32]]) sock_ax25 +accept4$ax25(fd sock_ax25, peer ptr[out, sockaddr_ax25, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_ax25 + +sendto$ax25(fd sock_ax25, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_ax25, opt], addrlen len[addr]) +recvfrom$ax25(fd sock_ax25, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_ax25, opt], addrlen len[addr]) +getsockname$ax25(fd sock_ax25, addr ptr[out, sockaddr_ax25], addrlen ptr[inout, len[addr, int32]]) +getpeername$ax25(fd sock_ax25, peer ptr[out, sockaddr_ax25], peerlen ptr[inout, len[peer, int32]]) + +ax25_socket_types = SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW +ax25_protocols = AX25_P_ROSE, AX25_P_VJCOMP, AX25_P_VJUNCOMP, AX25_P_SEGMENT, AX25_P_TEXNET, AX25_P_LQ, AX25_P_ATALK, AX25_P_ATALK_ARP, AX25_P_IP, AX25_P_ARP, AX25_P_FLEXNET, AX25_P_NETROM, AX25_P_TEXT + +ax25_pair { + fd0 sock_ax25 + fd1 sock_ax25 +} + +ax25_address { + ax25_call array[int8, 7] +} + +sockaddr_ax25 { + sax25_family const[AF_AX25, int16] + sax25_call ax25_address + sax25_ndigis int32 +} + +full_sockaddr_ax25 { + fsa_ax25 sockaddr_ax25 + fsa_digipeater array[ax25_address, AX25_MAX_DIGIS] +} + +# Generic options + +ax25_option_types_int = AX25_WINDOW, AX25_T1, AX25_T2, AX25_N2, AX25_T3, AX25_IDLE, AX25_BACKOFF, AX25_EXTSEQ, AX25_PIDINCL, AX25_IAMDIGI, AX25_PACLEN + +# TODO: special type for device names +ax25_option_types_buf = SO_BINDTODEVICE + +getsockopt$ax25_int(fd sock_ax25, level const[SOL_AX25], optname flags[ax25_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]]) +setsockopt$ax25_int(fd sock_ax25, level const[SOL_AX25], optname flags[ax25_option_types_int], optval ptr[in, int32], optlen len[optval]) +getsockopt$ax25_buf(fd sock_ax25, level const[SOL_AX25], optname flags[ax25_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]]) +setsockopt$ax25_buf(fd sock_ax25, level const[SOL_AX25], optname flags[ax25_option_types_buf], optval buffer[in], optlen len[optval]) + +# TODO: Specific options + +# TODO: ioctls diff --git a/sys/socket_ax25_amd64.const b/sys/socket_ax25_amd64.const new file mode 100644 index 000000000..39f9e01e0 --- /dev/null +++ b/sys/socket_ax25_amd64.const @@ -0,0 +1,44 @@ +# AUTOGENERATED FILE +AF_AX25 = 3 +AX25_BACKOFF = 6 +AX25_EXTSEQ = 7 +AX25_IAMDIGI = 12 +AX25_IDLE = 9 +AX25_MAX_DIGIS = 8 +AX25_N2 = 3 +AX25_PACLEN = 10 +AX25_PIDINCL = 8 +AX25_P_ARP = 205 +AX25_P_ATALK = 202 +AX25_P_ATALK_ARP = 203 +AX25_P_FLEXNET = 206 +AX25_P_IP = 204 +AX25_P_LQ = 196 +AX25_P_NETROM = 207 +AX25_P_ROSE = 1 +AX25_P_SEGMENT = 8 +AX25_P_TEXNET = 195 +AX25_P_TEXT = 240 +AX25_P_VJCOMP = 6 +AX25_P_VJUNCOMP = 7 +AX25_T1 = 2 +AX25_T2 = 5 +AX25_T3 = 4 +AX25_WINDOW = 1 +SOCK_DGRAM = 2 +SOCK_RAW = 3 +SOCK_SEQPACKET = 5 +SOL_AX25 = 257 +SO_BINDTODEVICE = 25 +__NR_accept = 43 +__NR_accept4 = 288 +__NR_bind = 49 +__NR_connect = 42 +__NR_getpeername = 52 +__NR_getsockname = 51 +__NR_getsockopt = 55 +__NR_recvfrom = 45 +__NR_sendto = 44 +__NR_setsockopt = 54 +__NR_socket = 41 +__NR_socketpair = 53 diff --git a/sys/socket_ax25_arm64.const b/sys/socket_ax25_arm64.const new file mode 100644 index 000000000..1af1b6493 --- /dev/null +++ b/sys/socket_ax25_arm64.const @@ -0,0 +1,44 @@ +# AUTOGENERATED FILE +AF_AX25 = 3 +AX25_BACKOFF = 6 +AX25_EXTSEQ = 7 +AX25_IAMDIGI = 12 +AX25_IDLE = 9 +AX25_MAX_DIGIS = 8 +AX25_N2 = 3 +AX25_PACLEN = 10 +AX25_PIDINCL = 8 +AX25_P_ARP = 205 +AX25_P_ATALK = 202 +AX25_P_ATALK_ARP = 203 +AX25_P_FLEXNET = 206 +AX25_P_IP = 204 +AX25_P_LQ = 196 +AX25_P_NETROM = 207 +AX25_P_ROSE = 1 +AX25_P_SEGMENT = 8 +AX25_P_TEXNET = 195 +AX25_P_TEXT = 240 +AX25_P_VJCOMP = 6 +AX25_P_VJUNCOMP = 7 +AX25_T1 = 2 +AX25_T2 = 5 +AX25_T3 = 4 +AX25_WINDOW = 1 +SOCK_DGRAM = 2 +SOCK_RAW = 3 +SOCK_SEQPACKET = 5 +SOL_AX25 = 257 +SO_BINDTODEVICE = 25 +__NR_accept = 202 +__NR_accept4 = 242 +__NR_bind = 200 +__NR_connect = 203 +__NR_getpeername = 205 +__NR_getsockname = 204 +__NR_getsockopt = 209 +__NR_recvfrom = 207 +__NR_sendto = 206 +__NR_setsockopt = 208 +__NR_socket = 198 +__NR_socketpair = 199 diff --git a/sys/socket_ax25_ppc64le.const b/sys/socket_ax25_ppc64le.const new file mode 100644 index 000000000..03a461379 --- /dev/null +++ b/sys/socket_ax25_ppc64le.const @@ -0,0 +1,44 @@ +# AUTOGENERATED FILE +AF_AX25 = 3 +AX25_BACKOFF = 6 +AX25_EXTSEQ = 7 +AX25_IAMDIGI = 12 +AX25_IDLE = 9 +AX25_MAX_DIGIS = 8 +AX25_N2 = 3 +AX25_PACLEN = 10 +AX25_PIDINCL = 8 +AX25_P_ARP = 205 +AX25_P_ATALK = 202 +AX25_P_ATALK_ARP = 203 +AX25_P_FLEXNET = 206 +AX25_P_IP = 204 +AX25_P_LQ = 196 +AX25_P_NETROM = 207 +AX25_P_ROSE = 1 +AX25_P_SEGMENT = 8 +AX25_P_TEXNET = 195 +AX25_P_TEXT = 240 +AX25_P_VJCOMP = 6 +AX25_P_VJUNCOMP = 7 +AX25_T1 = 2 +AX25_T2 = 5 +AX25_T3 = 4 +AX25_WINDOW = 1 +SOCK_DGRAM = 2 +SOCK_RAW = 3 +SOCK_SEQPACKET = 5 +SOL_AX25 = 257 +SO_BINDTODEVICE = 25 +__NR_accept = 330 +__NR_accept4 = 344 +__NR_bind = 327 +__NR_connect = 328 +__NR_getpeername = 332 +__NR_getsockname = 331 +__NR_getsockopt = 340 +__NR_recvfrom = 337 +__NR_sendto = 335 +__NR_setsockopt = 339 +__NR_socket = 326 +__NR_socketpair = 333 -- cgit mrf-deployment