diff --git a/mps/code/mpm.h b/mps/code/mpm.h
index 165c7485e37..58fb4da6a31 100644
--- a/mps/code/mpm.h
+++ b/mps/code/mpm.h
@@ -936,14 +936,14 @@ extern Res RootCreateTableMasked(Root *rootReturn, Arena arena,
Word mask);
extern Res RootCreateReg(Root *rootReturn, Arena arena,
Rank rank, Thread thread,
- RootScanRegMethod scan,
+ mps_reg_scan_t scan,
void *p, size_t s);
extern Res RootCreateFmt(Root *rootReturn, Arena arena,
Rank rank, RootMode mode,
FormatScanMethod scan,
Addr base, Addr limit);
extern Res RootCreateFun(Root *rootReturn, Arena arena,
- Rank rank, RootScanMethod scan,
+ Rank rank, mps_root_scan_t scan,
void *p, size_t s);
extern void RootDestroy(Root root);
extern Bool RootModeCheck(RootMode mode);
diff --git a/mps/code/mpmtypes.h b/mps/code/mpmtypes.h
index b1853178cbb..12d23e39989 100644
--- a/mps/code/mpmtypes.h
+++ b/mps/code/mpmtypes.h
@@ -96,7 +96,7 @@ typedef struct mps_arena_s *Arena; /* */
typedef struct GlobalsStruct *Globals; /* */
typedef struct VMStruct *VM; /* * */
typedef struct RootStruct *Root; /* */
-typedef struct ThreadStruct *Thread; /* * */
+typedef struct mps_thr_s *Thread; /* * */
typedef struct MutatorFaultContextStruct
*MutatorFaultContext; /* */
typedef struct PoolDebugMixinStruct *PoolDebugMixin;
@@ -255,14 +255,6 @@ typedef void (*FormatPadMethod)(Addr base, Size size);
typedef Addr (*FormatClassMethod)(Addr object);
-/* Root*Method -- see design.mps.root-interface */
-/* .root-methods: These methods must match those defined in the */
-/* MPS C Interface. (See .) */
-
-typedef Res (*RootScanMethod)(mps_ss_t ss, void *p, size_t s);
-typedef Res (*RootScanRegMethod)(mps_ss_t ss, Thread thread, void *p, size_t s);
-
-
/* CONSTANTS */
diff --git a/mps/code/mps.h b/mps/code/mps.h
index 469639b6c6d..945d43cc13b 100644
--- a/mps/code/mps.h
+++ b/mps/code/mps.h
@@ -178,6 +178,7 @@ typedef struct mps_ld_s { /* location dependency descriptor */
/* Format and Root Method Types */
+/* see design.mps.root-interface */
/* .fmt-methods: Keep in sync with */
/* .root-methods: Keep in sync with */
diff --git a/mps/code/mpsi.c b/mps/code/mpsi.c
index 240861f8dad..c620cad18dd 100644
--- a/mps/code/mpsi.c
+++ b/mps/code/mpsi.c
@@ -1194,8 +1194,7 @@ mps_res_t mps_root_create(mps_root_t *mps_root_o, mps_arena_t arena,
AVER(mps_rm == (mps_rm_t)0);
/* See .root-mode. */
- res = RootCreateFun(&root, arena, rank,
- (RootScanMethod)mps_root_scan, p, s);
+ res = RootCreateFun(&root, arena, rank, mps_root_scan, p, s);
ArenaLeave(arena);
@@ -1308,8 +1307,7 @@ mps_res_t mps_root_create_reg(mps_root_t *mps_root_o, mps_arena_t arena,
/* See .root-mode. */
res = RootCreateReg(&root, arena, rank, thread,
- (RootScanRegMethod)mps_reg_scan,
- reg_scan_p, mps_size);
+ mps_reg_scan, reg_scan_p, mps_size);
ArenaLeave(arena);
diff --git a/mps/code/root.c b/mps/code/root.c
index 9ce385a124c..c94217c04ad 100644
--- a/mps/code/root.c
+++ b/mps/code/root.c
@@ -33,7 +33,7 @@ typedef struct RootStruct {
RootVar var; /* union discriminator */
union RootUnion {
struct {
- RootScanMethod scan; /* the function which does the scanning */
+ mps_root_scan_t scan; /* the function which does the scanning */
void *p; /* environment for scan */
size_t s; /* environment for scan */
} fun;
@@ -47,7 +47,7 @@ typedef struct RootStruct {
Word mask; /* tag mask for scanning */
} tableMasked;
struct {
- RootScanRegMethod scan; /* function for scanning registers */
+ mps_reg_scan_t scan; /* function for scanning registers */
Thread thread; /* passed to scan */
void *p; /* passed to scan */
size_t s; /* passed to scan */
@@ -296,7 +296,7 @@ Res RootCreateTableMasked(Root *rootReturn, Arena arena,
Res RootCreateReg(Root *rootReturn, Arena arena,
Rank rank, Thread thread,
- RootScanRegMethod scan, void *p, size_t s)
+ mps_reg_scan_t scan, void *p, size_t s)
{
union RootUnion theUnion;
@@ -336,7 +336,7 @@ Res RootCreateFmt(Root *rootReturn, Arena arena,
}
Res RootCreateFun(Root *rootReturn, Arena arena, Rank rank,
- RootScanMethod scan, void *p, size_t s)
+ mps_root_scan_t scan, void *p, size_t s)
{
union RootUnion theUnion;
diff --git a/mps/code/than.c b/mps/code/than.c
index 96553c7cd75..752ef3ed64c 100644
--- a/mps/code/than.c
+++ b/mps/code/than.c
@@ -17,7 +17,7 @@
SRCID(than, "$Id$");
-typedef struct ThreadStruct { /* ANSI fake thread structure */
+typedef struct mps_thr_s { /* ANSI fake thread structure */
Sig sig; /* */
Serial serial; /* from arena->threadSerial */
Arena arena; /* owning arena */
diff --git a/mps/code/thix.c b/mps/code/thix.c
index 5089f33f56e..b792cd96783 100644
--- a/mps/code/thix.c
+++ b/mps/code/thix.c
@@ -43,7 +43,7 @@ SRCID(thix, "$Id$");
/* ThreadStruct -- thread desriptor */
-typedef struct ThreadStruct { /* PThreads thread structure */
+typedef struct mps_thr_s { /* PThreads thread structure */
Sig sig; /* */
Serial serial; /* from arena->threadSerial */
Arena arena; /* owning arena */
diff --git a/mps/code/thw3.h b/mps/code/thw3.h
index b3e67cb319d..7e3cd68e2f1 100644
--- a/mps/code/thw3.h
+++ b/mps/code/thw3.h
@@ -21,7 +21,7 @@
#include "mpswin.h"
-typedef struct ThreadStruct { /* Win32 thread structure */
+typedef struct mps_thr_s { /* Win32 thread structure */
Sig sig; /* */
Serial serial; /* from arena->threadSerial */
Arena arena; /* owning arena */