85 |
|
|
86 |
|
/* |
87 |
|
* Helpers to share 32-bit addressable data with MacOS |
88 |
+ |
* |
89 |
+ |
* There are two distinct allocatable regions: |
90 |
+ |
* |
91 |
+ |
* - The Data region is used to share data between MacOS and |
92 |
+ |
* SheepShaver. This is stack-like allocation since it is |
93 |
+ |
* meant to only hold temporary data which dies at the end |
94 |
+ |
* of the current function scope. |
95 |
+ |
* |
96 |
+ |
* - The Procedure region is used to hold permanent M68K or |
97 |
+ |
* PowerPC code to assist native routine implementations. |
98 |
+ |
* |
99 |
+ |
* - The Procedure region grows up whereas the Data region |
100 |
+ |
* grows down. They may intersect into the ZeroPage, which |
101 |
+ |
* is a read-only page with all bits set to zero. In practise, |
102 |
+ |
* the intersection is unlikely since the Procedure region is |
103 |
+ |
* static and the Data region is meant to be small (< 256 KB). |
104 |
|
*/ |
105 |
|
|
106 |
|
class SheepMem { |