usr/src/lib/libc/port/gen/getxby_door.h
author Casper H.S. Dik <Casper.Dik@Sun.COM>
Wed, 28 Apr 2010 10:01:37 +0200
changeset 12273 63678502e95e
parent 2830 5228d1267a01
permissions -rw-r--r--
PSARC 2009/377 In-kernel pfexec implementation. PSARC 2009/378 Basic File Privileges PSARC 2010/072 RBAC update: user attrs from profiles 4912090 pfzsh(1) should exist 4912093 pfbash(1) should exist 4912096 pftcsh(1) should exist 6440298 Expand the basic privilege set in order to restrict file access 6859862 Move pfexec into the kernel 6919171 cred_t sidesteps kmem_debug; we need to be able to detect bad hold/free when they occur 6923721 The new SYS_SMB privilege is not backward compatible 6937562 autofs doesn't remove its door when the zone shuts down 6937727 Zones stuck on deathrow; netstack_zone keeps a credential reference to the zone 6940159 Implement PSARC 2010/072
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
     5
 * Common Development and Distribution License (the "License").
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
/*
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    22
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
#ifndef	_GETXBY_DOOR_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
#define	_GETXBY_DOOR_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#pragma ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
 * Definitions for client side of doors-based name service caching
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#include <netdb.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
#include <netinet/in.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#include <arpa/inet.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
#include <sys/socket.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#include <grp.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
#include <pwd.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#include <exec_attr.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
#include <prof_attr.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
#include <user_attr.h>
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    48
#include <nss_dbdefs.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
/*
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    51
 * nscd version 2 doors interfaces
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    52
 * The known, but private NAME_SERVICE_DOOR, filesystem name remains
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    53
 * the same, even though the transfer contents is significantly different.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    56
#define	NAME_SERVICE_DOOR_V2 2
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    57
#define	NAME_SERVICE_DOOR_VERSION 2
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    58
#ifndef NAME_SERVICE_DOOR
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    59
#define	NAME_SERVICE_DOOR "/var/run/name_service_door"
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    60
#endif
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    61
#define	NAME_SERVICE_DOOR_COOKIE ((void*)(0xdeadbeef^NAME_SERVICE_DOOR_VERSION))
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
/*
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    64
 * internal APIs
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
2830
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    67
nss_status_t	_nsc_trydoorcall(void **dptr, size_t *bsize, size_t *dsize);
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    68
nss_status_t	_nsc_trydoorcall_ext(void **dptr, size_t *bsize, size_t *dsize);
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    69
int		_nsc_getdoorbuf(void **dptr, size_t *bsize);
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    70
void		_nsc_resizedoorbuf(size_t bsize);
5228d1267a01 PSARC 2005/133 Sparks: Name Service Switch 2
djl
parents: 0
diff changeset
    71
int		_nsc_proc_is_cache();
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
struct passwd *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
_uncached_getpwuid_r(uid_t uid, struct passwd *result, char *buffer,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
	int buflen);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
struct passwd *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
_uncached_getpwnam_r(const char *name, struct passwd *result, char *buffer,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
	int buflen);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
struct group *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
_uncached_getgrnam_r(const char *name, struct group *result, char *buffer,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
    int buflen);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
struct group *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
_uncached_getgrgid_r(gid_t gid, struct group *result, char *buffer, int buflen);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
#endif	/* _GETXBY_DOOR_H */