1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef __LINUX_NFC_H
8 #define __LINUX_NFC_H
9 #include <linux/types.h>
10 #include <linux/socket.h>
11 #define NFC_GENL_NAME "nfc"
12 #define NFC_GENL_VERSION 1
13 #define NFC_GENL_MCAST_EVENT_NAME "events"
14 enum nfc_commands {
15   NFC_CMD_UNSPEC,
16   NFC_CMD_GET_DEVICE,
17   NFC_CMD_DEV_UP,
18   NFC_CMD_DEV_DOWN,
19   NFC_CMD_DEP_LINK_UP,
20   NFC_CMD_DEP_LINK_DOWN,
21   NFC_CMD_START_POLL,
22   NFC_CMD_STOP_POLL,
23   NFC_CMD_GET_TARGET,
24   NFC_EVENT_TARGETS_FOUND,
25   NFC_EVENT_DEVICE_ADDED,
26   NFC_EVENT_DEVICE_REMOVED,
27   NFC_EVENT_TARGET_LOST,
28   NFC_EVENT_TM_ACTIVATED,
29   NFC_EVENT_TM_DEACTIVATED,
30   NFC_CMD_LLC_GET_PARAMS,
31   NFC_CMD_LLC_SET_PARAMS,
32   NFC_CMD_ENABLE_SE,
33   NFC_CMD_DISABLE_SE,
34   NFC_CMD_LLC_SDREQ,
35   NFC_EVENT_LLC_SDRES,
36   NFC_CMD_FW_DOWNLOAD,
37   NFC_EVENT_SE_ADDED,
38   NFC_EVENT_SE_REMOVED,
39   NFC_EVENT_SE_CONNECTIVITY,
40   NFC_EVENT_SE_TRANSACTION,
41   NFC_CMD_GET_SE,
42   NFC_CMD_SE_IO,
43   NFC_CMD_ACTIVATE_TARGET,
44   NFC_CMD_VENDOR,
45   NFC_CMD_DEACTIVATE_TARGET,
46   __NFC_CMD_AFTER_LAST
47 };
48 #define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1)
49 enum nfc_attrs {
50   NFC_ATTR_UNSPEC,
51   NFC_ATTR_DEVICE_INDEX,
52   NFC_ATTR_DEVICE_NAME,
53   NFC_ATTR_PROTOCOLS,
54   NFC_ATTR_TARGET_INDEX,
55   NFC_ATTR_TARGET_SENS_RES,
56   NFC_ATTR_TARGET_SEL_RES,
57   NFC_ATTR_TARGET_NFCID1,
58   NFC_ATTR_TARGET_SENSB_RES,
59   NFC_ATTR_TARGET_SENSF_RES,
60   NFC_ATTR_COMM_MODE,
61   NFC_ATTR_RF_MODE,
62   NFC_ATTR_DEVICE_POWERED,
63   NFC_ATTR_IM_PROTOCOLS,
64   NFC_ATTR_TM_PROTOCOLS,
65   NFC_ATTR_LLC_PARAM_LTO,
66   NFC_ATTR_LLC_PARAM_RW,
67   NFC_ATTR_LLC_PARAM_MIUX,
68   NFC_ATTR_SE,
69   NFC_ATTR_LLC_SDP,
70   NFC_ATTR_FIRMWARE_NAME,
71   NFC_ATTR_SE_INDEX,
72   NFC_ATTR_SE_TYPE,
73   NFC_ATTR_SE_AID,
74   NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS,
75   NFC_ATTR_SE_APDU,
76   NFC_ATTR_TARGET_ISO15693_DSFID,
77   NFC_ATTR_TARGET_ISO15693_UID,
78   NFC_ATTR_SE_PARAMS,
79   NFC_ATTR_VENDOR_ID,
80   NFC_ATTR_VENDOR_SUBCMD,
81   NFC_ATTR_VENDOR_DATA,
82   __NFC_ATTR_AFTER_LAST
83 };
84 #define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1)
85 enum nfc_sdp_attr {
86   NFC_SDP_ATTR_UNSPEC,
87   NFC_SDP_ATTR_URI,
88   NFC_SDP_ATTR_SAP,
89   __NFC_SDP_ATTR_AFTER_LAST
90 };
91 #define NFC_SDP_ATTR_MAX (__NFC_SDP_ATTR_AFTER_LAST - 1)
92 #define NFC_DEVICE_NAME_MAXSIZE 8
93 #define NFC_NFCID1_MAXSIZE 10
94 #define NFC_NFCID2_MAXSIZE 8
95 #define NFC_NFCID3_MAXSIZE 10
96 #define NFC_SENSB_RES_MAXSIZE 12
97 #define NFC_SENSF_RES_MAXSIZE 18
98 #define NFC_ATR_REQ_MAXSIZE 64
99 #define NFC_ATR_RES_MAXSIZE 64
100 #define NFC_ATR_REQ_GB_MAXSIZE 48
101 #define NFC_ATR_RES_GB_MAXSIZE 47
102 #define NFC_GB_MAXSIZE 48
103 #define NFC_FIRMWARE_NAME_MAXSIZE 32
104 #define NFC_ISO15693_UID_MAXSIZE 8
105 #define NFC_PROTO_JEWEL 1
106 #define NFC_PROTO_MIFARE 2
107 #define NFC_PROTO_FELICA 3
108 #define NFC_PROTO_ISO14443 4
109 #define NFC_PROTO_NFC_DEP 5
110 #define NFC_PROTO_ISO14443_B 6
111 #define NFC_PROTO_ISO15693 7
112 #define NFC_PROTO_MAX 8
113 #define NFC_COMM_ACTIVE 0
114 #define NFC_COMM_PASSIVE 1
115 #define NFC_RF_INITIATOR 0
116 #define NFC_RF_TARGET 1
117 #define NFC_RF_NONE 2
118 #define NFC_PROTO_JEWEL_MASK (1 << NFC_PROTO_JEWEL)
119 #define NFC_PROTO_MIFARE_MASK (1 << NFC_PROTO_MIFARE)
120 #define NFC_PROTO_FELICA_MASK (1 << NFC_PROTO_FELICA)
121 #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443)
122 #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP)
123 #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B)
124 #define NFC_PROTO_ISO15693_MASK (1 << NFC_PROTO_ISO15693)
125 #define NFC_SE_UICC 0x1
126 #define NFC_SE_EMBEDDED 0x2
127 #define NFC_SE_DISABLED 0x0
128 #define NFC_SE_ENABLED 0x1
129 struct sockaddr_nfc {
130   __kernel_sa_family_t sa_family;
131   __u32 dev_idx;
132   __u32 target_idx;
133   __u32 nfc_protocol;
134 };
135 #define NFC_LLCP_MAX_SERVICE_NAME 63
136 struct sockaddr_nfc_llcp {
137   __kernel_sa_family_t sa_family;
138   __u32 dev_idx;
139   __u32 target_idx;
140   __u32 nfc_protocol;
141   __u8 dsap;
142   __u8 ssap;
143   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
144 ;
145   __kernel_size_t service_name_len;
146 };
147 #define NFC_SOCKPROTO_RAW 0
148 #define NFC_SOCKPROTO_LLCP 1
149 #define NFC_SOCKPROTO_MAX 2
150 #define NFC_HEADER_SIZE 1
151 #define NFC_RAW_HEADER_SIZE 2
152 #define NFC_DIRECTION_RX 0x00
153 #define NFC_DIRECTION_TX 0x01
154 #define RAW_PAYLOAD_LLCP 0
155 #define RAW_PAYLOAD_NCI 1
156 #define RAW_PAYLOAD_HCI 2
157 #define RAW_PAYLOAD_DIGITAL 3
158 #define RAW_PAYLOAD_PROPRIETARY 4
159 #define NFC_LLCP_RW 0
160 #define NFC_LLCP_MIUX 1
161 #define NFC_LLCP_REMOTE_MIU 2
162 #define NFC_LLCP_REMOTE_LTO 3
163 #define NFC_LLCP_REMOTE_RW 4
164 #endif
165