MTRR patch

Richard Gooch (rgooch@atnf.CSIRO.AU)
Tue, 16 Dec 1997 22:45:12 +1100


Hi, all. Below is my first cut of my /proc/mtrr interface. It
supports an ASCII and ioctl interface and works for SMP.

Regards,

Richard....

begin 644 mtrr-patch-v1.0.gz
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
+B_\!3(%6Q;AK````
`
end