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.