vfs_init.c (f57e65478df5b3ada8a4f7afb89a6cc633bb55fd) | vfs_init.c (4b2af45f4ba1f8d8d5a56c4b18f29da6d08146e9) |
---|---|
1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed 6 * to Berkeley by John Heidemann of the UCLA Ficus project. 7 * 8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vfs_init.c 8.3 (Berkeley) 1/4/94 | 1/* 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed 6 * to Berkeley by John Heidemann of the UCLA Ficus project. 7 * 8 * Source: * @(#)i405_init.c 2.10 92/04/27 UCLA Ficus project --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vfs_init.c 8.3 (Berkeley) 1/4/94 |
39 * $Id: vfs_init.c,v 1.12 1995/09/09 18:10:16 davidg Exp $ | 39 * $Id: vfs_init.c,v 1.13 1995/11/09 08:13:51 bde Exp $ |
40 */ 41 42 43#include <sys/param.h> 44#include <sys/systm.h> 45#include <sys/kernel.h> 46#include <sys/mount.h> 47#include <sys/time.h> --- 234 unchanged lines hidden (view full) --- 282 continue; 283 (*(*vfsp)->vfs_init)(); 284 } 285} 286 287/* 288 * kernel related system variables. 289 */ | 40 */ 41 42 43#include <sys/param.h> 44#include <sys/systm.h> 45#include <sys/kernel.h> 46#include <sys/mount.h> 47#include <sys/time.h> --- 234 unchanged lines hidden (view full) --- 282 continue; 283 (*(*vfsp)->vfs_init)(); 284 } 285} 286 287/* 288 * kernel related system variables. 289 */ |
290int 291fs_sysctl(name, namelen, oldp, oldlenp, newp, newlen, p) 292 int *name; 293 u_int namelen; 294 void *oldp; 295 size_t *oldlenp; 296 void *newp; 297 size_t newlen; 298 struct proc *p; | 290 291static int 292sysctl_fs_vfsconf SYSCTL_HANDLER_ARGS |
299{ | 293{ |
300 int i; 301 int error; 302 int buflen = *oldlenp; 303 caddr_t where = oldp, start = oldp; | 294 int i, error; |
304 | 295 |
305 switch (name[0]) { 306 case FS_VFSCONF: 307 if (namelen != 1) return ENOTDIR; 308 309 if (oldp == NULL) { 310 *oldlenp = (MOUNT_MAXTYPE+1) * sizeof(struct vfsconf); 311 return 0; 312 } 313 if (newp) { 314 return EINVAL; 315 } 316 317 for(i = 0; i < MOUNT_MAXTYPE + 1; i++) { 318 if(buflen < sizeof *vfsconf[i]) { 319 *oldlenp = where - start; 320 return ENOMEM; 321 } 322 323 error = copyout(vfsconf[i], where, sizeof *vfsconf[i]); 324 if(error) 325 return error; 326 where += sizeof *vfsconf[i]; 327 buflen -= sizeof *vfsconf[i]; 328 } 329 *oldlenp = where - start; 330 return 0; 331 332 default: 333 if(namelen < 1) return EINVAL; 334 335 i = name[0]; 336 337 if(i <= MOUNT_MAXTYPE 338 && vfssw[i] 339 && vfssw[i]->vfs_sysctl) { 340 return vfssw[i]->vfs_sysctl(name + 1, namelen - 1, 341 oldp, oldlenp, 342 newp, newlen, p); 343 } 344 345 return (EOPNOTSUPP); | 296 if (req->newptr) 297 return EINVAL; 298 for(i = 0; i < MOUNT_MAXTYPE + 1; i++) { 299 error = SYSCTL_OUT(req, vfsconf[i], sizeof *vfsconf[i]); 300 if(error) 301 return error; |
346 } | 302 } |
347 /* NOTREACHED */ | 303 return (error); 304 |
348} 349 | 305} 306 |
307SYSCTL_PROC(_fs, FS_VFSCONF, vfsconf, CTLTYPE_OPAQUE|CTLFLAG_RD, 308 0, 0, sysctl_fs_vfsconf, ""); 309 |
|
350/* 351 * This goop is here to support a loadable NFS module... grumble... 352 */ 353void (*lease_check) __P((struct vnode *, struct proc *, struct ucred *, int)) 354 = 0; 355void (*lease_updatetime) __P((int)) 356 = 0; 357 | 310/* 311 * This goop is here to support a loadable NFS module... grumble... 312 */ 313void (*lease_check) __P((struct vnode *, struct proc *, struct ucred *, int)) 314 = 0; 315void (*lease_updatetime) __P((int)) 316 = 0; 317 |