/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 1994,2001-2003 Sun Microsystems, Inc.
* All rights reserved.
* Use is subject to license terms.
*/
/*
* ident "%Z%%M% %I% %E% SMI"
*/
const NFS_ACL_MAX_ENTRIES = 1024;
typedef int uid;
typedef unsigned short o_mode;
/*
* This is the format of an ACL which is passed over the network.
*/
struct aclent {
int type;
};
/*
* The values for the type element of the aclent structure.
*/
/*
* The bit field values for the perm element of the aclent
* structure. The three values can be combined to form any
* of the 8 combinations.
*/
/*
* This is the structure which contains the ACL entries for a
* particular entity. It contains the ACL entries which apply
* to this object plus any default ACL entries which are
* inherited by its children.
*
* The values for the mask field are defined below.
*/
struct secattr {
int aclcnt;
int dfaclcnt;
};
/*
* The values for the mask element of the secattr struct as well
* as for the mask element in the arguments in the GETACL2 and
* GETACL3 procedures.
*/
/*
* This the definition for the GETACL procedure which applies to
* NFS Version 2.
*/
struct GETACL2args {
};
struct GETACL2resok {
};
case ACL2_OK:
default:
void;
};
/*
* This is the definition for the SETACL procedure which applies
* NFS Version 2.
*/
struct SETACL2args {
};
struct SETACL2resok {
};
case ACL2_OK:
default:
void;
};
/*
* This is the definition for the GETATTR procedure which can be
* used as an alternative to the GETATTR in NFS Version 2. The
* main difference between this GETATTR and the NFS GETATTR is
* that this GETATTR returns the mode of the file without it being
* Version 2 server does.
*/
struct GETATTR2args {
};
struct GETATTR2resok {
};
case ACL2_OK:
default:
void;
};
/*
* This is the definition for the ACCESS procedure which applies
* to NFS Version 2.
*/
struct ACCESS2args {
};
/*
* The following access permissions may be requested:
*/
/* modify existing directory entries */
struct ACCESS2resok {
};
case ACL2_OK:
default:
void;
};
/*
* This is the definition for the GETXATTRDIR procedure which applies
* to NFS Version 2 files.
*/
struct GETXATTRDIR2args {
bool create;
};
struct GETXATTRDIR2resok {
};
case ACL2_OK:
default:
void;
};
/*
* This is the definition for the GETACL procedure which applies
* to NFS Version 3 files.
*/
struct GETACL3args {
};
struct GETACL3resok {
};
struct GETACL3resfail {
};
case ACL3_OK:
default:
};
/*
* This is the definition for the SETACL procedure which applies
* to NFS Version 3 files.
*/
struct SETACL3args {
};
struct SETACL3resok {
};
struct SETACL3resfail {
};
case ACL3_OK:
default:
};
/*
* This is the definition for the GETXATTRDIR procedure which applies
* to NFS Version 3 files.
*/
struct GETXATTRDIR3args {
bool create;
};
struct GETXATTRDIR3resok {
};
case ACL3_OK:
default:
void;
};
/*
* XXX {
* This is a transitional interface to enable Solaris NFSv4
* clients to manipulate ACLs on Solaris servers until the
* spec is complete enough to implement this inside the
* NFSv4 protocol itself. NFSv4 does handle extended
* attributes in-band.
*/
/*
* This is the definition for the GETACL procedure which applies
* to NFS Version 4 files.
*/
struct GETACL4args {
};
struct GETACL4resok {
};
struct GETACL4resfail {
};
case ACL4_OK:
default:
};
/*
* This is the definition for the SETACL procedure which applies
* to NFS Version 4 files.
*/
struct SETACL4args {
};
struct SETACL4resok {
};
struct SETACL4resfail {
};
case ACL4_OK:
default:
};
/* XXX } */
/*
* Share the port with the NFS service. NFS has to be running
* in order for this service to be useful anyway.
*/
const NFS_ACL_PORT = 2049;
/*
* This is the definition for the ACL network protocol which is used
* to provide support for Solaris ACLs for files which are accessed
* via NFS Version 2 and NFS Version 3.
*/
void
ACLPROC2_NULL(void) = 0;
} = 2;
void
ACLPROC3_NULL(void) = 0;
} = 3;
void
ACLPROC4_NULL(void) = 0;
} = 4;
} = 100227;