Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/fs/devfs/devfs.c

    refcebe1 r9934f7d  
    5757};
    5858
     59fs_reg_t devfs_reg;
     60
     61static void devfs_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     62{
     63        if (iid)
     64                async_answer_0(iid, EOK);
     65       
     66        while (true) {
     67                ipc_call_t call;
     68                ipc_callid_t callid = async_get_call(&call);
     69               
     70                if (!IPC_GET_IMETHOD(call))
     71                        return;
     72               
     73                switch (IPC_GET_IMETHOD(call)) {
     74                case VFS_OUT_MOUNTED:
     75                        devfs_mounted(callid, &call);
     76                        break;
     77                case VFS_OUT_MOUNT:
     78                        devfs_mount(callid, &call);
     79                        break;
     80                case VFS_OUT_UNMOUNTED:
     81                        devfs_unmounted(callid, &call);
     82                        break;
     83                case VFS_OUT_UNMOUNT:
     84                        devfs_unmount(callid, &call);
     85                        break;
     86                case VFS_OUT_LOOKUP:
     87                        devfs_lookup(callid, &call);
     88                        break;
     89                case VFS_OUT_OPEN_NODE:
     90                        devfs_open_node(callid, &call);
     91                        break;
     92                case VFS_OUT_STAT:
     93                        devfs_stat(callid, &call);
     94                        break;
     95                case VFS_OUT_READ:
     96                        devfs_read(callid, &call);
     97                        break;
     98                case VFS_OUT_WRITE:
     99                        devfs_write(callid, &call);
     100                        break;
     101                case VFS_OUT_TRUNCATE:
     102                        devfs_truncate(callid, &call);
     103                        break;
     104                case VFS_OUT_CLOSE:
     105                        devfs_close(callid, &call);
     106                        break;
     107                case VFS_OUT_SYNC:
     108                        devfs_sync(callid, &call);
     109                        break;
     110                case VFS_OUT_DESTROY:
     111                        devfs_destroy(callid, &call);
     112                        break;
     113                default:
     114                        async_answer_0(callid, ENOTSUP);
     115                        break;
     116                }
     117        }
     118}
     119
    59120int main(int argc, char *argv[])
    60121{
     
    73134        }
    74135       
    75         int rc = fs_register(vfs_sess, &devfs_vfs_info, &devfs_ops,
    76             &devfs_libfs_ops);
     136        int rc = fs_register(vfs_sess, &devfs_reg, &devfs_vfs_info,
     137            devfs_connection);
    77138        if (rc != EOK) {
    78139                printf("%s: Failed to register file system (%d)\n", NAME, rc);
     
    91152 * @}
    92153 */
    93 
Note: See TracChangeset for help on using the changeset viewer.