5b74fb660154d73aa4d5a89dfc8d6c4ec46fa105
[profile/ivi/neard.git] / plugins / p2p.h
1 /*
2  *
3  *  neard - Near Field Communication manager
4  *
5  *  Copyright (C) 2012  Intel Corporation. All rights reserved.
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License version 2 as
9  *  published by the Free Software Foundation.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  */
21
22 #ifndef AF_NFC
23 #define AF_NFC 39
24 #endif
25
26 struct near_p2p_driver {
27         const char *name;
28         const char *service_name;
29         near_bool_t (*read)(int client_fd,
30                                 uint32_t adapter_idx, uint32_t target_idx,
31                                 near_device_io_cb cb);
32         int (*push)(int client_fd, uint32_t adapter_idx, uint32_t target_idx,
33                         struct near_ndef_message *ndef, near_device_io_cb cb);
34         void (*close)(int client_fd, int err);
35 };
36
37 #define TLV_SIZE 2
38
39 int npp_init(void);
40 void npp_exit(void);
41
42 int snep_init(void);
43 void snep_exit(void);
44
45 int handover_init(void);
46 void handover_exit(void);
47
48 int near_p2p_register(struct near_p2p_driver *driver);
49 void near_p2p_unregister(struct near_p2p_driver *driver);