BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / blob / 4f75471c50029ee76c328c9413ea055d67cb3ac0 / include / nucleus / vfs.h

// Related

Nucleus

Barry File system type object 4f75471 (3 years, 3 months ago)
#ifndef _NUCLEUS_VFS_H
#define _NUCLEUS_VFS_H

#include <stddef.h>
#include <sys/types.h>
#include <nucleus/object.h>
#include <nucleus/memory.h>

typedef struct FSType FSType;
typedef struct Inode Inode;
typedef struct InodeOps InodeOps;

typedef Inode *(*mount_callback_t)(FSType *, int, const char *, void *);

/* Structure for an Inode */
struct Inode {
	Object obj;
	ino_t ino;
	uid_t uid;
	gid_t gid;
	mode_t mode;
	nlink_t nlink;
	size_t size;
	dev_t dev;
	InodeOps *ops;
	union {
		ObjectList *pages;
	};
};
struct InodeOps {
};

extern ObjectType fstypeType;
extern ObjectType inodeType;

void init_vfs(void);
void register_fstype(const char *name,	mount_callback_t mount);

#endif