6253 F_GETLK doesn't always return lock owner
[illumos-gate.git] / usr / src / cmd / fs.d / cachefs / cfsd / cfsd_kmod.h
blob425ca12dc0b74e79ab54acbdefe926e3e1adf69e
1 /*
2 * CDDL HEADER START
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.
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.
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]
20 * CDDL HEADER END
23 * Copyright 1994-1997,2002-2003 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
26 * cfsd_kmod.h
28 * Include file for the cfsd_kmod class.
32 #ifndef _CFSD_KMOD
33 #define _CFSD_KMOD
35 #pragma ident "%Z%%M% %I% %E% SMI"
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;
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);
112 #endif /* _CFSD_KMOD */