dinode
union dinode;
int64_t blockest(union dinode *);
void blksout64(union dinode *, int64_t *, int, ino_t, int);
void dumpino(union dinode *, ino_t);
union dinode *getino(ino_t);
union dinode *
return (union dinode *)dp2;
return ((union dinode *)dp1);
union dinode *dp;
union dinode *dp;
union dinode *dp, di;
union dinode *ip;
dumpino(union dinode *dp, ino_t ino)
dmpindir(union dinode *dp, ino_t ino, daddr_t blk, int ind_level, off_t *size)
static int appendextdata(union dinode *dp);
static void writeextdata(union dinode *dp, ino_t ino, int added);
static void dmpindir(union dinode *dp, ino_t, daddr_t, int, off_t *);
blksout64(union dinode *dp, int64_t *blkp, int frags, ino_t ino, int last)
appendextdata(union dinode *dp)
blockest(union dinode *dp)
writeextdata(union dinode *dp, ino_t ino, int added)
union dinode *dp;
union dinode *
static union dinode ifile_dinode; /* XXX fill this in */
static union dinode empty_dinode; /* Always stays zeroed */
union dinode *dp;
union dinode *dp;
union dinode *dp;
union dinode *dp;
union dinode *dp;
expanddir(union dinode *dp, char *name)
union dinode *dp;
static int expanddir(union dinode *, char *);
union dinode *dp;
int quota2_alloc_quota(union dinode *, struct bufarea *,
void cacheino(union dinode *, ino_t);
int ckinode(union dinode *, struct inodesc *);
union dinode * getnextinode(ino_t);
int ftypeok(union dinode *);
union dinode *ginode(ino_t);
ssize_t readblk(union dinode *, off_t, struct bufarea **);
struct bufarea *expandfile(union dinode *);
union dinode *dp;
union dinode *
return ((union dinode *)((caddr_t)pbp->b_un.b_buf + blkoff));
return ((union dinode *)((caddr_t)pbp->b_un.b_buf + blkoff));
swap_dinode1(union dinode *dp, int n)
swap_dinode2(union dinode *dp, int n)
union dinode *inodebuf;
union dinode *
static union dinode *dp;
union dinode *ret;
dp = (union dinode *)inodebuf;
dp = (union dinode *)
cacheino(union dinode *dp, ino_t inumber)
union dinode *dp;
union dinode *dp;
static void swap_dinode1(union dinode *, int);
static void swap_dinode2(union dinode *, int);
union dinode *dp;
ckinode(union dinode *dp, struct inodesc *idesc)
union dinode dino;
union dinode *dp;
readblk(union dinode *dp, off_t offset, struct bufarea **bp)
expandfile(union dinode *dp)
union dinode *dp;
union dinode *dp;
union dinode *dp;
union dinode *dp;
union dinode dino;
union dinode *dp;
union dinode *dp;
static int quota2_walk_list(union dinode *, struct bufarea *, uint64_t *,
quota2_walk_list(union dinode *dp, struct bufarea *hbp, uint64_t *offp, void *a,
union dinode *dp;
union dinode *dp;
union dinode *dp;
quota2_alloc_quota(union dinode * dp, struct bufarea *hbp,
ftypeok(union dinode *dp)
union dinode *dp;
union dinode *curinode;
union dinode *dp;
extern union dinode *curinode;
void printstat(const char *, ino_t, union dinode *);
printstat(const char *cp, ino_t inum, union dinode *dp)
union dinode node;
static void iput(union dinode *, ino_t);
iput(union dinode *ip, ino_t ino)
map_inodes(void (*fn) (union dinode * di, unsigned int, void *arg),
markblk(mark_callback_t fn, union dinode * di, off_t bn, off_t o)
markiblk(mark_callback_t fn, union dinode * di, off_t bn, off_t o, int lev)
map_inode_data_blocks(union dinode * di, mark_callback_t fn)
dblk_callback(union dinode * di, unsigned int inum, void *arg)
sizeof(union dinode), "inodes");
union dinode *inodes;
union dinode *sinodes;
moveblocks_callback(union dinode * di, unsigned int inum, void *arg)
dirmove_callback(union dinode * di, unsigned int inum, void *arg)
union ufs_dinode dinode;
if (ino == 0 || ufs_get_inode(ino, &dinode))
sz = DI_SIZE(&dinode);
ufs_read(&dinode, (void *) loadadr, 0, sz);
union ufs_dinode dinode;
if (ufs_fn_inode(dirino, fn, &dinode))
disize = DI_SIZE(&dinode);
cnt = ufs_read(&dinode, buf, 0, disize);
union ufs_dinode dinode;
ufs_get_inode(ino, &dinode);
disize = DI_SIZE(&dinode);
cnt = ufs_read(&dinode, p, 0, disize);
union ufs_dinode dinode;
if (ino == 0 || ufs_get_inode(ino, &dinode)) {
ufs_read(&dinode, (void *)addr, 0, sizeof(struct exec));
ufs_read(&dinode, ((char *)addr)-sizeof(struct exec), 0,/* XXX */
union ufs_dinode dinode;
if (ufs_fn_inode(dirino, fn, &dinode))
disize = DI_SIZE(&dinode);
cnt = ufs_read(&dinode, buf, 0, disize);
union ufs_dinode dinode;
ufs_get_inode(ino, &dinode);
disize = DI_SIZE(&dinode);
cnt = ufs_read(&dinode, p, 0, disize);
#define EXT2_DINODE_FITS(dinode, field, isize) (\
&& ((EXT2_REV0_DINODE_SIZE + (dinode)->e2di_extra_isize) >= offsetof(struct ext2fs_dinode, field) + sizeof((dinode)->field)) \
#define EXT2_DINODE_TIME_GET(ts, dinode, field, isize) \
ext2fs_dinode_time_get(ts, (dinode)->field, \
EXT2_DINODE_FITS(dinode, field ## _extra, isize) \
? (dinode)->field ## _extra : 0 \
#define EXT2_DINODE_TIME_SET(ts, dinode, field, isize) \
ext2fs_dinode_time_set(ts, &(dinode)->field, \
EXT2_DINODE_FITS(dinode, field ## _extra, isize) \
? &(dinode)->field ## _extra : NULL \
struct ext2fs_dinode dinode;
if (!KVM_READ(inode.i_din.e2fs_din, &dinode, sizeof dinode)) {
fsp->mode = dinode.e2di_mode;
fsp->size = dinode.e2di_size;
fsp->rdev = dinode.e2di_rdev;
ffs_write_inode(union dinode *dp, uint32_t ino, const fsinfo_t *fsopts)
static void ffs_write_file(union dinode *, uint32_t, void *, fsinfo_t *);
static void ffs_write_inode(union dinode *, uint32_t, const fsinfo_t *);
union dinode din;
ffs_write_file(union dinode *din, uint32_t ino, void *buf, fsinfo_t *fsopts)
union dinode i_din;
static int virtualblocks(struct fs *, union dinode *);
static union dinode *
return ((union dinode *)
return ((union dinode *)
virtualblocks(struct fs *super, union dinode *dp)
union dinode *dp;
union dinode *dp;
union dinode *dp;
union dinode *dp;
static union dinode *get_inode(int, struct fs *, ino_t);
static int isfree(struct fs *, union dinode *);
struct dinode dp1;
# define DINODE1_SIZE sizeof(struct dinode)
struct dinode *dp1;
dp1 = (struct dinode *) &dp->dp1;