2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
17 #include <afsconfig.h>
18 #include "afs/param.h"
23 #include "afs/sysincludes.h" /* Standard vendor system headers */
24 #include "afsincludes.h" /* Afs-based standard headers */
25 #include <sys/namei.h>
28 /* serious cheating */
30 #define curproc curthread
34 osi_lookupname(char *aname, enum uio_seg seg, int followlink,
35 struct vnode **dirvpp, struct vnode **vpp)
38 int flags, error, wasowned;
41 wasowned = mtx_owned(&afs_global_mtx);
43 mtx_unlock(&afs_global_mtx);
52 /* if (dirvpp) flags|=WANTPARENT; *//* XXX LOCKPARENT? */
53 NDINIT(&n, LOOKUP, flags, seg, aname, curproc);
54 if ((error = namei(&n)) != 0) {
57 mtx_lock(&afs_global_mtx);
66 /* should we do this? */
67 VOP_UNLOCK(n.ni_vp, 0, curproc);
68 NDFREE(&n, NDF_ONLY_PNBUF);
71 mtx_lock(&afs_global_mtx);
77 * does not implement security features of kern_time.c:settime()
80 afs_osi_SetTime(osi_timeval_t * atv)
83 printf("afs attempted to set clock; use \"afsd -nosettime\"\n");
86 struct timeval tv, delta;
93 timevalsub(&delta, &tv);
94 ts.tv_sec = atv->tv_sec;
95 ts.tv_nsec = atv->tv_usec * 1000;
98 lease_updatetime(delta.tv_sec);
106 * Replace all of the bogus special-purpose memory allocators...
109 osi_fbsd_alloc(size_t size, int dropglobal)
112 #ifdef AFS_FBSD50_ENV
116 wasowned = mtx_owned(&afs_global_mtx);
118 mtx_unlock(&afs_global_mtx);
119 rv = malloc(size, M_AFS, M_WAITOK);
121 mtx_lock(&afs_global_mtx);
124 rv = malloc(size, M_AFS, M_NOWAIT);
130 osi_fbsd_free(void *p)
137 osi_AllocMoreSSpace(afs_int32 preallocs)
143 osi_FreeLargeSpace(void *p)
149 osi_FreeSmallSpace(void *p)
155 osi_AllocLargeSpace(size_t size)
158 AFS_STATCNT(osi_AllocLargeSpace);
159 return (osi_fbsd_alloc(size, 1));
163 osi_AllocSmallSpace(size_t size)
166 AFS_STATCNT(osi_AllocSmallSpace);
167 return (osi_fbsd_alloc(size, 1));
171 shutdown_osinet(void)