|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package Disk_Space, pragma Module_Name 4 3935, pragma Subsystem Commands, seg_001b6c
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
package Disk_Space is type Acceptable is (Any_Space, Any_Permanent_Space, Committed_Permanent_Spaces, Undeleted_Committed_Permanent_Spaces); type Traversals is (Poly_File_Space, Directory_Space, Eedb_Space, Constant_Space, Moribund_Space, Backup_Database_Space); type Traversing is array (Traversals) of Boolean; All_Traversals : constant Traversing := Traversing'(others => True); Directory_Only : constant Traversing := Traversing'(Directory_Space => True, others => False); No_Traversals : constant Traversing := Traversing'(others => False); -- Possible decodings of a space. -- Class (R1000_Native_Code .. R1000_Cross_Code) are instruction spaces. -- Class (R1000_Import) is any import space. -- Class (Diana_Tree .. Other) are module spaces. -- Class (Diana_Tree .. Seg_Heap_Other) are all segmented heaps. -- Class (Poly_Text .. oly_Other) are all Polymorphic_Io creations. -- Class (Backup_Master .. Backup_Tape) are Backup database spaces. -- Class (Garbage) is a garbage collected (by the Disk_Cleaner) space. type Class is (R1000_Native_Code, R1000_Cross_Code, R1000_Import, Diana_Tree, Text_File, Image, Link_Pack, Poly_Text, Poly_Object_Id, Poly_State, Poly_Other, Backup_Id, Backup_Backup, Backup_Processor, Backup_Disk, Backup_Tape, Backup_Master, Configuration, Seg_Heap_Other, Garbage, Other); type Classes is array (Class) of Boolean; All_Classes : constant Classes := Classes'(others => True); Module_Classes : constant Classes := Classes'(R1000_Native_Code => False, R1000_Cross_Code => False, R1000_Import => False, others => True); Matching_Class : constant Classes := Classes'(others => False); Unknown_Classes : constant Classes := Classes'(Poly_Other => True, Seg_Heap_Other => True, Other => True, others => False); type Space_Kind is (Instruction, Import, Module); Data : constant Space_Kind := Module; -- Examine_Spaces locates all spaces known to the kernel and discards -- any that are either unacceptable or can be reached through one of -- the traversals. -- The Summarize booleans cause listings of the space counts / sizes to -- be printed. List_Lost causes Space_Information for the unreachable -- spaces to be printed. procedure Examine_Spaces (Examine : Traversing := Disk_Space.All_Traversals; Filter : Acceptable := Disk_Space.Undeleted_Committed_Permanent_Spaces; Permit : Classes := Disk_Space.All_Classes; Summarize_All : Boolean := False; Summarize_Lost : Boolean := True; List_Lost : Boolean := False; Verbose : Boolean := True); -- Attempts to find the name of the object which contains the space -- specified, and prints that name. If the null space is specified -- (the default values), then the names of all spaces are printed. -- If the directory system is being searched, Vol_Hint /= 0 will -- cause the search to attempt to avoid looking on the wrong volume. -- Root_Name specifies where the directory system search should begin. procedure Name_Space (Vp : Natural := 0; Kind : Space_Kind := Disk_Space.Instruction; Segment : Natural := 0; Vol_Hint : Natural := 0; Root_Name : String := "!"; Search : Traversing := Disk_Space.All_Traversals; Verbose : Boolean := True); -- Searches just as with Name_Space, but will search for any space -- with the same Family_Id as the space specified. procedure Name_Family (Vp : Natural := 0; Kind : Space_Kind := Disk_Space.Instruction; Segment : Natural := 0; Vol_Hint : Natural := 0; Root_Name : String := "!"; Search : Traversing := Disk_Space.All_Traversals; Verbose : Boolean := True); -- Interpret page 0 of the data segment in various ways. -- Instruction spaces don't have data segments, so only useful for Modules. procedure Decode_Space (Vp : Natural := 0; Kind : Space_Kind := Disk_Space.Module; Segment : Natural := 0; Match : Classes := Disk_Space.Matching_Class; Verbose : Boolean := True); -- ********************************************************************* -- Do not use the following commands unless you know what you are doing. -- ********************************************************************* type Mark_Type is new Natural range 0 .. 1023; type Volume_Number is new Natural range 0 .. 31; type Block_Number is new Natural range 0 .. 2 ** 24 - 1; type Usage_Array_Type is array (Mark_Type) of Natural; type Vol_Bit_Map_Array is array (Block_Number range <>) of Boolean; type Vol_Usage_Array is array (Block_Number range <>) of Mark_Type; type System_Usage_Array is array (Volume_Number range <>) of Usage_Array_Type; Unable_To_Acquire_Backup_Lock : exception; Garbage_Collection_Is_Running : exception; function First_Volume return Volume_Number; function Last_Volume return Volume_Number; function Find_Storage_Consumed return System_Usage_Array; procedure Clean_Cache; function Get_Bit_Map (Volume : Volume_Number) return Vol_Bit_Map_Array; function Find_Current_Usage (Volume : Volume_Number) return Vol_Usage_Array; pragma Subsystem (Commands); pragma Module_Name (4, 3935); end Disk_Space;
nblk1=a nid=0 hdr6=14 [0x00] rec0=18 rec1=00 rec2=01 rec3=036 [0x01] rec0=00 rec1=00 rec2=0a rec3=002 [0x02] rec0=11 rec1=00 rec2=02 rec3=05e [0x03] rec0=00 rec1=00 rec2=09 rec3=010 [0x04] rec0=15 rec1=00 rec2=03 rec3=030 [0x05] rec0=00 rec1=00 rec2=08 rec3=002 [0x06] rec0=12 rec1=00 rec2=04 rec3=032 [0x07] rec0=14 rec1=00 rec2=05 rec3=07c [0x08] rec0=16 rec1=00 rec2=06 rec3=02a [0x09] rec0=14 rec1=00 rec2=07 rec3=000 tail 0x20100ef807da18d3999ea 0x42a00088462065003