1506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi/*
2506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
3506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  BlueZ - Bluetooth protocol stack for Linux
4506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
59184e2eeb7b97371c6b83b747c8984e2340d2b47Marcel Holtmann *  Copyright (C) 2002-2010  Marcel Holtmann <marcel@holtmann.org>
6506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
7506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
8506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  This program is free software; you can redistribute it and/or modify
9506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  it under the terms of the GNU General Public License as published by
10506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  the Free Software Foundation; either version 2 of the License, or
11506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  (at your option) any later version.
12506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
13506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  This program is distributed in the hope that it will be useful,
14506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  GNU General Public License for more details.
17506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
18506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  You should have received a copy of the GNU General Public License
19506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  along with this program; if not, write to the Free Software
20506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi *
22506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi */
23506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasi
2408f1b750295cda5beaa4d948f499cd7c93b85f70Anderson Lizardo#include "textfile.h"
2508f1b750295cda5beaa4d948f499cd7c93b85f70Anderson Lizardo
26506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_device_alias(const char *src, const char *dst, char *alias, size_t size);
27506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_device_alias(const char *src, const char *dst, const char *alias);
28506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_discoverable_timeout(bdaddr_t *bdaddr, int timeout);
29676f5e7dea3c6c160ffdf08d42bf83e72a5a6c3fClaudio Takahasiint read_discoverable_timeout(const char *src, int *timeout);
303ee81cab2ed66b7f3d4fbd6ba6676d5d9448d6dcLuiz Augusto von Dentzint write_pairable_timeout(bdaddr_t *bdaddr, int timeout);
313ee81cab2ed66b7f3d4fbd6ba6676d5d9448d6dcLuiz Augusto von Dentzint read_pairable_timeout(const char *src, int *timeout);
32506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_device_mode(bdaddr_t *bdaddr, const char *mode);
33676f5e7dea3c6c160ffdf08d42bf83e72a5a6c3fClaudio Takahasiint read_device_mode(const char *src, char *mode, int length);
34506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_on_mode(const char *src, char *mode, int length);
3531e380bc0c6baea07d204e781f63ec388fdc3e20Johan Hedbergint write_local_name(bdaddr_t *bdaddr, const char *name);
36506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_local_name(bdaddr_t *bdaddr, char *name);
37506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_local_class(bdaddr_t *bdaddr, uint8_t *class);
38506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_local_class(bdaddr_t *bdaddr, uint8_t *class);
39506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class);
40506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t *class);
41506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_device_name(bdaddr_t *local, bdaddr_t *peer, char *name);
42506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_device_name(const char *src, const char *dst, char *name);
43506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data);
440f26327986cf2a0aae3b3e30faf3728dfb36f6d5Johan Hedbergint read_remote_eir(bdaddr_t *local, bdaddr_t *peer, uint8_t *data);
45506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_version_info(bdaddr_t *local, bdaddr_t *peer, uint16_t manufacturer, uint8_t lmp_ver, uint16_t lmp_subver);
46c7eadb0e913a7979510a66c74f2113b8b12523abJohan Hedbergint write_features_info(bdaddr_t *local, bdaddr_t *peer, unsigned char *page1, unsigned char *page2);
47989c60c0b9c96edf1fbdf80356abf05bac336673Johan Hedbergint read_remote_features(bdaddr_t *local, bdaddr_t *peer, unsigned char *page1, unsigned char *page2);
48506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_lastseen_info(bdaddr_t *local, bdaddr_t *peer, struct tm *tm);
49506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_lastused_info(bdaddr_t *local, bdaddr_t *peer, struct tm *tm);
50506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_link_key(bdaddr_t *local, bdaddr_t *peer, unsigned char *key, uint8_t type, int length);
51506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_link_key(bdaddr_t *local, bdaddr_t *peer, unsigned char *key, uint8_t *type);
52506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint read_pin_code(bdaddr_t *local, bdaddr_t *peer, char *pin);
53506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasigboolean read_trust(const bdaddr_t *local, const char *addr, const char *service);
54d4982955787817ad17aec6de9308c8f1d7ed0b92Claudio Takahasiint write_trust(const char *src, const char *addr, const char *service, gboolean trust);
55506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio TakahasiGSList *list_trusts(bdaddr_t *local, const char *service);
56506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint write_device_profiles(bdaddr_t *src, bdaddr_t *dst, const char *profiles);
57506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint delete_entry(bdaddr_t *src, const char *storage, const char *key);
58506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint store_record(const gchar *src, const gchar *dst, sdp_record_t *rec);
59fe785852485ecaa8c162682cc4dfcb6dd22f2210Bastien Nocerasdp_record_t *record_from_string(const gchar *str);
60506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasisdp_record_t *fetch_record(const gchar *src, const gchar *dst, const uint32_t handle);
61506c95298346d318304aa7e2211dfba5dbe6e3e0Claudio Takahasiint delete_record(const gchar *src, const gchar *dst, const uint32_t handle);
62adad645d0ad11c5b332058ce8e5d1797cf1c0727Johan Hedbergvoid delete_all_records(const bdaddr_t *src, const bdaddr_t *dst);
63adad645d0ad11c5b332058ce8e5d1797cf1c0727Johan Hedbergsdp_list_t *read_records(const bdaddr_t *src, const bdaddr_t *dst);
6460af857dbc8a258eb91ef3fb6de06c17c8fb4ec2David Woodhousesdp_record_t *find_record_in_list(sdp_list_t *recs, const char *uuid);
65fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmannint store_device_id(const gchar *src, const gchar *dst,
66fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmann				const uint16_t source, const uint16_t vendor,
67fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmann				const uint16_t product, const uint16_t version);
68fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmannint read_device_id(const gchar *src, const gchar *dst,
69fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmann					uint16_t *source, uint16_t *vendor,
70fce6db565f747ca9ad560f7d8bff6a45522d905cMarcel Holtmann					uint16_t *product, uint16_t *version);
710c561f77956654c654f14daea35e90ad0ba20164Luiz Augusto von Dentzint write_device_pairable(bdaddr_t *local, gboolean mode);
720c561f77956654c654f14daea35e90ad0ba20164Luiz Augusto von Dentzint read_device_pairable(bdaddr_t *local, gboolean *mode);
731e4d4fe0ed499adaf3e61b1e593dccd3c0928158Johan Hedberggboolean read_blocked(const bdaddr_t *local, const bdaddr_t *remote);
741e4d4fe0ed499adaf3e61b1e593dccd3c0928158Johan Hedbergint write_blocked(const bdaddr_t *local, const bdaddr_t *remote,
751e4d4fe0ed499adaf3e61b1e593dccd3c0928158Johan Hedberg							gboolean blocked);
76db3bf777b85503ab873ac5f057359e1eb912833aVinicius Costa Gomesint write_device_services(const bdaddr_t *sba, const bdaddr_t *dba,
77db3bf777b85503ab873ac5f057359e1eb912833aVinicius Costa Gomes							const char *services);
78727ae28e17be0910c9d5cdba6c8e373a704f7dbfClaudio Takahasiint delete_device_service(const bdaddr_t *sba, const bdaddr_t *dba);
791f07bea585b3f7db1866a3e4af7072adf1906064Vinicius Costa Gomeschar *read_device_services(const bdaddr_t *sba, const bdaddr_t *dba);
80fc367513b16229cfb3643c5e130f22ab989ef517Vinicius Costa Gomesint write_device_characteristics(const bdaddr_t *sba, const bdaddr_t *dba,
81fc367513b16229cfb3643c5e130f22ab989ef517Vinicius Costa Gomes					uint16_t handle, const char *chars);
82a04de9ef92d435b9773e2f5a15f4ab24038f6ffaVinicius Costa Gomeschar *read_device_characteristics(const bdaddr_t *sba, const bdaddr_t *dba,
83a04de9ef92d435b9773e2f5a15f4ab24038f6ffaVinicius Costa Gomes							uint16_t handle);
84a5e5c9262a7fa20b03643c478f1620995a89ad79Bruna Moreiraint write_device_attribute(const bdaddr_t *sba, const bdaddr_t *dba,
85a5e5c9262a7fa20b03643c478f1620995a89ad79Bruna Moreira                                        uint16_t handle, const char *chars);
8608f1b750295cda5beaa4d948f499cd7c93b85f70Anderson Lizardoint read_device_attributes(const bdaddr_t *sba, textfile_cb func, void *data);
8750fb53c4a7520e210244d909be9ef1accf5cfdfeVinicius Costa Gomesint write_device_type(const bdaddr_t *sba, const bdaddr_t *dba,
8850fb53c4a7520e210244d909be9ef1accf5cfdfeVinicius Costa Gomes						device_type_t type);
8950fb53c4a7520e210244d909be9ef1accf5cfdfeVinicius Costa Gomesdevice_type_t read_device_type(const bdaddr_t *sba, const bdaddr_t *dba);
90af8bb26f9bbc3ffb63a8dcc50768c59466540357David Woodhouse
91af8bb26f9bbc3ffb63a8dcc50768c59466540357David Woodhouse#define PNP_UUID		"00001200-0000-1000-8000-00805f9b34fb"
92af8bb26f9bbc3ffb63a8dcc50768c59466540357David Woodhouse
93