Subject: Re: mmap problems
To: Chuck Silvers <chuq@chuq.com>
From: Jared D. McNeill <jmcneill@invisible.yi.org>
List: tech-kern
Date: 05/27/2001 22:51:05
On Sun, 27 May 2001, Chuck Silvers wrote:

> hi,
>
> if "offset" is a signed 32-bit variable then what's happening is that
> it's being sign-extended what cast to off_t, making the offset negative,
> which isn't what you want.  make sure that the upper bits of the value
> passed to mmap() as the offset are zero.

You're my hero! :-)

In xsrc/xc/lib/Xxf86dga/XF86DGA.c, in XF86DGAGetVideo(), I changed the line:
   int offset, fd;
to read:
   int fd;
   unsigned long offset;

The libXxf86dga code compiles (with a warning), but snes9x works like a
charm with DGA (and as a result, full-screen mode works now too).

I'm cc'ing tech-x11 in hopes that someone who can actually fix this
properly will have a look. I'm 99.9% sure that this will let xmame go
full-screen as well :-)

Thanks a bunch,
Jared