Lines Matching defs:amp
87 struct adosfsmount *amp;
97 amp = VFSTOADOSFS(mp);
98 if (amp == NULL)
100 args->uid = amp->uid;
101 args->gid = amp->gid;
102 args->mask = amp->mask;
151 amp = VFSTOADOSFS(mp);
152 amp->uid = args->uid;
153 amp->gid = args->gid;
154 amp->mask = args->mask;
164 struct adosfsmount *amp;
173 amp = NULL;
191 amp = kmem_zalloc(sizeof(struct adosfsmount), KM_SLEEP);
216 amp->bsize = secsize;
220 amp->bsize = parp->p_fsize * parp->p_frag;
233 amp->bsize, 0, &bp)) != 0) {
236 amp->dostype = adoswordn(bp, 0);
240 if (amp->dostype < 0x444f5300 || amp->dostype > 0x444f5305) {
245 amp->rootb = (blksperdisk - 1 + resvblks) / 2;
246 amp->numblks = blksperdisk - resvblks;
248 amp->nwords = amp->bsize >> 2;
249 amp->dbsize = amp->bsize - (IS_FFS(amp) ? 0 : OFS_DATA_OFFSET);
250 amp->devvp = devvp;
252 amp->mp = mp;
253 mp->mnt_data = amp;
258 mp->mnt_fs_bshift = ffs(amp->bsize) - 1;
268 bitmap_sz = ((amp->numblks + 31) / 32) * sizeof(*amp->bitmap);
269 amp->bitmap = kmem_alloc(bitmap_sz, KM_SLEEP);
270 adosfs_loadbitmap(amp);
275 kmem_free(amp->bitmap, bitmap_sz);
276 amp->bitmap = NULL;
286 if (amp && amp->bitmap)
287 kmem_free(amp->bitmap, bitmap_sz);
288 if (amp)
289 kmem_free(amp, sizeof(*amp));
303 struct adosfsmount *amp;
311 amp = VFSTOADOSFS(mp);
312 if (amp->devvp->v_type != VBAD)
313 spec_node_setmountedfs(amp->devvp, NULL);
314 vn_lock(amp->devvp, LK_EXCLUSIVE | LK_RETRY);
315 error = VOP_CLOSE(amp->devvp, FREAD, NOCRED);
316 vput(amp->devvp);
317 if (amp->bitmap) {
318 size_t bitmap_sz = ((amp->numblks + 31) / 32) *
319 sizeof(*amp->bitmap);
320 kmem_free(amp->bitmap, bitmap_sz);
322 kmem_free(amp, sizeof(*amp));
345 struct adosfsmount *amp;
347 amp = VFSTOADOSFS(mp);
348 sbp->f_bsize = amp->bsize;
349 sbp->f_frsize = amp->bsize;
350 sbp->f_iosize = amp->dbsize;
351 sbp->f_blocks = amp->numblks;
352 sbp->f_bfree = amp->freeblks;
353 sbp->f_bavail = amp->freeblks;
395 struct adosfsmount *amp;
404 amp = VFSTOADOSFS(mp);
406 if ((error = bread(amp->devvp, an * amp->bsize / DEV_BSIZE,
407 amp->bsize, 0, &bp)) != 0)
413 ap->amp = amp;
415 ap->nwords = amp->nwords;
420 switch (ap->type = adosfs_getblktype(amp, bp)) {
528 error = bread(amp->devvp, ap->linkto * amp->bsize / DEV_BSIZE,
529 amp->bsize, 0, &bp);
537 ap->uid = amp->uid;
538 ap->gid = amp->gid;
571 ap->uid = amp->uid;
572 ap->gid = amp->gid;
602 adosfs_loadbitmap(struct adosfsmount *amp)
611 bn = amp->rootb;
612 if ((error = bread(amp->devvp, bn * amp->bsize / DEV_BSIZE, amp->bsize,
616 blkix = amp->nwords - 49;
617 endix = amp->nwords - 24;
619 bmsize = (amp->numblks + 31) / 32;
628 if ((error = bread(amp->devvp,
629 adoswordn(bp, blkix) * amp->bsize / DEV_BSIZE, amp->bsize,
632 if (adoscksum(mapbp, amp->nwords)) {
641 while (n < amp
642 amp->bitmap[mapix++] = bits = adoswordn(mapbp, n);
644 if (mapix == bmsize && amp->numblks & 31)
645 bits &= ~(0xffffffff << (amp->numblks & 31));
648 ++amp->freeblks;
656 if ((error = bread(amp->devvp, bn * amp->bsize / DEV_BSIZE,
657 amp->bsize, 0, &bp)) != 0)
663 endix = amp->nwords - 1;