Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nfc.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2011 Instituto Nokia de Tecnologia
3  *
4  * Authors:
5  * Lauro Ramos Venancio <[email protected]>
6  * Aloisio Almeida Jr <[email protected]>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22  */
23 
24 #ifndef __LINUX_NFC_H
25 #define __LINUX_NFC_H
26 
27 #include <linux/types.h>
28 #include <linux/socket.h>
29 
30 #define NFC_GENL_NAME "nfc"
31 #define NFC_GENL_VERSION 1
32 
33 #define NFC_GENL_MCAST_EVENT_NAME "events"
34 
80 /* private: internal use only */
82 };
83 #define NFC_CMD_MAX (__NFC_CMD_AFTER_LAST - 1)
84 
106 enum nfc_attrs {
122 /* private: internal use only */
124 };
125 #define NFC_ATTR_MAX (__NFC_ATTR_AFTER_LAST - 1)
126 
127 #define NFC_DEVICE_NAME_MAXSIZE 8
128 #define NFC_NFCID1_MAXSIZE 10
129 #define NFC_SENSB_RES_MAXSIZE 12
130 #define NFC_SENSF_RES_MAXSIZE 18
131 #define NFC_GB_MAXSIZE 48
132 
133 /* NFC protocols */
134 #define NFC_PROTO_JEWEL 1
135 #define NFC_PROTO_MIFARE 2
136 #define NFC_PROTO_FELICA 3
137 #define NFC_PROTO_ISO14443 4
138 #define NFC_PROTO_NFC_DEP 5
139 #define NFC_PROTO_ISO14443_B 6
140 
141 #define NFC_PROTO_MAX 7
142 
143 /* NFC communication modes */
144 #define NFC_COMM_ACTIVE 0
145 #define NFC_COMM_PASSIVE 1
146 
147 /* NFC RF modes */
148 #define NFC_RF_INITIATOR 0
149 #define NFC_RF_TARGET 1
150 #define NFC_RF_NONE 2
151 
152 /* NFC protocols masks used in bitsets */
153 #define NFC_PROTO_JEWEL_MASK (1 << NFC_PROTO_JEWEL)
154 #define NFC_PROTO_MIFARE_MASK (1 << NFC_PROTO_MIFARE)
155 #define NFC_PROTO_FELICA_MASK (1 << NFC_PROTO_FELICA)
156 #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443)
157 #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP)
158 #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B)
159 
160 struct sockaddr_nfc {
165 };
166 
167 #define NFC_LLCP_MAX_SERVICE_NAME 63
173  __u8 dsap; /* Destination SAP, if known */
174  __u8 ssap; /* Source SAP to be bound to */
175  char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */;
176  size_t service_name_len;
177 };
178 
179 /* NFC socket protocols */
180 #define NFC_SOCKPROTO_RAW 0
181 #define NFC_SOCKPROTO_LLCP 1
182 #define NFC_SOCKPROTO_MAX 2
183 
184 #define NFC_HEADER_SIZE 1
185 
193 #define NFC_LLCP_RAW_HEADER_SIZE 2
194 #define NFC_LLCP_DIRECTION_RX 0x00
195 #define NFC_LLCP_DIRECTION_TX 0x01
196 
197 #endif /*__LINUX_NFC_H */