1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, Version 1.0 only 6 * (the "License"). You may not use this file except in compliance 7 * with the License. 8 * 9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 * or http://www.opensolaris.org/os/licensing. 11 * See the License for the specific language governing permissions 12 * and limitations under the License. 13 * 14 * When distributing Covered Code, include this CDDL HEADER in each 15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 * If applicable, add the following below this CDDL HEADER, with the 17 * fields enclosed by brackets "[]" replaced with your own identifying 18 * information: Portions Copyright [yyyy] [name of copyright owner] 19 * 20 * CDDL HEADER END 21 */ 22 /* 23 * Copyright 1994-1997,2002-2003 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 * 26 * cfsd_kmod.h 27 * 28 * Include file for the cfsd_kmod class. 29 * 30 */ 31 32 #ifndef _CFSD_KMOD 33 #define _CFSD_KMOD 34 35 #pragma ident "%Z%%M% %I% %E% SMI" 36 37 typedef struct cfsd_kmod_object { 38 char i_path[MAXPATHLEN]; /* path to root of file system */ 39 int i_fd; /* file descriptor of i_path */ 40 #ifndef DBUG_OFF 41 char i_fidbuf[1024]; /* for formatted fid */ 42 #endif 43 }cfsd_kmod_object_t; 44 45 cfsd_kmod_object_t *cfsd_kmod_create(void); 46 void cfsd_kmod_destroy(cfsd_kmod_object_t *kmod_object_p); 47 int kmod_setup(cfsd_kmod_object_t *kmod_object_p, const char *path); 48 void kmod_shutdown(cfsd_kmod_object_t *kmod_object_p); 49 int kmod_xwait(cfsd_kmod_object_t *kmod_object_p); 50 int kmod_stateget(cfsd_kmod_object_t *kmod_object_p); 51 int kmod_stateset(cfsd_kmod_object_t *kmod_object_p, int state); 52 int kmod_exists(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *cidp); 53 int kmod_lostfound(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *cidp, 54 const char *namep, char *newnamep); 55 int kmod_lostfoundall(cfsd_kmod_object_t *kmod_object_p); 56 int kmod_rofs(cfsd_kmod_object_t *kmod_object_p); 57 int kmod_rootfid(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp); 58 int kmod_getstats(cfsd_kmod_object_t *kmod_object_p, cachefsio_getstats_t *gsp); 59 int kmod_getinfo(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *filep, 60 cachefsio_getinfo_t *infop); 61 int kmod_cidtofid(cfsd_kmod_object_t *kmod_object_p, 62 cfs_cid_t *cidp, cfs_fid_t *fidp); 63 int kmod_getattrfid(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp, 64 dl_cred_t *credp, cfs_vattr_t *vattrp); 65 int kmod_getattrname(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *dirp, 66 const char *name, dl_cred_t *credp, cfs_vattr_t *vattrp, cfs_fid_t *filep); 67 int kmod_create(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *dirp, 68 const char *namep, const cfs_cid_t *cidp, cfs_vattr_t *vattrp, 69 int exclusive, int mode, dl_cred_t *credp, cfs_fid_t *newfidp, 70 timestruc_t *ctimep, timestruc_t *mtimep); 71 int kmod_pushback(cfsd_kmod_object_t *kmod_object_p, cfs_cid_t *filep, 72 cfs_fid_t *fidp, dl_cred_t *credp, timestruc_t *ctimep, timestruc_t *mtimep, 73 int update); 74 int kmod_rename(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *olddir, 75 const char *oldname, cfs_fid_t *newdir, const char *newname, 76 const cfs_cid_t *cidp, dl_cred_t *credp, timestruc_t *ctimep, 77 timestruc_t *delctimep, const cfs_cid_t *delcidp); 78 int kmod_setattr(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp, 79 const cfs_cid_t *cidp, cfs_vattr_t *vattrp, int flags, dl_cred_t *credp, 80 timestruc_t *ctimep, timestruc_t *mtimep); 81 int kmod_setsecattr(cfsd_kmod_object_t *kmod_object_p, cfs_fid_t *fidp, 82 const cfs_cid_t *cidp, ulong_t mask, int aclcnt, int dfaclcnt, 83 const aclent_t *acl, dl_cred_t *credp, timestruc_t *ctimep, 84 timestruc_t *mtimep); 85 int kmod_remove(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *fidp, 86 const cfs_cid_t *cidp, const char *namep, const dl_cred_t *credp, 87 timestruc_t *ctimep); 88 int kmod_link(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp, 89 const char *namep, const cfs_fid_t *filefidp, const cfs_cid_t *cidp, 90 const dl_cred_t *credp, timestruc_t *ctimep); 91 int kmod_mkdir(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp, 92 const char *namep, const cfs_cid_t *cidp, const cfs_vattr_t *vattrp, 93 const dl_cred_t *credp, cfs_fid_t *newfidp); 94 int kmod_rmdir(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp, 95 const char *namep, const dl_cred_t *credp); 96 int kmod_symlink(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *dirfidp, 97 const char *namep, const cfs_cid_t *cidp, const char *linkvalp, 98 const cfs_vattr_t *vattrp, const dl_cred_t *credp, cfs_fid_t *newfidp, 99 timestruc_t *ctimep, timestruc_t *mtimep); 100 #ifndef DBUG_OFF 101 void kmod_format_fid(cfsd_kmod_object_t *kmod_object_p, const cfs_fid_t *fidp); 102 void kmod_print_cred(const dl_cred_t *credp); 103 void kmod_print_attr(const vattr_t *vp); 104 #else 105 #define kmod_format_fid(A, B) 0 106 #define kmod_print_cred(A) 0 107 #define kmod_print_attr(A) 0 108 #endif /* DBUG_OFF */ 109 int kmod_doioctl(cfsd_kmod_object_t *kmod_object_p, enum cfsdcmd_cmds cmd, 110 void *sdata, int slen, void *rdata, int rlen); 111 112 #endif /* _CFSD_KMOD */ 113