aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@google.com>2017-03-31 17:44:32 +0200
committerAndrey Konovalov <andreyknvl@google.com>2017-03-31 19:39:02 +0200
commitfb1044f22d5c88328d8104ec2146d9bb7ca0b152 (patch)
tree0f3e969a82dac8e4fbebcd754bced145bb5520f8 /sys
parent3312d2cafa0e194870a7aa74df80880e2adf52af (diff)
sys: add basic AF_AX25 descriptions
Diffstat (limited to 'sys')
-rwxr-xr-xsys/socket_ax25.txt64
-rw-r--r--sys/socket_ax25_amd64.const44
-rw-r--r--sys/socket_ax25_arm64.const44
-rw-r--r--sys/socket_ax25_ppc64le.const44
4 files changed, 196 insertions, 0 deletions
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 <linux/socket.h>
+include <linux/net.h>
+include <linux/if_ether.h>
+include <linux/if_arp.h>
+include <linux/ax25.h>
+include <net/ax25.h>
+
+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