view src/interface/fs.dg @ 247:1ba0ca4113e1

tweak
author menikon
date Sun, 02 Feb 2020 00:23:12 +0900
parents 9ceb72e05468
children f26b3dcbc6db
line wrap: on
line source

typedef struct fs<Type,Impl> {
    union Data* fs;
    struct superblock* sb;
    uint dev;
    short type;
    struct inode* ip;
    struct stat* st;
    char* dst;
    uint off;
    uint n;
    const char* s;
    const char* t;
    struct inode* dp;
    char* name;
    uint* poff;
    uint inum;
    char* path;
    char* src;
    int namex_val;

    __code readsb(Impl* fs, uint dev, struct superblock* sb, __code next(...));
    __code iinit(Impl* fs, __code next(...));
    __code ialloc(Impl* fs, uint dev, short type, __code next(...));
    __code iupdate(Impl* fs, struct inode* ip, __code next(...));
    __code idup(Impl* fs, struct inode* ip, __code next(...));
    __code ilock(Impl* fs, struct inode* ip, __code next(...));
    __code iunlock(Impl* fs, struct inode* ip, __code next(...));
    __code iput(Impl* fs, struct inode* ip, __code next(...));
    __code iunlockput(Impl* fs, struct inode* ip, __code next(...));
    __code stati(Impl* fs , struct inode* ip, struct stat* st, __code next(...));
    __code readi(Impl* fs, struct inode* ip, char* dst, uint off, uint n, __code next(...));
    __code writei(Impl* fs, struct inode* ip, char* src, uint off, uint n, __code next(...));
    __code namecmp(Impl* fs, const char* s, const char* t, __code next(...));
    __code dirlookup(struct inode* dp, char* name, uint* poff, __code next(...));
    __code dirlink(Impl* fs, struct inode* dp, char* name, uint inum, __code next(...));
    __code namei(Impl* fs, char* path, __code next(int namex_val, ...));
    __code nameiparent(Impl* fs, char* path, char* name, __code next(int namex_val, ...));
    __code next(...);
} fs;