Tizen 2.0 Release
[framework/connectivity/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         const char *fallback_service_name;
30         near_bool_t (*read)(int client_fd,
31                                 uint32_t adapter_idx, uint32_t target_idx,
32                                 near_device_io_cb cb);
33         int (*push)(int client_fd, uint32_t adapter_idx, uint32_t target_idx,
34                         struct near_ndef_message *ndef, near_device_io_cb cb);
35         void (*close)(int client_fd, int err);
36 };
37
38 #define TLV_SIZE 2
39
40 int npp_init(void);
41 void npp_exit(void);
42
43 int snep_init(void);
44 void snep_exit(void);
45
46 int handover_init(void);
47 void handover_exit(void);
48
49 int near_p2p_register(struct near_p2p_driver *driver);
50 void near_p2p_unregister(struct near_p2p_driver *driver);