idmap_prot.x revision 48258c6b4e17f36ab09fba0bd6307d1fec9dcbce
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
%#pragma ident "%Z%%M% %I% %E% SMI"
/* opaque type to support non-ASCII strings */
typedef string idmap_utf8str<>;
/* Return status */
typedef int idmap_retcode;
/* Identity types */
enum idmap_id_type {
IDMAP_NONE = 0,
IDMAP_UID = 1,
};
/* The type of ID mapping */
enum idmap_map_type {
};
/* Source of ID mapping */
enum idmap_map_src {
};
/* SID */
struct idmap_sid {
};
/* Identity (sid-posix) */
case IDMAP_NONE: void;
case IDMAP_POSIXID: void;
};
/* Name-based mapping rules */
struct idmap_namerule {
bool is_user;
bool is_wuser;
int direction;
bool is_nt4;
};
struct idmap_namerules_res {
};
/* How ID is mapped */
struct idmap_how_ds_based {
};
case IDMAP_MAP_TYPE_UNKNOWN: void;
case IDMAP_MAP_TYPE_EPHEMERAL: void;
case IDMAP_MAP_TYPE_LOCAL_SID: void;
};
struct idmap_info {
};
/* Id result */
struct idmap_id_res {
int direction;
};
struct idmap_ids_res {
idmap_id_res ids<>;
};
/*
* Flag supported by mapping requests
*/
/* Don't allocate a new value for the mapping */
const IDMAP_REQ_FLG_NO_NEW_ID_ALLOC = 0x00000001;
/* Validate the given identity before mapping */
const IDMAP_REQ_FLG_VALIDATE = 0x00000002;
/* Avoid name service lookups to prevent looping */
const IDMAP_REQ_FLG_NO_NAMESERVICE = 0x00000004;
/* Request how a mapping was formed */
const IDMAP_REQ_FLG_MAPPING_INFO = 0x00000008;
/* Identity mappings (sid-posix) */
struct idmap_mapping {
int direction;
};
typedef idmap_mapping idmap_mapping_batch<>;
struct idmap_mappings_res {
};
/* Update result */
struct idmap_update_res {
};
/* Update requests */
enum idmap_opnum {
OP_NONE = 0,
OP_ADD_NAMERULE = 1,
OP_RM_NAMERULE = 2,
};
case OP_ADD_NAMERULE:
case OP_RM_NAMERULE:
default:
void;
};
typedef idmap_update_op idmap_update_batch<>;
void
IDMAP_NULL(void) = 0;
/* Batch of requests to get mapped identities */
/* List all identity mappings */
/* List all name-based mapping rules */
/* Batch of update requests */
/* Get mapped identity by name */
} = 1;
} = 100172;