* [PATCH v2 1/3] various header include fixes for building with musl libc
From: Natanael Copa @ 2014-01-22 13:50 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Natanael Copa
In-Reply-To: <1390398620-1916-1-git-send-email-ncopa@alpinelinux.org>
we need:
sys/stat.h for mode_t
limits.h for PATH_MAX
Fixes compile errors:
In file included from tools/hciconfig.c:45:0:
./src/textfile.h:27:1: error: unknown type name 'mode_t'
int create_file(const char *filename, const mode_t mode);
^
tools/csr_usb.c: In function 'read_value':
tools/csr_usb.c:71:12: error: 'PATH_MAX' undeclared (first use in this function)
char path[PATH_MAX];
^
---
src/textfile.h | 2 ++
tools/csr_usb.c | 1 +
tools/hid2hci.c | 1 +
3 files changed, 4 insertions(+)
diff --git a/src/textfile.h b/src/textfile.h
index b779bd2..e26da5d 100644
--- a/src/textfile.h
+++ b/src/textfile.h
@@ -24,6 +24,8 @@
#ifndef __TEXTFILE_H
#define __TEXTFILE_H
+#include <sys/stat.h>
+
int create_file(const char *filename, const mode_t mode);
int create_name(char *buf, size_t size, const char *path,
const char *address, const char *name);
diff --git a/tools/csr_usb.c b/tools/csr_usb.c
index a483bc1..5fb6bdc 100644
--- a/tools/csr_usb.c
+++ b/tools/csr_usb.c
@@ -33,6 +33,7 @@
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
+#include <limits.h>
#include <sys/ioctl.h>
#include "csr.h"
diff --git a/tools/hid2hci.c b/tools/hid2hci.c
index 95b4abf..2dbfca7 100644
--- a/tools/hid2hci.c
+++ b/tools/hid2hci.c
@@ -35,6 +35,7 @@
#include <string.h>
#include <dirent.h>
#include <getopt.h>
+#include <limits.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/hiddev.h>
--
1.8.5.3
^ permalink raw reply related
* [PATCH v2 2/3] bnep: avoid use of caddr_t
From: Natanael Copa @ 2014-01-22 13:50 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Natanael Copa
In-Reply-To: <1390398620-1916-1-git-send-email-ncopa@alpinelinux.org>
caddr_t is legacy BSD and should be avoided.
This fixes the following compile error with musl libc:
profiles/network/bnep.c: In function 'bnep_if_up':
profiles/network/bnep.c:205:33: error: 'caddr_t' undeclared (first use in this function)
err = ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr);
---
profiles/network/bnep.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
index 2a74016..4f9b801 100644
--- a/profiles/network/bnep.c
+++ b/profiles/network/bnep.c
@@ -202,7 +202,7 @@ static int bnep_if_up(const char *devname)
ifr.ifr_flags |= IFF_UP;
ifr.ifr_flags |= IFF_MULTICAST;
- err = ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr);
+ err = ioctl(sk, SIOCSIFFLAGS, (void *) &ifr);
close(sk);
@@ -227,7 +227,7 @@ static int bnep_if_down(const char *devname)
ifr.ifr_flags &= ~IFF_UP;
/* Bring down the interface */
- err = ioctl(sk, SIOCSIFFLAGS, (caddr_t) &ifr);
+ err = ioctl(sk, SIOCSIFFLAGS, (void *) &ifr);
close(sk);
--
1.8.5.3
^ permalink raw reply related
* [PATCH v2 3/3] unit: prevent use of glibc's error(3)
From: Natanael Copa @ 2014-01-22 13:50 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Natanael Copa
In-Reply-To: <1390398620-1916-1-git-send-email-ncopa@alpinelinux.org>
When building the test-sdp we don't want src/sdpd-request.c end up
using the incompatible GNU libc's error(3).
This also fixes the following compile error with musl libc which
misses the error(3) GNU extension:
src/sdpd-request.o: In function `extract_des':
/home/ncopa/src/bluez/src/sdpd-request.c:126: undefined reference to `error'
src/sdpd-request.o: In function `process_request':
/home/ncopa/src/bluez/src/sdpd-request.c:1022: undefined reference to `error'
/home/ncopa/src/bluez/src/sdpd-request.c:1045: undefined reference to `error'
---
Makefile.am | 1 +
unit/test-sdp.c | 9 +++------
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 917f545..a05cacc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -251,6 +251,7 @@ unit_tests += unit/test-sdp
unit_test_sdp_SOURCES = unit/test-sdp.c \
src/shared/util.h src/shared/util.c \
src/sdpd.h src/sdpd-database.c \
+ src/log.h src/log.c \
src/sdpd-service.c src/sdpd-request.c
unit_test_sdp_LDADD = lib/libbluetooth-internal.la @GLIB_LIBS@
diff --git a/unit/test-sdp.c b/unit/test-sdp.c
index 6d699e2..ba0e637 100644
--- a/unit/test-sdp.c
+++ b/unit/test-sdp.c
@@ -128,12 +128,6 @@ static void sdp_debug(const char *str, void *user_data)
g_print("%s%s\n", prefix, str);
}
-void btd_debug(const char *format, ...);
-
-void btd_debug(const char *format, ...)
-{
-}
-
static void context_quit(struct context *context)
{
g_main_loop_quit(context->main_loop);
@@ -797,6 +791,9 @@ int main(int argc, char *argv[])
{
g_test_init(&argc, &argv, NULL);
+ if (g_test_verbose())
+ __btd_log_init("*", 0);
+
/*
* Service Search Request
*
--
1.8.5.3
^ permalink raw reply related
* Re: [PATCH] android/pan: Fix wrong freeing dev
From: Johan Hedberg @ 2014-01-22 13:51 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1390387737-324-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
On Wed, Jan 22, 2014, Andrei Emeltchenko wrote:
> It does make sense free() dev after it is used. g_free() is not needed
> here since it will be already executed in bt_pan_notify_conn_state().
> ---
> android/pan.c | 1 -
> 1 file changed, 1 deletion(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH] btproxy: Fix resource leak
From: Johan Hedberg @ 2014-01-22 13:52 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1390388442-1192-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
On Wed, Jan 22, 2014, Andrei Emeltchenko wrote:
> Close file descriptors if setup_proxy fails.
> ---
> tools/btproxy.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH] unit/sdp: Remove extra zero table entry
From: Johan Hedberg @ 2014-01-22 13:52 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1390392898-3678-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
On Wed, Jan 22, 2014, Andrei Emeltchenko wrote:
> It is enough to have one zero table entry at the end of the table.
> ---
> unit/test-sdp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH] unit/avdtp: Remove extra zero table entry
From: Johan Hedberg @ 2014-01-22 13:52 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1390393286-4210-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
On Wed, Jan 22, 2014, Andrei Emeltchenko wrote:
> Remove not needed table entry copied, probably, from unit/sdp
> ---
> unit/test-avdtp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied. Thanks.
Johan
^ permalink raw reply
* Re: [PATCH v2 1/3] various header include fixes for building with musl libc
From: Anderson Lizardo @ 2014-01-22 15:16 UTC (permalink / raw)
To: Natanael Copa; +Cc: BlueZ development, Natanael Copa
In-Reply-To: <1390398620-1916-2-git-send-email-ncopa@alpinelinux.org>
Hi Natanael,
On Wed, Jan 22, 2014 at 9:50 AM, Natanael Copa <natanael.copa@gmail.com> wrote:
> diff --git a/src/textfile.h b/src/textfile.h
> index b779bd2..e26da5d 100644
> --- a/src/textfile.h
> +++ b/src/textfile.h
> @@ -24,6 +24,8 @@
> #ifndef __TEXTFILE_H
> #define __TEXTFILE_H
>
> +#include <sys/stat.h>
> +
I believe the correct approach here is to include sys/stat.h on all
files that include textfile.h. We (usually) don't #include system
headers inside internal headers.
> int create_file(const char *filename, const mode_t mode);
> int create_name(char *buf, size_t size, const char *path,
> const char *address, const char *name);
Best Regards,
--
Anderson Lizardo
Instituto Nokia de Tecnologia - INdT
Manaus - Brazil
^ permalink raw reply
* Re: [PATCH] btproxy: Fix resource leak
From: Marcel Holtmann @ 2014-01-22 15:54 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth@vger.kernel.org development
In-Reply-To: <1390388442-1192-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
> Close file descriptors if setup_proxy fails.
> ---
> tools/btproxy.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/btproxy.c b/tools/btproxy.c
> index 4429a16..9f409c3 100644
> --- a/tools/btproxy.c
> +++ b/tools/btproxy.c
> @@ -330,8 +330,11 @@ static bool setup_proxy(int host_fd, bool host_shutdown,
> struct proxy *proxy;
>
> proxy = new0(struct proxy, 1);
> - if (!proxy)
> + if (!proxy) {
> + close(host_fd);
> + close(dev_fd);
> return NULL;
> + }
this is the wrong fix for this.
You are returning an error with side effects of closing the file descriptors. You need to leave the error handling of the parameters that got handed in to the caller. I fixed that upstream now.
Regards
Marcel
^ permalink raw reply
* Re: [PATCH v2 1/3] various header include fixes for building with musl libc
From: Marcel Holtmann @ 2014-01-22 16:03 UTC (permalink / raw)
To: Anderson Lizardo; +Cc: Natanael Copa, BlueZ development, Natanael Copa
In-Reply-To: <CAJdJm_Mo=hGHMYFhurEO2+L_UPpT3YPy-is020d1_CMrXzDeRw@mail.gmail.com>
Hi Anderson,
>> diff --git a/src/textfile.h b/src/textfile.h
>> index b779bd2..e26da5d 100644
>> --- a/src/textfile.h
>> +++ b/src/textfile.h
>> @@ -24,6 +24,8 @@
>> #ifndef __TEXTFILE_H
>> #define __TEXTFILE_H
>>
>> +#include <sys/stat.h>
>> +
>
> I believe the correct approach here is to include sys/stat.h on all
> files that include textfile.h. We (usually) don't #include system
> headers inside internal headers.
with code in src/shared/*.h we started to include the system headers that are required from the header, but you are correct, we don’t do that for internal src/*.h headers.
Also we do not use circular inclusion protection from internal headers. So I ripped the stupid __TEXTFILE_H stuff out now.
Regards
Marcel
^ permalink raw reply
* [PATCH 1/2] android/ipc: trivial: Remove empty line
From: Andrei Emeltchenko @ 2014-01-22 16:03 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
android/hal-msg.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/android/hal-msg.h b/android/hal-msg.h
index cfb5460..d46b428 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -391,7 +391,6 @@ struct hal_cmd_pan_disconnect {
/* Notifications and confirmations */
-
#define HAL_POWER_OFF 0x00
#define HAL_POWER_ON 0x01
--
1.8.3.2
^ permalink raw reply related
* [PATCH 2/2] android/pan: Fix possible NULL dereference
From: Andrei Emeltchenko @ 2014-01-22 16:03 UTC (permalink / raw)
To: linux-bluetooth
In-Reply-To: <1390406638-16783-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
It is better to return here since dev is not allocated and assigned NULL
value.
---
android/pan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/android/pan.c b/android/pan.c
index 4e04da0..adc5df7 100644
--- a/android/pan.c
+++ b/android/pan.c
@@ -439,7 +439,7 @@ static void nap_confirm_cb(GIOChannel *chan, gpointer data)
if (err) {
error("%s", err->message);
g_error_free(err);
- goto failed;
+ return;
}
DBG("incoming connect request from %s", address);
--
1.8.3.2
^ permalink raw reply related
* [RFC] android/ipc: Add AVRCP HAL message definitions
From: Andrei Emeltchenko @ 2014-01-22 16:06 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
---
android/hal-msg.h | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
diff --git a/android/hal-msg.h b/android/hal-msg.h
index d46b428..3937f07 100644
--- a/android/hal-msg.h
+++ b/android/hal-msg.h
@@ -338,6 +338,77 @@ struct hal_cmd_a2dp_disconnect {
uint8_t bdaddr[6];
} __attribute__((packed));
+/* AVRCP HAL API */
+
+#define HAL_OP_AVRCP_GET_PLAY_STATUS_RSP 0x01
+struct hal_cmd_avrcp_get_play_status_rsp {
+ uint8_t status;
+ uint32_t len;
+ uint32_t pos;
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_LIST_PLAYER_APP_ATTR_RSP 0x02
+struct hal_cmd_avrcp_list_player_app_attr_rsp {
+ uint16_t len;
+ uint8_t data[0];
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_LIST_PLAYER_APP_VAL_RSP 0x03
+struct hal_cmd_avrcp_list_player_app_val_rsp {
+ uint16_t len;
+ uint8_t data[0];
+} __attribute__((packed));
+
+#define MAX_APP_SETTINGS 8
+struct player_setting {
+ uint8_t num_attr;
+ uint8_t attr_ids[MAX_APP_SETTINGS];
+ uint8_t attr_vals[MAX_APP_SETTINGS];
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_GET_PLAYER_APP_VAL_RSP 0x04
+struct hal_cmd_avrcp_get_player_app_val_rsp {
+ struct player_setting settings;
+} __attribute__((packed));
+
+#define MAX_ATTR_STR_LEN 255
+struct player_text {
+ uint32_t id;
+ uint8_t text[MAX_ATTR_STR_LEN];
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_GET_PLAYER_APP_ATTR_TEXT_RSP 0x05
+#define HAL_OP_AVRCP_GET_PLAYER_APP_VAL_TEXT_RSP 0x06
+#define HAL_OP_AVRCP_GET_ELEMENT_ATTR_RSP 0x07
+struct hal_cmd_avrcp_get_text_rsp {
+ uint16_t len;
+ struct player_text data[0];
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_SET_PLAYER_APP_VAL_RSP 0x08
+struct hal_cmd_avrcp_set_player_app_val_rsp {
+ uint8_t status;
+} __attribute__((packed));
+
+union notification {
+ uint8_t status;
+ uint8_t uid[8];
+ uint32_t pos;
+ struct player_setting player_settings;
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_REGISTER_NOTIFICATION_RSP 0x09
+struct hal_cmd_avrcp_register_notification_rsp {
+ uint8_t id;
+ uint8_t type;
+ union notification param;
+} __attribute__((packed));
+
+#define HAL_OP_AVRCP_SET_VOLUME 0x0a
+struct hal_cmd_avrcp_set_volume {
+ uint8_t volume;
+} __attribute__((packed));
+
/* PAN HAL API */
/* PAN Roles */
--
1.8.3.2
^ permalink raw reply related
* Re: [PATCH v2 1/3] various header include fixes for building with musl libc
From: Natanael Copa @ 2014-01-22 16:07 UTC (permalink / raw)
To: Anderson Lizardo; +Cc: BlueZ development, Natanael Copa
In-Reply-To: <CAJdJm_Mo=hGHMYFhurEO2+L_UPpT3YPy-is020d1_CMrXzDeRw@mail.gmail.com>
On Wed, 22 Jan 2014 11:16:20 -0400
Anderson Lizardo <anderson.lizardo@openbossa.org> wrote:
> Hi Natanael,
>
> On Wed, Jan 22, 2014 at 9:50 AM, Natanael Copa <natanael.copa@gmail.com> wrote:
> > diff --git a/src/textfile.h b/src/textfile.h
> > index b779bd2..e26da5d 100644
> > --- a/src/textfile.h
> > +++ b/src/textfile.h
> > @@ -24,6 +24,8 @@
> > #ifndef __TEXTFILE_H
> > #define __TEXTFILE_H
> >
> > +#include <sys/stat.h>
> > +
>
> I believe the correct approach here is to include sys/stat.h on all
> files that include textfile.h. We (usually) don't #include system
> headers inside internal headers.
The header itself uses mode_t:
./src/textfile.h:27:1: error: unknown type name 'mode_t'
So all the files that include textfiles.h needs to include sys/stat.h
*before* the include textfile.h in that case.
I'd say that all filesm that uses mode_t including textfile.h should
include sys/stat.h.
I can make a new patch for either. Just let me know what you want.
-nc
^ permalink raw reply
* Re: [PATCH 1/2] android/ipc: trivial: Remove empty line
From: Szymon Janc @ 2014-01-22 16:40 UTC (permalink / raw)
To: Andrei Emeltchenko; +Cc: linux-bluetooth
In-Reply-To: <1390406638-16783-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
Hi Andrei,
On Wednesday 22 of January 2014 18:03:57 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
>
> ---
> android/hal-msg.h | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/android/hal-msg.h b/android/hal-msg.h
> index cfb5460..d46b428 100644
> --- a/android/hal-msg.h
> +++ b/android/hal-msg.h
> @@ -391,7 +391,6 @@ struct hal_cmd_pan_disconnect {
>
> /* Notifications and confirmations */
>
> -
> #define HAL_POWER_OFF 0x00
> #define HAL_POWER_ON 0x01
>
>
Both patches applied, thanks.
--
Best regards,
Szymon Janc
^ permalink raw reply
* [PATCH] android/hidhost: Fix vid and pid information
From: Andrzej Kaczmarek @ 2014-01-22 17:46 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Andrzej Kaczmarek
For HID device vendor, product and version numbers should be retrieved
using Device ID profile which is mandatory for devices implementing
HIDP.
---
android/hidhost.c | 74 +++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 56 insertions(+), 18 deletions(-)
diff --git a/android/hidhost.c b/android/hidhost.c
index bb55f5e..23935da 100644
--- a/android/hidhost.c
+++ b/android/hidhost.c
@@ -648,18 +648,6 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int err, gpointer data)
sdp_record_t *rec = list->data;
sdp_data_t *data;
- data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
- if (data)
- dev->vendor = data->val.uint16;
-
- data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
- if (data)
- dev->product = data->val.uint16;
-
- data = sdp_data_get(rec, SDP_ATTR_VERSION);
- if (data)
- dev->version = data->val.uint16;
-
data = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
if (data)
dev->country = data->val.uint8;
@@ -722,6 +710,56 @@ fail:
hid_device_free(dev);
}
+static void hid_sdp_did_search_cb(sdp_list_t *recs, int err, gpointer data)
+{
+ struct hid_device *dev = data;
+ sdp_list_t *list;
+ GError *gerr = NULL;
+ uuid_t uuid;
+
+ DBG("");
+
+ if (err < 0) {
+ error("Unable to get Device ID SDP record: %s", strerror(-err));
+ goto fail;
+ }
+
+ if (!recs || !recs->data) {
+ error("No SDP records found");
+ goto fail;
+ }
+
+ for (list = recs; list != NULL; list = list->next) {
+ sdp_record_t *rec = list->data;
+ sdp_data_t *data;
+
+ data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
+ if (data)
+ dev->vendor = data->val.uint16;
+
+ data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
+ if (data)
+ dev->product = data->val.uint16;
+
+ data = sdp_data_get(rec, SDP_ATTR_VERSION);
+ if (data)
+ dev->version = data->val.uint16;
+ }
+
+ bt_string2uuid(&uuid, HID_UUID);
+ if (bt_search_service(&adapter_addr, &dev->dst, &uuid,
+ hid_sdp_search_cb, dev, NULL, 0) < 0) {
+ error("failed to search sdp details");
+ goto fail;
+ }
+
+ return;
+
+fail:
+ bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
+ hid_device_free(dev);
+}
+
static void bt_hid_connect(const void *buf, uint16_t len)
{
const struct hal_cmd_hidhost_connect *cmd = buf;
@@ -749,10 +787,10 @@ static void bt_hid_connect(const void *buf, uint16_t len)
ba2str(&dev->dst, addr);
DBG("connecting to %s", addr);
- bt_string2uuid(&uuid, HID_UUID);
+ bt_string2uuid(&uuid, PNP_UUID);
if (bt_search_service(&adapter_addr, &dev->dst, &uuid,
- hid_sdp_search_cb, dev, NULL, 0) < 0) {
- error("Failed to search sdp details");
+ hid_sdp_did_search_cb, dev, NULL, 0) < 0) {
+ error("Failed to search did sdp details");
hid_device_free(dev);
status = HAL_STATUS_FAILED;
goto failed;
@@ -1242,10 +1280,10 @@ static void connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
dev->ctrl_io = g_io_channel_ref(chan);
dev->uhid_fd = -1;
- bt_string2uuid(&uuid, HID_UUID);
+ bt_string2uuid(&uuid, PNP_UUID);
if (bt_search_service(&src, &dev->dst, &uuid,
- hid_sdp_search_cb, dev, NULL, 0) < 0) {
- error("failed to search sdp details");
+ hid_sdp_did_search_cb, dev, NULL, 0) < 0) {
+ error("failed to search did sdp details");
hid_device_free(dev);
return;
}
--
1.8.5.2
^ permalink raw reply related
* Re: [PATCH v2 1/3] various header include fixes for building with musl libc
From: Anderson Lizardo @ 2014-01-22 18:06 UTC (permalink / raw)
To: Natanael Copa; +Cc: BlueZ development, Natanael Copa
In-Reply-To: <20140122170730.35ecc008@ncopa-desktop.alpinelinux.org>
Hi Natanael,
On Wed, Jan 22, 2014 at 12:07 PM, Natanael Copa <natanael.copa@gmail.com> wrote:
> The header itself uses mode_t:
> ./src/textfile.h:27:1: error: unknown type name 'mode_t'
>
> So all the files that include textfiles.h needs to include sys/stat.h
> *before* the include textfile.h in that case.
>
> I'd say that all filesm that uses mode_t including textfile.h should
> include sys/stat.h.
>
> I can make a new patch for either. Just let me know what you want.
This is how we have done so far for files in src/* (for src/shared/ as
Marcel mentioned this is being done differently). So I suggest you do
this way.
Note that several files (about 5 out of 10) already include
sys/stat.h, according to a quick grep I did. Maybe they are just not
in the right order.
Best Regards,
--
Anderson Lizardo
INdT - Manaus - Brazil
^ permalink raw reply
* [PATCH] 6lowpan: add a license to 6lowpan_iphc module
From: Yann Droneaud @ 2014-01-22 19:25 UTC (permalink / raw)
To: Alexander Smirnov, Dmitry Eremin-Solenikov, Marcel Holtmann,
Gustavo Padovan, Johan Hedberg, David S. Miller
Cc: Yann Droneaud, linux-zigbee-devel, linux-bluetooth, netdev,
linux-kernel, Jukka Rissanen, Alexander Aring
Since commit 8df8c56a5abc, 6lowpan_iphc is a module of its own.
Unfortunately, it lacks some infrastructure to behave like a
good kernel citizen:
kernel: 6lowpan_iphc: module license 'unspecified' taints kernel.
kernel: Disabling lock debugging due to kernel taint
This patch adds the basic MODULE_LICENSE(); with GPL license:
the code was copied from net/ieee802154/6lowpan.c which is GPL
and the module exports symbol with EXPORT_SYMBOL_GPL();.
Cc: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Cc: Alexander Aring <alex.aring@gmail.com>
Cc: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
---
net/ieee802154/6lowpan_iphc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/ieee802154/6lowpan_iphc.c b/net/ieee802154/6lowpan_iphc.c
index e14fe8b2c054..860aa2d445ba 100644
--- a/net/ieee802154/6lowpan_iphc.c
+++ b/net/ieee802154/6lowpan_iphc.c
@@ -52,6 +52,7 @@
#include <linux/bitops.h>
#include <linux/if_arp.h>
+#include <linux/module.h>
#include <linux/netdevice.h>
#include <net/ipv6.h>
#include <net/af_ieee802154.h>
@@ -797,3 +798,5 @@ int lowpan_header_compress(struct sk_buff *skb, struct net_device *dev,
return 0;
}
EXPORT_SYMBOL_GPL(lowpan_header_compress);
+
+MODULE_LICENSE("GPL");
--
1.8.4.2
^ permalink raw reply related
* [PATCH v3] various header include fixes for building with musl libc
From: Natanael Copa @ 2014-01-22 21:20 UTC (permalink / raw)
To: linux-bluetooth; +Cc: Natanael Copa
In-Reply-To: <CAJdJm_MB5gAK2-9--n=P-Mni1WBRK8o-zaLSkA=_+0Bc6cCVjQ@mail.gmail.com>
we need:
sys/stat.h for mode_t
limits.h for PATH_MAX
Fixes compile errors:
In file included from tools/hciconfig.c:45:0:
./src/textfile.h:27:1: error: unknown type name 'mode_t'
int create_file(const char *filename, const mode_t mode);
^
tools/csr_usb.c: In function 'read_value':
tools/csr_usb.c:71:12: error: 'PATH_MAX' undeclared (first use in this function)
char path[PATH_MAX];
^
---
Changes v2 -> v3:
- include the sys/stat.h in hciconfig.c instead of textfile.h. This was
the only needed change for defining mode_t everywhere.
tools/csr_usb.c | 1 +
tools/hciconfig.c | 1 +
tools/hid2hci.c | 1 +
3 files changed, 3 insertions(+)
diff --git a/tools/csr_usb.c b/tools/csr_usb.c
index a483bc1..5fb6bdc 100644
--- a/tools/csr_usb.c
+++ b/tools/csr_usb.c
@@ -33,6 +33,7 @@
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
+#include <limits.h>
#include <sys/ioctl.h>
#include "csr.h"
diff --git a/tools/hciconfig.c b/tools/hciconfig.c
index 6c7f8ed..a81dc9c 100644
--- a/tools/hciconfig.c
+++ b/tools/hciconfig.c
@@ -37,6 +37,7 @@
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
+#include <sys/stat.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
diff --git a/tools/hid2hci.c b/tools/hid2hci.c
index 95b4abf..2dbfca7 100644
--- a/tools/hid2hci.c
+++ b/tools/hid2hci.c
@@ -35,6 +35,7 @@
#include <string.h>
#include <dirent.h>
#include <getopt.h>
+#include <limits.h>
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/hiddev.h>
--
1.8.5.3
^ permalink raw reply related
* Re: [PATCH] 6lowpan: add a license to 6lowpan_iphc module
From: Marcel Holtmann @ 2014-01-22 22:49 UTC (permalink / raw)
To: Yann Droneaud
Cc: Alexander Smirnov, Dmitry Eremin-Solenikov, Gustavo F. Padovan,
Johan Hedberg, David S. Miller, linux-zigbee-devel,
BlueZ development, Network Development, linux-kernel,
Jukka Rissanen, Alexander Aring
In-Reply-To: <1390418724-9804-1-git-send-email-ydroneaud@opteya.com>
Hi Yann,
> Since commit 8df8c56a5abc, 6lowpan_iphc is a module of its own.
>
> Unfortunately, it lacks some infrastructure to behave like a
> good kernel citizen:
>
> kernel: 6lowpan_iphc: module license 'unspecified' taints kernel.
> kernel: Disabling lock debugging due to kernel taint
>
> This patch adds the basic MODULE_LICENSE(); with GPL license:
> the code was copied from net/ieee802154/6lowpan.c which is GPL
> and the module exports symbol with EXPORT_SYMBOL_GPL();.
>
> Cc: Jukka Rissanen <jukka.rissanen@linux.intel.com>
> Cc: Alexander Aring <alex.aring@gmail.com>
> Cc: Marcel Holtmann <marcel@holtmann.org>
> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
> ---
> net/ieee802154/6lowpan_iphc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/net/ieee802154/6lowpan_iphc.c b/net/ieee802154/6lowpan_iphc.c
> index e14fe8b2c054..860aa2d445ba 100644
> --- a/net/ieee802154/6lowpan_iphc.c
> +++ b/net/ieee802154/6lowpan_iphc.c
> @@ -52,6 +52,7 @@
>
> #include <linux/bitops.h>
> #include <linux/if_arp.h>
> +#include <linux/module.h>
> #include <linux/netdevice.h>
> #include <net/ipv6.h>
> #include <net/af_ieee802154.h>
> @@ -797,3 +798,5 @@ int lowpan_header_compress(struct sk_buff *skb, struct net_device *dev,
> return 0;
> }
> EXPORT_SYMBOL_GPL(lowpan_header_compress);
> +
> +MODULE_LICENSE("GPL”);
looks good to me.
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Regards
Marcel
^ permalink raw reply
* Re: [PATCH] android/hidhost: Fix vid and pid information
From: Szymon Janc @ 2014-01-22 23:09 UTC (permalink / raw)
To: Andrzej Kaczmarek; +Cc: linux-bluetooth
In-Reply-To: <1390412797-23093-1-git-send-email-andrzej.kaczmarek@tieto.com>
Hi Andrzej,
On Wednesday 22 January 2014 18:46:37 Andrzej Kaczmarek wrote:
> For HID device vendor, product and version numbers should be retrieved
> using Device ID profile which is mandatory for devices implementing
> HIDP.
> ---
> android/hidhost.c | 74
> +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 56
> insertions(+), 18 deletions(-)
>
> diff --git a/android/hidhost.c b/android/hidhost.c
> index bb55f5e..23935da 100644
> --- a/android/hidhost.c
> +++ b/android/hidhost.c
> @@ -648,18 +648,6 @@ static void hid_sdp_search_cb(sdp_list_t *recs, int
> err, gpointer data) sdp_record_t *rec = list->data;
> sdp_data_t *data;
>
> - data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
> - if (data)
> - dev->vendor = data->val.uint16;
> -
> - data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
> - if (data)
> - dev->product = data->val.uint16;
> -
> - data = sdp_data_get(rec, SDP_ATTR_VERSION);
> - if (data)
> - dev->version = data->val.uint16;
> -
> data = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
> if (data)
> dev->country = data->val.uint8;
> @@ -722,6 +710,56 @@ fail:
> hid_device_free(dev);
> }
>
> +static void hid_sdp_did_search_cb(sdp_list_t *recs, int err, gpointer data)
> +{
> + struct hid_device *dev = data;
> + sdp_list_t *list;
> + GError *gerr = NULL;
gerr is not used in the function, but I've fixed this (and some other minors)
and pushed patch upstream. Thanks.
> + uuid_t uuid;
> +
> + DBG("");
> +
> + if (err < 0) {
> + error("Unable to get Device ID SDP record: %s", strerror(-err));
> + goto fail;
> + }
> +
> + if (!recs || !recs->data) {
> + error("No SDP records found");
> + goto fail;
> + }
> +
> + for (list = recs; list != NULL; list = list->next) {
> + sdp_record_t *rec = list->data;
> + sdp_data_t *data;
> +
> + data = sdp_data_get(rec, SDP_ATTR_VENDOR_ID);
> + if (data)
> + dev->vendor = data->val.uint16;
> +
> + data = sdp_data_get(rec, SDP_ATTR_PRODUCT_ID);
> + if (data)
> + dev->product = data->val.uint16;
> +
> + data = sdp_data_get(rec, SDP_ATTR_VERSION);
> + if (data)
> + dev->version = data->val.uint16;
> + }
> +
> + bt_string2uuid(&uuid, HID_UUID);
> + if (bt_search_service(&adapter_addr, &dev->dst, &uuid,
> + hid_sdp_search_cb, dev, NULL, 0) < 0) {
> + error("failed to search sdp details");
> + goto fail;
> + }
> +
> + return;
> +
> +fail:
> + bt_hid_notify_state(dev, HAL_HIDHOST_STATE_DISCONNECTED);
> + hid_device_free(dev);
> +}
> +
> static void bt_hid_connect(const void *buf, uint16_t len)
> {
> const struct hal_cmd_hidhost_connect *cmd = buf;
> @@ -749,10 +787,10 @@ static void bt_hid_connect(const void *buf, uint16_t
> len) ba2str(&dev->dst, addr);
> DBG("connecting to %s", addr);
>
> - bt_string2uuid(&uuid, HID_UUID);
> + bt_string2uuid(&uuid, PNP_UUID);
> if (bt_search_service(&adapter_addr, &dev->dst, &uuid,
> - hid_sdp_search_cb, dev, NULL, 0) < 0) {
> - error("Failed to search sdp details");
> + hid_sdp_did_search_cb, dev, NULL, 0) < 0) {
> + error("Failed to search did sdp details");
> hid_device_free(dev);
> status = HAL_STATUS_FAILED;
> goto failed;
> @@ -1242,10 +1280,10 @@ static void connect_cb(GIOChannel *chan, GError
> *err, gpointer user_data) dev->ctrl_io = g_io_channel_ref(chan);
> dev->uhid_fd = -1;
>
> - bt_string2uuid(&uuid, HID_UUID);
> + bt_string2uuid(&uuid, PNP_UUID);
> if (bt_search_service(&src, &dev->dst, &uuid,
> - hid_sdp_search_cb, dev, NULL, 0) < 0) {
> - error("failed to search sdp details");
> + hid_sdp_did_search_cb, dev, NULL, 0) < 0) {
> + error("failed to search did sdp details");
> hid_device_free(dev);
> return;
> }
--
Szymon K. Janc
szymon.janc@gmail.com
^ permalink raw reply
* Re: [PATCH] 6lowpan: add a license to 6lowpan_iphc module
From: David Miller @ 2014-01-23 5:59 UTC (permalink / raw)
To: ydroneaud
Cc: alex.bluesman.smirnov, dbaryshkov, marcel, gustavo, johan.hedberg,
linux-zigbee-devel, linux-bluetooth, netdev, linux-kernel,
jukka.rissanen, alex.aring
In-Reply-To: <1390418724-9804-1-git-send-email-ydroneaud@opteya.com>
From: Yann Droneaud <ydroneaud@opteya.com>
Date: Wed, 22 Jan 2014 20:25:24 +0100
> Since commit 8df8c56a5abc, 6lowpan_iphc is a module of its own.
>
> Unfortunately, it lacks some infrastructure to behave like a
> good kernel citizen:
>
> kernel: 6lowpan_iphc: module license 'unspecified' taints kernel.
> kernel: Disabling lock debugging due to kernel taint
>
> This patch adds the basic MODULE_LICENSE(); with GPL license:
> the code was copied from net/ieee802154/6lowpan.c which is GPL
> and the module exports symbol with EXPORT_SYMBOL_GPL();.
>
> Cc: Jukka Rissanen <jukka.rissanen@linux.intel.com>
> Cc: Alexander Aring <alex.aring@gmail.com>
> Cc: Marcel Holtmann <marcel@holtmann.org>
> Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Applied.
^ permalink raw reply
* [PATCH] btproxy: Fix resource leak
From: Andrei Emeltchenko @ 2014-01-23 9:07 UTC (permalink / raw)
To: linux-bluetooth
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Close file descriptors before leaving.
---
tools/btproxy.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/btproxy.c b/tools/btproxy.c
index be81bae..3503148 100644
--- a/tools/btproxy.c
+++ b/tools/btproxy.c
@@ -680,8 +680,11 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- if (!setup_proxy(host_fd, false, dev_fd, true))
+ if (!setup_proxy(host_fd, false, dev_fd, true)) {
+ close(dev_fd);
+ close(host_fd);
return EXIT_FAILURE;
+ }
} else {
int server_fd;
--
1.8.3.2
^ permalink raw reply related
* Re: [PATCH v3 00/10] android: Add SBC encoding
From: Luiz Augusto von Dentz @ 2014-01-23 9:43 UTC (permalink / raw)
To: Andrzej Kaczmarek; +Cc: linux-bluetooth@vger.kernel.org
In-Reply-To: <1390386893-8212-1-git-send-email-andrzej.kaczmarek@tieto.com>
Hi Andrzej,
On Wed, Jan 22, 2014 at 12:34 PM, Andrzej Kaczmarek
<andrzej.kaczmarek@tieto.com> wrote:
> Hi,
>
> v1 -> v2
> - fixed comments
> - added dependency to libsbc shared library on Android
>
> v2 -> v3
> - added comment explaining why we need to sleep in out_write
> - updated to new SBC API
> - libsbc shared library is now built from our Android.mk
> - implemented proper get_latency callback
>
>
>
> Andrzej Kaczmarek (10):
> android: Add MTU data to Open Stream Audio IPC
> android: Build Audio HAL with SBC
> android/hal-audio: Rename sbc_init to avoid collision with libsbc
> android/hal-audio: Initialize SBC encoder
> android/hal-audio: Calculate SBC stream parameters
> android/hal-audio: Add resume to codec callbacks
> android/hal-audio: Return proper buffer size to AudioFlinger
> android/hal-audio: Read fd from Output Stream response
> android/hal-audio: Add proper SBC encoding
> android/hal-audio: Return proper latency for stream
>
> android/Android.mk | 37 ++++++-
> android/Makefile.am | 2 +
> android/a2dp.c | 8 +-
> android/audio-msg.h | 1 +
> android/hal-audio.c | 301 +++++++++++++++++++++++++++++++++++++++++++++++++---
> configure.ac | 7 ++
> 6 files changed, 338 insertions(+), 18 deletions(-)
>
> --
> 1.8.5.2
Pushed, thanks.
--
Luiz Augusto von Dentz
^ permalink raw reply
* [PATCH SBC 1/2] sbc: Add sbc_reinit_a2dp
From: Luiz Augusto von Dentz @ 2014-01-23 12:20 UTC (permalink / raw)
To: linux-bluetooth
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This adds sbc_reinit_a2dp that can be used to reconfigure a previous
initialized sbc_t with new A2DP configuration.
---
sbc/sbc.c | 49 +++++++++++++++++++++++++++++++++++--------------
sbc/sbc.h | 2 ++
2 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/sbc/sbc.c b/sbc/sbc.c
index 51bca55..534027e 100644
--- a/sbc/sbc.c
+++ b/sbc/sbc.c
@@ -1087,19 +1087,14 @@ SBC_EXPORT int sbc_init_msbc(sbc_t *sbc, unsigned long flags)
return 0;
}
-SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
+static int sbc_set_a2dp(sbc_t *sbc, unsigned long flags,
const void *conf, size_t conf_len)
{
const struct a2dp_sbc *a2dp;
- int err;
if (conf_len != sizeof(*a2dp))
return -EINVAL;
- err = sbc_init(sbc, flags);
- if (err < 0)
- return err;
-
a2dp = conf;
switch (a2dp->frequency) {
@@ -1116,7 +1111,7 @@ SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
sbc->frequency = SBC_FREQ_48000;
break;
default:
- goto failed;
+ return -EINVAL;
}
switch (a2dp->channel_mode) {
@@ -1133,7 +1128,7 @@ SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
sbc->mode = SBC_MODE_JOINT_STEREO;
break;
default:
- goto failed;
+ return -EINVAL;
}
switch (a2dp->allocation_method) {
@@ -1144,7 +1139,7 @@ SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
sbc->allocation = SBC_AM_LOUDNESS;
break;
default:
- goto failed;
+ return -EINVAL;
}
switch (a2dp->subbands) {
@@ -1155,7 +1150,7 @@ SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
sbc->subbands = SBC_SB_8;
break;
default:
- goto failed;
+ return -EINVAL;
}
switch (a2dp->block_length) {
@@ -1172,14 +1167,40 @@ SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
sbc->blocks = SBC_BLK_16;
break;
default:
- goto failed;
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+SBC_EXPORT int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
+ const void *conf, size_t conf_len)
+{
+ int err;
+
+ err = sbc_init(sbc, flags);
+ if (err < 0)
+ return err;
+
+ err = sbc_set_a2dp(sbc, flags, conf, conf_len);
+ if (err < 0) {
+ sbc_finish(sbc);
+ return err;
}
return 0;
+}
+
+int sbc_reinit_a2dp(sbc_t *sbc, unsigned long flags,
+ const void *conf, size_t conf_len)
+{
+ int err;
+
+ err = sbc_reinit(sbc, flags);
+ if (err < 0)
+ return err;
-failed:
- sbc_finish(sbc);
- return -EINVAL;
+ return sbc_set_a2dp(sbc, flags, conf, conf_len);
}
SBC_EXPORT ssize_t sbc_parse(sbc_t *sbc, const void *input, size_t input_len)
diff --git a/sbc/sbc.h b/sbc/sbc.h
index a542845..d6f123e 100644
--- a/sbc/sbc.h
+++ b/sbc/sbc.h
@@ -87,6 +87,8 @@ int sbc_reinit(sbc_t *sbc, unsigned long flags);
int sbc_init_msbc(sbc_t *sbc, unsigned long flags);
int sbc_init_a2dp(sbc_t *sbc, unsigned long flags,
const void *conf, size_t conf_len);
+int sbc_reinit_a2dp(sbc_t *sbc, unsigned long flags,
+ const void *conf, size_t conf_len);
ssize_t sbc_parse(sbc_t *sbc, const void *input, size_t input_len);
--
1.8.4.2
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox