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