aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code
diff options
context:
space:
mode:
authorRichard Kistruck2008-11-11 16:57:30 +0000
committerRichard Kistruck2008-11-11 16:57:30 +0000
commit38d28de5342ce33dd35fd3456c9c4fabf9fb21cb (patch)
tree2b29618090f6bc29b7c69534baee8573476c3e97 /mps/code
parent32031684e22770a55c1cb1ea080e4b507f98a8c8 (diff)
downloademacs-38d28de5342ce33dd35fd3456c9c4fabf9fb21cb.tar.gz
emacs-38d28de5342ce33dd35fd3456c9c4fabf9fb21cb.zip
Mps br/timing: new type "clock", internal equivalent of mps_clock_t.
Used for a field in messages. (More uses to follow). Copied from Perforce Change: 166697 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
-rw-r--r--mps/code/message.c4
-rw-r--r--mps/code/mpm.h2
-rw-r--r--mps/code/mpmst.h2
-rw-r--r--mps/code/mpmtypes.h1
-rw-r--r--mps/code/mpsi.c8
5 files changed, 11 insertions, 6 deletions
diff --git a/mps/code/message.c b/mps/code/message.c
index 2e63c80f025..f92d8d571e4 100644
--- a/mps/code/message.c
+++ b/mps/code/message.c
@@ -50,7 +50,7 @@ Bool MessageCheck(Message message)
50 CHECKL(MessageTypeCheck(message->type)); 50 CHECKL(MessageTypeCheck(message->type));
51 CHECKU(MessageClass, message->class); 51 CHECKU(MessageClass, message->class);
52 CHECKL(RingCheck(&message->queueRing)); 52 CHECKL(RingCheck(&message->queueRing));
53 /* cannot check postedClock: no check for mps_clock_t */ 53 /* cannot check postedClock: no check for Clock */
54 54
55 return TRUE; 55 return TRUE;
56} 56}
@@ -291,7 +291,7 @@ MessageClass MessageGetClass(Message message)
291 return message->class; 291 return message->class;
292} 292}
293 293
294mps_clock_t MessageGetClock(Message message) 294Clock MessageGetClock(Message message)
295{ 295{
296 AVERT(Message, message); 296 AVERT(Message, message);
297 297
diff --git a/mps/code/mpm.h b/mps/code/mpm.h
index f53a7e835b0..7fd53f15127 100644
--- a/mps/code/mpm.h
+++ b/mps/code/mpm.h
@@ -311,7 +311,7 @@ extern void MessageDiscard(Arena arena, Message message);
311/* -- Message Methods, Generic */ 311/* -- Message Methods, Generic */
312extern MessageType MessageGetType(Message message); 312extern MessageType MessageGetType(Message message);
313extern MessageClass MessageGetClass(Message message); 313extern MessageClass MessageGetClass(Message message);
314extern mps_clock_t MessageGetClock(Message message); 314extern Clock MessageGetClock(Message message);
315/* -- Message Method Dispatchers, Type-specific */ 315/* -- Message Method Dispatchers, Type-specific */
316extern void MessageFinalizationRef(Ref *refReturn, 316extern void MessageFinalizationRef(Ref *refReturn,
317 Arena arena, Message message); 317 Arena arena, Message message);
diff --git a/mps/code/mpmst.h b/mps/code/mpmst.h
index 1905e2bb560..7cb111fc281 100644
--- a/mps/code/mpmst.h
+++ b/mps/code/mpmst.h
@@ -223,7 +223,7 @@ typedef struct MessageStruct {
223 MessageType type; /* Message Type */ 223 MessageType type; /* Message Type */
224 MessageClass class; /* Message Class Structure */ 224 MessageClass class; /* Message Class Structure */
225 RingStruct queueRing; /* Message queue ring */ 225 RingStruct queueRing; /* Message queue ring */
226 mps_clock_t postedClock; /* mps_clock() at post time */ 226 Clock postedClock; /* mps_clock() at post time */
227} MessageStruct; 227} MessageStruct;
228 228
229 229
diff --git a/mps/code/mpmtypes.h b/mps/code/mpmtypes.h
index c92662d2c94..aaece07f283 100644
--- a/mps/code/mpmtypes.h
+++ b/mps/code/mpmtypes.h
@@ -40,6 +40,7 @@ typedef unsigned Shift; /* <design/type/#shift> */
40typedef unsigned Serial; /* <design/type/#serial> */ 40typedef unsigned Serial; /* <design/type/#serial> */
41typedef Addr Ref; /* <design/type/#ref> */ 41typedef Addr Ref; /* <design/type/#ref> */
42typedef void *Pointer; /* <design/type/#pointer> */ 42typedef void *Pointer; /* <design/type/#pointer> */
43typedef unsigned long Clock; /* processor time */
43 44
44typedef Word RefSet; /* design.mps.refset */ 45typedef Word RefSet; /* design.mps.refset */
45typedef Word ZoneSet; /* design.mps.refset */ 46typedef Word ZoneSet; /* design.mps.refset */
diff --git a/mps/code/mpsi.c b/mps/code/mpsi.c
index f27d1b7dec5..400ab84c486 100644
--- a/mps/code/mpsi.c
+++ b/mps/code/mpsi.c
@@ -91,7 +91,7 @@ static Bool mpsi_check(void)
91 CHECKL((int)MPS_RANK_EXACT == (int)RankEXACT); 91 CHECKL((int)MPS_RANK_EXACT == (int)RankEXACT);
92 CHECKL((int)MPS_RANK_WEAK == (int)RankWEAK); 92 CHECKL((int)MPS_RANK_WEAK == (int)RankWEAK);
93 93
94 /* Check that external and internal messsage types match. */ 94 /* Check that external and internal message types match. */
95 /* See <code/mps.h#message.types> and */ 95 /* See <code/mps.h#message.types> and */
96 /* <code/mpmtypes.h#message.types>. */ 96 /* <code/mpmtypes.h#message.types>. */
97 /* Also see .check.enum.cast. */ 97 /* Also see .check.enum.cast. */
@@ -117,6 +117,10 @@ static Bool mpsi_check(void)
117 /* and <design/interface-c/#pun.size>. */ 117 /* and <design/interface-c/#pun.size>. */
118 CHECKL(CHECKTYPE(size_t, Size)); 118 CHECKL(CHECKTYPE(size_t, Size));
119 119
120 /* Clock values are passed from external to internal and back */
121 /* out to external. */
122 CHECKL(CHECKTYPE(mps_clock_t, Clock));
123
120 /* Check ap_s/APStruct compatibility by hand */ 124 /* Check ap_s/APStruct compatibility by hand */
121 /* .check.ap: See <code/mps.h#ap> and <code/buffer.h#ap>. */ 125 /* .check.ap: See <code/mps.h#ap> and <code/buffer.h#ap>. */
122 CHECKL(sizeof(mps_ap_s) == sizeof(APStruct)); 126 CHECKL(sizeof(mps_ap_s) == sizeof(APStruct));
@@ -1692,7 +1696,7 @@ mps_clock_t mps_message_clock(mps_arena_t mps_arena,
1692{ 1696{
1693 Arena arena = (Arena)mps_arena; 1697 Arena arena = (Arena)mps_arena;
1694 Message message = (Message)mps_message; 1698 Message message = (Message)mps_message;
1695 mps_clock_t postedClock; /* @@@@ should be Clock, not mps_clock_t */ 1699 Clock postedClock;
1696 1700
1697 ArenaEnter(arena); 1701 ArenaEnter(arena);
1698 1702