* [Bluez-devel] hcid: memory alignment problems on arm
@ 2005-09-21 10:55 pHilipp Zabel
2005-09-21 20:53 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-21 10:55 UTC (permalink / raw)
To: bluez-devel
[-- Attachment #1: Type: text/plain, Size: 193 bytes --]
Hi!
hcid causes alignment traps on arm architecture with the dbus part enabled.
I worked around this with the attached patch.
Can anybody help me to do this the right way?
--
Philipp
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hcid-alignment-fix.patch --]
[-- Type: text/x-patch; name="hcid-alignment-fix.patch", Size: 1195 bytes --]
--- bluez-utils-2.20/hcid/dbus.c.orig 2005-09-21 11:27:26 +0200
+++ bluez-utils-2.20/hcid/dbus.c 2005-09-21 11:27:35 +0200
@@ -120,6 +121,7 @@
DBusMessage *message;
#ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
uint8_t *addr = (uint8_t *) &ci->bdaddr;
+ uint32_t ci_out = ci->out;
#else
DBusMessageIter iter;
#endif
@@ -138,7 +140,7 @@
bacpy(&req->bda, &ci->bdaddr);
#ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
- dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+ dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci_out,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
#else
@@ -261,6 +263,8 @@
DBusMessage *message;
#ifndef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
DBusMessageIter iter;
+#else
+ int32_t tmp_rssi = rssi;
#endif
char *local_addr, *peer_addr;
bdaddr_t tmp;
@@ -276,11 +280,12 @@
}
#ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
+
dbus_message_append_args(message,
DBUS_TYPE_STRING, &local_addr,
DBUS_TYPE_STRING, &peer_addr,
DBUS_TYPE_UINT32, &class,
- DBUS_TYPE_INT32, &rssi,
+ DBUS_TYPE_INT32, &tmp_rssi,
DBUS_TYPE_INVALID);
#else
dbus_message_append_iter_init(message, &iter);
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bluez-devel] hcid: memory alignment problems on arm
2005-09-21 10:55 [Bluez-devel] hcid: memory alignment problems on arm pHilipp Zabel
@ 2005-09-21 20:53 ` Marcel Holtmann
2005-09-22 9:18 ` pHilipp Zabel
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-21 20:53 UTC (permalink / raw)
To: bluez-devel
Hi Philipp,
> hcid causes alignment traps on arm architecture with the dbus part enabled.
> I worked around this with the attached patch.
> Can anybody help me to do this the right way?
the patch looks good, but you must redo it against the latest CVS. I
removed the compat code for the D-Bus 0.23 API.
Regards
Marcel
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server.
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bluez-devel] hcid: memory alignment problems on arm
2005-09-21 20:53 ` Marcel Holtmann
@ 2005-09-22 9:18 ` pHilipp Zabel
2005-09-22 9:35 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-22 9:18 UTC (permalink / raw)
To: bluez-devel
[-- Attachment #1: Type: text/plain, Size: 267 bytes --]
Hi Marcel,
On 9/21/05, Marcel Holtmann <marcel@holtmann.org> wrote:
> the patch looks good, but you must redo it against the latest CVS. I
> removed the compat code for the D-Bus 0.23 API.
Thanks, I have attached an updated patch against CVS.
--
Philipp
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hcid-alignment-fix.patch --]
[-- Type: text/x-patch; name="hcid-alignment-fix.patch", Size: 1111 bytes --]
--- utils/hcid/dbus.c.orig 2005-09-22 11:12:17 +0200
+++ utils/hcid/dbus.c 2005-09-22 11:14:36 +0200
@@ -124,6 +124,7 @@
DBusPendingCall *pending = NULL;
struct pin_request *req;
uint8_t *addr = (uint8_t *) &ci->bdaddr;
+ uint32_t tmp_out = ci->out;
message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
req->dev = dev;
bacpy(&req->bda, &ci->bdaddr);
- dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+ dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &tmp_out,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
@@ -233,6 +234,7 @@
{
DBusMessage *message;
char *local_addr, *peer_addr;
+ int32_t tmp_rssi = rssi;
bdaddr_t tmp;
baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -249,7 +251,7 @@
DBUS_TYPE_STRING, &local_addr,
DBUS_TYPE_STRING, &peer_addr,
DBUS_TYPE_UINT32, &class,
- DBUS_TYPE_INT32, &rssi,
+ DBUS_TYPE_INT32, &tmp_rssi,
DBUS_TYPE_INVALID);
if (dbus_connection_send(connection, message, NULL) == FALSE) {
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bluez-devel] hcid: memory alignment problems on arm
2005-09-22 9:18 ` pHilipp Zabel
@ 2005-09-22 9:35 ` Marcel Holtmann
2005-09-22 9:43 ` Marcel Holtmann
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-22 9:35 UTC (permalink / raw)
To: bluez-devel
[-- Attachment #1: Type: text/plain, Size: 373 bytes --]
Hi Philipp,
> On 9/21/05, Marcel Holtmann <marcel@holtmann.org> wrote:
> > the patch looks good, but you must redo it against the latest CVS. I
> > removed the compat code for the D-Bus 0.23 API.
>
> Thanks, I have attached an updated patch against CVS.
is the attached patch also working for you? I think it is better to use
the D-Bus specific types.
Regards
Marcel
[-- Attachment #2: patch --]
[-- Type: text/x-patch, Size: 1381 bytes --]
Index: hcid/dbus.c
===================================================================
RCS file: /cvsroot/bluez/utils/hcid/dbus.c,v
retrieving revision 1.16
diff -u -r1.16 dbus.c
--- hcid/dbus.c 15 Sep 2005 08:07:53 -0000 1.16
+++ hcid/dbus.c 22 Sep 2005 09:33:58 -0000
@@ -124,6 +124,7 @@
DBusPendingCall *pending = NULL;
struct pin_request *req;
uint8_t *addr = (uint8_t *) &ci->bdaddr;
+ dbus_uint32_t out = ci->out;
message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
req->dev = dev;
bacpy(&req->bda, &ci->bdaddr);
- dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+ dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &out,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
@@ -233,6 +234,8 @@
{
DBusMessage *message;
char *local_addr, *peer_addr;
+ dbus_uint32_t tmp_class;
+ dbus_int32_t tmp_rssi = rssi;
bdaddr_t tmp;
baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -248,8 +251,8 @@
dbus_message_append_args(message,
DBUS_TYPE_STRING, &local_addr,
DBUS_TYPE_STRING, &peer_addr,
- DBUS_TYPE_UINT32, &class,
- DBUS_TYPE_INT32, &rssi,
+ DBUS_TYPE_UINT32, &tmp_class,
+ DBUS_TYPE_INT32, &tmp_rssi,
DBUS_TYPE_INVALID);
if (dbus_connection_send(connection, message, NULL) == FALSE) {
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bluez-devel] hcid: memory alignment problems on arm
2005-09-22 9:35 ` Marcel Holtmann
@ 2005-09-22 9:43 ` Marcel Holtmann
2005-09-22 11:24 ` pHilipp Zabel
0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-22 9:43 UTC (permalink / raw)
To: bluez-devel
[-- Attachment #1: Type: text/plain, Size: 362 bytes --]
Hi Philipp,
> > > the patch looks good, but you must redo it against the latest CVS. I
> > > removed the compat code for the D-Bus 0.23 API.
> >
> > Thanks, I have attached an updated patch against CVS.
>
> is the attached patch also working for you? I think it is better to use
> the D-Bus specific types.
oops. Wrong patch. Try this one.
Regards
Marcel
[-- Attachment #2: patch --]
[-- Type: text/x-patch, Size: 1387 bytes --]
Index: hcid/dbus.c
===================================================================
RCS file: /cvsroot/bluez/utils/hcid/dbus.c,v
retrieving revision 1.16
diff -u -r1.16 dbus.c
--- hcid/dbus.c 15 Sep 2005 08:07:53 -0000 1.16
+++ hcid/dbus.c 22 Sep 2005 09:42:55 -0000
@@ -124,6 +124,7 @@
DBusPendingCall *pending = NULL;
struct pin_request *req;
uint8_t *addr = (uint8_t *) &ci->bdaddr;
+ dbus_bool_t out = ci->out;
message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
req->dev = dev;
bacpy(&req->bda, &ci->bdaddr);
- dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+ dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &out,
DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
@@ -233,6 +234,8 @@
{
DBusMessage *message;
char *local_addr, *peer_addr;
+ dbus_uint32_t tmp_class = class;
+ dbus_int32_t tmp_rssi = rssi;
bdaddr_t tmp;
baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -248,8 +251,8 @@
dbus_message_append_args(message,
DBUS_TYPE_STRING, &local_addr,
DBUS_TYPE_STRING, &peer_addr,
- DBUS_TYPE_UINT32, &class,
- DBUS_TYPE_INT32, &rssi,
+ DBUS_TYPE_UINT32, &tmp_class,
+ DBUS_TYPE_INT32, &tmp_rssi,
DBUS_TYPE_INVALID);
if (dbus_connection_send(connection, message, NULL) == FALSE) {
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bluez-devel] hcid: memory alignment problems on arm
2005-09-22 9:43 ` Marcel Holtmann
@ 2005-09-22 11:24 ` pHilipp Zabel
0 siblings, 0 replies; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-22 11:24 UTC (permalink / raw)
To: bluez-devel
Hi Marcel,
> > is the attached patch also working for you? I think it is better to use
> > the D-Bus specific types.
It does work exactly the same as mine.
I still don't see pin request messages on the system message bus,
but the alignment issues are gone.
thanks
--
Philipp
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server.
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-09-22 11:24 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-21 10:55 [Bluez-devel] hcid: memory alignment problems on arm pHilipp Zabel
2005-09-21 20:53 ` Marcel Holtmann
2005-09-22 9:18 ` pHilipp Zabel
2005-09-22 9:35 ` Marcel Holtmann
2005-09-22 9:43 ` Marcel Holtmann
2005-09-22 11:24 ` pHilipp Zabel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).