Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

domain(2)

setreoid(2)

getoid(2)

getorgent(3)

getpwent(3)

ldgetarname(3X)

ldgetstring(3X)

ldsgetname(3X)

setoid(3)

domain(4)

a.out(5)

domain(5)

DOMAIN(3)                       Domain/OS BSD                        DOMAIN(3)



NAME
     domain - Domain/OS-specific C library subroutines

DESCRIPTION
     While providing all of the significant functionality of 4.3 BSD,
     Domain/OS BSD actually represents only a subset of the greater
     functionality of Domain/OS.  Furthermore, Domain/OS BSD omits some
     features of 4.3 BSD that are irrelevant to Apollo workstations.  The
     following paragraphs describe aspects of that greater functionality that
     are visible to the Domain/OS BSD applications programmer and summarize
     features of 4.3 BSD not implemented under Domain/OS BSD.


     Domain/OS Calls.  All of the interfaces giving applications access to the
     greater functionality of Domain/OS can be called from Domain/OS BSD.  The
     declarations for these calls have been prototyped according to ANSI
     standard C and placed in /usr/include/apollo.  See the Domain/OS Call
     Reference for more information on these interfaces.


     Organization ID.  Domain/OS BSD derives file access permissions from
     Domain/OS "Access Control Lists" (ACLs).  Domain/OS BSD derives
     permissions for the owner and group of an object from analogous entries
     in the ACL.  It derives permissions for "others," however, from at least
     two entries in the ACL, one of which sets the access rights for the
     organization.  For more information, see "Protection of Files and
     Directories" in Managing BSD System Software.

     Domain/OS BSD provides some of this extended functionality by way of an
     organization ID that extends your means for controlling access to files.
     Three C-language subroutines enable you to manipulate the organization
     ID:

                    ___________________________________________
                    |___________Unique_Subroutines_____________|
                    | Name   |      Function       | Reference |
                    |________|_____________________|___________|
                    |setoid  |                     | setoid(3) |
                    |seteoid | set organization ID |           |
                    |setroid_|_____________________|___________|

     Domain/OS BSD also provides three system calls for manipulating the
     organization ID.  getoid(2) describes getoid and geteoid and setreoid(2)
     describes setreoid.


     Organization File.  In addition to the /etc/passwd and /etc/group files
     for storing information about user and group accounts, Domain/OS BSD
     provides a file for storing information about organization accounts,
     /etc/org.  See org(5) and "Creating and Maintaining the Registry" in
     Managing BSD System Software for more information about the organization
     file.

     Domain/OS BSD also provides six subroutines that constitute a C-language
     interface to the organization file:

                  ______________________________________________
                  |_____________Unique_Subroutines______________|
                  |   Name    |     Function     |  Reference   |
                  |___________|__________________|______________|
                  |getorgent  |                  |              |
                  |getorgid   |                  |              |
                  |getorgnam  | get organization | getorgent(3) |
                  |setorgent  | file entry       |              |
                  |endorgent  |                  |              |
                  |setorgfile_|__________________|______________|


     Registry Server.  Under Domain/OS BSD, /etc/passwd is a read-only object
     of the type "passwd," and /etc/group is a read-only object of the type
     "group," both maintained by the registry server (see rgyd(8) and
     "Creating and Maintaining the Registry" in Managing BSD System Software).
     The conventional C-language interfaces to these files (described in
     getgrent(3) and getpwent(3)) interact with the registry server
     transparently.

     For those desiring more control, however, Domain/OS BSD provides two
     additional subroutines:  setpwfile and setgrfile.  These allow you to
     specify the password file and group file, respectively.  In this case,
     the subroutines interact with the named file in ways determined by its
     type manager.


     COFF Interfaces.  Apollo compilers and the Domain/OS BSD link editor
     (ld(1)) produce output in common object file format (COFF).  The
     interfaces to COFF objects conventionally provided by UNIX System V
     Release 3 are also available in Domain/OS BSD.  Domain/OS BSD, however,
     provides three additional interfaces:

               ____________________________________________________
               |________________Unique_Subroutines_________________|
               |   Name     |      Function      |    Reference    |
               |____________|____________________|_________________|
               |ldgetarname | retrieve the       | ldgetarname(3X) |
               |            | filename of a      |                 |
               |            | member of an       |                 |
               |____________|_archive_file_______|_________________|
               |ldgetstring | retrieve string    | ldgetstring(3X) |
               |            | from common object |                 |
               |            | file string table  |                 |
               |____________|____________________|_________________|
               |ldsgetname  | retrieve section   | ldsgetname(3X)  |
               |            | name for common    |                 |
               |____________|_object_file_entry__|_________________|


     Domain/OS BSD omits the following C-language subroutines, implemented in
     the "Virtual VAX-11 Version" of the 4.3 Berkeley Software Distribution:

            __________________________________________________________
            |________________Unsupported_Subroutines__________________|
            |    Name      |      Function       | Reference (4.3 BSD |
            |              |                     |      manuals)      |
            |______________|_____________________|____________________|
            |getdiskbyname | get disk            | getdisk(3)         |
            |              | description by its  |                    |
            |______________|_name________________|____________________|
            |infnan        | signals invalid     | infnan(3M)         |
            |              | floating-point      |                    |
            |              | operations on a VAX |                    |
            |              | (none of 4.3 BSD's  |                    |
            |              | math support        |                    |
            |              | specific to VAX     |                    |
            |              | hardware applies to |                    |
            |              | Apollo              |                    |
            |              | workstations)       |                    |
            |______________|_____________________|____________________|
            |lib2648       | subroutines for the | lib2648(3X)        |
            |              | HP 2648 graphics    |                    |
            |______________|_terminal____________|____________________|
            |ns_addr       | Xerox Network       |                    |
            |ns_ntoa       | Services address    | ns(3N)             |
            |              | conversion routines |                    |
            |______________|_____________________|____________________|
            |vlimit        | control maximum     | vlimit(3C)         |
            |              | system resource     |                    |
            |______________|_consumption_________|____________________|
            |vtimes        | get information     | vtimes(3C)         |
            |              | about resource      |                    |
            |              | utilization         |                    |
            |______________|_____________________|____________________|

     Domain/OS BSD provides no /lib/libm.a.  It places its math subroutines in
     /lib/libc.  There also are no /lib/libc.a or libraries compiled for
     profiling.

     Domain/OS BSD manual pages describing specific features may point out
     other differences.  These descriptions usually appear in the "Notes"
     section.

SEE ALSO
     domain(2), setreoid(2), getoid(2), getorgent(3), getpwent(3),
     ldgetarname(3X), ldgetstring(3X), ldsgetname(3X), setoid(3), domain(4),
     a.out(5), domain(5).
     Domain/OS Call Reference.
     Managing BSD System Software.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026