On Tue, Mar 04, 2003 at 11:59:50AM -0600, Andy Isaacson wrote:
> On Tue, Mar 04, 2003 at 09:41:54AM -0800, Philip Brown wrote:
> > On Tue, Mar 04, 2003 at 01:27:28PM +0000, Alan Cox wrote:
> > > On all 64bit bit platforms I have met unsigned long is a 64bit quantity.
> > > In fact I can't think of a single exception
> >
> > Well then, obviously, you dont use solaris :-)
>
> He uses Solaris and compiles for 64-bit mode, rather than the 32-bit
> mode you're compiling for.
> ...
>
> The 64-bit kernel is perfectly capable of running 32-bit binaries, and
> that's precisely what you're doing.
Yes. And that's exactly what DRI users will do. So right there is a
64/32 bit problem.
In drm.h, to take just one example.
typedef struct drm_map {
unsigned long offset; /* Requested physical address (0 for SAREA)*/
unsigned long size; /* Requested physical size (bytes) */
drm_map_type_t type; /* Type of memory to map */
drm_map_flags_t flags; /* Flags */
void *handle; /* User-space: "Handle" to pass to mmap */
/* Kernel-space: kernel-virtual address */
int mtrr; /* MTRR slot used */
/* Private data */
} drm_map_t;
So kernel will be compiled with offset=64bits, user mode will be compiled
with offset=32bits... boom.
All numeric fields passed through the ioctls, should have fixed,
identifiable sizes.
-------------------------------------------------------
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