42 lines
1.0 KiB
Plaintext
42 lines
1.0 KiB
Plaintext
-> ShowCache.e
|
|
|
|
MODULE 'exec/ports'
|
|
|
|
OBJECT cache
|
|
port:mp, cookie, modlist, debuginfo, lock:INT, reserved:INT, name[50]:ARRAY
|
|
ENDOBJECT
|
|
|
|
OBJECT mod
|
|
next,memlen,stradr,strlen,moduleadr,modulelen,checksum,reserved
|
|
ENDOBJECT
|
|
|
|
PROC main()
|
|
DEF c:PTR TO cache, m:PTR TO mod, total=0, x
|
|
WriteF('Emodule Cache Show (c) 1993 $#%!\n')
|
|
IF c:=FindPort('EmoduleCache')
|
|
IF c.lock=0
|
|
IF c.cookie=$DEADBEEF
|
|
m:=c.modlist
|
|
IF m
|
|
WriteF('\nsize name\n------- -----------------------------------\n')
|
|
WHILE m
|
|
WriteF('\d[7] \s\n',m.modulelen,m.stradr)
|
|
total:=total+m.modulelen+SIZEOF mod+StrLen(m.stradr)+8
|
|
m:=m.next
|
|
IF CtrlC() THEN m:=NIL
|
|
ENDWHILE
|
|
WriteF('\nTotal memory occupied by cached E-modules: \d bytes.\n',total)
|
|
ELSE
|
|
WriteF('\nEmpty cache.\n')
|
|
ENDIF
|
|
ELSE
|
|
WriteF('\nDead cookie.\n')
|
|
ENDIF
|
|
ELSE
|
|
WriteF('Cache currently in use!\n')
|
|
ENDIF
|
|
ELSE
|
|
WriteF('\nNo module cache available.\n')
|
|
ENDIF
|
|
ENDPROC
|