{
{   The purpose of this request is to establish or modify an access control
{ entry for a catalog.  This request allows the catalog owner to specify a
{ general permission that applies to attempts to access any file registered
{ relative to the specified catalog.  An access control entry can only be
{ established or modified for a catalog belonging to the user making the
{ request.  Permission can be established for specific users or for groups of
{ users associated with a specific family, account, or project.  If an access
{ control entry already exists for the specified user or group of users, then
{ the specified permit selections and share requirements replace the values
{ currently defined.
{
{   Multiple access control entries may apply to a user requesting access to a
{ file (e.g.  one relative to the user's family, one relative to the user).  In
{ this case, the entry associated with the most restrictive group is used.  If
{ multiple entries specify the same group, the entry from the lowest level in
{ the master catalog, subcatalog, file hierarchy is used.
{
{       PFP$PERMIT_CATALOG (PATH, GROUP, PERMIT_SELECTIONS, SHARE_REQUIREMENTS,
{             APPLICATION_INFO, STATUS)
{
{ PATH: (input) This parameter specifies the identification of the catalog.
{       The path parameter consists of an array of names which identify the
{       path leading through a catalog hierarchy to the desired catalog.  The
{       first two names specify the family name and master catalog name portion
{       of the path.  By convention, the name of a user's master catalog is the
{       same as the user name.  Subsequent names would specify subcatalogs as
{       applicable.  The last name in the path specifies the catalog to which
{       the access control entry will apply.  Null names are allowed only for
{       the family name and master catalog name.  If the family name is
{       OSC$NULL_NAME, the family name of the job making the request will be
{       used.  If the master catalog name is OSC$NULL_NAME, the user name of
{       the job making the request will be used.
{
{ GROUP: (input) This parameter describes the user or group of users to whom
{       the access control entry applies.  The group can include all users
{       (public), all users of a particular family, all users of a particular
{       account, all users of a particular project, a specific user, a specific
{       user while running under a specific account, or a specific user while
{       running under a specific account and project.
{
{ PERMIT_SELECTIONS: (input) This parameter specifies the permit selections
{       granted by the access control entry.
{
{ SHARE_REQUIREMENTS: (input) This parameter specifies the share selections
{       that must be specified when granted access by the access control entry.
{
{ APPLICATION_INFO: (input) This parameter specifies information to be included
{       in the permit entry for use by application programs for additional
{       access controls they impose.
{
{ STATUS: (output) This parameter returns the request status.
{       CONDITIONS: pfe$bad_account_name
{                   pfe$bad_family_name
{                   pfe$bad_group_type
{                   pfe$bad_last_subcatalog_name
{                   pfe$bad_master_catalog_name
{                   pfe$bad_nth_subcatalog_name
{                   pfe$bad_project_name
{                   pfe$bad_user_name
{                   pfe$catalog_full
{                   pfe$invalid_group
{                   pfe$invalid_group_type
{                   pfe$last_name_not_subcatalog
{                   pfe$not_master_catalog_owner
{                   pfe$nth_name_not_subcatalog
{                   pfe$path_too_short
{                   pfe$pf_system_error
{                   pfe$unknown_family
{                   pfe$unknown_last_subcatalog
{                   pfe$unknown_master_catalog
{                   pfe$unknown_nth_subcatalog
{
