1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __LINUX_NFC_H 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __LINUX_NFC_H 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/socket.h> 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_GENL_NAME "nfc" 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_GENL_VERSION 1 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_GENL_MCAST_EVENT_NAME "events" 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum nfc_commands { 27d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_UNSPEC, 28d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_GET_DEVICE, 29d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_DEV_UP, 30d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_DEV_DOWN, 31d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_DEP_LINK_UP, 32d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_DEP_LINK_DOWN, 33d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_START_POLL, 34d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_STOP_POLL, 35d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_GET_TARGET, 36d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_TARGETS_FOUND, 37d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_DEVICE_ADDED, 38d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_DEVICE_REMOVED, 39d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_TARGET_LOST, 40d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_TM_ACTIVATED, 41d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_TM_DEACTIVATED, 42d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_LLC_GET_PARAMS, 43d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_LLC_SET_PARAMS, 44d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_ENABLE_SE, 45d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_DISABLE_SE, 46d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_LLC_SDREQ, 47d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_LLC_SDRES, 48d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_FW_DOWNLOAD, 49d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_SE_ADDED, 50d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_SE_REMOVED, 51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_SE_CONNECTIVITY, 52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_EVENT_SE_TRANSACTION, 53d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_GET_SE, 54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_CMD_SE_IO, 5505d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_CMD_ACTIVATE_TARGET, 5605d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_CMD_VENDOR, 57934ec9495505d234b2c2fa284470c2f44aae9de9Christopher Ferris NFC_CMD_DEACTIVATE_TARGET, 58d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __NFC_CMD_AFTER_LAST 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1) 618cb52b056cfc302e05304d847c4228dff15715cfElliott Hughesenum nfc_attrs { 62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_UNSPEC, 63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_DEVICE_INDEX, 64d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_DEVICE_NAME, 65d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_PROTOCOLS, 66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_INDEX, 67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_SENS_RES, 68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_SEL_RES, 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_NFCID1, 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_SENSB_RES, 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_SENSF_RES, 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_COMM_MODE, 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_RF_MODE, 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_DEVICE_POWERED, 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_IM_PROTOCOLS, 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TM_PROTOCOLS, 77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_LLC_PARAM_LTO, 78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_LLC_PARAM_RW, 79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_LLC_PARAM_MIUX, 80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_SE, 81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_LLC_SDP, 82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_FIRMWARE_NAME, 83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_SE_INDEX, 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_SE_TYPE, 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_SE_AID, 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_SE_APDU, 88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_ISO15693_DSFID, 89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_ATTR_TARGET_ISO15693_UID, 9005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_ATTR_SE_PARAMS, 9105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_ATTR_VENDOR_ID, 9205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_ATTR_VENDOR_SUBCMD, 9305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris NFC_ATTR_VENDOR_DATA, 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __NFC_ATTR_AFTER_LAST 95655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 9638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1) 97655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum nfc_sdp_attr { 98d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_SDP_ATTR_UNSPEC, 99d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_SDP_ATTR_URI, 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao NFC_SDP_ATTR_SAP, 101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __NFC_SDP_ATTR_AFTER_LAST 102655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 103655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_SDP_ATTR_MAX (__NFC_SDP_ATTR_AFTER_LAST - 1) 10438062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_DEVICE_NAME_MAXSIZE 8 1058cb52b056cfc302e05304d847c4228dff15715cfElliott Hughes#define NFC_NFCID1_MAXSIZE 10 10638062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_NFCID2_MAXSIZE 8 10738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_NFCID3_MAXSIZE 10 108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_SENSB_RES_MAXSIZE 12 109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_SENSF_RES_MAXSIZE 18 11005d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFC_ATR_REQ_MAXSIZE 64 11105d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFC_ATR_RES_MAXSIZE 64 11205d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFC_ATR_REQ_GB_MAXSIZE 48 11305d08e9716b5974d6ed08973f44930804890b902Christopher Ferris#define NFC_ATR_RES_GB_MAXSIZE 47 114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_GB_MAXSIZE 48 11538062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_FIRMWARE_NAME_MAXSIZE 32 116ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_ISO15693_UID_MAXSIZE 8 117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_JEWEL 1 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_MIFARE 2 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_FELICA 3 120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_ISO14443 4 121655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_NFC_DEP 5 122655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_ISO14443_B 6 123ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_PROTO_ISO15693 7 124ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_PROTO_MAX 8 125655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_COMM_ACTIVE 0 126655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_COMM_PASSIVE 1 127655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_RF_INITIATOR 0 128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_RF_TARGET 1 129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_RF_NONE 2 130655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_JEWEL_MASK (1 << NFC_PROTO_JEWEL) 131655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_MIFARE_MASK (1 << NFC_PROTO_MIFARE) 132655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_FELICA_MASK (1 << NFC_PROTO_FELICA) 133655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) 134655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) 135655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) 136ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_PROTO_ISO15693_MASK (1 << NFC_PROTO_ISO15693) 137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_SE_UICC 0x1 138ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_SE_EMBEDDED 0x2 13938062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_SE_DISABLED 0x0 14038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_SE_ENABLED 0x1 141655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct sockaddr_nfc { 142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao sa_family_t sa_family; 143d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 dev_idx; 144d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 target_idx; 145d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 nfc_protocol; 146ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris}; 14738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_LLCP_MAX_SERVICE_NAME 63 148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct sockaddr_nfc_llcp { 149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao sa_family_t sa_family; 150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 dev_idx; 151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 target_idx; 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 nfc_protocol; 153d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 dsap; 154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ssap; 155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao char service_name[NFC_LLCP_MAX_SERVICE_NAME]; 156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao; 157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao size_t service_name_len; 158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao}; 159ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_SOCKPROTO_RAW 0 16038062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_SOCKPROTO_LLCP 1 161655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_SOCKPROTO_MAX 2 162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define NFC_HEADER_SIZE 1 163ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_RAW_HEADER_SIZE 2 164ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_DIRECTION_RX 0x00 165ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define NFC_DIRECTION_TX 0x01 166d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define RAW_PAYLOAD_LLCP 0 167ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define RAW_PAYLOAD_NCI 1 168ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define RAW_PAYLOAD_HCI 2 169ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define RAW_PAYLOAD_DIGITAL 3 170d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define RAW_PAYLOAD_PROPRIETARY 4 171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_LLCP_RW 0 172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_LLCP_MIUX 1 17338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define NFC_LLCP_REMOTE_MIU 2 174d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao#define NFC_LLCP_REMOTE_LTO 3 175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define NFC_LLCP_REMOTE_RW 4 176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 177