| # Copyright 2018 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. |
| |
| include <linux/socket.h> |
| include <linux/net.h> |
| include <uapi/linux/x25.h> |
| include <net/x25.h> |
| |
| resource sock_x25[sock] |
| |
| syz_init_net_socket$x25(domain const[AF_X25], type const[SOCK_SEQPACKET], proto const[0]) sock_x25 |
| bind$x25(fd sock_x25, addr ptr[in, sockaddr_x25], addrlen len[addr]) |
| connect$x25(fd sock_x25, addr ptr[in, sockaddr_x25], addrlen len[addr]) |
| accept4$x25(fd sock_x25, peer ptr[out, sockaddr_x25, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_x25 |
| sendto$x25(fd sock_x25, buf ptr[in, array[int8]], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_x25, opt], addrlen len[addr]) |
| recvfrom$x25(fd sock_x25, buf ptr[out, array[int8]], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_x25, opt], addrlen len[addr]) |
| setsockopt$X25_QBITINCL(fd sock_x25, level const[SOL_X25], opt const[X25_QBITINCL], arg ptr[in, bool32], arglen len[arg]) |
| getsockopt$X25_QBITINCL(fd sock_x25, level const[SOL_X25], opt const[X25_QBITINCL], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]]) |
| |
| ioctl$sock_x25_SIOCADDRT(fd sock_x25, cmd const[SIOCADDRT], arg ptr[in, x25_route_struct]) |
| ioctl$sock_x25_SIOCDELRT(fd sock_x25, cmd const[SIOCDELRT], arg ptr[in, x25_route_struct]) |
| ioctl$SIOCX25GSUBSCRIP(fd sock_x25, cmd const[SIOCX25GSUBSCRIP], arg ptr[in, x25_subscrip_struct]) |
| ioctl$SIOCX25SSUBSCRIP(fd sock_x25, cmd const[SIOCX25SSUBSCRIP], arg ptr[in, x25_subscrip_struct]) |
| ioctl$SIOCX25GFACILITIES(fd sock_x25, cmd const[SIOCX25GFACILITIES], arg ptr[out, x25_facilities]) |
| ioctl$SIOCX25SFACILITIES(fd sock_x25, cmd const[SIOCX25SFACILITIES], arg ptr[in, x25_facilities]) |
| ioctl$SIOCX25GDTEFACILITIES(fd sock_x25, cmd const[SIOCX25GDTEFACILITIES], arg ptr[out, x25_dte_facilities]) |
| ioctl$SIOCX25SDTEFACILITIES(fd sock_x25, cmd const[SIOCX25SDTEFACILITIES], arg ptr[in, x25_dte_facilities]) |
| ioctl$SIOCX25GCALLUSERDATA(fd sock_x25, cmd const[SIOCX25GCALLUSERDATA], arg ptr[in, x25_calluserdata]) |
| ioctl$SIOCX25SCALLUSERDATA(fd sock_x25, cmd const[SIOCX25SCALLUSERDATA], arg ptr[in, x25_calluserdata]) |
| ioctl$SIOCX25GCAUSEDIAG(fd sock_x25, cmd const[SIOCX25GCAUSEDIAG], arg ptr[in, x25_causediag]) |
| ioctl$SIOCX25SCAUSEDIAG(fd sock_x25, cmd const[SIOCX25SCAUSEDIAG], arg ptr[in, x25_causediag]) |
| ioctl$SIOCX25SCUDMATCHLEN(fd sock_x25, cmd const[SIOCX25SCUDMATCHLEN], arg ptr[in, x25_subaddr]) |
| ioctl$SIOCX25CALLACCPTAPPRV(fd sock_x25, cmd const[SIOCX25CALLACCPTAPPRV]) |
| ioctl$SIOCX25SENDCALLACCPT(fd sock_x25, cmd const[SIOCX25SENDCALLACCPT]) |
| |
| sockaddr_x25 { |
| sx25_family const[AF_X25, int16] |
| sx25_addr x25_address |
| } |
| |
| x25_address [ |
| null x25_address_null |
| remote x25_address_remote |
| ] |
| |
| type x25_address_null string[" "] |
| |
| x25_address_remote { |
| prefix array[const[0xcc, int8], 14] |
| id proc[0x20, 4, int8] |
| z const[0, int8] |
| } |
| |
| x25_route_struct { |
| address x25_address |
| sigdigits int32[0:15] |
| device string[devnames, 200] |
| } |
| |
| x25_subscrip_struct { |
| device string[devnames, X25_SUBSCRIP_DEVICE_SIZE] |
| global_facil_mask intptr |
| extended int32 |
| } |
| |
| define X25_SUBSCRIP_DEVICE_SIZE 200 - sizeof(long) |
| |
| x25_facilities { |
| winsize_in int32[1:127] |
| winsize_out int32 |
| pacsize_in int32[X25_PS16:X25_PS4096] |
| pacsize_out int32[X25_PS16:X25_PS4096] |
| throughput int32 |
| reverse flags[x25_facilities_reverse, int32] |
| } |
| |
| x25_facilities_reverse = 0, 0x81 |
| |
| x25_dte_facilities { |
| delay_cumul int16 |
| delay_target int16 |
| delay_max int16 |
| min_throughput int8 |
| expedited int8 |
| calling_len int8[0:X25_MAX_AE_LEN] |
| called_len int8[0:X25_MAX_AE_LEN] |
| calling_ae array[int8, 20] |
| called_ae array[int8, 20] |
| } |
| |
| x25_calluserdata { |
| cudlength int32[0:128] |
| cuddata array[int8, 128] |
| } |
| |
| x25_causediag { |
| cause int8 |
| diagnostic int8 |
| } |
| |
| x25_subaddr { |
| cudmatchlength int32[0:X25_MAX_CUD_LEN] |
| } |