AquilaOS documentation
How it works, and its code
Loading...
Searching...
No Matches
dentry.c File Reference

minix: directory entries, a name and an inode number each, in the directory's blocks. More...

#include <core/panic.h>
#include <minix.h>

Go to the source code of this file.

Functions

uint32_t minix_dentry_find (struct minix *desc, struct minix_inode *m_inode, const char *name)
 Finds the inode number of a name in a directory.
int minix_dentry_create (struct vnode *dir, const char *name, ino_t ino, mode_t mode)
 Adds an entry to a directory, in its first free slot.

Detailed Description

minix: directory entries, a name and an inode number each, in the directory's blocks.

Definition in file dentry.c.

Function Documentation

◆ minix_dentry_create()

int minix_dentry_create ( struct vnode * dir,
const char * name,
ino_t ino,
mode_t mode )

Adds an entry to a directory, in its first free slot.

The directory's size grows if the slot is past its end. A directory whose blocks are all full grows by a block, with the entry at its start.

Parameters
dirthe directory
namethe new entry's name (cut to the filesystem's longest)
inoits inode number
modeits type and permissions (not used)
Returns
0, -ENOTDIR if dir isn't a directory, -ENOSPC or -EFBIG if it can't grow, or an I/O error

Definition at line 68 of file dentry.c.

References minix::bs, minix::dentry_size, minix_dentry::ino, vnode::ino, memcpy(), memset(), MIN, minix_dentry_create(), minix_inode_block_read(), minix_inode_block_write(), minix_inode_read(), minix_inode_write(), vnode::mode, minix_dentry::name, minix::name_len, vnode::p, minix_inode::size, and vnode::size.

Referenced by minix_dentry_create(), and minix_vmknod().

◆ minix_dentry_find()

uint32_t minix_dentry_find ( struct minix * desc,
struct minix_inode * m_inode,
const char * name )

Finds the inode number of a name in a directory.

The callers check that the inode is a directory: an inode that isn't one has no entries.

Parameters
descthe mounted filesystem
m_inodethe directory's inode
namethe name
Returns
the inode number, or 0 if there's no such name (or the inode isn't a directory)

Definition at line 19 of file dentry.c.

References minix::bs, minix::dentry_size, minix_dentry::ino, memcpy(), minix_dentry_find(), minix_inode_block_read(), minix_inode::mode, minix_dentry::name, minix::name_len, and minix_inode::size.

Referenced by minix_dentry_find(), minix_finddir(), and minix_vmknod().