Linux bluetooth development
 help / color / mirror / Atom feed
From: Andrei Emeltchenko <andrei.emeltchenko.news@gmail.com>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: linux-bluetooth@vger.kernel.org
Subject: Re: [PATCHv3 06/15] android: Add basic mgmt initialization sequence
Date: Thu, 10 Oct 2013 12:59:54 +0300	[thread overview]
Message-ID: <20131010095952.GH23879@aemeltch-MOBL1> (raw)
In-Reply-To: <0147C8F8-0491-44CD-BCDB-51DF9F6D3315@holtmann.org>

Hi Marcel,

On Wed, Oct 09, 2013 at 09:30:22PM +0200, Marcel Holtmann wrote:
> Hi Andrei,
> 
> > Initialize bluetooth controller via mgmt interface.
> > ---
> > Makefile.android   |    4 +-
> > android/Android.mk |   11 +++
> > android/main.c     |  189 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> > 3 files changed, 203 insertions(+), 1 deletion(-)
> > 
> > diff --git a/Makefile.android b/Makefile.android
> > index e161e6d..9a2c486 100644
> > --- a/Makefile.android
> > +++ b/Makefile.android
> > @@ -1,7 +1,9 @@
> > if ANDROID
> > noinst_PROGRAMS += android/bluetoothd
> > 
> > -android_bluetoothd_SOURCES = android/main.c src/log.c
> > +android_bluetoothd_SOURCES = android/main.c src/log.c \
> > +				src/shared/util.h src/shared/util.c \
> > +				src/shared/mgmt.h src/shared/mgmt.c
> > android_bluetoothd_LDADD = @GLIB_LIBS@
> > endif
> > 
> > diff --git a/android/Android.mk b/android/Android.mk
> > index 2cabff4..f5fd863 100644
> > --- a/android/Android.mk
> > +++ b/android/Android.mk
> > @@ -15,10 +15,15 @@ include $(CLEAR_VARS)
> > LOCAL_SRC_FILES := \
> > 	main.c \
> > 	log.c \
> > +	../src/shared/mgmt.c \
> > +	../src/shared/util.c \
> > 
> > LOCAL_C_INCLUDES := \
> > 	$(call include-path-for, glib) \
> > 	$(call include-path-for, glib)/glib \
> > +
> > +LOCAL_C_INCLUDES += \
> > +	$(LOCAL_PATH)/../ \
> > 	$(LOCAL_PATH)/../src \
> do we need these nested includes actually? We could also just fix the includes. BlueZ historically has not been good with clear includes. I started to fix this, but it seems I have not gotten to all of them yet.
>

So how do you want it to be? Here I just added BlueZ top-dir.

> > LOCAL_CFLAGS := -DVERSION=\"$(BLUEZ_VERSION)\"
> > @@ -26,6 +31,12 @@ LOCAL_CFLAGS := -DVERSION=\"$(BLUEZ_VERSION)\"
> > # to suppress the "warning: missing initializer near initialization.." warning
> > LOCAL_CFLAGS += -Wno-missing-field-initializers
> > 
> > +# to suppress the "pointer of type 'void *' used in arithmetic" warning
> > +LOCAL_CFLAGS += -Wno-pointer-arith
> 
> Why do we need to suppress these warning. Can we not just fix them.
> 

Is this fix good:

diff --git a/src/shared/mgmt.c b/src/shared/mgmt.c
index 2c79886..b2f5506 100644
--- a/src/shared/mgmt.c
+++ b/src/shared/mgmt.c
@@ -55,7 +55,7 @@ struct mgmt {
        unsigned int next_notify_id;
        bool in_notify;
        bool destroyed;
-       void *buf;
+       uint8_t *buf;
        uint16_t len;
        mgmt_debug_func_t debug_callback;
        mgmt_destroy_func_t debug_destroy;
@@ -299,7 +299,7 @@ static gboolean received_data(GIOChannel *channel,
GIOCondition cond,
        if (bytes_read < MGMT_HDR_SIZE)
                return TRUE;
 
-       hdr = mgmt->buf;
+       hdr = (struct mgmt_hdr *) mgmt->buf;
        event = btohs(hdr->opcode);
        index = btohs(hdr->index);
        length = btohs(hdr->len);
@@ -309,7 +309,7 @@ static gboolean received_data(GIOChannel *channel,
GIOCondition cond,
 
        switch (event) {
        case MGMT_EV_CMD_COMPLETE:
-               cc = mgmt->buf + MGMT_HDR_SIZE;
+               cc = (struct mgmt_ev_cmd_complete *) mgmt->buf +
MGMT_HDR_SIZE;
                opcode = btohs(cc->opcode);
 
                util_debug(mgmt->debug_callback, mgmt->debug_data,
@@ -320,7 +320,7 @@ static gboolean received_data(GIOChannel *channel,
GIOCondition cond,
                                                mgmt->buf + MGMT_HDR_SIZE
+ 3);
                break;
        case MGMT_EV_CMD_STATUS:
-               cs = mgmt->buf + MGMT_HDR_SIZE;
+               cs = (struct mgmt_ev_cmd_status *) mgmt->buf +
MGMT_HDR_SIZE;
                opcode = btohs(cs->opcode);
 
                util_debug(mgmt->debug_callback, mgmt->debug_data,

> > +
> > +# Define missing flags for Android 4.2
> > +LOCAL_CFLAGS += -DSOCK_CLOEXEC=02000000 -DSOCK_NONBLOCK=04000
> > +
> 
> This thing is dangerous. Do we really bother with Android 4.2 support
> and can not rely on a newer version that has this fixed properly in
> bionic.

The problem here is that our base android-ia from 01.org is based on
4.2.2. Do you still want to remove this?

Best regards 
Andrei Emeltchenko 

  reply	other threads:[~2013-10-10  9:59 UTC|newest]

Thread overview: 91+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-07  7:38 [PATCHv1 00/15] Basic code for Android BlueZ Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 01/15] android: Supress missing initializers warnings Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 02/15] android: Add Adapter Bluetooth HAL template Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 03/15] android: Add Socket " Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 04/15] android: Enable Socket interface Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 05/15] android: Start Android Bluetooth daemon Andrei Emeltchenko
2013-10-07 12:09   ` Szymon Janc
2013-10-07  7:38 ` [PATCHv1 06/15] android: Add basic mgmt initialization sequence Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 07/15] android: Create HAL API header skeleton Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 08/15] android: Add adapter and device struct for BlueZ daemon Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 09/15] android: Add Android Makefile for libbluetooth Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 10/15] android: sdp: Reuse BlueZ SDP server in Android Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 11/15] android: Add cap to bind to port < 1024 Andrei Emeltchenko
2013-10-07 12:14   ` Szymon Janc
2013-10-07  7:38 ` [PATCHv1 12/15] android: Implement read_info_complete callback Andrei Emeltchenko
2013-10-07 12:26   ` Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 13/15] android: Handle mgmt changed events Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 14/15] android: Add makefile for hciconfig Andrei Emeltchenko
2013-10-07  7:38 ` [PATCHv1 15/15] android: Add makefile for hcitool Andrei Emeltchenko
2013-10-08 10:33 ` [PATCHv2 00/15] Basic code for Android BlueZ Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 01/15] android: Supress missing initializers warnings Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 02/15] android: Add Adapter Bluetooth HAL template Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 03/15] android: Add Socket " Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 04/15] android: Enable Socket interface Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 05/15] android: Start Android Bluetooth daemon Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 06/15] android: Add basic mgmt initialization sequence Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 07/15] android: Create HAL API header skeleton Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 08/15] android: Add adapter and device struct for BlueZ daemon Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 09/15] android: Add Android Makefile for libbluetooth Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 10/15] android: sdp: Reuse BlueZ SDP server in Android Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 11/15] android: Add cap to bind to port < 1024 Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 12/15] android: Implement read_info_complete callback Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 13/15] android: Handle mgmt changed events Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 14/15] android: Add makefile for hciconfig Andrei Emeltchenko
2013-10-08 10:33   ` [PATCHv2 15/15] android: Add makefile for hcitool Andrei Emeltchenko
2013-10-08 14:51 ` [PATCHv3 00/15] Basic code for Android BlueZ Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 01/15] android: Supress missing initializers warnings Andrei Emeltchenko
2013-10-09 19:11     ` Marcel Holtmann
2013-10-09 22:55       ` Lucas De Marchi
2013-10-10  6:58       ` Andrei Emeltchenko
2013-10-10  7:35         ` Marcel Holtmann
2013-10-10  8:07           ` Andrei Emeltchenko
2013-10-10  8:10             ` Marcel Holtmann
2013-10-10  8:16               ` Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 02/15] android: Add Adapter Bluetooth HAL template Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 03/15] android: Add Socket " Andrei Emeltchenko
2013-10-09 19:14     ` Marcel Holtmann
2013-10-10  6:56       ` Andrei Emeltchenko
2013-10-10  7:33         ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 04/15] android: Enable Socket interface Andrei Emeltchenko
2013-10-09 19:15     ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 05/15] android: Start Android Bluetooth daemon Andrei Emeltchenko
2013-10-09 19:19     ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 06/15] android: Add basic mgmt initialization sequence Andrei Emeltchenko
2013-10-09 19:30     ` Marcel Holtmann
2013-10-10  9:59       ` Andrei Emeltchenko [this message]
2013-10-10 12:38         ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 07/15] android: Create HAL API header skeleton Andrei Emeltchenko
2013-10-09 19:34     ` Marcel Holtmann
2013-10-10 12:29       ` Andrei Emeltchenko
2013-10-10 12:35         ` Marcel Holtmann
2013-10-10 12:48           ` Andrei Emeltchenko
2013-10-10 13:02             ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 08/15] android: Add adapter and device struct for BlueZ daemon Andrei Emeltchenko
2013-10-09 19:39     ` Marcel Holtmann
2013-10-10 12:36       ` Andrei Emeltchenko
2013-10-10 12:40         ` Marcel Holtmann
2013-10-10  9:07     ` Marcin Kraglak
2013-10-10 12:30       ` Andrei Emeltchenko
2013-10-10 13:18         ` Marcin Kraglak
2013-10-10 13:27           ` Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 09/15] android: Add Android Makefile for libbluetooth Andrei Emeltchenko
2013-10-09 19:43     ` Marcel Holtmann
2013-10-10 12:43       ` Andrei Emeltchenko
2013-10-10 12:45         ` Marcel Holtmann
2013-10-10 12:52           ` Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 10/15] android: sdp: Reuse BlueZ SDP server in Android Andrei Emeltchenko
2013-10-09 19:45     ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 11/15] android: Add cap to bind to port < 1024 Andrei Emeltchenko
2013-10-09 19:48     ` Marcel Holtmann
2013-10-10 13:01       ` Andrei Emeltchenko
2013-10-08 14:51   ` [PATCHv3 12/15] android: Implement read_info_complete callback Andrei Emeltchenko
2013-10-09 19:54     ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 13/15] android: Handle mgmt changed events Andrei Emeltchenko
2013-10-09 19:58     ` Marcel Holtmann
2013-10-08 14:51   ` [PATCHv3 14/15] android: Add makefile for hciconfig Andrei Emeltchenko
2013-10-09 19:59     ` Marcel Holtmann
2013-10-14 11:51       ` Andrei Emeltchenko
2013-10-14 12:06         ` Marcel Holtmann
2013-10-14 13:39           ` Michal Labedzki
2013-10-08 14:51   ` [PATCHv3 15/15] android: Add makefile for hcitool Andrei Emeltchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131010095952.GH23879@aemeltch-MOBL1 \
    --to=andrei.emeltchenko.news@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=marcel@holtmann.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox