#include #include extern InodeOps devfsInodeOps; extern FileOps devfsFileOps; Inode *devfs_alloc_inode(SuperBlock *sb); SuperOps devfsSuperOps = { .alloc_inode = devfs_alloc_inode, }; /* Mount a devfs instance */ Inode * devfs_mount(FSType *type, int flags, const char *dev, void *data) { static SuperBlock *super = NULL; if (!super) { super = new(&superBlockType); super->type = get(type); super->ops = &devfsSuperOps; } static Inode *inode = NULL; if (!inode) { Inode *inode = super_alloc_inode(super); inode->mode = S_IFDIR | 0755; super->root = inode; } return inode; } /* Allocate an inode */ Inode * devfs_alloc_inode(SuperBlock *sb) { Inode *inode = new(&inodeType); inode->ops = &devfsInodeOps; inode->fileOps = &devfsFileOps; inode->nlink = 1; return inode; }