IDL: uint64 or udlong

ronnie sahlberg ronniesahlberg at gmail.com
Tue Jan 15 21:08:21 GMT 2008


hyper is a DCERPC type that is 64 bits in size and is aligned to a 8
byte boundary.

udlong is a "special" extenstion type that is also 64 bits in size but
it is aligned to a 4 byte boundary. It is not part of "normal" DCERPC.


udlong is a trick used to represent a 64 bit quantity which MS often
use in their IDLs that look something like
 struct 64bitinteger {
    uint32 low;
   uint32 high;
};
and to make this structure easier to work with.


They are both 64bit integers. the only difference is how they are aligned.




On Jan 16, 2008 2:45 AM, Amin Azez <azez at ufomechanic.net> wrote:
> Grepping of the samba4 source helped me delcare an actual uint64_t by
> specifying a udlong.
>
> If I specify uint64 in the idl the pidl generated files try to make use
> of "struct uint64" instead of uint64_t
>
> Using udlong sounds like a step towards architecture specific sizes and
> makes me uneasy.
>
> What should I be using in my idl when I want a 64 bit unsigned integer
> (for file-offsets in this case)?
>
> Thanks
>
> Sam
>


More information about the samba-technical mailing list