view src/impl/fs_impl.h @ 321:98902fad1e2e menikon_thesis

final fix
author menikon
date Fri, 07 Feb 2020 14:27:05 +0900
parents 40e9dd5ff084
children e34fb61f280a
line wrap: on
line source

typedef struct fs_impl<Type, Isa> impl fs{
    union Data* fs_impl;
    struct superblock* sb;
    int ret;
    uint dev;
    short type;
    struct buf* bp;
    struct dinode* dip;
    uint inum;
    struct inode* dp;
    char* name;
    uint off;
    uint* poff;
    dirent* de;
    uint tot;
    uint m;
    char* dst;
    uint n;
    char* src;

    __code allocinode(Type* fs_impl, uint dev, struct superblock* sb, __code next(...));
    __code allocinode_loop(Type* fs_impl, uint inum, uint dev, short type, struct superblock* sb, struct buf* bp, struct dinode* dip, __code next(...));
    __code allocinode_loopcheck(Type* fs_impl, uint inum, uint dev, struct superblock* sb, struct buf* bp, struct dinode* dip, __code next(...));
    __code allocinode_noloop(Type* fs_impl, uint inum, uint dev, short type, struct superblock* sb, struct buf* bp, struct dinode* dip, __code next(int ret, ...));
    __code lockinode1(Type* fs_impl, struct inode *ip, struct buf *bp, struct dinode *dip, __code next(...));
    __code lockinode2(Type* fs_impl, struct inode* ip, struct buf* bp, struct dinode* dip, __code next(...));
    __code lockinode_sleepcheck(Type* fs_impl, struct inode* ip, __code next(...));
    __code iput_check(Type* fs_impl, struct inode* ip, __code next(...));
    __code iput_inode_nolink(Type* fs_impl, struct inode* ip, __code next(...));
    __code readi_check_diskinode(Type* fs_impl,struct inode* ip, char* dst, uint n, next(int ret, ...));
    __code readi_loopcheck(Type* fs_impl, uint tot, uint m, char* dst, uint off, uint n, __code next(...));
    __code readi_loop(Type* fs_impl, struct inode *ip, struct buf* bp, uint tot, uint m, char* dst, uint off, uint n, __code next(...));
    __code readi_noloop(Type* fs_impl, uint n, __code next(int ret, ...));
    __code writei_check_diskinode(Type* fs_impl,struct inode* ip, char* src, uint n, __code next(int ret, ...));
    __code writei_loopcheck(Type* fs_impl, uint tot, uint m, char* src, uint off, uint n, __code next(...));
    __code writei_loop(Type* fs_impl, struct inode* ip, struct buf* bp, uint tot, uint m, char* src, uint off, uint n, __code next(...));
    __code writei_noloop(Type* fs_impl, struct inode* ip, uint n, uint off, __code next(int ret, ...));
    __code dirlookup_loopcheck(Type* fs_impl, struct inode* dp, char* name, uint off, uint* poff, dirent* de, next(...));
    __code dirlookup_loop(Type* fs_impl, struct inode* dp, char* name, uint off, uint inum, uint* poff, dirent* de, __code next(int ret, ...));
    __code dirlookup_noloop(Type* fs_impl, __code next(int ret, ...));
    __code dirlink_namecheck(Type* fs_impl, struct inode* ip, __code next(int ret, ...));
    __code dirlink_loopcheck(Type* fs_impl, struct dirent* de, struct inode* dp, uint off, __code next(...));
    __code dirlink_loop(Type* fs_impl, struct dirent* de, struct inode* dp, uint off, uint inum, __code next(...));
    __code dirlink_noloop(Type* fs_impl, struct dirent* de, struct inode* dp, uint off, uint inum, char* name, __code next(int ret, ...));
    __code next(...);
    __code next2(...);
} fs_impl;