1*89c9de7dSDavid van Moolenbroek 2*89c9de7dSDavid van Moolenbroek #include "fsdriver.h" 3*89c9de7dSDavid van Moolenbroek 4*89c9de7dSDavid van Moolenbroek #define CALL(n) [((n) - FS_BASE)] 5*89c9de7dSDavid van Moolenbroek 6*89c9de7dSDavid van Moolenbroek int (*fsdriver_callvec[NREQS])(const struct fsdriver * __restrict, 7*89c9de7dSDavid van Moolenbroek const message * __restrict, message * __restrict) = { 8*89c9de7dSDavid van Moolenbroek CALL(REQ_PUTNODE) = fsdriver_putnode, 9*89c9de7dSDavid van Moolenbroek CALL(REQ_SLINK) = fsdriver_slink, 10*89c9de7dSDavid van Moolenbroek CALL(REQ_FTRUNC) = fsdriver_trunc, 11*89c9de7dSDavid van Moolenbroek CALL(REQ_CHOWN) = fsdriver_chown, 12*89c9de7dSDavid van Moolenbroek CALL(REQ_CHMOD) = fsdriver_chmod, 13*89c9de7dSDavid van Moolenbroek CALL(REQ_INHIBREAD) = fsdriver_inhibread, 14*89c9de7dSDavid van Moolenbroek CALL(REQ_STAT) = fsdriver_stat, 15*89c9de7dSDavid van Moolenbroek CALL(REQ_UTIME) = fsdriver_utime, 16*89c9de7dSDavid van Moolenbroek CALL(REQ_STATVFS) = fsdriver_statvfs, 17*89c9de7dSDavid van Moolenbroek CALL(REQ_BREAD) = fsdriver_bread, 18*89c9de7dSDavid van Moolenbroek CALL(REQ_BWRITE) = fsdriver_bwrite, 19*89c9de7dSDavid van Moolenbroek CALL(REQ_UNLINK) = fsdriver_unlink, 20*89c9de7dSDavid van Moolenbroek CALL(REQ_RMDIR) = fsdriver_rmdir, 21*89c9de7dSDavid van Moolenbroek CALL(REQ_UNMOUNT) = fsdriver_unmount, 22*89c9de7dSDavid van Moolenbroek CALL(REQ_SYNC) = fsdriver_sync, 23*89c9de7dSDavid van Moolenbroek CALL(REQ_NEW_DRIVER) = fsdriver_newdriver, 24*89c9de7dSDavid van Moolenbroek CALL(REQ_FLUSH) = fsdriver_flush, 25*89c9de7dSDavid van Moolenbroek CALL(REQ_READ) = fsdriver_read, 26*89c9de7dSDavid van Moolenbroek CALL(REQ_WRITE) = fsdriver_write, 27*89c9de7dSDavid van Moolenbroek CALL(REQ_MKNOD) = fsdriver_mknod, 28*89c9de7dSDavid van Moolenbroek CALL(REQ_MKDIR) = fsdriver_mkdir, 29*89c9de7dSDavid van Moolenbroek CALL(REQ_CREATE) = fsdriver_create, 30*89c9de7dSDavid van Moolenbroek CALL(REQ_LINK) = fsdriver_link, 31*89c9de7dSDavid van Moolenbroek CALL(REQ_RENAME) = fsdriver_rename, 32*89c9de7dSDavid van Moolenbroek CALL(REQ_LOOKUP) = fsdriver_lookup, 33*89c9de7dSDavid van Moolenbroek CALL(REQ_MOUNTPOINT) = fsdriver_mountpoint, 34*89c9de7dSDavid van Moolenbroek CALL(REQ_READSUPER) = fsdriver_readsuper, 35*89c9de7dSDavid van Moolenbroek CALL(REQ_NEWNODE) = fsdriver_newnode, 36*89c9de7dSDavid van Moolenbroek CALL(REQ_RDLINK) = fsdriver_rdlink, 37*89c9de7dSDavid van Moolenbroek CALL(REQ_GETDENTS) = fsdriver_getdents, 38*89c9de7dSDavid van Moolenbroek CALL(REQ_PEEK) = fsdriver_peek, 39*89c9de7dSDavid van Moolenbroek CALL(REQ_BPEEK) = fsdriver_bpeek 40*89c9de7dSDavid van Moolenbroek }; 41