Re: Frame buffer / mmap() weirdness


Subject: Re: Frame buffer / mmap() weirdness
From: Momchil Velikov (velco@fadata.bg)
Date: Wed Dec 01 1999 - 01:16:10 MST


Geert Uytterhoeven wrote:
>
> On Tue, 30 Nov 1999, Stephen Edie wrote:
> > Furthermore, it makes most sense that mmap() should take care of page
> > alignment issues for me so that the address returned by mmap() always
> > points to the data at [lseek(h, 0, SEEK_SET)]. This is not technically
> > difficult to implement, right?

This behavior is mandated by POSIX:
   " pa = mmap( addr, len, prot, flags, fildes, off)
    The mmap() function establishes a mapping between the address space of
    the process at an address pa for len bytes for memory object represented
    by the file descriptor fildes at offset off for len bytes".
So, if pa[0] != [lseek(fildes, off, SEEK_SET], etc., the mmap()
implementation is clearly buggy or at least non-compliant.

> I think it will make munmap() more difficult to implement. Furthermore I see no
> provisions for this in the current mmap() code. And it will break backwards
> compatibility.

Don't know for mmap(), but it seems the only change to munmap() is
to clear the appropriate number of low-order bits in its first argument
( addr & 0xfffff000 for 32-bit machines with 4k page size).

Regards,
-velco



This archive was generated by hypermail 2a24 : Fri Dec 03 1999 - 19:07:45 MST