From 38d28de5342ce33dd35fd3456c9c4fabf9fb21cb Mon Sep 17 00:00:00 2001 From: Richard Kistruck Date: Tue, 11 Nov 2008 16:57:30 +0000 Subject: 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 --- mps/code/message.c | 4 ++-- mps/code/mpm.h | 2 +- mps/code/mpmst.h | 2 +- mps/code/mpmtypes.h | 1 + mps/code/mpsi.c | 8 ++++++-- 5 files changed, 11 insertions(+), 6 deletions(-) (limited to 'mps/code') 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) CHECKL(MessageTypeCheck(message->type)); CHECKU(MessageClass, message->class); CHECKL(RingCheck(&message->queueRing)); - /* cannot check postedClock: no check for mps_clock_t */ + /* cannot check postedClock: no check for Clock */ return TRUE; } @@ -291,7 +291,7 @@ MessageClass MessageGetClass(Message message) return message->class; } -mps_clock_t MessageGetClock(Message message) +Clock MessageGetClock(Message message) { AVERT(Message, message); 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); /* -- Message Methods, Generic */ extern MessageType MessageGetType(Message message); extern MessageClass MessageGetClass(Message message); -extern mps_clock_t MessageGetClock(Message message); +extern Clock MessageGetClock(Message message); /* -- Message Method Dispatchers, Type-specific */ extern void MessageFinalizationRef(Ref *refReturn, 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 { MessageType type; /* Message Type */ MessageClass class; /* Message Class Structure */ RingStruct queueRing; /* Message queue ring */ - mps_clock_t postedClock; /* mps_clock() at post time */ + Clock postedClock; /* mps_clock() at post time */ } MessageStruct; 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; /* */ typedef unsigned Serial; /* */ typedef Addr Ref; /* */ typedef void *Pointer; /* */ +typedef unsigned long Clock; /* processor time */ typedef Word RefSet; /* design.mps.refset */ typedef 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) CHECKL((int)MPS_RANK_EXACT == (int)RankEXACT); CHECKL((int)MPS_RANK_WEAK == (int)RankWEAK); - /* Check that external and internal messsage types match. */ + /* Check that external and internal message types match. */ /* See and */ /* . */ /* Also see .check.enum.cast. */ @@ -117,6 +117,10 @@ static Bool mpsi_check(void) /* and . */ CHECKL(CHECKTYPE(size_t, Size)); + /* Clock values are passed from external to internal and back */ + /* out to external. */ + CHECKL(CHECKTYPE(mps_clock_t, Clock)); + /* Check ap_s/APStruct compatibility by hand */ /* .check.ap: See and . */ CHECKL(sizeof(mps_ap_s) == sizeof(APStruct)); @@ -1692,7 +1696,7 @@ mps_clock_t mps_message_clock(mps_arena_t mps_arena, { Arena arena = (Arena)mps_arena; Message message = (Message)mps_message; - mps_clock_t postedClock; /* @@@@ should be Clock, not mps_clock_t */ + Clock postedClock; ArenaEnter(arena); -- cgit v1.2.1