From 6f71e5dce1817676a47fc7b92f7d288e4094f614 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 11 Dec 2015 19:50:21 +0100 Subject: sys: add PF_NFC support --- sys/sys.txt | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'sys/sys.txt') diff --git a/sys/sys.txt b/sys/sys.txt index 7e84ed34f..189266d0c 100644 --- a/sys/sys.txt +++ b/sys/sys.txt @@ -72,6 +72,7 @@ include include include include +include include @@ -2652,3 +2653,84 @@ define ALG_SET_AEAD_AUTHSIZE 5 #define AF_ALG 38 define SOL_ALG 279 + + + +# PF_KEY support. + +# See net/key/af_key.c, requires root. +# socket$key(domain const[AF_KEY], type const[SOCK_RAW], proto const[PF_KEY_V2]) fd[key] + + + + +# PF_NFC support. + +socket$nfc_llcp(domain const[AF_NFC], type flags[nfc_llcp_type], proto const[NFC_SOCKPROTO_LLCP]) fd[nfc_llcp] +bind$nfc_llcp(fd fd[nfc_llcp], addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr]) +connect$nfc_llcp(fd fd[nfc_llcp], addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr]) +accept$nfc_llcp(fd fd[nfc_llcp], peer ptr[out, sockaddr_nfc_llcp, opt], peerlen ptr[inout, len[peer, int32]]) fd[nfc_llcp] +setsockopt$NFC_LLCP_RW(fd fd[nfc_llcp], level const[SOL_NFC], opt const[NFC_LLCP_RW], arg ptr[in, int32], arglen len[arg]) +setsockopt$NFC_LLCP_MIUX(fd fd[nfc_llcp], level const[SOL_NFC], opt const[NFC_LLCP_MIUX], arg ptr[in, int32], arglen len[arg]) +getsockopt$nfc_llcp(fd fd[nfc_llcp], level const[SOL_NFC], opt flags[nfc_llcp_opts], arg buffer[out], arglen len[arg]) +sendmsg$nfc_llcp(fd fd[nfc_llcp], msg ptr[in, nfc_llcp_send_msghdr], f flags[send_flags]) +sendmmsg$nfc_llcp(fd fd[nfc_llcp], mmsg ptr[in, array[nfc_llcp_send_msghdr]], vlen len[mmsg], f flags[send_flags]) + +socket$nfc_raw(domain const[AF_NFC], type flags[nfc_raw_type], proto const[NFC_SOCKPROTO_RAW]) fd[nfc_raw] +connect$nfc_raw(fd fd[nfc_raw], addr ptr[in, sockaddr_nfc], addrlen len[addr]) + +nfc_llcp_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW +nfc_raw_type = SOCK_STREAM, SOCK_RAW +nfc_proto = NFC_PROTO_JEWEL, NFC_PROTO_MIFARE, NFC_PROTO_FELICA, NFC_PROTO_ISO14443, NFC_PROTO_NFC_DEP, NFC_PROTO_ISO14443_B, NFC_PROTO_ISO15693 +nfc_llcp_opts = NFC_LLCP_RW, NFC_LLCP_MIUX, NFC_LLCP_REMOTE_MIU, NFC_LLCP_REMOTE_LTO, NFC_LLCP_REMOTE_RW + +sockaddr_nfc_llcp { + family const[AF_NFC, int16] + devidx int32 + target int32 + proto flags[nfc_proto, int32] + dsap int8 + ssap int8 +# TODO: need fixed-length arrays +# char service_name[63] + serv0 int8 + serv1 int8 + serv2 int32 + serv3 int32 + serv4 int32 + serv5 int32 + serv6 int32 + serv7 int32 + serv8 int32 + serv9 int32 + serv10 int32 + serv11 int32 + serv12 int32 + serv13 int32 + serv14 int32 + serv15 int32 + serv16 int32 + serv17 int8 + servlen intptr +} + +sockaddr_nfc { + family const[AF_NFC, int16] + dev int32 + targ int32 + proto flags[nfc_proto, int32] +} + +nfc_llcp_send_msghdr { + addr ptr[in, sockaddr_nfc_llcp] + addrlen len[addr, int32] + vec ptr[in, array[iovec_in]] + vlen len[vec, intptr] + ctrl ptr[in, cmsghdr] + ctrllen len[ctrl, intptr] + f flags[send_flags, int32] +} + +define SOL_NFC 280 +define NFC_PROTO_ISO15693 7 + -- cgit mrf-deployment