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