diff options
author | Ilan Elias <ilane@ti.com> | 2011-09-18 04:19:34 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-09-20 14:43:49 -0400 |
commit | 55eb94f9e923cba376cdf48ea5ab28d81116bead (patch) | |
tree | 9b70d091a80087bcc02d261b50e335c8b1cca163 /include/net/nfc | |
parent | 8b3fe7b591b3c50061a8701f8eda14033420577b (diff) |
NFC: move nfc.h from include/net to include/net/nfc
The file nfc.h was moved from include/net to include/net/nfc,
since new NFC header files will be added to include/net/nfc.
Signed-off-by: Ilan Elias <ilane@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/nfc')
-rw-r--r-- | include/net/nfc/nfc.h | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/include/net/nfc/nfc.h b/include/net/nfc/nfc.h new file mode 100644 index 000000000000..6a7f602aa841 --- /dev/null +++ b/include/net/nfc/nfc.h | |||
@@ -0,0 +1,165 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Instituto Nokia de Tecnologia | ||
3 | * | ||
4 | * Authors: | ||
5 | * Lauro Ramos Venancio <lauro.venancio@openbossa.org> | ||
6 | * Aloisio Almeida Jr <aloisio.almeida@openbossa.org> | ||
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 __NET_NFC_H | ||
25 | #define __NET_NFC_H | ||
26 | |||
27 | #include <linux/device.h> | ||
28 | #include <linux/skbuff.h> | ||
29 | |||
30 | #define nfc_dev_info(dev, fmt, arg...) dev_info((dev), "NFC: " fmt "\n", ## arg) | ||
31 | #define nfc_dev_err(dev, fmt, arg...) dev_err((dev), "NFC: " fmt "\n", ## arg) | ||
32 | #define nfc_dev_dbg(dev, fmt, arg...) dev_dbg((dev), fmt "\n", ## arg) | ||
33 | |||
34 | struct nfc_dev; | ||
35 | |||
36 | /** | ||
37 | * data_exchange_cb_t - Definition of nfc_data_exchange callback | ||
38 | * | ||
39 | * @context: nfc_data_exchange cb_context parameter | ||
40 | * @skb: response data | ||
41 | * @err: If an error has occurred during data exchange, it is the | ||
42 | * error number. Zero means no error. | ||
43 | * | ||
44 | * When a rx or tx package is lost or corrupted or the target gets out | ||
45 | * of the operating field, err is -EIO. | ||
46 | */ | ||
47 | typedef void (*data_exchange_cb_t)(void *context, struct sk_buff *skb, | ||
48 | int err); | ||
49 | |||
50 | struct nfc_ops { | ||
51 | int (*dev_up)(struct nfc_dev *dev); | ||
52 | int (*dev_down)(struct nfc_dev *dev); | ||
53 | int (*start_poll)(struct nfc_dev *dev, u32 protocols); | ||
54 | void (*stop_poll)(struct nfc_dev *dev); | ||
55 | int (*activate_target)(struct nfc_dev *dev, u32 target_idx, | ||
56 | u32 protocol); | ||
57 | void (*deactivate_target)(struct nfc_dev *dev, u32 target_idx); | ||
58 | int (*data_exchange)(struct nfc_dev *dev, u32 target_idx, | ||
59 | struct sk_buff *skb, data_exchange_cb_t cb, | ||
60 | void *cb_context); | ||
61 | }; | ||
62 | |||
63 | struct nfc_target { | ||
64 | u32 idx; | ||
65 | u32 supported_protocols; | ||
66 | u16 sens_res; | ||
67 | u8 sel_res; | ||
68 | }; | ||
69 | |||
70 | struct nfc_genl_data { | ||
71 | u32 poll_req_pid; | ||
72 | struct mutex genl_data_mutex; | ||
73 | }; | ||
74 | |||
75 | struct nfc_dev { | ||
76 | unsigned idx; | ||
77 | unsigned target_idx; | ||
78 | struct nfc_target *targets; | ||
79 | int n_targets; | ||
80 | int targets_generation; | ||
81 | spinlock_t targets_lock; | ||
82 | struct device dev; | ||
83 | bool dev_up; | ||
84 | bool polling; | ||
85 | bool remote_activated; | ||
86 | struct nfc_genl_data genl_data; | ||
87 | u32 supported_protocols; | ||
88 | |||
89 | int tx_headroom; | ||
90 | int tx_tailroom; | ||
91 | |||
92 | struct nfc_ops *ops; | ||
93 | }; | ||
94 | #define to_nfc_dev(_dev) container_of(_dev, struct nfc_dev, dev) | ||
95 | |||
96 | extern struct class nfc_class; | ||
97 | |||
98 | struct nfc_dev *nfc_allocate_device(struct nfc_ops *ops, | ||
99 | u32 supported_protocols, | ||
100 | int tx_headroom, | ||
101 | int tx_tailroom); | ||
102 | |||
103 | /** | ||
104 | * nfc_free_device - free nfc device | ||
105 | * | ||
106 | * @dev: The nfc device to free | ||
107 | */ | ||
108 | static inline void nfc_free_device(struct nfc_dev *dev) | ||
109 | { | ||
110 | put_device(&dev->dev); | ||
111 | } | ||
112 | |||
113 | int nfc_register_device(struct nfc_dev *dev); | ||
114 | |||
115 | void nfc_unregister_device(struct nfc_dev *dev); | ||
116 | |||
117 | /** | ||
118 | * nfc_set_parent_dev - set the parent device | ||
119 | * | ||
120 | * @nfc_dev: The nfc device whose parent is being set | ||
121 | * @dev: The parent device | ||
122 | */ | ||
123 | static inline void nfc_set_parent_dev(struct nfc_dev *nfc_dev, | ||
124 | struct device *dev) | ||
125 | { | ||
126 | nfc_dev->dev.parent = dev; | ||
127 | } | ||
128 | |||
129 | /** | ||
130 | * nfc_set_drvdata - set driver specifc data | ||
131 | * | ||
132 | * @dev: The nfc device | ||
133 | * @data: Pointer to driver specifc data | ||
134 | */ | ||
135 | static inline void nfc_set_drvdata(struct nfc_dev *dev, void *data) | ||
136 | { | ||
137 | dev_set_drvdata(&dev->dev, data); | ||
138 | } | ||
139 | |||
140 | /** | ||
141 | * nfc_get_drvdata - get driver specifc data | ||
142 | * | ||
143 | * @dev: The nfc device | ||
144 | */ | ||
145 | static inline void *nfc_get_drvdata(struct nfc_dev *dev) | ||
146 | { | ||
147 | return dev_get_drvdata(&dev->dev); | ||
148 | } | ||
149 | |||
150 | /** | ||
151 | * nfc_device_name - get the nfc device name | ||
152 | * | ||
153 | * @dev: The nfc device whose name to return | ||
154 | */ | ||
155 | static inline const char *nfc_device_name(struct nfc_dev *dev) | ||
156 | { | ||
157 | return dev_name(&dev->dev); | ||
158 | } | ||
159 | |||
160 | struct sk_buff *nfc_alloc_skb(unsigned int size, gfp_t gfp); | ||
161 | |||
162 | int nfc_targets_found(struct nfc_dev *dev, struct nfc_target *targets, | ||
163 | int ntargets); | ||
164 | |||
165 | #endif /* __NET_NFC_H */ | ||