File: [Development] / xfs-linux / linux-2.4 / Attic / xfs_cred.h (download)
Revision 1.17, Fri Jun 21 01:32:54 2002 UTC (15 years, 4 months ago) by nathans
Branch: MAIN
Changes since 1.16: +2 -4
lines
some internal projects are relying on the fields of cred_t - uncomment them.
|
/*
* Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it would be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Further, this software is distributed without any warranty that it is
* free of the rightful claim of any third person regarding infringement
* or the like. Any license provided herein, whether implied or
* otherwise, applies only to this software file. Patent licenses, if
* any, provided herein do not apply to combinations of this program with
* other software, or any other product whatsoever.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write the Free Software Foundation, Inc., 59
* Temple Place - Suite 330, Boston MA 02111-1307, USA.
*
* Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
* Mountain View, CA 94043, or:
*
* http://www.sgi.com
*
* For further information regarding this notice, see:
*
* http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
*/
#ifndef __XFS_CRED_H__
#define __XFS_CRED_H__
#include <asm/param.h> /* For NGROUPS */
#include <linux/capability.h>
#include <linux/sched.h>
/*
* Credentials
*/
typedef struct cred {
int cr_ref; /* reference count */
ushort cr_ngroups; /* number of groups in cr_groups */
uid_t cr_uid; /* effective user id */
gid_t cr_gid; /* effective group id */
uid_t cr_ruid; /* real user id */
gid_t cr_rgid; /* real group id */
uid_t cr_suid; /* "saved" user id (from exec) */
gid_t cr_sgid; /* "saved" group id (from exec) */
xfs_mac_label_t *cr_mac; /* MAC label for B1 and beyond */
xfs_cap_set_t cr_cap; /* capability (privilege) sets */
gid_t cr_groups[NGROUPS]; /* supplementary group list */
} cred_t;
#define VREAD 00400
#define VWRITE 00200
#define VEXEC 00100
#define MACEXEC 00100
#define MACWRITE 00200
#define MACREAD 00400
extern void cred_init(void);
static __inline cred_t *get_current_cred(void) { return NULL; }
/*
* XXX: tes
* This is a hack.
* It assumes that if cred is not null then it is sys_cred which
* has all capabilities.
* One solution may be to implement capable_cred based on linux' capable()
* and initialize all credentials in our xfs linvfs layer.
*/
static __inline int capable_cred(cred_t *cr, int cid) { return (cr==NULL) ? capable(cid) : 1; }
extern struct cred *sys_cred;
#endif /* __XFS_CRED_H__ */