Home | History | Annotate | Download | only in linux
      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/kcm.h>
      6 include <linux/sockios.h>
      7 
      8 resource sock_kcm[sock]
      9 
     10 socket$kcm(domain const[AF_KCM], type flags[kcm_socket_type], proto const[KCMPROTO_CONNECTED]) sock_kcm
     11 setsockopt$kcm_KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[in, int32], len len[val])
     12 getsockopt$kcm_KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[out, int32], len len[val])
     13 sendmsg$kcm(fd sock_kcm, msg ptr[in, send_msghdr], f flags[send_flags])
     14 recvmsg$kcm(fd sock_kcm, msg ptr[in, recv_msghdr], f flags[recv_flags])
     15 
     16 ioctl$sock_kcm_SIOCKCMATTACH(fd sock_kcm, cmd const[SIOCKCMATTACH], arg ptr[in, kcm_attach])
     17 ioctl$sock_kcm_SIOCKCMUNATTACH(fd sock_kcm, cmd const[SIOCKCMUNATTACH], arg ptr[in, kcm_unattach])
     18 ioctl$sock_kcm_SIOCKCMCLONE(fd sock_kcm, cmd const[SIOCKCMCLONE], arg ptr[inout, kcm_clone])
     19 
     20 kcm_socket_type = SOCK_DGRAM, SOCK_SEQPACKET
     21 
     22 kcm_attach {
     23 	fd	sock
     24 	bpf_fd	fd_bpf_prog
     25 }
     26 
     27 kcm_unattach {
     28 	fd	sock
     29 }
     30 
     31 kcm_clone {
     32 	fd	sock
     33 }
     34