blob: 747e743d9138176abb127282f255c6cfb7930f9e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/*
* 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 1996, 2002 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/* -----------------------------------------------------------------
*
* cachefsd.x
*
* Rpcgen file for generating cachefsd interface.
*/
/* #ident "%Z%%M% %I% %E% SMI" */
/*
* List of caches.
*/
struct cachefsd_caches_id {
int cci_cacheid; /* id of cache */
string cci_name<>; /* pathname of cache */
};
struct cachefsd_caches_return {
u_int ccr_modify; /* changes when modified */
cachefsd_caches_id ccr_ids<>; /* list of caches */
};
/*
* Stats about a single cache.
* All sizes are in 1K blocks.
*/
struct cachefsd_cache_status {
int ccs_id; /* id of cache */
string ccs_name<>; /* name of cache */
longlong_t ccs_size; /* size of cache */
longlong_t ccs_lrusize; /* size of lru files */
longlong_t ccs_packsize; /* size of packed files */
longlong_t ccs_freesize; /* size of free space */
u_int ccs_lrutime; /* time of oldest item on lru */
u_int ccs_modify; /* changes when modified */
};
/*
* List of file systems in a cache.
*/
struct cachefsd_mount {
int cm_fsid; /* id of file system */
string cm_name<>; /* name of file system */
};
struct cachefsd_mount_returns {
cachefsd_mount cmr_names<>; /* list of file systems */
u_int cmr_modify; /* changes when modified */
int cmr_error; /* 0 if no error */
};
/*
* Stats about a single file system in a cache.
*/
struct cachefsd_mount_stat_args {
int cma_cacheid; /* id of cache */
int cma_fsid; /* id of file system */
};
struct cachefsd_mount_stat {
int cms_cacheid; /* id of cache */
int cms_fsid; /* id of file system */
string cms_name<>; /* name of file system */
string cms_backfs<>; /* back file system */
string cms_mountpt<>; /* most recent mount point */
string cms_backfstype<>; /* type of back file system */
string cms_writemode<>; /* write mode */
string cms_options<>; /* remaining options */
int cms_mounted; /* 1 if mounted */
int cms_connected; /* 1 if connected */
int cms_reconcile; /* 1 if reconcile in progress */
int cms_changes; /* 1 if changes to push back */
u_int cms_time_state; /* time of state change */
u_int cms_mnttime; /* time of last mount/umount */
u_int cms_modify; /* changes when modified */
};
/*
* Sent by mount command to indicate a new mounted file system.
*/
struct cachefsd_fs_mounted {
string mt_cachedir<>; /* cache directory path */
string mt_cacheid<>; /* cache id */
};
/*
* Sent by umount command to unmount file system.
* cachefsd may get the request to force unmount
* the cachefs front file system, thus flag is
* necessary to indicate forced unmount.
* Hopefully, someday forced unmount is supported
* for cachefs !!
*/
struct cachefsd_fs_unmounted {
string mntpt<>; /* Mount point */
int flag; /* MS_FORCE flag */
};
/*
* Sets file system to simulate disconnection.
*/
struct cachefsd_disconnection_args {
string cda_mntpt<>; /* mntpt of file system */
int cda_disconnect; /* 1 disconnect, 0 connect */
};
/*
* -----------------------------------------------------------------
* This is the definition of the routines supported by the service.
*/
program CACHEFSDPROG {
version CACHEFSDVERS {
void CACHEFSD_NULL(void) = 0;
cachefsd_caches_return CACHEFSD_CACHES(void) = 1;
cachefsd_cache_status CACHEFSD_CACHE_STATUS(int id) = 2;
cachefsd_mount_returns CACHEFSD_MOUNTS(int id) = 3;
cachefsd_mount_stat CACHEFSD_MOUNT_STAT(
struct cachefsd_mount_stat_args) = 4;
void CACHEFSD_FS_MOUNTED(struct cachefsd_fs_mounted) = 5;
int CACHEFSD_FS_UNMOUNTED(struct cachefsd_fs_unmounted) = 6;
int CACHEFSD_DISCONNECTION(struct cachefsd_disconnection_args)
= 7;
} = 1;
} = 100235;
#ifdef RPC_HDR
%
#endif /* RPC_HDR */
|