On Thu, 2010-05-20 at 15:38 -0700, Inaky Perez-Gonzalez wrote:
> On Thu, 2010-05-20 at 13:28 -0700, Dan Williams wrote:
> > Misc 64-bit fixes. Need to use 'z' when printing out size_t and
> > ssize_t.
> >
> > Signed-off-by: Dan Williams <[email protected]>
>
> Merged
>
> Thank you Dan, I forgot to cross compile this one to check those issues.
I dont' event want to start talking about the wimax-ns... besides the
fact that it uses 32-bit only registers for some of backtrace stuff in
GenericConsole.c [1], there are tons of warnings about the autogenerated
stuff for pointer size comparisons too [2]. Given how that piece is
developed, is it even worth me submitting 64-bit correctness patches for
it?
Note that stuff like Bitman2Base would also need to be fixed up for
64-bit Linux since we're not supposed to edit files like
BasicBitmanTypes.h. Somehow I doubt that will happen but I'd be
pleasantly surprised if it did. For example:
#define BM_Little_Flag_value_GET_POS( base_ptr, base_bitoff, out_ptr,
out_bitoff )\
{\
/*lint --e{*} */\
out_ptr = base_ptr;\
out_bitoff = base_bitoff;\
}
here base_ptr is a void* while base_bitoff is a UINT32. On 64-bit that
will generate a compiler warning that is probably harmless but is *very*
annoying in the logs (since it happens a few times for every line in
SourceControl/BitmanCommon.c).
Dan
[1] trace[1] = (void *) uc->uc_mcontext.gregs[REG_EIP]; REG_EIP is a
32-bit only register and should be REG_RIP on x86-64, but certainly this
isn't portable to any other platform either and it should be...
[2]
../../../../InfraStack/OSDependent/Linux/L4Generated/L4BufMan_L3L4DmStructs.c:403:
warning: cast from pointer to integer of different size
which corresponds to
BM_MonitorBuffer_List_CURRENT_L3L4_BurstStatus_L3_BurstStatus_L3_totalDlSdusSize_GET(
base_ptr, cur_ptr, cur_bitoff,
pMsg->L3L4_BurstStatus_L3.BurstStatus_L3.totalDlSdusSize );
_______________________________________________
wimax mailing list
[email protected]
http://lists.linuxwimax.org/listinfo/wimax