cfsd_kmod.h revision 7c478bd95313f5f23a4c958a745db2134aa03244
/*
* 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
* or http://www.opensolaris.org/os/licensing.
* 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-1997,2002-2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* cfsd_kmod.h
*
* Include file for the cfsd_kmod class.
*
*/
#ifndef _CFSD_KMOD
#define _CFSD_KMOD
#pragma ident "%Z%%M% %I% %E% SMI"
typedef struct cfsd_kmod_object {
char i_path[MAXPATHLEN]; /* path to root of file system */
int i_fd; /* file descriptor of i_path */
#ifndef DBUG_OFF
char i_fidbuf[1024]; /* for formatted fid */
#endif
}cfsd_kmod_object_t;
cfsd_kmod_object_t *cfsd_kmod_create(void);
void cfsd_kmod_destroy(cfsd_kmod_object_t *kmod_object_p);
int kmod_setup(cfsd_kmod_object_t *kmod_object_p, const char *path);
void kmod_shutdown(cfsd_kmod_object_t *kmod_object_p);
int kmod_xwait(cfsd_kmod_object_t *kmod_object_p);
int kmod_stateget(cfsd_kmod_object_t *kmod_object_p);
int kmod_stateset(cfsd_kmod_object_t *kmod_object_p, int state);
int kmod_exists(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *cidp);
int kmod_lostfound(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *cidp,
const char *namep, char *newnamep);
int kmod_lostfoundall(cfsd_kmod_object_t *kmod_object_p);
int kmod_rofs(cfsd_kmod_object_t *kmod_object_p);
int kmod_rootfid(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp);
int kmod_getstats(cfsd_kmod_object_t *kmod_object_p, cachefsio_getstats_t *gsp);
int kmod_getinfo(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *filep,
cachefsio_getinfo_t *infop);
int kmod_cidtofid(cfsd_kmod_object_t *kmod_object_p,
cfs_cid_t *cidp, cfs_fid_t *fidp);
int kmod_getattrfid(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp,
dl_cred_t *credp, cfs_vattr_t *vattrp);
int kmod_getattrname(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *dirp,
const char *name, dl_cred_t *credp, cfs_vattr_t *vattrp, cfs_fid_t *filep);
int kmod_create(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *dirp,
const char *namep, const cfs_cid_t *cidp, cfs_vattr_t *vattrp,
int exclusive, int mode, dl_cred_t *credp, cfs_fid_t *newfidp,
timestruc_t *ctimep, timestruc_t *mtimep);
int kmod_pushback(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *filep,
cfs_fid_t *fidp, dl_cred_t *credp, timestruc_t *ctimep, timestruc_t *mtimep,
int update);
int kmod_rename(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *olddir,
const char *oldname, cfs_fid_t *newdir, const char *newname,
const cfs_cid_t *cidp, dl_cred_t *credp, timestruc_t *ctimep,
timestruc_t *delctimep, const cfs_cid_t *delcidp);
int kmod_setattr(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp,
const cfs_cid_t *cidp, cfs_vattr_t *vattrp, int flags, dl_cred_t *credp,
timestruc_t *ctimep, timestruc_t *mtimep);
int kmod_setsecattr(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp,
const cfs_cid_t *cidp, ulong_t mask, int aclcnt, int dfaclcnt,
const aclent_t *acl, dl_cred_t *credp, timestruc_t *ctimep,
timestruc_t *mtimep);
int kmod_remove(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *fidp,
const cfs_cid_t *cidp, const char *namep, const dl_cred_t *credp,
timestruc_t *ctimep);
int kmod_link(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp,
const char *namep, const cfs_fid_t *filefidp, const cfs_cid_t *cidp,
const dl_cred_t *credp, timestruc_t *ctimep);
int kmod_mkdir(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp,
const char *namep, const cfs_cid_t *cidp, const cfs_vattr_t *vattrp,
const dl_cred_t *credp, cfs_fid_t *newfidp);
int kmod_rmdir(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp,
const char *namep, const dl_cred_t *credp);
int kmod_symlink(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp,
const char *namep, const cfs_cid_t *cidp, const char *linkvalp,
const cfs_vattr_t *vattrp, const dl_cred_t *credp, cfs_fid_t *newfidp,
timestruc_t *ctimep, timestruc_t *mtimep);
#ifndef DBUG_OFF
void kmod_format_fid(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *fidp);
void kmod_print_cred(const dl_cred_t *credp);
void kmod_print_attr(const vattr_t *vp);
#else
#define kmod_format_fid(A, B) 0
#define kmod_print_cred(A) 0
#define kmod_print_attr(A) 0
#endif /* DBUG_OFF */
int kmod_doioctl(cfsd_kmod_object_t *kmod_object_p, enum cfsdcmd_cmds cmd,
void *sdata, int slen, void *rdata, int rlen);
#endif /* _CFSD_KMOD */