Changeset 50 for trunk/kernel/vfs/devfs.c
- Timestamp:
- Jun 26, 2017, 3:15:11 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/vfs/devfs.c
r23 r50 139 139 xptr_t new_inode_xp; 140 140 141 printk("\n @@@ devfs_chdev : 0 / name = %s\n", name );142 141 devfs_dmsg("\n[INFO] %s : create dentry for %s\n", __FUNCTION__ , name ); 142 143 143 // create vfs_dentry in local cluster 144 144 error = vfs_dentry_create( FS_TYPE_DEVFS, … … 146 146 parent, 147 147 &new_dentry_xp ); 148 149 printk("\n @@@ devfs_chdev : 1 / name = %s\n", name );150 151 148 if ( error ) 152 149 { … … 156 153 } 157 154 158 printk("\n @@@ devfs_chdev : 2 / name = %s\n", name );159 155 devfs_dmsg("\n[INFO] %s : create inode for %s\n", __FUNCTION__ , name ); 156 160 157 // create vfs_inode in local cluster 161 158 uint32_t attr = 0; … … 171 168 gid, 172 169 &new_inode_xp ); 173 174 printk("\n @@@ devfs_chdev : 3 / name = %s\n", name );175 176 170 if( error ) 177 171 { … … 229 223 ///// step 1 : all clusters initialize local DEVFS context ///// 230 224 231 printk("\n @@@ devfs_mount : 0 / name = %s\n", devfs_root_name );232 233 225 devfs_ctx_init( vfs_ctx , parent_inode_xp ); 234 226 235 227 ///// step 2 : cluster_0 creates DEVFS root ///// 236 237 printk("\n @@@ devfs_mount : 1 / name = %s\n", devfs_root_name );238 228 239 229 if( local_cxy == 0 ) … … 242 232 parent_inode_xp, 243 233 &root_inode_xp ); 244 printk("\n @@@ devfs_mount : 2\n");245 246 234 } 247 235 … … 251 239 ///// step 3 : all clusters create "internal" directory and chdevs ///// 252 240 253 printk("\n @@@ devfs_mount : 3 / name = %s\n", devfs_root_name ); 241 // TODO check device existence : (chdev_xp != XPTR_NULL) in chdev_dir 254 242 255 243 snprintf( node_name , 16 , "internal_%x" , local_cxy ); 256 257 printk("\n @@@ devfs_mount : 4 / name = %s\n", devfs_root_name );258 244 259 245 devfs_create_directory( node_name, 260 246 root_inode_xp, 261 247 &internal_inode_xp ); 262 263 printk("\n @@@ devfs_mount : 5 / name = %s\n", devfs_root_name );264 248 265 249 // create ICU chdev inode … … 270 254 &chdev_inode_xp ); 271 255 272 printk("\n @@@ devfs_mount : 6 / name = %s\n", devfs_root_name );273 274 256 // create MMC chdev inode 275 257 chdev_ptr = (chdev_t *)GET_PTR( chdev_dir.mmc[local_cxy] ); … … 279 261 &chdev_inode_xp ); 280 262 281 printk("\n @@@ devfs_mount : 7 / name = %s\n", devfs_root_name );282 283 263 // create DMA chdev inodes (one DMA channel per core) 284 264 for( channel = 0 ; channel < cluster->cores_nr ; channel++ ) … … 290 270 (vfs_inode_t *)GET_PTR( internal_inode_xp ), 291 271 &chdev_inode_xp ); 292 293 printk("\n @@@ devfs_mount : 8 / name = %s\n", devfs_root_name );294 295 272 } 296 273 297 274 ///// step 4 : cluster_io creates "external" directory and chdevs ///// 275 276 // TODO check device existence : (chdev_xp != XPTR_NULL) in chdev_dir 298 277 299 278 if( local_cxy == cluster->io_cxy ) … … 302 281 root_inode_xp, 303 282 &external_inode_xp ); 304 305 printk("\n @@@ devfs_mount : 9 / name = %s\n", devfs_root_name );306 283 307 284 // create IOB chdev inode … … 312 289 &chdev_inode_xp ); 313 290 314 printk("\n @@@ devfs_mount : 10 / name = %s\n", devfs_root_name );315 316 291 // create PIC chdev inode 317 292 chdev_ptr = (chdev_t *)GET_PTR( chdev_dir.pic ); … … 374 349 (vfs_inode_t *)GET_PTR( external_inode_xp ), 375 350 &chdev_inode_xp ); 376 printk("\n @@@ devfs_mount : 11 / name = %s\n", devfs_root_name );377 378 351 } 379 352 } … … 676 649 677 650 678 const struct vfs_file_op_s devfs_f_op =679 {680 .open = devfs_open,681 .read = devfs_read,682 .write = devfs_write,683 .lseek = devfs_lseek,684 .mmap = devfs_mmap,685 .munmap = devfs_munmap,686 .readdir = devfs_readdir,687 .close = devfs_close,688 .release = devfs_release689 };690 691 651 */ 692 652
Note: See TracChangeset
for help on using the changeset viewer.