As promised from the irc session... here's details on the little 
32/64-bit issue I ran into.

Its not quite a direct 32/64 bit thing in the drm itself exactly, but
ambiguity can be a problem...

drm_map_t.offset  is "unsigned long".

"unsigned long" is semi-unspecified, but is reasonably assumed to be
a 32-bit quantity.

mmap() takes an arg of type "off_t".
That value is essentially what is assumed to be passed in and used by
drm_map_t

Trouble is, the off_t value gets treated as a 64bit quantity at kernel
level, when servicing the mmap() request.

Most other OSs are probably going to transition that way, if they are not
there already.

So, if you're going to call something "offset", in a struct that is
targetted for memory map tracking... it should really be an explicit 64bit
length value.



-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to