AquilaOS documentation
How it works, and its code
Loading...
Searching...
No Matches
pseudofs.h
Go to the documentation of this file.
1#ifndef _FS_PSEUDOFS_H
2#define _FS_PSEUDOFS_H
3
4#include <fs/vfs.h>
5
6/* Pseudo filesystems' shared code (fs/pseudofs/): directories kept in
7 * memory, which tmpfs uses, and devfs and devpts, built on it. */
8
11 const char *d_name;
12 struct vnode *d_ino;
13
15};
16
17int pseudofs_vmknod(struct vnode *dir, const char *fn, mode_t mode, dev_t dev, struct uio *uio, struct vnode **ref);
18int pseudofs_vunlink(struct vnode *dir, const char *fn, struct uio *uio);
19int pseudofs_vlink(struct vnode *dir, const char *fn, struct vnode *vnode, struct uio *uio);
20int pseudofs_vrename(struct vnode *odir, const char *ofn, struct vnode *ndir, const char *nfn, struct uio *uio);
21int pseudofs_setattr(struct vnode *vnode);
22
23ssize_t pseudofs_readdir(struct vnode *dir, off_t offset, struct dirent *dirent);
24int pseudofs_finddir(struct vnode *dir, const char *name, struct dirent *dirent);
25
26int pseudofs_close(struct vnode *vnode);
27
28#endif /* ! _FS_PSEUDOFS_H */
int pseudofs_setattr(struct vnode *vnode)
Stores a vnode's attributes: there's nothing to do, since they only live in the vnode.
Definition pseudofs.c:306
int pseudofs_vmknod(struct vnode *dir, const char *fn, mode_t mode, dev_t dev, struct uio *uio, struct vnode **ref)
Makes a node in a directory: a new vnode, owned by the caller, and an entry for it.
Definition pseudofs.c:49
int pseudofs_finddir(struct vnode *dir, const char *name, struct dirent *dirent)
Finds the entry of a directory that has a name.
Definition pseudofs.c:367
int pseudofs_vlink(struct vnode *dir, const char *fn, struct vnode *vnode, struct uio *uio)
Adds an entry for an existing vnode (a hard link) to a directory.
Definition pseudofs.c:211
int pseudofs_close(struct vnode *vnode)
Frees a vnode that has no names or references left, and its cached pages.
Definition pseudofs.c:397
int pseudofs_vunlink(struct vnode *vnode, const char *fn, struct uio *uio)
Removes an entry from a directory.
Definition pseudofs.c:186
ssize_t pseudofs_readdir(struct vnode *dir, off_t offset, struct dirent *dirent)
Reads a directory's entry at an offset.
Definition pseudofs.c:320
int pseudofs_vrename(struct vnode *odir, const char *ofn, struct vnode *ndir, const char *nfn, struct uio *uio)
Renames an entry, possibly to another directory, replacing an entry at the new name.
Definition pseudofs.c:250
A device driver: its operations, any of which may be NULL.
Definition dev.h:28
A directory entry, kept in memory.
Definition pseudofs.h:10
struct vnode * d_ino
Definition pseudofs.h:12
const char * d_name
Definition pseudofs.h:11
struct pseudofs_dirent * next
Definition pseudofs.h:14
Who does a filesystem operation: where its paths start, and its credentials and umask.
Definition vfs.h:60
A file in memory (a vnode): what its inode says, and the kernel's own state.
Definition vfs.h:113
uint16_t dev_t
Definition types.h:18
long int ssize_t
Definition types.h:12
long int off_t
Definition types.h:10
uint32_t mode_t
Definition types.h:15