Broken dbus
Jay Estabrook
Jay.Estabrook at hp.com
Sun Apr 27 15:05:27 UTC 2008
Sigh...
I knew it was too early on a Sunday morning for this... ;-}
Estabrook, Jay wrote:
>
> The poor programming practice (hal) arises from assuming that all
> architectures have a natural boundary of 32-bits. Something like
> the following are indicative:
>
> pointer = (void *)((((char *)address) + 3) & ~3);
Should be:
pointer = (void *)((((char *)address) + 4) & ~3);
which rounds UP to the next 32-bit natural boundary.
>
> Better is:
>
> #define SZM (sizeof(void*)-1)
> pointer = (void *)((((char *)address) + SZM) & ~SZM);
And this should be:
#define SZ (sizeof(void*))
#define SZM (SZ-1)
pointer = (void *)((((char *)address) + SZ) & ~SZM);
which also rounds UP.
Now back to the funny pages... ;-}
--Jay++
More information about the axp-list
mailing list