(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE "INTERLISP")
(FILECREATED "19-Feb-88 19:27:57" {QV}<BURWELL>LISP>NSALLOCATION.\;3 6361
|changes| |to:| (FNS NSALLOCATION.STATS NSALLOCATION)
|previous| |date:| "19-Feb-88 18:05:54" {QV}<BURWELL>LISP>NSALLOCATION.\;1)
; Copyright (c) 1988 by Xerox Corporation. All rights reserved.
(PRETTYCOMPRINT NSALLOCATIONCOMS)
(RPAQQ NSALLOCATIONCOMS ((FNS NSALLOCATION NSALLOCATION.STATS)))
(DEFINEQ
(NSALLOCATION
(LAMBDA (|FileServers| |ReportFile| |Filter|) (* \; "Edited 19-Feb-88 18:10 by bbb")
(LET ((|NSDiskSizeInPages| 433907)
|ReportFileStream|)
(CL:WITH-OPEN-FILE (|ReportFileStream| |ReportFile| :DIRECTION :OUTPUT)
(|if| |Filter|
|then| (|printout| |ReportFileStream| "Using Filter " |Filter| T T))
(|printout| |ReportFileStream| .FONT '(TERMINAL 12) "File Service" .TAB 20
"# Pages Used" .TAB 35 "as %" .TAB 45 "# Pages Used" .TAB 60 "as %" .TAB 70
"# Pages" .TAB 80 "as %" .TAB 90 "Total % Used" T)
(|printout| |ReportFileStream| "Name" .TAB 20 "Unrestricted" .TAB 35 "of disk" .TAB
45 "Restricted" .TAB 60 "of alloc" .TAB 70 "alloc" .TAB 80 "of disk" .TAB 90
"of disk" T)
(|printout| |ReportFileStream| "----------------" .TAB 20 "------------" .TAB 35
"-------" .TAB 45 "------------" .TAB 60 "--------" .TAB 70 "-------" .TAB 80
"-------" .TAB 90 "------------" T)
(|printout| |ReportFileStream| T)
(|for| |Server| |in| |FileServers| |bind| |Result| |PagesUnrestricted|
|PagesRestricted| |PagesAllocated|
|PercentUnrestricted|
|PercentRestrictedofAllocated|
|PercentAllocated| |TotalPercentUsed|
|when| (SETQ |Result| (NSALLOCATION.STATS |Server| |Filter|))
|do| (SETQ |PagesUnrestricted| (CAR (NTH |Result| 1)))
(SETQ |PagesRestricted| (CAR (NTH |Result| 2)))
(SETQ |PagesAllocated| (CAR (NTH |Result| 3)))
(SETQ |PercentUnrestricted| (TIMES (FQUOTIENT |PagesUnrestricted|
|NSDiskSizeInPages|)
100.0))
(SETQ |PercentRestrictedofAllocated| (TIMES (FQUOTIENT |PagesRestricted|
|PagesAllocated|)
100.0))
(SETQ |PercentAllocated| (TIMES (FQUOTIENT |PagesAllocated|
|NSDiskSizeInPages|)
100.0))
(SETQ |TotalPercentUsed| (TIMES (FQUOTIENT (PLUS |PagesUnrestricted|
|PagesRestricted|)
|NSDiskSizeInPages|)
100.0))
(|printout| |ReportFileStream| |Server| .TAB 20 |.I12| |PagesUnrestricted|
.TAB 35 |.F7.1| |PercentUnrestricted| .TAB 45 |.I12| |PagesRestricted|
.TAB 60 |.F8.2| |PercentRestrictedofAllocated| .TAB 70 |.I7|
|PagesAllocated| .TAB 80 |.F7.1| |PercentAllocated| .TAB 90 |.F12.1|
|TotalPercentUsed| T))))))
(NSALLOCATION.STATS
(LAMBDA (|FileServiceName| |Filter|) (* \; "Edited 19-Feb-88 19:20 by bbb")
(* |;;|
"Given a file service name the following three pieces of data are returned in a list: ")
(* |;;| " 1) number of pages in use of unrestricted file drawers")
(* |;;| " 2) number of pages in use in restricted file drawers")
(* |;;| " 3) number of pages allocated to file drawers")
(* |;;| "")
(* |;;| " If Filter is NON-NIL then it is used as a file pattern for selecting directories")
(LET* ((|FileServiceDirectories| (DIRECTORY (CONCAT "{" |FileServiceName| "}")
'COLLECT))
(|FileServiceDevice| (\\GETDEVICEFROMNAME |FileServiceName|))
(|NumBytesUnrestricted| 0)
(|NumBytesRestricted| 0)
(|NumBytesAllocated| 0)
(|BytesPerPage| 512)
(|Filter| (|if| |Filter|
|then| (DIRECTORY.MATCH.SETUP |Filter|))))
(|for| |Directory| |in| |FileServiceDirectories| |bind| |DirectoryAllocation|
|DirectoryUsed|
|when| (OR (NULL |Filter|)
(DIRECTORY.MATCH |Filter| |Directory|))
|do| (SETQ |DirectoryAllocation| (\\NSFILING.GETFILEINFO |Directory| 'SUBTREE.SIZE.LIMIT
|FileServiceDevice|))
(SETQ |DirectoryUsed| (\\NSFILING.GETFILEINFO |Directory| 'SUBTREE.SIZE
|FileServiceDevice|))
(|if| (IGEQ |DirectoryAllocation| 0)
|then| (|add| |NumBytesAllocated| |DirectoryAllocation|)
(|add| |NumBytesRestricted| |DirectoryUsed|)
|else| (|add| |NumBytesUnrestricted| |DirectoryUsed|)))
(LIST (FQUOTIENT |NumBytesUnrestricted| |BytesPerPage|)
(FQUOTIENT |NumBytesRestricted| |BytesPerPage|)
(FQUOTIENT |NumBytesAllocated| |BytesPerPage|)))))
)
(PUTPROPS NSALLOCATION COPYRIGHT ("Xerox Corporation" 1988))
(DECLARE\: DONTCOPY
(FILEMAP (NIL (457 6277 (NSALLOCATION 467 . 3985) (NSALLOCATION.STATS 3987 . 6275)))))
STOP