Open System Services Programmer's Guide

Directory-search authorization errors
Requestor's SOA privileges
The OSS SEEP is not consulted for:
Search authorization on the directories in the path
/E and /G directories
NFS operations are not supported on filesets that are OSS SEEP-protected:
An attempted NFS mount of a directory that belongs to an OSS SEEP-protected fileset is denied
with an EPERM error.
An attempted NFS operation on an OSS SEEP-protected fileset is denied with an EPERM error.
For information about OSS SEEP configuration and management, fileset and OSS name server
attributes, audited SCF operations, and EMS events, see the Open System Services Management
and Operations Guide.
For information about OSS SEEP management, consultation, system and library calls, IPC messages,
programming design, and EMS events, see “OSS SEEP Programming” (page 274).
Common Completion
Common Completion is an enhancement to the Enscribe file system and the Open System Services
file system that allows completion of a Guardian file or returns ready information for OSS (socket,
OSSTTY, and disk) files for read, write, or exception descriptors. Common Completion is a
combination of an enhanced version of the AWAITIO[X] procedure (for Guardian files) and the
equivalent of the select() function (for OSS files).
For OSS files, select() is used to obtain ready information for OSS socket, OSSTTY, and disk
descriptors. Completion for an OSS file means checking for readiness: that is, either data can be
sent or received, or an exception has occurred.
The select() function checks the status of objects identified by bit masks called file descriptor
sets. Each file descriptor set consists of an array of bits whose relative position and value represent
file descriptors and the status of their corresponding objects. An object is an open file descriptor
for an OSSTTY, a socket, an OSS regular file, a pipe, or a FIFO. There is a file descriptor set for
reading, for writing, and for pending exceptions. OSS and Guardian processes can communicate
within the same processor and between processors and between nodes using FIFOs. However,
they cannot communicate using pipes. Pipes are used to communicate between processes and
their processes
NOTE: Although an OSS socket descriptor is ready, a subsequent I/O operation might not finish
successfully because sockets can be shared by multiple processes. If process A receives notice that
the descriptor is ready for I/O, process B might alter that status before process A can perform an
I/O operation on it.
For Guardian files, AWAITIO[X] is used to complete nowaited Guardian I/O operation. Completion
for Guardian files implies that an I/O operation was initiated in a previous call to a read or write
operation. This I/O operation is completed in AWAITIO[X] and data is returned to the application.
See the Open System Services System Calls Reference Manual and the Guardian Procedure Calls
Reference Manual for more information.
Example 25 (page 84) demonstrates the use of select() on FIFOs.
Example 25 Using select() on FIFOs
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <stdio.h>
84 Managing Files