fcmp
qsort((char *)list, entries, sizeof(struct afile), fcmp);
static int fcmp(const void *, const void *);
struct filecore_mnt *fcmp = ip->i_mnt;
int bshift=fcmp->log2bsize;
return filecore_map(fcmp, ip->i_dirent.addr, lbn, ap->a_bnp);
filecore_map(struct filecore_mnt *fcmp, u_int32_t addr, daddr_t lbn, daddr_t *bnp)
((lbn << fcmp->log2bsize) >> fcmp->drec.log2secsize);
zone = frag / fcmp->idspz;
zone = fcmp->drec.nzones / 2;
zaddr=((8<<fcmp->drec.log2secsize)-fcmp->drec.zone_spare)*zone
sect <<= fcmp->drec.share_size;
error=bread(fcmp->fc_devvp, fcmp->map + zone,
1 << fcmp->drec.log2secsize, 0, &bp);
printf("bread(%p, %lx, %d, CRED, %p)=%d\n", fcmp->fc_devvp,
fcmp->map+zone, 1 << fcmp->drec.log2secsize, bp, error);
while (b < (8 << (fcmp->drec.log2secsize))
- fcmp->drec.zone_spare) {
c = 32 - (b & 31) - fcmp->drec.idlen;
a |= m << (fcmp->drec.idlen+c);
m = a >> fcmp->drec.idlen;
n = fcmp->drec.idlen + 1;
a &= fcmp->mask;
if (sect << fcmp->drec.log2secsize < n
<< fcmp->drec.log2bpmb) {
<< fcmp->drec.log2bpmb)
>> fcmp->drec.log2secsize) + sect;
sect -= (n<<fcmp->drec.log2bpmb)
>> fcmp->drec.log2secsize;
if (++zone == fcmp->drec.nzones) {
zaddr += ((8 << fcmp->drec.log2secsize)
- fcmp->drec.zone_spare);
filecore_bread(struct filecore_mnt *fcmp, u_int32_t addr, int size, kauth_cred_t cred, struct buf **bp)
error = filecore_map(fcmp, addr, 0, &bn);
error = bread(fcmp->fc_devvp, bn, size, 0, bp);
printf("bread(%p, %llx, %d, CRED, %p)=%d\n", fcmp->fc_devvp,
struct filecore_mnt *fcmp;
fcmp = VFSTOFILECORE(mp);
ip->i_dev = fcmp->fc_dev;
ip->i_dirent.addr = fcmp->drec.root;
if ((error = filecore_bread(fcmp, ino & FILECORE_INO_MASK,
ip->i_mnt = fcmp;
ip->i_devvp = fcmp->fc_devvp;
struct filecore_mnt *fcmp = NULL;
fcmp = VFSTOFILECORE(mp);
if (fcmp == NULL)
args->flags = fcmp->fc_mntflags;
args->uid = fcmp->fc_uid;
args->gid = fcmp->fc_gid;
fcmp = VFSTOFILECORE(mp);
if (devvp != fcmp->fc_devvp)
fcmp = VFSTOFILECORE(mp);
struct filecore_mnt *fcmp = (struct filecore_mnt *)0;
fcmp = kmem_zalloc(sizeof(*fcmp), KM_SLEEP);
fcmp->log2bsize = fcdr->log2bpmb;
else fcmp->log2bsize = fcdr->log2secsize;
fcmp->blksize = 1 << fcmp->log2bsize;
memcpy(&fcmp->drec, fcdr, sizeof(*fcdr));
fcmp->map = map;
fcmp->idspz = ((8 << fcdr->log2secsize) - fcdr->zone_spare)
fcmp->mask = (1 << fcdr->idlen) - 1;
fcmp->nblks = ((((u_int64_t)fcdr->disc_size_2) << 32)
+ fcdr->disc_size) / fcmp->blksize;
fcmp->nblks=fcdr->disc_size / fcmp->blksize;
mp->mnt_data = fcmp;
mp->mnt_fs_bshift = fcmp->log2bsize;
fcmp->fc_mountp = mp;
fcmp->fc_dev = dev;
fcmp->fc_devvp = devvp;
fcmp->fc_mntflags = argp->flags;
fcmp->fc_uid = kauth_cred_getuid(l->l_cred);
fcmp->fc_gid = kauth_cred_getgid(l->l_cred);
fcmp->fc_uid = argp->uid;
fcmp->fc_gid = argp->gid;
struct filecore_mnt *fcmp;
fcmp = VFSTOFILECORE(mp);
if (fcmp->fc_devvp->v_type != VBAD)
spec_node_setmountedfs(fcmp->fc_devvp, NULL);
vn_lock(fcmp->fc_devvp, LK_EXCLUSIVE | LK_RETRY);
error = VOP_CLOSE(fcmp->fc_devvp, FREAD, NOCRED);
vput(fcmp->fc_devvp);
kmem_free(fcmp, sizeof(*fcmp));
struct filecore_mnt *fcmp = VFSTOFILECORE(mp);
sbp->f_bsize = fcmp->blksize;
sbp->f_blocks = fcmp->nblks;
struct filecore_mnt *fcmp = ip->i_mnt;
genfs_can_access(vp, cred, fcmp->fc_uid, fcmp->fc_gid,
struct filecore_mnt *fcmp = ip->i_mnt;
vap->va_uid = fcmp->fc_uid;
vap->va_gid = fcmp->fc_gid;
vap->va_blocksize = fcmp->blksize;
struct filecore_mnt *fcmp;
fcmp = ip->i_mnt;
lbn = filecore_lblkno(fcmp, uio->uio_offset);
on = filecore_blkoff(fcmp, uio->uio_offset);
n = MIN(filecore_blksize(fcmp, ip, lbn) - on, uio->uio_resid);
size = filecore_blksize(fcmp, ip, lbn);