[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MCL ephemeral GC implementation

At  4:51 PM 3/8/94 -0600, David Gadbois wrote:
>A while back an MCL developer mentioned to me that the MCL EGC used
>page-level read or write protections to trap memory references.  I am
>now working on an application (not in MCL, sigh) that could make good
>use of page-level protections.  If I understood the developer correctly,
>is there an exported Mac OS interface to the page protection bits, and,
>if so, is there any documentation on it?
>--David Gadbois

I did not write MCL's MMU code, but here is what I remember from
my conversations with Gary Byers (who no longer works at Apple).
Kalman may correct me as he understands the MMU code better than I.

I don't believe there is any OS interface to the page protection bits.
MCL frobs the hardware directly. It has different code for
the 68030 & 68040 MMUs. MCL's EGC needs to know if a page has been
modified. If MacVM is installed, it uses the write protect bit and usurps
the trap handler, otherwise it uses the page dirty bit. MCL does not
use the read protect bit because this requires using the longer form
of MMU page descriptors, which are not compatible with MacVM. MCL's MMU
code is written in MPW assembler and is highly MCL specific, so I doubt
that it would help you much. I also don't know if my management would agree
to let you see it.