Re: mmap() and gcc precompiled headers

2003-07-05 Thread Corinna Vinschen
On Sat, Jul 05, 2003 at 03:26:08PM +0200, Corinna Vinschen wrote: > I'll rewrite munmap this weekend if I get the chance. I've checked in a patch. I'd be glad if you could have a look into it. Thanks again for your analyzis. It's highly appreciated, Corinna -- Corinna Vinschen

Re: mmap() and gcc precompiled headers

2003-07-05 Thread Corinna Vinschen
On Fri, Jul 04, 2003 at 12:34:13PM -0700, Earl Chew wrote: > DWORD high; > DWORD low = GetFileSize (fh->get_handle (), &high); > __off64_t fsiz = ((__off64_t)high << 32) + low; > /*1*/ fsiz -= gran_off; > if (gran_len > fsiz) > /*2*/ gran_len = fsiz; > > First

Re: mmap() and gcc precompiled headers

2003-07-04 Thread Earl Chew
Corinna Vinschen wrote: o I think there is a problem with the address arithmetic in the match() method used by munmap(). Compare the code in list::match (__off64_t off, DWORD len) with list::match (caddr_t addr, DWORD len, __off32_t start). > Uhm, no. Thanks for the detailed explanation. You'

Re: mmap() and gcc precompiled headers

2003-07-04 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 06:23:26PM -0700, Earl Chew wrote: > o The if (addr) test is redundant (it will always succeed -- I think > you meant to write *addr, but I think it's better to simply do > away with the test since it doesn't buy anything). I've just fixed the conditional for now. I th

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Earl Chew
Corinna Vinschen wrote: In other words, addr -= (off - gran_off). This address should now be 64k aligned. Error if it isn't. Use this address when calling MapViewOfFileEx(). If the call fails and MAP_FIXED is not set, then try again with addr = 0. Yes, that's what I mentioned in my first reply. I

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 11:33:02AM -0700, Earl Chew wrote: > Corinna Vinschen wrote: > >On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > >>On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > >>>Do you mean something like this: > >>> > >>> If addr is given, chec

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Earl Chew
Corinna Vinschen wrote: On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >Do you mean something like this: > > If addr is given, check if it's 64K aligned. If not, align and > raise the memory requirement accord

RE: mmap() and gcc precompiled headers

2003-07-03 Thread Chris January
> On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > > On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > > >Do you mean something like this: > > > > > > If addr is given, check if it's 64K aligned. If not, align and > > > raise the memory requirement accordin

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Christopher Faylor
On Thu, Jul 03, 2003 at 04:30:10PM +0200, Corinna Vinschen wrote: >On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: >> On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >> >Do you mean something like this: >> > >> > If addr is given, check if it's 64K aligned. I

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 10:19:42AM -0400, Christopher Faylor wrote: > On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > >Do you mean something like this: > > > > If addr is given, check if it's 64K aligned. If not, align and > > raise the memory requirement accordingly. Call M

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Christopher Faylor
On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: >Do you mean something like this: > > If addr is given, check if it's 64K aligned. If not, align and > raise the memory requirement accordingly. Call MapViewOfFileEx > with the aligned address. If it works, return the addr give

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Thu, Jul 03, 2003 at 11:47:28AM +0200, Corinna Vinschen wrote: > On Wed, Jul 02, 2003 at 01:37:20PM -0700, Earl Chew wrote: > > From the FreeBSD man page: > > > > If addr is non-zero, it is used as a hint to the system. (As a > > convenience to the system, the actual address of the reg

Re: mmap() and gcc precompiled headers

2003-07-03 Thread Corinna Vinschen
On Wed, Jul 02, 2003 at 01:37:20PM -0700, Earl Chew wrote: > The current implementation does not know anything about the > Cygwin 64k granularity, and does not use MAP_FIXED because > MAP_FIXED may have bad side-effects on other implementations. So it can't rely on getting the mmap at the same loc