|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 13568 (0x3500)
Types: TextFile
Names: »OBJDIR.ID«
└─⟦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«
æ*****************************************************************
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»