3 * neard - Near Field Communication manager
5 * Copyright (C) 2011 Intel Corporation. All rights reserved.
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.
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.
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
23 #include <sys/socket.h>
25 #include <linux/socket.h>
26 #include <linux/nfc.h>
30 #include <near/types.h>
37 int __near_log_init(const char *debug, gboolean detach);
38 void __near_log_cleanup(void);
40 #include <near/dbus.h>
42 int __near_dbus_init(DBusConnection *conn);
43 void __near_dbus_cleanup(void);
45 DBusMessage *__near_error_failed(DBusMessage *msg, int errnum);
46 DBusMessage *__near_error_invalid_arguments(DBusMessage *msg);
47 DBusMessage *__near_error_permission_denied(DBusMessage *msg);
48 DBusMessage *__near_error_passphrase_required(DBusMessage *msg);
49 DBusMessage *__near_error_not_registered(DBusMessage *msg);
50 DBusMessage *__near_error_not_unique(DBusMessage *msg);
51 DBusMessage *__near_error_not_supported(DBusMessage *msg);
52 DBusMessage *__near_error_not_implemented(DBusMessage *msg);
53 DBusMessage *__near_error_not_found(DBusMessage *msg);
54 DBusMessage *__near_error_no_carrier(DBusMessage *msg);
55 DBusMessage *__near_error_in_progress(DBusMessage *msg);
56 DBusMessage *__near_error_already_exists(DBusMessage *msg);
57 DBusMessage *__near_error_already_enabled(DBusMessage *msg);
58 DBusMessage *__near_error_already_disabled(DBusMessage *msg);
59 DBusMessage *__near_error_already_connected(DBusMessage *msg);
60 DBusMessage *__near_error_not_connected(DBusMessage *msg);
61 DBusMessage *__near_error_operation_aborted(DBusMessage *msg);
62 DBusMessage *__near_error_operation_timeout(DBusMessage *msg);
63 DBusMessage *__near_error_invalid_service(DBusMessage *msg);
64 DBusMessage *__near_error_invalid_property(DBusMessage *msg);
66 int __near_manager_adapter_add(uint32_t idx, const char *name, uint32_t protocols);
67 void __near_manager_adapter_remove(uint32_t idx);
68 int __near_manager_init(DBusConnection *conn);
69 void __near_manager_cleanup(void);
71 #include <near/adapter.h>
73 struct near_adapter * __near_adapter_create(uint32_t idx,
74 const char *name, uint32_t protocols);
75 void __near_adapter_destroy(struct near_adapter *adapter);
76 const char *__near_adapter_get_path(struct near_adapter *adapter);
77 struct near_adapter *__near_adapter_get(uint32_t idx);
78 int __near_adapter_add(struct near_adapter *adapter);
79 void __near_adapter_remove(struct near_adapter *adapter);
80 int __near_adapter_add_target(uint32_t idx, struct near_target *target);
81 int __near_adapter_remove_target(uint32_t idx, struct near_target *target);
82 void __near_adapter_list(DBusMessageIter *iter, void *user_data);
83 int __near_adapter_init(void);
84 void __near_adapter_cleanup(void);
86 #include <near/target.h>
88 enum near_target_type {
89 NEAR_TARGET_TYPE_TAG = 0,
90 NEAR_TARGET_TYPE_DEVICE = 1,
93 const char *__near_target_get_path(struct near_target *target);
94 uint16_t __near_target_get_tag_type(struct near_target *target);
95 uint32_t __near_target_get_idx(struct near_target *target);
96 uint32_t __near_target_get_adapter_idx(struct near_target *target);
97 uint32_t __near_target_get_protocols(struct near_target *target);
98 int __near_target_add(uint32_t adapter_idx, uint32_t target_idx,
99 uint32_t protocols, enum near_target_type type,
100 uint16_t sens_res, uint8_t sel_res);
101 void __near_target_remove(uint32_t target_idx);
102 int __near_target_init(void);
103 void __near_target_cleanup(void);
105 #include <near/ndef.h>
107 int __near_ndef_init(void);
108 void __near_ndef_cleanup(void);
109 void __near_ndef_record_free(struct near_ndef_record *record);
110 char *__near_ndef_record_get_path(struct near_ndef_record *record);
112 #include <near/tag.h>
114 void __near_tag_append_records(struct near_tag *tag, DBusMessageIter *iter);
115 uint32_t __near_tag_n_records(struct near_tag *tag);
116 int __near_tag_add_record(struct near_tag *tag, struct near_ndef_record *record);
117 struct near_tag *__near_tag_new(uint32_t adapter_idx, uint32_t target_idx,
119 void __near_tag_free(struct near_tag *tag);
120 int __near_tag_read(struct near_target *target, near_tag_read_cb cb);
122 int __near_netlink_get_adapters(void);
123 int __near_netlink_start_poll(int idx, uint32_t protocols);
124 int __near_netlink_stop_poll(int idx);
125 int __near_netlink_activate_target(uint32_t adapter_idx,
128 int __near_netlink_deactivate_target(uint32_t adapter_idx,
129 uint32_t target_idx);
130 int __near_netlink_init(void);
131 void __near_netlink_cleanup(void);
133 #include <near/plugin.h>
135 int __near_plugin_init(const char *pattern, const char *exclude);
136 void __near_plugin_cleanup(void);