DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T V ┃
Length: 6260 (0x1874) Types: TextFile Names: »V«
└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3 └─ ⟦fc9b38f02⟧ »DATA« └─⟦9b46a407a⟧ └─⟦12c68c704⟧ └─⟦this⟧ └─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS └─ ⟦91c658230⟧ »DATA« └─⟦458657fb6⟧ └─⟦220843204⟧ └─⟦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 .. Poly_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;