PCH support on Solaris

Ulrich Weigand weigand@immd1.informatik.uni-erlangen.de
Sun Apr 6 19:42:00 GMT 2003


Paolo Bonzini wrote:

>     int flags = MAP_FIXED|MAP_SHARED;
>     char *vec = alloca ((mmi.size + pagesize - 1) / pagesize);
>     int result = mincore (mmi.preferred_base, mmi.size, vec);
>     if (result == -1)
>        {
>             warning ("PCH not usable");
>             return;
>         }

This is not quite what I meant; you need to check that
*nothing* is mapped there before doing the MAP_FIXED mmap, 
i.e. that every single page returns an error; about like so:

	int i;
	char vec;

	for (i = 0; i < mmi.size; i += pagesize)
          if (mincore((caddr_t)mmi.preferred_base + i, 
		      pagesize, &vec) != -1)
	    {
	      warning ...
	      return;
	    }

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de



More information about the Gcc-patches mailing list