Changeset cf7b3e0 in mainline for contrib/arch/uspace/srv
- Timestamp:
- 2009-09-16T22:46:58Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 51d4040
- Parents:
- 57688fe2
- Location:
- contrib/arch/uspace/srv
- Files:
-
- 3 added
- 14 edited
-
bd/bd.adl (modified) (3 diffs)
-
bd/rd/rd.adl (modified) (2 diffs)
-
fs/devfs/devfs.adl (modified) (2 diffs)
-
fs/devfs/devfs.bp (added)
-
fs/devfs/devfs_server.bp (modified) (1 diff)
-
fs/fat/fat.adl (modified) (1 diff)
-
fs/fat/fat.bp (added)
-
fs/fat/fat_server.bp (modified) (1 diff)
-
fs/tmpfs/tmpfs.adl (modified) (1 diff)
-
fs/tmpfs/tmpfs.bp (added)
-
fs/tmpfs/tmpfs_server.bp (modified) (1 diff)
-
kbd/kbd.adl (modified) (3 diffs)
-
loader/loader.adl (modified) (3 diffs)
-
ns/service.adl (modified) (1 diff)
-
pci/pci.adl (modified) (2 diffs)
-
vfs/vfs.adl (modified) (3 diffs)
-
vfs/vfs.bp (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
contrib/arch/uspace/srv/bd/bd.adl
r57688fe2 rcf7b3e0 1 1 interface bd extends service { 2 /* Establish connection */3 ipcarg_t ipc_m_connect_me_to(void);4 5 2 /* Share out data buffer */ 6 3 ipcarg_t ipc_m_share_out(in ipcarg_t as_area_base, in ipcarg_t as_area_size, in ipcarg_t flags, out ipcarg_t dst_as_area_base); … … 14 11 /* Write blocks via shared data buffer */ 15 12 ipcarg_t write_blocks(in ipcarg_t index_lower, in ipcarg_t index_upper, in ipcarg_t count); 16 17 /* Close connection */18 ipcarg_t ipc_m_phone_hungup(void);19 13 protocol: 20 14 [bd.bp] … … 26 20 [/uspace/lib/libc/subsume%rd] 27 21 28 delegate bd to rd:bd;22 delegate rd to rd:rd; 29 23 30 24 subsume rd:ns to ns; 31 subsume rd:devmap to devmap;25 subsume rd:devmap_driver to devmap_driver; 32 26 }; -
contrib/arch/uspace/srv/bd/rd/rd.adl
r57688fe2 rcf7b3e0 1 interface rd extends bd; 2 1 3 frame rd { 2 4 provides: 3 bd bd;5 rd rd; 4 6 requires: 5 7 [/uspace/lib/libc/requires] … … 7 9 devmap_driver devmap_driver; 8 10 protocol: 9 [/uspace/lib/libc/protocol] +11 [/uspace/lib/libc/protocol] | 10 12 [rd.bp] 11 13 }; -
contrib/arch/uspace/srv/fs/devfs/devfs.adl
r57688fe2 rcf7b3e0 1 interface devfs extends fs { 2 protocol: 3 [devfs.bp] 4 }; 5 1 6 frame devfs { 2 7 provides: 3 fsfs;8 devfs devfs; 4 9 requires: 5 10 [/uspace/lib/libc/requires] … … 9 14 service device; 10 15 protocol: 11 [/uspace/lib/libc/protocol] +16 [/uspace/lib/libc/protocol] | 12 17 [devfs_server.bp] 13 18 }; -
contrib/arch/uspace/srv/fs/devfs/devfs_server.bp
r57688fe2 rcf7b3e0 1 1 [/uspace/lib/libc/fnc.devmap_get_phone] ; 2 2 !ns.ipc_m_connect_me_to /* vfs */ ; 3 [/uspace/lib/libfs/fnc.fs_register] ; 4 ( 5 ?fs.ipc_m_connect_me_to ; 6 ( 7 ?fs.mounted { 8 ?fs.ipc_m_data_write /* mount options */ 9 } + 10 11 ?fs.lookup { 12 tentative { 13 [/uspace/lib/libc/fnc.devmap_device_get_handle] ; 14 tentative { 15 [/uspace/lib/libc/fnc.devmap_device_connect] 16 } 17 } 18 } + 19 20 ?fs.open_node { 21 tentative { 22 [/uspace/lib/libc/fnc.devmap_device_connect] 23 } 24 } + 25 26 ?fs.read { 27 tentative { 28 ?fs.ipc_m_data_read /* payload */ { 29 !device.read { 30 !device.ipc_m_data_read /* forward */ 31 } 32 } + 33 ( 34 [/uspace/lib/libc/fnc.devmap_device_get_count] ; 35 [/uspace/lib/libc/fnc.devmap_device_get_devices] 36 ) 37 } 38 } + 39 40 ?fs.write { 41 tentative { 42 ?fs.ipc_m_data_write /* payload */ { 43 !device.write { 44 !device.ipc_m_data_write /* forward */ 45 } 46 } 47 } 48 } + 49 50 ?fs.stat { 51 ?fs.ipc_m_data_read /* struct data */ 52 } + 53 54 ?fs.close { 55 !device.ipc_m_phone_hungup 56 } + 57 58 ?fs.mount + 59 ?fs.truncate + 60 ?fs.destroy + 61 ?fs.sync 62 )* ; 63 ?fs.ipc_m_phone_hungup 64 )* ; 65 !vfs.ipc_m_phone_hungup 3 [/uspace/lib/libfs/fnc.fs_register] -
contrib/arch/uspace/srv/fs/fat/fat.adl
r57688fe2 rcf7b3e0 1 interface fat extends fs { 2 protocol: 3 [fat.bp] 4 }; 5 1 6 frame fat { 2 7 provides: 3 f s fs;8 fat fat; 4 9 requires: 5 10 [/uspace/lib/libc/requires] 6 11 vfs vfs; 7 12 ns ns; 8 bd bd;13 rd rd; 9 14 protocol: 10 [/uspace/lib/libc/protocol] +15 [/uspace/lib/libc/protocol] | 11 16 [fat_server.bp] 12 17 }; -
contrib/arch/uspace/srv/fs/fat/fat_server.bp
r57688fe2 rcf7b3e0 1 1 !ns.ipc_m_connect_me_to /* vfs */ ; 2 [/uspace/lib/libfs/fnc.fs_register] ; 3 ( 4 ?fs.ipc_m_connect_me_to ; 5 ( 6 ?fs.mounted { 7 ?fs.ipc_m_data_write /* mount options */ 8 } + 9 10 ?fs.mount { 11 [/uspace/lib/libfs/fnc.libfs_mount] 12 } + 13 14 ?fs.lookup { 15 [/uspace/lib/libfs/fnc.libfs_lookup] 16 } + 17 18 ?fs.open_node { 19 [/uspace/lib/libfs/fnc.libfs_open_node] 20 } + 21 22 ?fs.read { 23 tentative { 24 ?fs.ipc_m_data_read /* payload */ 25 } 26 } + 27 28 ?fs.write { 29 tentative { 30 ?fs.ipc_m_data_write /* payload */ 31 } 32 } + 33 34 ?fs.stat { 35 [/uspace/lib/libfs/fnc.libfs_stat] 36 } + 37 38 ?fs.truncate + 39 ?fs.close + 40 ?fs.destroy + 41 ?fs.sync 42 )* ; 43 ?fs.ipc_m_phone_hungup 44 )* ; 45 !vfs.ipc_m_phone_hungup 2 [/uspace/lib/libfs/fnc.fs_register] -
contrib/arch/uspace/srv/fs/tmpfs/tmpfs.adl
r57688fe2 rcf7b3e0 1 interface tmpfs extends fs { 2 protocol: 3 [tmpfs.bp] 4 }; 5 1 6 frame tmpfs { 2 7 provides: 3 fsfs;8 tmpfs tmpfs; 4 9 requires: 5 10 [/uspace/lib/libc/requires] 6 11 vfs vfs; 7 12 ns ns; 8 bd bd;13 rd rd; 9 14 protocol: 10 [/uspace/lib/libc/protocol] +15 [/uspace/lib/libc/protocol] | 11 16 [tmpfs_server.bp] 12 17 }; -
contrib/arch/uspace/srv/fs/tmpfs/tmpfs_server.bp
r57688fe2 rcf7b3e0 1 1 !ns.ipc_m_connect_me_to /* vfs */ ; 2 [/uspace/lib/libfs/fnc.fs_register] ; 3 ( 4 ?fs.ipc_m_connect_me_to ; 5 ( 6 ?fs.mounted { 7 ?fs.ipc_m_data_write /* mount options */ 8 } + 9 10 ?fs.mount { 11 [/uspace/lib/libfs/fnc.libfs_mount] 12 } + 13 14 ?fs.lookup { 15 [/uspace/lib/libfs/fnc.libfs_lookup] 16 } + 17 18 ?fs.open_node { 19 [/uspace/lib/libfs/fnc.libfs_open_node] 20 } + 21 22 ?fs.read { 23 tentative { 24 ?fs.ipc_m_data_read /* payload */ 25 } 26 } + 27 28 ?fs.write { 29 tentative { 30 ?fs.ipc_m_data_write /* payload */ 31 } 32 } + 33 34 ?fs.stat { 35 [/uspace/lib/libfs/fnc.libfs_stat] 36 } + 37 38 ?fs.truncate + 39 ?fs.close + 40 ?fs.destroy + 41 ?fs.sync 42 )* ; 43 ?fs.ipc_m_phone_hungup 44 )* ; 45 !vfs.ipc_m_phone_hungup 2 [/uspace/lib/libfs/fnc.fs_register] -
contrib/arch/uspace/srv/kbd/kbd.adl
r57688fe2 rcf7b3e0 1 1 interface kbd extends service { 2 /* Establish connection */3 ipcarg_t ipc_m_connect_me_to(void);4 5 2 /* Callback connection */ 6 3 ipcarg_t ipc_m_connect_to_me(void); … … 11 8 /* Reclaim hardware */ 12 9 ipcarg_t reclaim(void); 13 14 /* Close connection */15 ipcarg_t ipc_m_phone_hungup(void);16 10 protocol: 17 11 [kbd.bp] … … 33 27 ns ns; 34 28 protocol: 35 [/uspace/lib/libc/protocol] +29 [/uspace/lib/libc/protocol] | 36 30 [kbd_server.bp] 37 31 }; -
contrib/arch/uspace/srv/loader/loader.adl
r57688fe2 rcf7b3e0 1 1 interface loader extends service { 2 /* Establish connection */3 ipcarg_t ipc_m_connect_me_to(void);4 5 2 /* Set task pathname */ 6 3 ipcarg_t set_pathname(in_copy string pathname); … … 20 17 /* Run binary */ 21 18 ipcarg_t run(void); 22 23 /* Close connection */24 ipcarg_t ipc_m_phone_hungup(void);25 19 protocol: 26 20 [loader.bp] … … 34 28 ns ns; 35 29 protocol: 36 [/uspace/lib/libc/protocol] +30 [/uspace/lib/libc/protocol] | 37 31 [loader_server.bp] 38 32 }; -
contrib/arch/uspace/srv/ns/service.adl
r57688fe2 rcf7b3e0 3 3 (this call is forwarded from Naming Service or Device Mapper) */ 4 4 ipcarg_t ipc_m_connect_me_to(void); 5 6 /* Close connection */ 7 ipcarg_t ipc_m_phone_hungup(void); 5 8 }; -
contrib/arch/uspace/srv/pci/pci.adl
r57688fe2 rcf7b3e0 1 1 interface pci extends service { 2 /* Establish connection */3 ipcarg_t ipc_m_connect_me_to(void);4 5 /* Close connection */6 ipcarg_t ipc_m_phone_hungup(void);7 2 protocol: 8 3 [pci.bp] … … 16 11 ns ns; 17 12 protocol: 18 [/uspace/lib/libc/protocol] +13 [/uspace/lib/libc/protocol] | 19 14 [pci_server.bp] 20 15 }; -
contrib/arch/uspace/srv/vfs/vfs.adl
r57688fe2 rcf7b3e0 1 1 interface vfs extends service { 2 /* Establish connection */3 ipcarg_t ipc_m_connect_me_to(void);4 5 2 /* Register a filesystem driver */ 6 3 ipcarg_t register(in_copy string name); … … 55 52 56 53 interface fs extends service { 57 /* Establish connection */58 ipcarg_t ipc_m_connect_me_to(void);59 60 54 /* Notify filesystem that it was mounted */ 61 55 ipcarg_t mounted(in ipcarg_t dev_handle, in_copy string opts); … … 87 81 /* Notify on file close */ 88 82 ipcarg_t close(in ipcarg_t dev_handle, in ipcarg_t fs_index); 89 90 /* Close connection */91 ipcarg_t ipc_m_phone_hungup(void);92 83 }; 93 84 94 frame vfs_manager {85 frame dispatcher { 95 86 provides: 96 87 vfs vfs; 97 88 requires: 98 89 [/uspace/lib/libc/requires] 99 fs fs; 90 tmpfs tmpfs; 91 fat fat; 92 devfs devfs; 100 93 ns ns; 101 94 protocol: 102 [/uspace/lib/libc/protocol] +95 [/uspace/lib/libc/protocol] | 103 96 [vfs_server.bp] 104 97 }; 105 98 106 99 architecture vfs { 107 inst vfs_manager vfs;100 inst dispatcher dispatcher; 108 101 inst tmpfs tmpfs; 109 102 inst fat fat; 110 103 inst devfs devfs; 111 104 112 bind vfs:fs to tmpfs:fs;113 bind vfs:fs to fat:fs;114 bind vfs:fs to devfs:fs;105 bind dispatcher:tmpfs to tmpfs:tmpfs; 106 bind dispatcher:fat to fat:fat; 107 bind dispatcher:devfs to devfs:devfs; 115 108 116 bind tmpfs:vfs to vfs:vfs;117 bind fat:vfs to vfs:vfs;118 bind devfs:vfs to vfs:vfs;109 bind tmpfs:vfs to dispatcher:vfs; 110 bind fat:vfs to dispatcher:vfs; 111 bind devfs:vfs to dispatcher:vfs; 119 112 120 delegate vfs to vfs:vfs;113 delegate vfs to dispatcher:vfs; 121 114 122 [/uspace/lib/libc/subsume% vfs]115 [/uspace/lib/libc/subsume%dispatcher] 123 116 [/uspace/lib/libc/subsume%tmpfs] 124 117 [/uspace/lib/libc/subsume%fat] 125 118 [/uspace/lib/libc/subsume%devfs] 126 119 127 subsume vfs:ns to ns;120 subsume dispatcher:ns to ns; 128 121 subsume tmpfs:ns to ns; 129 122 subsume fat:ns to ns; 130 123 subsume devfs:ns to ns; 131 124 132 subsume tmpfs: bd to bd;133 subsume fat: bd to bd;125 subsume tmpfs:rd to rd; 126 subsume fat:rd to rd; 134 127 135 128 subsume devfs:devmap_client to devmap_client; -
contrib/arch/uspace/srv/vfs/vfs.bp
r57688fe2 rcf7b3e0 21 21 ( 22 22 /* root fs */ 23 !fs.mounted ; 24 !fs.ipc_m_data_write /* mount options */ 23 alternative fs tmpfs fat devfs { 24 !fs.mounted ; 25 !fs.ipc_m_data_write /* mount options */ 26 } 25 27 ) + 26 28 ( 27 29 /* non-root fs */ 28 30 tentative { 29 [fnc.vfs_lookup_internal] ; 30 tentative { 31 [fnc.vfs_grab_phone] ; 32 [fnc.vfs_grab_phone] ; 33 !fs.mount ; 34 !fs.ipc_m_connection_clone ; 35 [fnc.vfs_release_phone] ; 31 alternative fs tmpfs fat devfs { 32 [fnc.vfs_lookup_internal] ; 36 33 tentative { 37 !fs.vfs_m_data_write /* mount options */ 38 } ; 39 [fnc.vfs_release_phone] 34 [fnc.vfs_grab_phone] ; 35 [fnc.vfs_grab_phone] ; 36 !fs.mount ; 37 !fs.ipc_m_connection_clone ; 38 [fnc.vfs_release_phone] ; 39 tentative { 40 !fs.vfs_m_data_write /* mount options */ 41 } ; 42 [fnc.vfs_release_phone] 43 } 40 44 } 41 45 } … … 51 55 ?ipc_m_data_write /* path */ ; 52 56 tentative { 53 [fnc.vfs_lookup_internal] ; 54 tentative { 57 alternative fs tmpfs fat devfs { 58 [fnc.vfs_lookup_internal] ; 59 tentative { 60 [fnc.vfs_grab_phone] ; 61 !fs.truncate ; 62 [fnc.vfs_release_phone] 63 } 64 } 65 } 66 } 67 } + 68 69 ?open_node { 70 alternative fs tmpfs fat devfs { 71 [fnc.vfs_open_node_internal] ; 72 tentative { 73 [fnc.vfs_grab_phone] ; 74 !fs.truncate ; 75 [fnc.vfs_release_phone] 76 } 77 } 78 } + 79 80 ?close { 81 tentative { 82 alternative fs tmpfs fat devfs { 83 [fnc.vfs_grab_phone] ; 84 !fs.close ; 85 [fnc.vfs_release_phone] 86 } 87 } 88 } + 89 90 ?read { 91 tentative { 92 ?ipc_m_data_read { 93 alternative fs tmpfs fat devfs { 55 94 [fnc.vfs_grab_phone] ; 56 !fs.truncate ; 95 !fs.read ; 96 !fs.ipc_m_data_read /* forward payload */ ; 57 97 [fnc.vfs_release_phone] 58 98 } … … 61 101 } + 62 102 63 ?open_node { 64 [fnc.vfs_open_node_internal] ; 65 tentative { 66 [fnc.vfs_grab_phone] ; 67 !fs.truncate ; 68 [fnc.vfs_release_phone] 69 } 70 } + 71 72 ?close { 73 tentative { 74 [fnc.vfs_grab_phone] ; 75 !fs.close ; 76 [fnc.vfs_release_phone] 77 } 78 } + 79 80 ?read { 81 tentative { 82 ?ipc_m_data_read { 103 ?write { 104 tentative { 105 ?ipc_m_data_write { 106 alternative fs tmpfs fat devfs { 107 [fnc.vfs_grab_phone] ; 108 !fs.write ; 109 !fs.ipc_m_data_write /* forward payload */ ; 110 [fnc.vfs_release_phone] 111 } 112 } 113 } 114 } + 115 116 ?truncate { 117 tentative { 118 alternative fs tmpfs fat devfs { 83 119 [fnc.vfs_grab_phone] ; 84 !fs.read ; 85 !fs.ipc_m_data_read /* forward payload */ ; 120 !fs.truncate ; 86 121 [fnc.vfs_release_phone] 87 122 } … … 89 124 } + 90 125 91 ?write {92 tentative {93 ?ipc_m_data_write {94 [fnc.vfs_grab_phone] ;95 !fs.write ;96 !fs.ipc_m_data_write /* forward payload */ ;97 [fnc.vfs_release_phone]98 }99 }100 } +101 102 ?truncate {103 tentative {104 [fnc.vfs_grab_phone] ;105 !fs.truncate ;106 [fnc.vfs_release_phone]107 }108 } +109 110 126 ?fstat { 111 127 tentative { 112 128 ?ipc_m_data_read /* struct stat */ { 113 [fnc.vfs_grab_phone] ; 114 !fs.stat ; 115 !fs.ipc_m_data_read /* forward struct stat */ ; 116 [fnc.vfs_release_phone] 129 alternative fs tmpfs fat devfs { 130 [fnc.vfs_grab_phone] ; 131 !fs.stat ; 132 !fs.ipc_m_data_read /* forward struct stat */ ; 133 [fnc.vfs_release_phone] 134 } 117 135 } 118 136 } … … 123 141 tentative { 124 142 ?ipc_m_data_read /* struct stat */ { 125 [fnc.vfs_lookup_internal] ; 126 tentative { 127 !fs.stat ; 128 !fs.ipc_m_data_read /* forward struct stat */ 143 alternative fs tmpfs fat devfs { 144 [fnc.vfs_lookup_internal] ; 145 tentative { 146 !fs.stat ; 147 !fs.ipc_m_data_read /* forward struct stat */ 148 } 129 149 } 130 150 } … … 135 155 ?ipc_m_data_write /* path */ ; 136 156 tentative { 137 [fnc.vfs_lookup_internal] 157 alternative fs tmpfs fat devfs { 158 [fnc.vfs_lookup_internal] 159 } 138 160 } 139 161 } + … … 142 164 ?ipc_m_data_write /* path */ ; 143 165 tentative { 144 [fnc.vfs_lookup_internal] 166 alternative fs tmpfs fat devfs { 167 [fnc.vfs_lookup_internal] 168 } 145 169 } 146 170 } + … … 151 175 ?ipc_m_data_write /* new path */ ; 152 176 tentative { 153 [fnc.vfs_lookup_internal] /* lookup old path */ ; 154 tentative { 155 [fnc.vfs_lookup_internal] /* lookup parent of new path */ ; 156 tentative { 157 [fnc.vfs_lookup_internal] /* destroy old link for the new path */ ; 177 alternative fs tmpfs fat devfs { 178 [fnc.vfs_lookup_internal] /* lookup old path */ ; 179 tentative { 180 [fnc.vfs_lookup_internal] /* lookup parent of new path */ ; 158 181 tentative { 159 [fnc.vfs_lookup_internal] /* create newlink for the new path */ ;182 [fnc.vfs_lookup_internal] /* destroy old link for the new path */ ; 160 183 tentative { 161 [fnc.vfs_lookup_internal] /* destroy link for the old path */ 184 [fnc.vfs_lookup_internal] /* create new link for the new path */ ; 185 tentative { 186 [fnc.vfs_lookup_internal] /* destroy link for the old path */ 187 } 162 188 } 163 189 } … … 170 196 ?sync { 171 197 tentative { 172 !fs.sync 198 alternative fs tmpfs fat devfs { 199 !fs.sync 200 } 173 201 } 174 202 } +
Note:
See TracChangeset
for help on using the changeset viewer.
