DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦44ab3d368⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Unix_Dirs, seg_04b993

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with System;
use System;
with Unix;
use Unix;
with Os_Files;
use Os_Files;
with U_Env;
use U_Env;
with C_Strings;
use C_Strings;

package Unix_Dirs is

    subtype Long_Integer is Integer;

    type Directory_Fd is
        record
            Fd : Integer; -- file descriptor of directory
            Blksize : Integer; -- this filesystem's block size
            Buf : Address; -- malloc'd buffer depending of fs bsize
            Size : Long_Integer; -- size of buffer
            Flag : Long_Integer; -- private flags for readdir, unused
            Loc : Long_Integer; -- logical(dirent) offset in  directory
            Curoff : Long_Integer; -- real offset in directory
            -- corresponding to dd_loc
        end record;

    type Directory_Fd_Access is access Directory_Fd;

    type Directory is
        record
            D_Offset : Integer;  -- real off after this entry
            Ino : Integer;  -- inode number of entry
            Reclen : Short_Integer; -- length of this record
            Namlen : Short_Integer; -- length of string in d_name
            Name : String (1 .. 256); -- name cannot exceed this
        end record;

    type Directory_Access is access Directory;

    -- the following package is used only to allow the pragmas on
    -- what are otherwise overloaded names.
    package Differentiate_Overloaded is
        function Rmdir (Filename : C_String) return Status_Code;
        function Mkdir (Filename : C_String; Mode : Open_Flags := 8#0777#)
                       return Status_Code;
        function Opendir (Filename : C_String) return Directory_Fd_Access;
    private
        pragma Interface (C, Rmdir);
        pragma Interface (C, Mkdir);
        pragma Interface (C, Opendir);
    end Differentiate_Overloaded;

    function Rmdir (Filename : C_String) return Status_Code
        renames Differentiate_Overloaded.Rmdir;
    function Mkdir (Filename : C_String; Mode : Open_Flags := 8#0777#)
                   return Status_Code renames Differentiate_Overloaded.Mkdir;
    function Opendir (Filename : C_String) return Directory_Fd_Access
        renames Differentiate_Overloaded.Opendir;

    function Readdir (Dirfd : Directory_Fd_Access) return Directory_Access;
    pragma Interface (C, Readdir);
    function Closedir (Dirfd : Directory_Fd_Access) return Status_Code;
    pragma Interface (C, Closedir);

    function Rmdir (Filename : String) return Status_Code;
    function Mkdir (Filename : String; Mode : Open_Flags := 8#0777#)
                   return Status_Code;
    function Opendir (Filename : String) return Directory_Fd_Access;
    function Namelen (D : Directory_Access) return Integer;
    pragma Inline (Namelen);

end Unix_Dirs;



E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=23 rec1=00 rec2=01 rec3=00e
        [0x01] rec0=16 rec1=00 rec2=02 rec3=056
        [0x02] rec0=15 rec1=00 rec2=03 rec3=001
    tail 0x21548cab48684379b4218 0x42a00088462060003