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