summaryrefslogtreecommitdiff
path: root/lib/libbluetooth/devaddr.c
diff options
context:
space:
mode:
authorplunky <plunky@NetBSD.org>2009-08-03 15:59:41 +0000
committerplunky <plunky@NetBSD.org>2009-08-03 15:59:41 +0000
commitbd42c2e8d0fecd0bc87d1a20447b52bbadff1857 (patch)
tree98f578da88f8b4c407261abd7979e947c587d4ea /lib/libbluetooth/devaddr.c
parentd90603b57337200e55203a4a5d9f823639a226aa (diff)
Add bt_dev(3), an platform neutral API for accessing (locally configured)
Bluetooth devices, and bump libbluetooth minor version. This is a reimplementation of an API largely developed by Maksim Yevmenkin on FreeBSD to make it easier to port BlueZ/Linux programs which depend on something similar. Alas, the BlueZ/Linux API is incompatible and unportable as it depends on a 'device' being referenced by an int, but this will hopefully make it easier to port software using that. (bump libbluetooth minor version)
Diffstat (limited to 'lib/libbluetooth/devaddr.c')
-rw-r--r--lib/libbluetooth/devaddr.c118
1 files changed, 0 insertions, 118 deletions
diff --git a/lib/libbluetooth/devaddr.c b/lib/libbluetooth/devaddr.c
deleted file mode 100644
index 0441c58b597..00000000000
--- a/lib/libbluetooth/devaddr.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* $NetBSD: devaddr.c,v 1.2 2006/08/28 08:24:39 plunky Exp $ */
-
-/*-
- * Copyright (c) 2006 Itronix Inc.
- * All rights reserved.
- *
- * Written by Iain Hibbert for Itronix Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of Itronix Inc. may not be used to endorse
- * or promote products derived from this software without specific
- * prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY ITRONIX INC. ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: devaddr.c,v 1.2 2006/08/28 08:24:39 plunky Exp $");
-
-#include <sys/ioctl.h>
-#include <bluetooth.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-int
-bt_devaddr(const char *name, bdaddr_t *addr)
-{
- struct btreq btr;
- bdaddr_t bdaddr;
- int s, rv;
-
- if (name == NULL) {
- errno = EINVAL;
- return 0;
- }
-
- if (addr == NULL)
- addr = &bdaddr;
-
- if (bt_aton(name, addr))
- return bt_devname(NULL, addr);
-
- memset(&btr, 0, sizeof(btr));
- strlcpy(btr.btr_name, name, HCI_DEVNAME_SIZE);
-
- s = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
- if (s == -1)
- return 0;
-
- rv = ioctl(s, SIOCGBTINFO, &btr);
- close(s);
-
- if (rv == -1)
- return 0;
-
- if ((btr.btr_flags & BTF_UP) == 0) {
- errno = ENXIO;
- return 0;
- }
-
- bdaddr_copy(addr, &btr.btr_bdaddr);
- return 1;
-}
-
-int
-bt_devname(char *name, const bdaddr_t *addr)
-{
- struct btreq btr;
- int s, rv;
-
- if (addr == NULL) {
- errno = EINVAL;
- return 0;
- }
-
- memset(&btr, 0, sizeof(btr));
- bdaddr_copy(&btr.btr_bdaddr, addr);
-
- s = socket(PF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
- if (s == -1)
- return 0;
-
- rv = ioctl(s, SIOCGBTINFOA, &btr);
- close(s);
-
- if (rv == -1)
- return 0;
-
- if ((btr.btr_flags & BTF_UP) == 0) {
- errno = ENXIO;
- return 0;
- }
-
- if (name != NULL)
- strlcpy(name, btr.btr_name, HCI_DEVNAME_SIZE);
-
- return 1;
-}