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