Rev 3386 | Rev 4581 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3386 | Rev 4153 | ||
|---|---|---|---|
| Line 47... | Line 47... | ||
| 47 | #include "../../vfs/vfs.h" |
47 | #include "../../vfs/vfs.h" |
| 48 | 48 | ||
| 49 | 49 | ||
| 50 | vfs_info_t fat_vfs_info = { |
50 | vfs_info_t fat_vfs_info = { |
| 51 | .name = "fat", |
51 | .name = "fat", |
| 52 | .ops = { |
- | |
| 53 | [IPC_METHOD_TO_VFS_OP(VFS_LOOKUP)] = VFS_OP_DEFINED, |
- | |
| 54 | [IPC_METHOD_TO_VFS_OP(VFS_READ)] = VFS_OP_DEFINED, |
- | |
| 55 | [IPC_METHOD_TO_VFS_OP(VFS_WRITE)] = VFS_OP_NULL, |
- | |
| 56 | [IPC_METHOD_TO_VFS_OP(VFS_TRUNCATE)] = VFS_OP_NULL, |
- | |
| 57 | [IPC_METHOD_TO_VFS_OP(VFS_MOUNT)] = VFS_OP_NULL, |
- | |
| 58 | [IPC_METHOD_TO_VFS_OP(VFS_MOUNTED)] = VFS_OP_DEFINED, |
- | |
| 59 | [IPC_METHOD_TO_VFS_OP(VFS_UNMOUNT)] = VFS_OP_NULL, |
- | |
| 60 | } |
- | |
| 61 | }; |
52 | }; |
| 62 | 53 | ||
| 63 | fs_reg_t fat_reg; |
54 | fs_reg_t fat_reg; |
| 64 | 55 | ||
| 65 | /** |
56 | /** |
| Line 108... | Line 99... | ||
| 108 | fat_lookup(callid, &call); |
99 | fat_lookup(callid, &call); |
| 109 | break; |
100 | break; |
| 110 | case VFS_READ: |
101 | case VFS_READ: |
| 111 | fat_read(callid, &call); |
102 | fat_read(callid, &call); |
| 112 | break; |
103 | break; |
| - | 104 | case VFS_WRITE: |
|
| - | 105 | fat_write(callid, &call); |
|
| - | 106 | break; |
|
| - | 107 | case VFS_TRUNCATE: |
|
| - | 108 | fat_truncate(callid, &call); |
|
| - | 109 | break; |
|
| - | 110 | case VFS_DESTROY: |
|
| - | 111 | fat_destroy(callid, &call); |
|
| - | 112 | break; |
|
| 113 | default: |
113 | default: |
| 114 | ipc_answer_0(callid, ENOTSUP); |
114 | ipc_answer_0(callid, ENOTSUP); |
| 115 | break; |
115 | break; |
| 116 | } |
116 | } |
| 117 | } |
117 | } |
| Line 120... | Line 120... | ||
| 120 | int main(int argc, char **argv) |
120 | int main(int argc, char **argv) |
| 121 | { |
121 | { |
| 122 | int vfs_phone; |
122 | int vfs_phone; |
| 123 | int rc; |
123 | int rc; |
| 124 | 124 | ||
| 125 | printf("FAT: HelenOS FAT file system server.\n"); |
125 | printf("fat: HelenOS FAT file system server.\n"); |
| 126 | 126 | ||
| 127 | rc = fat_idx_init(); |
127 | rc = fat_idx_init(); |
| 128 | if (rc != EOK) |
128 | if (rc != EOK) |
| 129 | goto err; |
129 | goto err; |
| 130 | 130 | ||
| 131 | vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0, 0); |
131 | vfs_phone = ipc_connect_me_to_blocking(PHONE_NS, SERVICE_VFS, 0, 0); |
| 132 | while (vfs_phone < EOK) { |
132 | if (vfs_phone < EOK) { |
| - | 133 | printf("fat: failed to connect to VFS\n"); |
|
| 133 | usleep(10000); |
134 | return -1; |
| 134 | vfs_phone = ipc_connect_me_to(PHONE_NS, SERVICE_VFS, 0, 0); |
- | |
| 135 | } |
135 | } |
| 136 | 136 | ||
| 137 | rc = fs_register(vfs_phone, &fat_reg, &fat_vfs_info, fat_connection); |
137 | rc = fs_register(vfs_phone, &fat_reg, &fat_vfs_info, fat_connection); |
| 138 | if (rc != EOK) { |
138 | if (rc != EOK) { |
| 139 | fat_idx_fini(); |
139 | fat_idx_fini(); |