1 # Copyright 2016 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 include <linux/net.h> 5 include <linux/netrom.h> 6 include <asm/ioctls.h> 7 8 resource sock_netrom[sock] 9 10 socket$netrom(domain const[AF_NETROM], type const[SOCK_SEQPACKET], proto const[0]) sock_netrom 11 bind$netrom(fd sock_netrom, addr ptr[in, sockaddr_netrom], addrlen len[addr]) 12 connect$netrom(fd sock_netrom, addr ptr[in, sockaddr_netrom], addrlen len[addr]) 13 accept$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom, opt], peerlen ptr[inout, len[peer, int32]]) sock_netrom 14 accept4$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_netrom 15 listen$netrom(fd sock_netrom, backlog int32) 16 sendmsg$netrom(fd sock_netrom, msg ptr[in, msghdr_netrom], f flags[send_flags]) 17 recvmsg$netrom(fd sock_netrom, msg ptr[in, msghdr_netrom], f flags[recv_flags]) 18 getsockname$netrom(fd sock_netrom, addr ptr[out, sockaddr_netrom], addrlen ptr[inout, len[addr, int32]]) 19 getpeername$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom], peerlen ptr[inout, len[peer, int32]]) 20 21 setsockopt$netrom_NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[in, int32], arglen len[arg]) 22 setsockopt$netrom_NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen len[arg]) 23 setsockopt$netrom_NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen len[arg]) 24 setsockopt$netrom_NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen len[arg]) 25 setsockopt$netrom_NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen len[arg]) 26 27 getsockopt$netrom_NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]]) 28 getsockopt$netrom_NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) 29 getsockopt$netrom_NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) 30 getsockopt$netrom_NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) 31 getsockopt$netrom_NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]]) 32 33 # TODO: make these more generic 34 ioctl$sock_netrom_TIOCOUTQ(fd sock_netrom, cmd const[TIOCOUTQ], arg ptr[out, int32]) 35 ioctl$sock_netrom_TIOCINQ(fd sock_netrom, cmd const[TIOCINQ], arg ptr[out, int32]) 36 ioctl$sock_netrom_SIOCGSTAMP(fd sock_netrom, cmd const[SIOCGSTAMP], arg ptr[out, int32]) 37 ioctl$sock_netrom_SIOCGSTAMPNS(fd sock_netrom, cmd const[SIOCGSTAMPNS], arg ptr[out, int32]) 38 ioctl$sock_netrom_SIOCADDRT(fd sock_netrom, cmd const[SIOCADDRT], arg ptr[out, int32]) 39 40 sockaddr_netrom [ 41 ax25 sockaddr_ax25 42 full full_sockaddr_ax25 43 ] [varlen] 44 45 msghdr_netrom { 46 addr ptr[in, sockaddr_netrom] 47 addrlen len[addr, int32] 48 vec ptr[in, array[iovec_in]] 49 vlen len[vec, intptr] 50 ctrl ptr[in, array[cmsghdr], opt] 51 ctrllen bytesize[ctrl, intptr] 52 f flags[send_flags, int32] 53 } 54