aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code/mpmtypes.h
diff options
context:
space:
mode:
authorRichard Brooksby2002-06-07 16:47:14 +0100
committerRichard Brooksby2002-06-07 16:47:14 +0100
commit97075f705350901f5ff46387f658ab459a4cd73f (patch)
tree4349ad5e7200f072a800f48749d57f3625757e7e /mps/code/mpmtypes.h
parent8b990e4858b6f6d735de07a241b1785702bb16e7 (diff)
downloademacs-97075f705350901f5ff46387f658ab459a4cd73f.tar.gz
emacs-97075f705350901f5ff46387f658ab459a4cd73f.zip
Updating cross references to design documents to html style, to go with master/design document tree.
Copied from Perforce Change: 29897 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code/mpmtypes.h')
-rw-r--r--mps/code/mpmtypes.h116
1 files changed, 58 insertions, 58 deletions
diff --git a/mps/code/mpmtypes.h b/mps/code/mpmtypes.h
index 7bcd2f00b5c..a92a38169c4 100644
--- a/mps/code/mpmtypes.h
+++ b/mps/code/mpmtypes.h
@@ -3,7 +3,7 @@
3 * $Id$ 3 * $Id$
4 * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. 4 * Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
5 * 5 *
6 * .design: design.mps.type 6 * .design: <design/type/>
7 * 7 *
8 * .rationale: Types and type constants are almost all defined 8 * .rationale: Types and type constants are almost all defined
9 * in this header, in advance of any declarations of prototypes 9 * in this header, in advance of any declarations of prototypes
@@ -24,21 +24,21 @@
24 24
25/* TYPES */ 25/* TYPES */
26 26
27typedef unsigned long Sig; /* design.mps.sig */ 27typedef unsigned long Sig; /* <design/sig/> */
28typedef int Res; /* design.mps.type.res */ 28typedef int Res; /* <design/type/#res> */
29 29
30typedef void (*Fun)(void); /* design.mps.type.fun */ 30typedef void (*Fun)(void); /* <design/type/#fun> */
31typedef MPS_T_WORD Word; /* design.mps.type.word */ 31typedef MPS_T_WORD Word; /* <design/type/#word> */
32typedef unsigned char Byte; /* design.mps.type.byte */ 32typedef unsigned char Byte; /* <design/type/#byte> */
33typedef struct AddrStruct *Addr; /* design.mps.type.addr */ 33typedef struct AddrStruct *Addr; /* <design/type/#addr> */
34typedef Word Size; /* design.mps.type.size */ 34typedef Word Size; /* <design/type/#size> */
35typedef Word Count; /* design.mps.type.count */ 35typedef Word Count; /* <design/type/#count> */
36typedef Word Index; /* design.mps.type.index */ 36typedef Word Index; /* <design/type/#index> */
37typedef Word Align; /* design.mps.type.align */ 37typedef Word Align; /* <design/type/#align> */
38typedef unsigned Shift; /* design.mps.type.shift */ 38typedef unsigned Shift; /* <design/type/#shift> */
39typedef unsigned Serial; /* design.mps.type.serial */ 39typedef unsigned Serial; /* <design/type/#serial> */
40typedef Addr Ref; /* design.mps.type.ref */ 40typedef Addr Ref; /* <design/type/#ref> */
41typedef void *Pointer; /* design.mps.type.pointer */ 41typedef void *Pointer; /* <design/type/#pointer> */
42 42
43typedef Word RefSet; /* design.mps.refset */ 43typedef Word RefSet; /* design.mps.refset */
44typedef Word ZoneSet; /* design.mps.refset */ 44typedef Word ZoneSet; /* design.mps.refset */
@@ -46,28 +46,28 @@ typedef unsigned Rank;
46typedef unsigned RankSet; 46typedef unsigned RankSet;
47typedef unsigned RootMode; 47typedef unsigned RootMode;
48typedef Size Epoch; /* design.mps.ld */ 48typedef Size Epoch; /* design.mps.ld */
49typedef unsigned TraceId; /* design.mps.trace */ 49typedef unsigned TraceId; /* <design/trace/> */
50typedef unsigned TraceSet; /* design.mps.trace */ 50typedef unsigned TraceSet; /* <design/trace/> */
51typedef unsigned TraceState; /* design.mps.trace */ 51typedef unsigned TraceState; /* <design/trace/> */
52typedef unsigned AccessSet; /* design.mps.type.access-set */ 52typedef unsigned AccessSet; /* <design/type/#access-set> */
53typedef unsigned Attr; /* design.mps.type.attr */ 53typedef unsigned Attr; /* <design/type/#attr> */
54typedef unsigned FormatVariety; 54typedef unsigned FormatVariety;
55typedef int RootVar; /* design.mps.type.rootvar */ 55typedef int RootVar; /* <design/type/#rootvar> */
56 56
57typedef Word *BT; /* design.mps.bt */ 57typedef Word *BT; /* <design/bt/> */
58typedef struct BootBlockStruct *BootBlock; /* impl.c.boot */ 58typedef struct BootBlockStruct *BootBlock; /* impl.c.boot */
59typedef struct BufferStruct *Buffer; /* design.mps.buffer */ 59typedef struct BufferStruct *Buffer; /* <design/buffer/> */
60typedef struct SegBufStruct *SegBuf; /* design.mps.buffer */ 60typedef struct SegBufStruct *SegBuf; /* <design/buffer/> */
61typedef struct BufferClassStruct *BufferClass; /* design.mps.buffer */ 61typedef struct BufferClassStruct *BufferClass; /* <design/buffer/> */
62typedef BufferClass SegBufClass; /* design.mps.buffer */ 62typedef BufferClass SegBufClass; /* <design/buffer/> */
63typedef BufferClass RankBufClass; /* design.mps.buffer */ 63typedef BufferClass RankBufClass; /* <design/buffer/> */
64typedef unsigned BufferMode; /* design.mps.buffer */ 64typedef unsigned BufferMode; /* <design/buffer/> */
65typedef unsigned FrameState; /* design.mps.alloc-frame */ 65typedef unsigned FrameState; /* <design/alloc-frame/> */
66typedef struct APStruct *AP; /* design.mps.buffer */ 66typedef struct APStruct *AP; /* <design/buffer/> */
67typedef struct FormatStruct *Format; /* design.mps.format */ 67typedef struct FormatStruct *Format; /* design.mps.format */
68typedef struct LDStruct *LD; /* design.mps.ld */ 68typedef struct LDStruct *LD; /* design.mps.ld */
69typedef struct LockStruct *Lock; /* impl.c.lock* */ 69typedef struct LockStruct *Lock; /* impl.c.lock* */
70typedef struct PoolStruct *Pool; /* design.mps.pool */ 70typedef struct PoolStruct *Pool; /* <design/pool/> */
71typedef struct PoolClassStruct *PoolClass; /* impl.c.poolclas */ 71typedef struct PoolClassStruct *PoolClass; /* impl.c.poolclas */
72typedef PoolClass AbstractPoolClass; /* impl.c.poolabs */ 72typedef PoolClass AbstractPoolClass; /* impl.c.poolabs */
73typedef PoolClass AbstractAllocFreePoolClass; /* impl.c.poolabs */ 73typedef PoolClass AbstractAllocFreePoolClass; /* impl.c.poolabs */
@@ -75,10 +75,10 @@ typedef PoolClass AbstractBufferPoolClass; /* impl.c.poolabs */
75typedef PoolClass AbstractSegBufPoolClass; /* impl.c.poolabs */ 75typedef PoolClass AbstractSegBufPoolClass; /* impl.c.poolabs */
76typedef PoolClass AbstractScanPoolClass; /* impl.c.poolabs */ 76typedef PoolClass AbstractScanPoolClass; /* impl.c.poolabs */
77typedef PoolClass AbstractCollectPoolClass; /* impl.c.poolabs */ 77typedef PoolClass AbstractCollectPoolClass; /* impl.c.poolabs */
78typedef struct TraceStruct *Trace; /* design.mps.trace */ 78typedef struct TraceStruct *Trace; /* <design/trace/> */
79typedef struct ScanStateStruct *ScanState; /* design.mps.trace */ 79typedef struct ScanStateStruct *ScanState; /* <design/trace/> */
80typedef struct ChainStruct *Chain; /* design.mps.trace */ 80typedef struct ChainStruct *Chain; /* <design/trace/> */
81typedef struct TractStruct *Tract; /* design.mps.arena */ 81typedef struct TractStruct *Tract; /* <design/arena/> */
82typedef struct ChunkStruct *Chunk; /* impl.c.tract */ 82typedef struct ChunkStruct *Chunk; /* impl.c.tract */
83typedef struct ChunkCacheEntryStruct *ChunkCacheEntry; /* impl.c.tract */ 83typedef struct ChunkCacheEntryStruct *ChunkCacheEntry; /* impl.c.tract */
84typedef struct PageStruct *Page; /* impl.c.tract */ 84typedef struct PageStruct *Page; /* impl.c.tract */
@@ -88,19 +88,19 @@ typedef struct SegClassStruct *SegClass; /* impl.c.seg */
88typedef SegClass GCSegClass; /* impl.c.seg */ 88typedef SegClass GCSegClass; /* impl.c.seg */
89typedef struct SegPrefStruct *SegPref; /* design.mps.pref, impl.c.locus */ 89typedef struct SegPrefStruct *SegPref; /* design.mps.pref, impl.c.locus */
90typedef int SegPrefKind; /* design.mps.pref, impl.c.locus */ 90typedef int SegPrefKind; /* design.mps.pref, impl.c.locus */
91typedef struct ArenaClassStruct *ArenaClass; /* design.mps.arena */ 91typedef struct ArenaClassStruct *ArenaClass; /* <design/arena/> */
92typedef ArenaClass AbstractArenaClass; /* impl.c.arena */ 92typedef ArenaClass AbstractArenaClass; /* impl.c.arena */
93typedef struct ArenaStruct *Arena; /* design.mps.arena */ 93typedef struct ArenaStruct *Arena; /* <design/arena/> */
94typedef struct GlobalsStruct *Globals; /* design.mps.arena */ 94typedef struct GlobalsStruct *Globals; /* <design/arena/> */
95typedef struct VMStruct *VM; /* impl.c.vm* */ 95typedef struct VMStruct *VM; /* impl.c.vm* */
96typedef struct RootStruct *Root; /* impl.c.root */ 96typedef struct RootStruct *Root; /* impl.c.root */
97typedef struct ThreadStruct *Thread; /* impl.c.th* */ 97typedef struct ThreadStruct *Thread; /* impl.c.th* */
98typedef struct MutatorFaultContextStruct 98typedef struct MutatorFaultContextStruct
99 *MutatorFaultContext; /* design.mps.prot */ 99 *MutatorFaultContext; /* <design/prot/> */
100typedef struct PoolDebugMixinStruct *PoolDebugMixin; 100typedef struct PoolDebugMixinStruct *PoolDebugMixin;
101typedef struct AllocPatternStruct *AllocPattern; 101typedef struct AllocPatternStruct *AllocPattern;
102typedef struct AllocFrameStruct *AllocFrame; /* design.mps.alloc-frame */ 102typedef struct AllocFrameStruct *AllocFrame; /* <design/alloc-frame/> */
103typedef struct ReservoirStruct *Reservoir; /* design.mps.reservoir */ 103typedef struct ReservoirStruct *Reservoir; /* <design/reservoir/> */
104 104
105 105
106/* Arena*Method -- see impl.h.mpmst.ArenaClassStruct */ 106/* Arena*Method -- see impl.h.mpmst.ArenaClassStruct */
@@ -121,7 +121,7 @@ typedef Res (*ArenaDescribeMethod)(Arena arena, mps_lib_FILE *stream);
121 121
122/* Messages 122/* Messages
123 * 123 *
124 * See design.mps.message 124 * See <design/message/>
125 */ 125 */
126 126
127typedef unsigned MessageType; 127typedef unsigned MessageType;
@@ -140,7 +140,7 @@ typedef Res (*TraceFixMethod)(ScanState ss, Ref *refIO);
140typedef void (*FormattedObjectsStepMethod)(Addr, Format, Pool, 140typedef void (*FormattedObjectsStepMethod)(Addr, Format, Pool,
141 void *, Size); 141 void *, Size);
142 142
143/* Seg*Method -- see design.mps.seg */ 143/* Seg*Method -- see <design/seg/> */
144 144
145typedef Res (*SegInitMethod)(Seg seg, Pool pool, Addr base, Size size, 145typedef Res (*SegInitMethod)(Seg seg, Pool pool, Addr base, Size size,
146 Bool withReservoirPermit, va_list args); 146 Bool withReservoirPermit, va_list args);
@@ -161,7 +161,7 @@ typedef Res (*SegSplitMethod)(Seg seg, Seg segHi,
161 Addr base, Addr mid, Addr limit, 161 Addr base, Addr mid, Addr limit,
162 Bool withReservoirPermit, va_list args); 162 Bool withReservoirPermit, va_list args);
163 163
164/* Buffer*Method -- see design.mps.buffer */ 164/* Buffer*Method -- see <design/buffer/> */
165 165
166typedef Res (*BufferInitMethod)(Buffer buffer, Pool pool, va_list args); 166typedef Res (*BufferInitMethod)(Buffer buffer, Pool pool, va_list args);
167typedef void (*BufferFinishMethod)(Buffer buffer); 167typedef void (*BufferFinishMethod)(Buffer buffer);
@@ -175,7 +175,7 @@ typedef void (*BufferReassignSegMethod)(Buffer buffer, Seg seg);
175typedef Res (*BufferDescribeMethod)(Buffer buffer, mps_lib_FILE *stream); 175typedef Res (*BufferDescribeMethod)(Buffer buffer, mps_lib_FILE *stream);
176 176
177 177
178/* Pool*Method -- see design.mps.class-interface */ 178/* Pool*Method -- see <design/class-interface/> */
179 179
180/* Order of types corresponds to PoolClassStruct in impl.h.mpmst */ 180/* Order of types corresponds to PoolClassStruct in impl.h.mpmst */
181 181
@@ -218,7 +218,7 @@ typedef Res (*PoolDescribeMethod)(Pool pool, mps_lib_FILE *stream);
218typedef PoolDebugMixin (*PoolDebugMixinMethod)(Pool pool); 218typedef PoolDebugMixin (*PoolDebugMixinMethod)(Pool pool);
219 219
220 220
221/* Message*Method -- design.mps.message */ 221/* Message*Method -- <design/message/> */
222 222
223typedef void (*MessageDeleteMethod)(Message message); 223typedef void (*MessageDeleteMethod)(Message message);
224typedef void (*MessageFinalizationRefMethod) 224typedef void (*MessageFinalizationRefMethod)
@@ -228,7 +228,7 @@ typedef Size (*MessageGCCondemnedSizeMethod)(Message message);
228typedef Size (*MessageGCNotCondemnedSizeMethod)(Message message); 228typedef Size (*MessageGCNotCondemnedSizeMethod)(Message message);
229 229
230 230
231/* Message Types -- design.mps.message and elsewhere */ 231/* Message Types -- <design/message/> and elsewhere */
232 232
233typedef struct MessageFinalizationStruct *MessageFinalization; 233typedef struct MessageFinalizationStruct *MessageFinalization;
234 234
@@ -246,7 +246,7 @@ typedef void (*FormatPadMethod)(Addr base, Size size);
246typedef Addr (*FormatClassMethod)(Addr object); 246typedef Addr (*FormatClassMethod)(Addr object);
247 247
248 248
249/* Root*Method -- see design.mps.root-interface */ 249/* Root*Method -- see <design/root/>-interface */
250/* .root-methods: These methods must match those defined in the */ 250/* .root-methods: These methods must match those defined in the */
251/* MPS C Interface. (See impl.h.mps.root-methods.) */ 251/* MPS C Interface. (See impl.h.mps.root-methods.) */
252 252
@@ -257,11 +257,11 @@ typedef Res (*RootScanRegMethod)(ScanState ss, Thread thread, void *p, size_t s)
257/* CONSTANTS */ 257/* CONSTANTS */
258 258
259 259
260/* design.mps.sig SIGnature IS BAD */ 260/* <design/sig/> SIGnature IS BAD */
261#define SigInvalid ((Sig)0x51915BAD) 261#define SigInvalid ((Sig)0x51915BAD)
262 262
263#define SizeMAX ((Size)-1) 263#define SizeMAX ((Size)-1)
264#define AccessSetEMPTY ((AccessSet)0) /* design.mps.type.access-set */ 264#define AccessSetEMPTY ((AccessSet)0) /* <design/type/#access-set> */
265#define AccessREAD ((AccessSet)(1<<0)) 265#define AccessREAD ((AccessSet)(1<<0))
266#define AccessWRITE ((AccessSet)(1<<1)) 266#define AccessWRITE ((AccessSet)(1<<1))
267#define AccessSetWIDTH (2) 267#define AccessSetWIDTH (2)
@@ -273,7 +273,7 @@ typedef Res (*RootScanRegMethod)(ScanState ss, Thread thread, void *p, size_t s)
273#define TraceSetUNIV ((TraceSet)((1u << TraceLIMIT) - 1)) 273#define TraceSetUNIV ((TraceSet)((1u << TraceLIMIT) - 1))
274#define RankSetEMPTY BS_EMPTY(RankSet) 274#define RankSetEMPTY BS_EMPTY(RankSet)
275#define RankSetUNIV ((RankSet)((1u << RankLIMIT) - 1)) 275#define RankSetUNIV ((RankSet)((1u << RankLIMIT) - 1))
276#define AttrFMT ((Attr)(1<<0)) /* design.mps.type.attr */ 276#define AttrFMT ((Attr)(1<<0)) /* <design/type/#attr> */
277#define AttrSCAN ((Attr)(1<<1)) 277#define AttrSCAN ((Attr)(1<<1))
278#define AttrPM_NO_READ ((Attr)(1<<2)) 278#define AttrPM_NO_READ ((Attr)(1<<2))
279#define AttrPM_NO_WRITE ((Attr)(1<<3)) 279#define AttrPM_NO_WRITE ((Attr)(1<<3))
@@ -319,7 +319,7 @@ enum {
319#define BufferModeTRANSITION ((BufferMode)(1<<3)) 319#define BufferModeTRANSITION ((BufferMode)(1<<3))
320 320
321 321
322/* Buffer frame states. See design.mps.alloc-frame.lw-frame.states */ 322/* Buffer frame states. See <design/alloc-frame/#lw-frame.states> */
323enum { 323enum {
324 BufferFrameVALID = 1, 324 BufferFrameVALID = 1,
325 BufferFramePOP_PENDING, 325 BufferFramePOP_PENDING,
@@ -327,7 +327,7 @@ enum {
327}; 327};
328 328
329 329
330/* Rank constants -- see design.mps.type.rank */ 330/* Rank constants -- see <design/type/#rank> */
331/* These definitions must match impl.h.mps.rank. */ 331/* These definitions must match impl.h.mps.rank. */
332/* This is checked by impl.c.mpsi.check. */ 332/* This is checked by impl.c.mpsi.check. */
333 333
@@ -350,7 +350,7 @@ enum {
350#define RootModePROTECTABLE_INNER ((RootMode)1<<2) 350#define RootModePROTECTABLE_INNER ((RootMode)1<<2)
351 351
352 352
353/* Root Variants -- see design.mps.type.rootvar 353/* Root Variants -- see <design/type/#rootvar>
354 * 354 *
355 * .rootvar: Synchonize with impl.c.root.rootvarcheck 355 * .rootvar: Synchonize with impl.c.root.rootvarcheck
356 */ 356 */
@@ -365,7 +365,7 @@ enum {
365}; 365};
366 366
367 367
368/* .result-codes: Result Codes -- see design.mps.type.res */ 368/* .result-codes: Result Codes -- see <design/type/#res> */
369/* These definitions must match impl.h.mps.result-codes. */ 369/* These definitions must match impl.h.mps.result-codes. */
370/* This is checked by impl.c.mpsi.check.rc. */ 370/* This is checked by impl.c.mpsi.check.rc. */
371/* Changing this list entails changing the list in */ 371/* Changing this list entails changing the list in */
@@ -384,7 +384,7 @@ enum {
384}; 384};
385 385
386 386
387/* TraceStates -- see design.mps.trace */ 387/* TraceStates -- see <design/trace/> */
388 388
389enum { 389enum {
390 TraceINIT = 1, 390 TraceINIT = 1,
@@ -395,7 +395,7 @@ enum {
395}; 395};
396 396
397 397
398/* MessageTypes -- see design.mps.message */ 398/* MessageTypes -- see <design/message/> */
399/* .message.types: Keep in sync with impl.h.mps.message.types */ 399/* .message.types: Keep in sync with impl.h.mps.message.types */
400 400
401enum { 401enum {