Changes in contrib/arch/uspace/srv/vfs/vfs.bp [b988db0:07fdf203] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
contrib/arch/uspace/srv/vfs/vfs.bp
rb988db0 r07fdf203 1 ?ipc_m_connect_me_to;1 !ns.IPC_M_CONNECT_TO_ME ; 2 2 ( 3 ?register { 4 ?ipc_m_data_write /* fs name */ ; 5 tentative { 6 /* callback connection */ 7 ?ipc_m_connect_to_me ; 8 ?ipc_m_share_in 3 ?vfs.IPC_M_CONNECT_ME_TO ; 4 ( 5 ?vfs.VFS_IN_REGISTER { 6 ?vfs.IPC_M_DATA_WRITE ; 7 ?vfs.IPC_M_CONNECT_TO_ME ; 8 ?vfs.IPC_M_SHARE_IN 9 } + 10 11 ?vfs.VFS_IN_MOUNT { 12 ?vfs.IPC_M_DATA_WRITE /* mount point */ ; 13 ?vfs.IPC_M_DATA_WRITE /* mount options */ ; 14 ?vfs.IPC_M_DATA_WRITE /* fs name */ ; 15 ?vfs.IPC_M_PING ; 16 ( 17 18 !fs.VFS_OUT_MOUNTED ; 19 !fs.IPC_M_DATA_WRITE /* mount options */ 20 ) /* root fs */ + 21 ( 22 !fs.VFS_OUT_MOUNT ; 23 !fs.IPC_M_CONNECTION_CLONE ; 24 !fs.VFS_M_DATA_WRITE /* mount options */ 25 ) /* non-root fs */ 26 } + 27 28 ?vfs.VFS_IN_OPEN { 29 ?vfs.IPC_M_DATA_WRITE /* path */ ; 30 [vfs_lookup_internal] ; 31 ( 32 ( 33 [vfs_grab_phone] ; 34 !fs.VFS_OUT_TRUNCATE ; 35 [vfs_release_phone] 36 ) + 37 NULL 38 ) 39 } + 40 41 ?vfs.VFS_IN_OPEN_NODE { 42 [vfs_grab_phone] ; 43 !fs.VFS_OUT_OPEN_NODE ; 44 [vfs_release_phone] ; 45 ( 46 ( 47 [vfs_grab_phone] ; 48 !fs.VFS_OUT_TRUNCATE ; 49 [vfs_release_phone] 50 ) + 51 NULL 52 ) 53 } + 54 55 ?vfs.VFS_IN_CLOSE { 56 [vfs_grab_phone] ; 57 !fs.VFS_OUT_CLOSE ; 58 [vfs_release_phone] 59 } + 60 61 ?vfs.VFS_IN_READ { 62 ?vfs.IPC_M_DATA_READ { 63 [vfs_grab_phone] ; 64 !fs.VFS_OUT_READ /* payload */ ; 65 !fs.IPC_M_DATA_READ /* forwarded */ ; 66 [vfs_release_phone] 67 } 68 } + 69 70 ?vfs.VFS_IN_WRITE { 71 ?vfs.IPC_M_DATA_WRITE { 72 [vfs_grab_phone] ; 73 !fs.VFS_OUT_WRITE /* payload */ ; 74 !fs.IPC_M_DATA_WRITE /* forwarded */ ; 75 [vfs_release_phone] 76 } 77 } + 78 79 ?vfs.VFS_IN_SEEK + 80 81 ?vfs.VFS_IN_TRUNCATE { 82 [vfs_grab_phone] ; 83 !fs.VFS_OUT_TRUNCATE ; 84 [vfs_release_phone] 85 } + 86 87 ?vfs.VFS_IN_FSTAT { 88 ?vfs.IPC_M_DATA_READ /* struct stat */ { 89 [vfs_grab_phone] ; 90 !fs.VFS_OUT_STAT ; 91 !fs.IPC_M_DATA_READ /* forwarded */ ; 92 [vfs_release_phone] 93 } 94 } + 95 96 ?vfs.VFS_IN_STAT { 97 ?vfs.IPC_M_DATA_WRITE /* path */ ; 98 ?vfs.IPC_M_DATA_READ /* struct stat */ { 99 [vfs_lookup_internal] ; 100 !fs.VFS_OUT_STAT ; 101 !fs.IPC_M_DATA_READ /* forwarded */ 102 } 103 } + 104 105 ?vfs.VFS_IN_MKDIR { 106 ?vfs.IPC_M_DATA_WRITE /* path */ ; 107 [vfs_lookup_internal] 108 } + 109 110 ?vfs.VFS_IN_UNLINK { 111 ?vfs.IPC_M_DATA_WRITE /* path */ ; 112 [vfs_lookup_internal] 113 } + 114 115 ?vfs.VFS_IN_RENAME { 116 ?vfs.IPC_M_DATA_WRITE /* old path */ ; 117 ?vfs.IPC_M_DATE_WRITE /* new path */ ; 118 [vfs_lookup_internal] /* lookup old path */ ; 119 [vfs_lookup_internal] /* lookup parent of new path */ ; 120 [vfs_lookup_internal] /* destroy old link for the new path */ ; 121 [vfs_lookup_internal] /* create new link for the new path */ ; 122 [vfs_lookup_internal] /* destroy link for the old path */ 123 } + 124 125 ?vfs.VFS_IN_SYNC { 126 !fs.VFS_OUT_SYNC 9 127 } 10 } + 11 12 ?mount { 13 ?ipc_m_data_write /* mount point */ ; 14 tentative { 15 ?ipc_m_data_write /* mount options */ ; 16 tentative { 17 ?ipc_m_data_write /* fs name */ ; 18 tentative { 19 ?ipc_m_ping ; 20 tentative { 21 ( 22 /* root fs */ 23 alternative (fs; tmpfs; fat; devfs) { 24 !fs.mounted { 25 !fs.ipc_m_data_write /* mount options */ 26 } 27 } 28 ) + 29 ( 30 /* non-root fs */ 31 tentative { 32 alternative (fs; tmpfs; fat; devfs) { 33 [fnc.vfs_lookup_internal] ; 34 tentative { 35 [fnc.vfs_grab_phone] ; 36 [fnc.vfs_grab_phone] ; 37 !fs.mount ; 38 !fs.ipc_m_connection_clone ; 39 [fnc.vfs_release_phone] ; 40 tentative { 41 !fs.vfs_m_data_write /* mount options */ 42 } ; 43 [fnc.vfs_release_phone] 44 } 45 } 46 } 47 ) 48 } 49 } 50 } 51 } 52 } + 53 54 ?open { 55 tentative { 56 ?ipc_m_data_write /* path */ ; 57 tentative { 58 alternative (fs; tmpfs; fat; devfs) { 59 [fnc.vfs_lookup_internal] ; 60 tentative { 61 [fnc.vfs_grab_phone] ; 62 !fs.truncate ; 63 [fnc.vfs_release_phone] 64 } 65 } 66 } 67 } 68 } + 69 70 ?open_node { 71 alternative (fs; tmpfs; fat; devfs) { 72 [fnc.vfs_open_node_internal] ; 73 tentative { 74 [fnc.vfs_grab_phone] ; 75 !fs.truncate ; 76 [fnc.vfs_release_phone] 77 } 78 } 79 } + 80 81 ?close { 82 tentative { 83 alternative (fs; tmpfs; fat; devfs) { 84 [fnc.vfs_grab_phone] ; 85 !fs.close ; 86 [fnc.vfs_release_phone] 87 } 88 } 89 } + 90 91 ?read { 92 tentative { 93 ?ipc_m_data_read { 94 alternative (fs; tmpfs; fat; devfs) { 95 [fnc.vfs_grab_phone] ; 96 !fs.read { 97 !fs.ipc_m_data_read /* forward payload */ 98 } ; 99 [fnc.vfs_release_phone] 100 } 101 } 102 } 103 } + 104 105 ?write { 106 tentative { 107 ?ipc_m_data_write { 108 alternative (fs; tmpfs; fat; devfs) { 109 [fnc.vfs_grab_phone] ; 110 !fs.write { 111 !fs.ipc_m_data_write /* forward payload */ 112 } ; 113 [fnc.vfs_release_phone] 114 } 115 } 116 } 117 } + 118 119 ?truncate { 120 tentative { 121 alternative (fs; tmpfs; fat; devfs) { 122 [fnc.vfs_grab_phone] ; 123 !fs.truncate ; 124 [fnc.vfs_release_phone] 125 } 126 } 127 } + 128 129 ?fstat { 130 tentative { 131 ?ipc_m_data_read /* struct stat */ { 132 alternative (fs; tmpfs; fat; devfs) { 133 [fnc.vfs_grab_phone] ; 134 !fs.stat { 135 !fs.ipc_m_data_read /* forward struct stat */ 136 } ; 137 [fnc.vfs_release_phone] 138 } 139 } 140 } 141 } + 142 143 ?stat { 144 ?ipc_m_data_write /* path */ ; 145 tentative { 146 ?ipc_m_data_read /* struct stat */ { 147 alternative (fs; tmpfs; fat; devfs) { 148 [fnc.vfs_lookup_internal] ; 149 tentative { 150 !fs.stat { 151 !fs.ipc_m_data_read /* forward struct stat */ 152 } 153 } 154 } 155 } 156 } 157 } + 158 159 ?mkdir { 160 ?ipc_m_data_write /* path */ ; 161 tentative { 162 alternative (fs; tmpfs; fat; devfs) { 163 [fnc.vfs_lookup_internal] 164 } 165 } 166 } + 167 168 ?unlink { 169 ?ipc_m_data_write /* path */ ; 170 tentative { 171 alternative (fs; tmpfs; fat; devfs) { 172 [fnc.vfs_lookup_internal] 173 } 174 } 175 } + 176 177 ?rename { 178 ?ipc_m_data_write /* old path */ ; 179 tentative { 180 ?ipc_m_data_write /* new path */ ; 181 tentative { 182 alternative (fs; tmpfs; fat; devfs) { 183 [fnc.vfs_lookup_internal] /* lookup old path */ ; 184 tentative { 185 [fnc.vfs_lookup_internal] /* lookup parent of new path */ ; 186 tentative { 187 [fnc.vfs_lookup_internal] /* destroy old link for the new path */ ; 188 tentative { 189 [fnc.vfs_lookup_internal] /* create new link for the new path */ ; 190 tentative { 191 [fnc.vfs_lookup_internal] /* destroy link for the old path */ 192 } 193 } 194 } 195 } 196 } 197 } 198 } 199 } + 200 201 ?sync { 202 tentative { 203 alternative (fs; tmpfs; fat; devfs) { 204 !fs.sync 205 } 206 } 207 } + 208 209 ?seek 210 211 )* ; 212 ?ipc_m_phone_hungup 128 129 )* ; 130 ?vfs.IPC_M_PHONE_HUNGUP 131 )*
Note:
See TracChangeset
for help on using the changeset viewer.