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