DIRECTORY Basics, ConstArith, PBasics, YggEnvironment; YggInline: CEDAR DEFINITIONS IMPORTS ConstArith, PBasics = BEGIN PageNumber: TYPE = YggEnvironment.PageNumber; WordNumber: TYPE = YggEnvironment.WordNumber; WordsForBytes: PROC [bytes: INT] RETURNS [words: INT] = CHECKED INLINE { RETURN[ PBasics.BITRSHIFT[bytes + Basics.bytesPerWord - 1, Basics.logBytesPerWord]]; }; BytesForWords: PROC [words: INT] RETURNS [bytes: INT] = CHECKED INLINE { RETURN[ PBasics.BITLSHIFT[words, Basics.logBytesPerWord]]; }; LongZero: UNSAFE PROC [where: LONG POINTER, nWords: CARDINAL] = TRUSTED INLINE { PBasics.Fill[where, nWords, 0] }; ShortWordsFromPages: PROC [pages: CARDINAL, logWordsPerPage: INT] RETURNS [words: CARDINAL] = INLINE { RETURN [Basics.BITSHIFT[value: pages, count: logWordsPerPage]] }; WordsFromPages: PROC [pages: PageNumber, wordsPerPage: INT] RETURNS [words: WordNumber] = TRUSTED INLINE { RETURN[ConstArith.Mul[ConstArith.FromInt[pages], ConstArith.FromInt[wordsPerPage]]]}; PagesFromWords: PROC [words: WordNumber, wordsPerPage: INT] RETURNS [pages: PageNumber] = TRUSTED INLINE { RETURN [ConstArith.ToInt[ConstArith.Div[words, ConstArith.FromCard[wordsPerPage]]]] }; DecomposeWords: PROC [words: WordNumber, wordsPerPage: INT] RETURNS [page: PageNumber, wordInPage: CARDINAL] = TRUSTED INLINE { q, r: ConstArith.Const; [q, r] _ ConstArith.DivMod[words, ConstArith.FromCard[wordsPerPage]]; RETURN [ConstArith.ToInt[q], ConstArith.ToInt[r]] }; END.  YggInline.mesa Copyright Σ 1985, 1987, 1988 by Xerox Corporation. All rights reserved. Simple procedures used by several Yggdrasil components. Last edited by MBrown on January 30, 1984 11:31:04 am PST Hauser, March 7, 1985 2:17:46 pm PST Bob Hagmann March 29, 1989 9:49:08 am PST Κ˜šœ™IcodešœH™H—Jšœ7™7šœ™Jšœ*™*K™$Kšœ)™)—˜šΟk ˜ J˜J˜ J˜Jšœ˜J˜——šΟn œ˜š˜J˜—Jšœ˜Jšœ œ˜-Jšœ œ˜-J˜code2š ž œœ œœ œœ˜HKšœ  œ;˜TLšœ˜—š ž œœ œœ œœ˜HKšœ  œ!˜:Lšœ˜—šžœœœ œœ œœ˜PJšœ!˜!J˜—šžœœ œœœ œœ˜fJšœ œ*˜AJ˜—š žœœ#œœœœ˜jJšœO˜UJ˜—š žœœ#œœœ˜jJšœP˜VJ˜—šžœœ#œ˜;šœ œ œ˜CJšœ˜JšœE˜EJšœ+˜1Jšœ˜—J˜—J˜Jšœ˜——…—Ύξ