denode
if (!kvm_read_all(kd, (unsigned long)denode.de_pmp,
(void *)denode.de_pmp);
mnt->kptr = denode.de_pmp;
vn->vn_mode |= denode.de_Attributes & ATTR_READONLY ? 0 : 0222;
vn->vn_mode |= denode.de_Attributes & ATTR_DIRECTORY ? S_IFDIR : S_IFREG;
vn->vn_size = denode.de_FileSize;
if (denode.de_Attributes & ATTR_DIRECTORY) {
fileid = cntobn(&mnt->data, denode.de_StartCluster)
if (denode.de_StartCluster == MSDOSFSROOT)
fileid = cntobn(&mnt->data, denode.de_dirclust) * dirsperblk;
if (denode.de_dirclust == MSDOSFSROOT)
fileid += denode.de_diroffset / sizeof(struct direntry);
struct denode denode;
if (!kvm_read_all(kd, (unsigned long)VTODE(vp), &denode,
sizeof(denode))) {
if (mnt->kptr == denode.de_pmp)
#define VTODE(vp) ((struct denode *)(vp)->v_data)
int deget(struct msdosfsmount *, u_long, u_long, int, struct denode **);
int uniqdosname(struct denode *, struct componentname *, u_char *);
int readde(struct denode *dep, struct buf **bpp, struct direntry **epp);
int deextend(struct denode *dep, u_long length, struct ucred *cred);
void reinsert(struct denode *dep);
int dosdirempty(struct denode *dep);
int createde(struct denode *dep, struct denode *ddep, struct denode **depp, struct componentname *cnp);
int deupdat(struct denode *dep, int waitfor);
int removede(struct denode *pdep, struct denode *dep);
int detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred);
int doscheckpath( struct denode *source, struct denode *target,
int extendfile(struct denode *dep, u_long count, struct buf **bpp, u_long *ncp, int flags);
void fc_purge(struct denode *dep, u_int frcn);
int pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp, u_long *cnp, int* sp);
struct denode *ldep;
ldep = malloc(sizeof(struct denode), M_MSDOSFSNODE, M_WAITOK | M_ZERO);
deupdat(struct denode *dep, int waitfor)
detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred)
deextend(struct denode *dep, u_long length, struct ucred *cred)
reinsert(struct denode *dep)
struct denode *dep = VTODE(vp);
struct denode *dep = VTODE(vp);
struct denode *de;
int lkflags, struct denode **depp)
pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp, u_long *cnp, int *sp)
fc_lookup(struct denode *dep, u_long findcn, u_long *frcnp, u_long *fsrcnp)
fc_purge(struct denode *dep, u_int frcn)
static void fc_lookup(struct denode *dep, u_long findcn, u_long *frcnp,
extendfile(struct denode *dep, u_long count, struct buf **bpp, u_long *ncp,
uniqdosname(struct denode *dep, struct componentname *cnp, u_char *cp)
struct denode *rdp;
struct denode *dp;
struct denode *tdp;
createde(struct denode *dep, struct denode *ddep, struct denode **depp,
struct denode *tdp, struct vnode **vpp)
dosdirempty(struct denode *dep)
doscheckpath(struct denode *source, struct denode *target, daddr_t *wait_scn)
struct denode *dep;
readde(struct denode *dep, struct buf **bpp, struct direntry **epp)
removede(struct denode *pdep, struct denode *dep)
struct denode *ndep;
struct denode *dep;
struct denode *dep;
struct denode *dep;
struct denode *pdep = VTODE(ap->a_dvp);
struct denode ndirent;
struct denode ndirent;
struct denode *dep;
struct denode *pdep = VTODE(ap->a_dvp);
struct denode *ip, *dp;
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep;
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep;
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep = VTODE(vp);
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep = VTODE(ap->a_vp);
struct denode *dep = VTODE(vp);
struct denode *dep = VTODE(vp);
struct denode *dep = VTODE(ap->a_vp);
struct denode *ddep = VTODE(ap->a_dvp);
struct denode *fdip, *fip, *tdip, *tip, *nip;
msdos_populate_dir(const char *path, struct denode *dir, fsnode *root,
struct denode *de;
static int msdos_populate_dir(const char *, struct denode *, fsnode *,
struct denode;
struct denode *msdosfs_mkfile(const char *, struct denode *, fsnode *);
struct denode *msdosfs_mkdire(const char *, struct denode *, fsnode *);
int m_readde(struct denode *dep, struct m_buf **bpp, struct direntry **epp);
int m_extendfile(struct denode *dep, u_long count, struct m_buf **bpp,
detrunc(struct denode *dep, u_long length, int flags, struct ucred *cred)
deextend(struct denode *dep, u_long length, struct ucred *cred)
int lkflags __unused, struct denode **depp)
struct denode *ldep;
pcbmap(struct denode *dep, u_long findcn, daddr_t *bnp, u_long *cnp, int *sp)
fc_lookup(struct denode *dep, u_long findcn, u_long *frcnp, u_long *fsrcnp)
fc_purge(struct denode *dep, u_int frcn)
static void fc_lookup(struct denode *dep, u_long findcn, u_long *frcnp,
m_extendfile(struct denode *dep, u_long count, struct m_buf **bpp, u_long *ncp,
m_readde(struct denode *dep, struct m_buf **bpp, struct direntry **epp)
uniqdosname(struct denode *dep, struct componentname *cnp, u_char *cp)
createde(struct denode *dep, struct denode *ddep, struct denode **depp,
struct denode *ndep;
msdosfs_findslot(struct denode *dp, struct componentname *cnp)
struct denode *
msdosfs_mkfile(const char *path, struct denode *pdep, fsnode *node)
struct denode ndirent;
struct denode *dep;
msdosfs_updatede(struct denode *dep)
msdosfs_wfile(const char *path, struct denode *dep, fsnode *node)
struct denode *
msdosfs_mkdire(const char *path __unused, struct denode *pdep, fsnode *node)
struct denode ndirent;
struct denode *dep;
static int msdosfs_wfile(const char *, struct denode *, fsnode *);
msdosfs_times(struct denode *dep, const struct stat *st)