[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: video mem access with oskit-mach
From: |
Marcus Brinkmann |
Subject: |
Re: video mem access with oskit-mach |
Date: |
Mon, 10 Dec 2001 20:20:15 +0100 |
User-agent: |
Mutt/1.3.24i |
On Mon, Oct 01, 2001 at 05:12:17PM -0400, Roland McGrath wrote:
> The keyboard and video questions are really quite separate,
> so I am answering them in two separate threads.
>
> I believe that everything should already be in place in Mach (both flavors)
> and in the Hurd for mapping physical device memory such as the frame buffer.
> mmap on /dev/mem ought to dtrt already. If not, it's a bug.
Ugh, except that I can't map a part of the mem device, because of libstore
breakage:
static error_t
dev_map (const struct store *store, vm_prot_t prot, mach_port_t *memobj)
{
size_t nruns = store->num_runs;
if (nruns > 1 || (nruns == 1 && store->runs[0].start != 0))
return EOPNOTSUPP;
else
{
/* We pass in 0 for the OFFSET and SIZE argument because in many cases
we can't supply them (devices that can't otherwise do I/O are often
still mappable) and mach ignores them entirely. XXXX */
error_t err = device_map (store->port, prot, 0, 0, memobj, 0);
if (err == ED_INVALID_OPERATION)
err = EOPNOTSUPP; /* This device doesn't support paging. */
return err;
}
}
We should fix Mach where it ignores the offsets and just make this function
do the obvious thing. Shouldn't we? The user can provide the size == 0
argument for Mach devices that need them. I am not sure it's libstore's job
to hide the Mach breakage where it exists.
OSKit Mach seems to deal with offsets, at least in the mem device.
Thanks,
Marcus
--
`Rhubarb is no Egyptian god.' Debian http://www.debian.org brinkmd@debian.org
Marcus Brinkmann GNU http://www.gnu.org marcus@gnu.org
Marcus.Brinkmann@ruhr-uni-bochum.de
http://www.marcus-brinkmann.de