DataMuseum.dk

Presents historical artifacts from the history of:

Bogika Butler

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

See our Wiki for more about Bogika Butler

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦356f054a7⟧ TextFile

    Length: 13568 (0x3500)
    Types: TextFile
    Names: »OBJDIR.ID«

Derivation

└─⟦909f4eb2b⟧ Bits:30009789/_.ft.Ibm2.50006622.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »OBJDIR.ID« 
└─⟦ddcd65152⟧ Bits:30009789/_.ft.Ibm2.50006617.imd Mogens Pelles Zilog 80,000 / EOS projekt
    └─⟦this⟧ »OBJDIR.ID« 

TextFile

 
æ*****************************************************************
                        Copyright 1984 by
                        NCR Corporation
                        Dayton, Ohio  U.S.A.
                        All Rights Reserved
******************************************************************
                        EOS Software produced by:
                        NCR Systems Engineering - Copenhagen
                        Copenhagen
                        DENMARK
*****************************************************************å
 
æ---------------- ObjDir definition - ver. 0.10 ---- 83-11-4 --------å
 
OBJECT ObjDir;
type
  ObjDirRefType = ^^ObjDir;
  IScanRefType  = ^^ItemScan;
 
æ Item kinds å
type
  ItemKndType = integer;
const
   loadedProgram   = 0;
   loadedlibrary   = 1;
   generalObject   = 2;
   accessObject    = 3;
   pointerItem     = 4;
   subDir    = 5;
   lockedentry = 6;
   freeentry   = 7;
 
æ Protect å
type
  ProtectType = integer;
const
  Protect = 0;
  NoProtect = 1;
 
æ New Subject å
type
  NewSubType = integer;
const
  AnonymSubject = 0;
  NewSubject = 1;
 
  entry Init (* Source: AddrMax -- optional *);
 
          (* Called by the Boot Process during restart. Dummy
             thereafter. "Source" specifies the position of the
             InitConfig Module. If "Source" is absent, InitConfig
             is the first in the Boot Owner Set. May only be called
             in the Root Stub.
 
             Abnormal results:
             - CalledOnce
             - StubFull  (No resources for the standard name entries)
          *)
  entry GetRef (OUT Obj: ref;
                IN Name: fullid; (* complete or simple *)
                OUT used: integer;
                OUT kind: ItemKndType );
 
          (* Returns a reference to a Callable Module, a Library
             Module, an Access Object, a SubStub, or a (copy of a)
             SimplePtr.
 
             The "Name" may be a complete fullid (i.e.
             beginning with a slash) or a simple shortid. The
             following rules apply:
 
             COMPLETE FULLID: Starting the search in the Root Stub,
               "Name" (or part of "Name") unambigously
               specifies a bucket entry. "used" shows how many
               characters of "Name" was used (not including the
               first slash of a possible suffix).
 
             SHORTID: The search starts in the called Stub. If the
               name isn't found here, the search proceeds
               similarily in the Stub's "mother Stub", ultimately
               reaching the Root Stub.
 
             "kind" shows which type of bucket entry that was found.
 
             Abnormal results:
             - NameSyntax (syntax error in "Name")
             - Protected (the found entry is protected by the Stub,
                          and the caller's subject id does not authorize
                          a GetRef operation)
             - NotFound
          *)
 
 
  ENTRY Load (  IN OUT ObjName: fullid;
                IN SourceName: fullid  (* complete filename *)
             (* IN NoProtect: ProtectType - optional *));
 
          (* Loads an Installation Module obtaining a
             Loaded Module or a Library Module.If not specified the
             "ObjName" is taken from the Installation Module
             Header.
 
             The "ObjName" may be a complete fullid (i.e.
             beginning with a slash), a simple shortid or empty. The
             following rules apply:
 
             COMPLETE FULLID:
                 Starting the search-patch in the Root-Stub, the
                 ObjName -except for the last shortid-
 
                 unambigously specifies a Stub. The last shortid is
                 used as the new name in that Stub.
 
             SHORTID:
                 The shortid is used as the new name
                 in the called Stub.
 
             EMPTY:
                 The name specified in the installation header
                 is used as the new name in the called stub.
 
 
             The parameter "SourceName"
             is used to find the
             Installation module  in a file.
            If the parameter is empty
             the Installation Module is the next in the
             Boot Owner Set (only possible during restart).
 
             Normally a security item is created for the new
             module, specifying the caller's permissions. If
             "NoProtect" is set, however, no security item is created
             and the Stub considers the module unprotected.
 
             Abnormal results:
             - SourceNotFound
             - SourceSyntax (syntax error in SourceName)
             - ProtectedSource ("NoProtected" specified, but illegal)
             - HeaderSyntax
             - HeaderTooBig (Installation Module header too big)
             - BootSetEmpty (No segments left in the Boot Owner Set)
             - WrongSource  (SourceName does not specify a file)
             - Stubfull (no resources for the new entry)
             - NameExists (ObjName already exists)
             - StubNotFound (ObjName does not specify any stub)
             - NameSyntax (syntax error in ObjName)
          *)
 
 
  ENTRY Create (OUT Obj: ref;
                IN OUT ObjName: fullid;
                IN SourceName: fullid
              (*IN NoProtect: ProtectType - optional
                IN NewSubject: NewSubType - optional *));
 
 
          (* Creates a general object - a Callable Module -
             from an Installation Module.
 
             The rules for "ObjName", "SourceName", "SourceAddr",
             and "NoProtect" are analogous to those mentioned
             for "Load", but for one exception: "SourceName"
             may -besides being a complete filename as in
             "Load" - be the name of a Loaded Module. The
             name of a Loaded Module can be specified
             in two ways: 1) a complete name, or 2) a simple
             (shortid) name. In the latter case, the search
             for the simple name starts in the called stub.
             If the name isn't found here, the search proceeds
             in the "mother stub" of the called; ultimately
             reaching the RootStub.
 
             "NewSubject" specifies whether the created object
             should have a subject identification attached.
 
             A simple reference to the created object is returned
             in "Obj" - if security so allows.
 
             Abnormal results:
             - SourceFound
             - SourceSyntax (syntax error in SourceName)
             - ProtectedSource ("NoProtect" specified, but illegal)
             - HeaderTooBig (Installation Module header too big)
             - BootSetEmpty (No segments left in the Boot Owner Set)
             - WrongSource (SourceName does not specify a file)
             - Stubfull (no resources for the new entry)
             - SourcePreempted (Loaded Module deleted during create
                                from it)
             - NotFound (an external object reference were not found)
             - NameSyntax (syntax error in an external object ref
                           or ObjName)
             - Protected (an external object reference were protected,
                          and the general objects' subject id didn't
                          authorize access to the reference)
             - NameExists ("ObjName" exists)
             - StubNotFound ("ObjName" does not specify any Stub)
          *)
 
 
  ENTRY CreateAccess (OUT Obj: ref;
                      IN Creator: ref;
                      IN Name: fullid; (* complete or simple *)
                      IN NoProtect: ProtectType;
                      IN EntryNo: integer ); (* entry to be called in
                                              Creator *)
 
          (* The Stub calls the "Creator" object to create an
             access object. The owner pointer returned from the
             creator is kept by the Stub under "Name" (rules
             for "Name" are as for "ObjName" in Load). A
             copy of the pointer is returned to the caller in
             "Obj".
 
             The optional parameter list is relayed to the
             "Creator"- Object in the "Entry"-call. The Stub assumes
             that the owner pointer is returned as the first
             kernel pointer parameter.
 
             The Stub creates a security item for the new name.
 
             Abnormal results:
             - Stubfull (no resources for the new entry)
             - NameExists
             - StubNotFound
          *)
 
  ENTRY InsertPointer (IN ptr: ref;
                       IN Name: fullid (* complete or simple *)
                     (*IN NoProtect: ProtectType - optional *));
 
          (* The Stub (-system) keeps a copy of "ptr" under
             the specified "Name" (rules for "Name" are as for
             "ObjName" in Load).
 
             If "NoProtect" is specified, no security item is created
             for the new name.
 
             Abnormal results:
             - StubFull (no resources for the new entry)
             - NameExists
             - StubNotFound
          *)
 
 
  ENTRY ReName  (IN OldName,
                    NewName: shortid);
 
    (* Renames an object or pointer of the called stub.
       Notice: security items or subject identification of
               the object/pointer concerned, are not changed.
 
       Abnormal results:
         - Protected (the caller hasn't got a Delete-permission to
                      "OldName")
         - NotFound  ("OldName" not found)
         - NameExists  ("NewName" exists)
         - NameSyntax
    *)
 
  ENTRY DeleteItem  (IN Name: fullid (* complete or simple *));
    (* Deletes the object/pointer specified and removes the
       bucket entry.
 
       "Name" must be unambigous, whether complete or
       simple (i.e. no searching is performed)
 
       Abnormal results:
         - Protected (the caller hasn't got a Delete-permission
                      to "Name")
         - NotFound
         - NameSyntax
    *)
 
  ENTRY AbortObj (IN Name: fullid  (* complete or simple *));
 
    (* Aborts a Callable Module, but does not delete
       anything.
 
       "Name" must unambigously specify a Callable
       Module, whether "Name" is complete or simple.
 
       Abnormal results:
       - Protected (the caller hasn't got a delete-permission
                    to "Name")
       - NotFound
       - NameSyntax
       *)
 
  ENTRY NewSubDir (OUT ObjDirOwner: ObjDirRefType;
                IN Name: shortid );
 
          (* Creates a subsidiary Stub under the name "Name".
 
             The caller may specify a "BucketSize" for the
             new Stub. Default is the bucket size of the
             creating Stub. When the Stub runs full of name-
             entries, a new bucket is allocated. "BucketSize"
             specified the size of such a bucket in units of
             complete name entries.
 
             No security item is created.
 
             Abnormal results:
             - StubFull (no resources for the new entry)
             - NameExists
       *)
  ENTRY GetDirName (OUT Name: fullid (* complete *));
 
    (* Returns the complete fullid of the called Stub *)
 
 
  ENTRY InitItemScan (OUT ScanOwner: IScanRefType);
 
    (* Creates an object to scan the names (bucket entries)
       of the Stub *)
 
  OBJECT ItemScan;
 
    ENTRY GetInf (OUT Name: shortid;
                  OUT Kind: Integer);
 
            (* Returns Information on the next entry of the
               Stub *)
 
  END; (* Scan *)
 
æØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØ
  ENTRY UseAlloc (IN AllocPtr: Ref;
                    IN IdentPtr: Ref);
 
          (* Makes the Stub-tree use the specified pointers for future
             Allocation and identification. Can only be called
             once, and must be directed to the Root Stub.
 
             Abnormal results:
             - CalledOnce
             - NotRoot
          *)
 
 
  ENTRY UseSecurity (IN SecurityPtr: Ref;
                     IN SystemManPtr: Ref);
 
          (* Makes the Stub-tree use the specified pointers for future
             Security purposes. Can be called only once, and must
             be directed to the Root Stub.
 
             Abnormal results:
             - CalledOnce
             - NotRoot
          *)
ØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØØå
 
 
  ENTRY SpeedUpObj (IN Name: fullid  (* complete or simple *));
 
    (* Speeds up a Callable Module, but does not delete
       anything.
 
       "Name" must unambigously specify a Callable
       Module, whether "Name" is complete or simple.
 
       Abnormal results:
       - Protected (the caller hasn't got a delete-permission
                    to "Name")
       - NotFound
       - NameSyntax
       *)
 
 
(* error message numbers *)
const
   ObjDirFamily      = 5;
 
   SourceNotFound    = 1;
   ObjectNameExists  = 2;
   HeaderFormatError = 3;
   ExtRefNotFound    = 4;
   ExtRefProtected   = 5;
 
END;  (* ObjDir *)
«eof»