Hi Hal,

Hal Rosenstock wrote on Tue, 18 May 2010 at 19:22:37

>> AL_INLINE ib_net16_t AL_API
>> ib_get_attr_offset(
>>        IN              const   uint32_t  attr_size )
>> {
>>        if( attr_size & 0x07 )
>>                return( cl_hton16( (uint16_t)(attr_size >> 3) + 1 ) );
>>        else
>>                return( cl_hton16( (uint16_t)(attr_size >> 3) ) );
>> }
>>
>> Linux
>>
>> static inline ib_net16_t AL_API
>> ib_get_attr_offset(const uint32_t attr_size )
>> {
>>        return( cl_hton16( (uint16_t)(attr_size >> 3) ) );
>> }
> 
> Why does Windows have the if clause in ib_get_attr_off (and not match
> the "Linux" version) ?

So that the returned offset is not rounded down incorrect.  Say the attribute 
size is not a multiple of 8, the >> 3 would return a value 1 less than required.

Not sure how the Linux code works properly, unless the structure sizes somehow 
get rounded to a multiple of 8.

-Fab


_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to