* [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