Changeset 625 for trunk/kernel/fs/vfs.c
- Timestamp:
- Apr 10, 2019, 10:09:39 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/fs/vfs.c
r623 r625 175 175 else 176 176 { 177 ctx = NULL;178 assert( false , "illegal file system type = %d\n" , fs_type );177 printk("\n[ERROR] in %s : illegal FS type\n", __FUNCTION__ ); 178 return -1; 179 179 } 180 180 … … 185 185 { 186 186 printk("\n[ERROR] in %s : cannot allocate inum\n", __FUNCTION__ ); 187 return ENOMEM;187 return -1; 188 188 } 189 189 … … 378 378 { 379 379 380 assert( (inode != NULL) , "inode pointer is NULL \n" );380 assert( (inode != NULL) , "inode pointer is NULL" ); 381 381 382 382 uint32_t page_id; … … 386 386 uint32_t size = inode->size; 387 387 388 assert( (mapper != NULL) , "mapper pointer is NULL \n" );388 assert( (mapper != NULL) , "mapper pointer is NULL" ); 389 389 390 390 #if DEBUG_VFS_INODE_LOAD_ALL … … 560 560 void vfs_file_destroy( vfs_file_t * file ) 561 561 { 562 563 // check refcount564 // assert( (file->refcount == 0) , "refcount non zero\n" );565 566 562 kmem_req_t req; 567 563 req.ptr = file; … … 766 762 767 763 // check argument 768 assert( (file_xp != XPTR_NULL), "file_xp == XPTR_NULL \n" );764 assert( (file_xp != XPTR_NULL), "file_xp == XPTR_NULL" ); 769 765 770 766 // get cluster and local pointer on remote file descriptor … … 776 772 777 773 // check inode type 778 assert( (inode_type == INODE_TYPE_FILE), " inode type is not INODE_TYPE_FILE" );774 assert( (inode_type == INODE_TYPE_FILE), "bad inode type" ); 779 775 780 776 // get mapper pointer and file offset from file descriptor 781 777 file_offset = hal_remote_l32( XPTR( file_cxy , &file_ptr->offset ) ); 782 mapper = (mapper_t *)hal_remote_lpt( XPTR( file_cxy , &file_ptr->mapper ) );778 mapper = hal_remote_lpt( XPTR( file_cxy , &file_ptr->mapper ) ); 783 779 784 780 // move data between mapper and buffer … … 788 784 buffer, 789 785 size ); 786 if( error ) 787 { 788 printk("\n[ERROR] in %s : cannot move data", __FUNCTION__ ); 789 return -1; 790 } 790 791 791 792 // update file offset in file descriptor 792 793 hal_remote_atomic_add( XPTR( file_cxy , &file_ptr->offset ) , size ); 793 794 794 if( error ) 795 { 796 return -1; 797 } 795 #if DEBUG_VFS_USER_MOVE 796 char name[CONFIG_VFS_MAX_NAME_LENGTH]; 797 uint32_t cycle = (uint32_t)hal_get_cycles(); 798 thread_t * this = CURRENT_THREAD; 799 vfs_inode_t * inode = hal_remote_lpt( XPTR( file_cxy , &file_ptr->inode ) ); 800 vfs_inode_get_name( XPTR( file_cxy , inode ) , name ); 801 if( cycle > DEBUG_VFS_USER_MOVE ) 802 { 803 if( to_buffer ) 804 printk("\n[%s] thread[%x,%x] moves %d bytes from <%s> mapper to buffer (%x) / cycle %d\n", 805 __FUNCTION__ , this->process->pid, this->trdid, size, name, buffer ); 806 else 807 printk("\n[%s] thread[%x,%x] moves %d bytes from buffer (%x) to <%s> mapper / cycle %d\n", 808 __FUNCTION__ , this->process->pid, this->trdid, size, buffer, name ); 809 } 810 #endif 798 811 799 812 return size; … … 816 829 817 830 // check argument 818 assert( (file_xp != XPTR_NULL) , "file_xp == XPTR_NULL \n" );831 assert( (file_xp != XPTR_NULL) , "file_xp == XPTR_NULL" ); 819 832 820 833 // get cluster and local pointer on remote file descriptor … … 825 838 inode_type = hal_remote_l32( XPTR( file_cxy , &file_ptr->type ) ); 826 839 827 // action depends on inode type 828 if( inode_type == INODE_TYPE_FILE ) 829 { 830 // get mapper pointers and file offset from file descriptor 831 file_offset = hal_remote_l32( XPTR( file_cxy , &file_ptr->offset ) ); 832 mapper_ptr = hal_remote_lpt( XPTR( file_cxy , &file_ptr->mapper ) ); 833 mapper_xp = XPTR( file_cxy , mapper_ptr ); 834 835 // move data between mapper and buffer 836 error = mapper_move_kernel( mapper_xp, 837 to_buffer, 838 file_offset, 839 buffer_xp, 840 size ); 841 if( error ) return -1; 842 } 843 else 844 { 845 printk("\n[ERROR] in %s : inode is not a file", __FUNCTION__ ); 840 // check inode type 841 assert( (inode_type == INODE_TYPE_FILE), "bad file type" ); 842 843 // get mapper pointers and file offset from file descriptor 844 file_offset = hal_remote_l32( XPTR( file_cxy , &file_ptr->offset ) ); 845 mapper_ptr = hal_remote_lpt( XPTR( file_cxy , &file_ptr->mapper ) ); 846 mapper_xp = XPTR( file_cxy , mapper_ptr ); 847 848 // move data between mapper and buffer 849 error = mapper_move_kernel( mapper_xp, 850 to_buffer, 851 file_offset, 852 buffer_xp, 853 size ); 854 if( error ) 855 { 856 printk("\n[ERROR] in %s : cannot move data", __FUNCTION__ ); 846 857 return -1; 847 858 } 859 860 #if DEBUG_VFS_KERNEL_MOVE 861 char name[CONFIG_VFS_MAX_NAME_LENGTH]; 862 uint32_t cycle = (uint32_t)hal_get_cycles(); 863 thread_t * this = CURRENT_THREAD; 864 cxy_t buffer_cxy = GET_CXY( buffer_xp ); 865 void * buffer_ptr = GET_PTR( buffer_xp ); 866 vfs_inode_t * inode = hal_remote_lpt( XPTR( file_cxy , &file_ptr->inode ) ); 867 vfs_inode_get_name( XPTR( file_cxy , inode ) , name ); 868 if( cycle > DEBUG_VFS_KERNEL_MOVE ) 869 { 870 if( to_buffer ) 871 printk("\n[%s] thread[%x,%x] moves %d bytes from <%s> mapper to buffer(%x,%x) / cycle %d\n", 872 __FUNCTION__ , this->process->pid, this->trdid, size, name, buffer_cxy, buffer_ptr ); 873 else 874 printk("\n[%s] thread[%x,%x] moves %d bytes from buffer(%x,%x) to <%s> mapper / cycle %d\n", 875 __FUNCTION__ , this->process->pid, this->trdid, size, buffer_cxy, buffer_ptr, name ); 876 } 877 #endif 848 878 849 879 return 0; … … 866 896 867 897 // check argument 868 assert( (file_xp != XPTR_NULL) , "file_xp == XPTR_NULL \n" );898 assert( (file_xp != XPTR_NULL) , "file_xp == XPTR_NULL" ); 869 899 870 900 // get cluster and local pointer on remote file descriptor … … 946 976 947 977 // check argument 948 assert( (file_xp != XPTR_NULL) , "file_xp is XPTR_NULL \n" );978 assert( (file_xp != XPTR_NULL) , "file_xp is XPTR_NULL" ); 949 979 950 980 thread_t * this = CURRENT_THREAD; … … 997 1027 #endif 998 1028 999 //////// 2) update file size in all parent directory mapper(s) and ondevice1029 //////// 2) update file size in all parent directory mapper(s) and update device 1000 1030 1001 1031 // get pointers on remote inode … … 1052 1082 vfs_inode_get_name( XPTR( parent_cxy , parent_inode_ptr ) , parent_name ); 1053 1083 if( DEBUG_VFS_CLOSE < cycle ) 1054 printk("\n[%s] thread[%x,%x] updated size of <%s> in parent <%s>\n",1055 __FUNCTION__, process->pid, this->trdid, name, parent_name );1084 printk("\n[%s] thread[%x,%x] updated <%s> in <%s> / size = %d bytes\n", 1085 __FUNCTION__, process->pid, this->trdid, name, parent_name, size ); 1056 1086 #endif 1057 1087 … … 1114 1144 #if DEBUG_VFS_CLOSE 1115 1145 if( DEBUG_VFS_CLOSE < cycle ) 1116 printk("\n[%s] thread[%x,%x] reset all fd-array copies for <% x>\n",1146 printk("\n[%s] thread[%x,%x] reset all fd-array copies for <%s>\n", 1117 1147 __FUNCTION__, process->pid, this->trdid, name ); 1118 1148 #endif … … 1132 1162 cycle = (uint32_t)hal_get_cycles(); 1133 1163 if( DEBUG_VFS_CLOSE < cycle ) 1134 printk("\n[%s] thread[%x,%x] exit / <%s> closed/ cycle %d\n",1135 __FUNCTION__, process->pid, this->trdid, name, cycle );1164 printk("\n[%s] thread[%x,%x] exit / closed <%s> in process %x / cycle %d\n", 1165 __FUNCTION__, process->pid, this->trdid, name, process->pid, cycle ); 1136 1166 #endif 1137 1167 … … 2029 2059 vfs_inode_type_t inode_type; // target inode type 2030 2060 2031 // set lookup working mode 2032 assert( (rights == 0), __FUNCTION__, 2033 "access rights non implemented yet\n" ); 2061 // check lookup working mode 2062 assert( (rights == 0), "access rights non implemented yet" ); 2034 2063 2035 2064 // get extended pointer on target inode … … 2051 2080 // TODO implement this function 2052 2081 2053 assert( false , "not implemented \n" );2082 assert( false , "not implemented" ); 2054 2083 2055 2084 return 0; … … 2061 2090 uint32_t rights ) 2062 2091 { 2063 assert( false , "not implemented cwd_xp: %x, path <%s>, rights %x\n", 2064 cwd_xp, path, rights ); 2092 assert( false , "not implemented %l %x %x", cwd_xp, path, rights ); 2065 2093 return 0; 2066 2094 } … … 2084 2112 vfs_inode_type_t inode_type; 2085 2113 uint32_t inode_size; 2086 uint32_t inode_inum;2087 2114 uint32_t inode_attr; 2088 2115 uint32_t inode_dirty; 2116 void * inode_extd; 2117 2089 2118 xptr_t children_xp; // extended pointer on children xhtab 2090 2119 … … 2115 2144 " " }; // level 15 2116 2145 2117 assert( (inode_xp != XPTR_NULL) , "inode_xp cannot be NULL \n" );2118 assert( (name_xp != XPTR_NULL) , "name_xp cannot be NULL \n" );2119 assert( (indent < 16) , "depth cannot be larger than 15 \n" );2146 assert( (inode_xp != XPTR_NULL) , "inode_xp cannot be NULL" ); 2147 assert( (name_xp != XPTR_NULL) , "name_xp cannot be NULL" ); 2148 assert( (indent < 16) , "depth cannot be larger than 15" ); 2120 2149 2121 2150 // get current inode cluster and local pointer … … 2126 2155 inode_type = hal_remote_l32( XPTR( inode_cxy , &inode_ptr->type ) ); 2127 2156 inode_size = hal_remote_l32( XPTR( inode_cxy , &inode_ptr->size ) ); 2128 inode_inum = hal_remote_l32( XPTR( inode_cxy , &inode_ptr->inum ) );2129 2157 inode_attr = hal_remote_l32( XPTR( inode_cxy , &inode_ptr->attr ) ); 2158 inode_extd = hal_remote_lpt( XPTR( inode_cxy , &inode_ptr->extend ) ); 2130 2159 mapper_ptr = hal_remote_lpt( XPTR( inode_cxy , &inode_ptr->mapper ) ); 2131 2160 … … 2137 2166 2138 2167 // display inode 2139 nolock_printk("%s<%s> : %s / inum%d / %d bytes / dirty %d / cxy %x / inode %x / mapper %x\n",2140 indent_str[indent], name, vfs_inode_type_str( inode_type ),2141 inode_inum,inode_size, inode_dirty, inode_cxy, inode_ptr, mapper_ptr );2168 nolock_printk("%s<%s> : %s / extd %d / %d bytes / dirty %d / cxy %x / inode %x / mapper %x\n", 2169 indent_str[indent], name, vfs_inode_type_str( inode_type ), (uint32_t)inode_extd, 2170 inode_size, inode_dirty, inode_cxy, inode_ptr, mapper_ptr ); 2142 2171 2143 2172 // scan directory entries when current inode is a directory … … 2405 2434 // check pathname / root_xp consistency 2406 2435 assert( ((pathname[0] != '/') || (root_xp == process->vfs_root_xp)), 2407 "root inode must be VFS root for path <%s> \n", pathname );2436 "root inode must be VFS root for path <%s>", pathname ); 2408 2437 2409 2438 #if DEBUG_VFS_LOOKUP … … 2550 2579 if ( error ) // child not found in parent mapper 2551 2580 { 2552 if ( last && create ) // add a brand new dentry in parent 2581 if ( last && create ) // add a brand new dentry in parent directory 2553 2582 { 2554 2583 error = vfs_new_dentry_init( parent_xp, … … 2705 2734 uint32_t child_size; 2706 2735 2707 #if DEBUG_VFS_NEW_ CHILD_INIT2736 #if DEBUG_VFS_NEW_DENTRY_INIT 2708 2737 char parent_name[CONFIG_VFS_MAX_NAME_LENGTH]; 2709 2738 char child_name[CONFIG_VFS_MAX_NAME_LENGTH]; … … 2712 2741 uint32_t cycle = (uint32_t)hal_get_cycles(); 2713 2742 thread_t * this = CURRENT_THREAD; 2714 if( DEBUG_VFS_NEW_ CHILD_INIT < cycle )2743 if( DEBUG_VFS_NEW_DENTRY_INIT < cycle ) 2715 2744 printk("\n[%s] thread[%x,%x] enter / parent <%s> / child <%s> / cycle %d\n", 2716 2745 __FUNCTION__ , this->process->pid, this->trdid, parent_name, child_name, cycle ); … … 2741 2770 } 2742 2771 2743 #if( DEBUG_VFS_NEW_ CHILD_INIT & 1)2744 if( DEBUG_VFS_NEW_ CHILD_INIT < cycle )2745 printk("\n[%s] thread[%x,%x] allocated one FAT clusterto <%s>\n",2746 __FUNCTION__ , this->process->pid, this->trdid, c hild_name );2772 #if( DEBUG_VFS_NEW_DENTRY_INIT & 1) 2773 if( DEBUG_VFS_NEW_DENTRY_INIT < cycle ) 2774 printk("\n[%s] thread[%x,%x] allocated FAT cluster %x to <%s>\n", 2775 __FUNCTION__ , this->process->pid, this->trdid, cluster, child_name ); 2747 2776 #endif 2748 2777 … … 2775 2804 } 2776 2805 2777 #if DEBUG_VFS_NEW_ CHILD_INIT2806 #if DEBUG_VFS_NEW_DENTRY_INIT 2778 2807 cycle = (uint32_t)hal_get_cycles(); 2779 if( DEBUG_VFS_NEW_ CHILD_INIT < cycle )2808 if( DEBUG_VFS_NEW_DENTRY_INIT < cycle ) 2780 2809 printk("\n[%s] thread[%x,%x] exit / parent <%s> / child <%s> / cycle %d\n", 2781 2810 __FUNCTION__ , this->process->pid, this->trdid, parent_name, child_name, cycle ); … … 3085 3114 3086 3115 // check buffer overflow 3087 assert( (index >= 0) , "kernel buffer too small \n" );3116 assert( (index >= 0) , "kernel buffer too small" ); 3088 3117 3089 3118 } … … 3111 3140 3112 3141 // check buffer overflow 3113 assert( (index >= 0) , "kernel buffer too small \n" );3142 assert( (index >= 0) , "kernel buffer too small" ); 3114 3143 3115 3144 // update pathname … … 3379 3408 error_t error = 0; 3380 3409 3381 assert( (page_xp != XPTR_NULL) , "page pointer is NULL \n" );3410 assert( (page_xp != XPTR_NULL) , "page pointer is NULL" ); 3382 3411 3383 3412 page_t * page_ptr = GET_PTR( page_xp ); … … 3387 3416 mapper_t * mapper = hal_remote_lpt( XPTR( page_cxy , &page_ptr->mapper ) ); 3388 3417 3389 assert( (mapper != NULL) , "no mapper for page \n" );3418 assert( (mapper != NULL) , "no mapper for page" ); 3390 3419 3391 3420 // get FS type … … 3407 3436 else 3408 3437 { 3409 assert( false , "undefined file system type \n" );3438 assert( false , "undefined file system type" ); 3410 3439 } 3411 3440 … … 3420 3449 error_t error = 0; 3421 3450 3422 assert( (inode != NULL) , "inode pointer is NULL \n" );3423 assert( (dentry != NULL) , "dentry pointer is NULL \n" );3451 assert( (inode != NULL) , "inode pointer is NULL" ); 3452 assert( (dentry != NULL) , "dentry pointer is NULL" ); 3424 3453 3425 3454 mapper_t * mapper = inode->mapper; 3426 3455 3427 assert( (mapper != NULL) , "mapper pointer is NULL \n" );3456 assert( (mapper != NULL) , "mapper pointer is NULL" ); 3428 3457 3429 3458 // get FS type … … 3445 3474 else 3446 3475 { 3447 assert( false , "undefined file system type \n" );3476 assert( false , "undefined file system type" ); 3448 3477 } 3449 3478 … … 3458 3487 error_t error = 0; 3459 3488 3460 assert( (inode != NULL) , "inode pointer is NULL \n" );3461 assert( (dentry != NULL) , "dentry pointer is NULL \n" );3489 assert( (inode != NULL) , "inode pointer is NULL" ); 3490 assert( (dentry != NULL) , "dentry pointer is NULL" ); 3462 3491 3463 3492 mapper_t * mapper = inode->mapper; 3464 3493 3465 assert( (mapper != NULL) , "mapper pointer is NULL \n" );3494 assert( (mapper != NULL) , "mapper pointer is NULL" ); 3466 3495 3467 3496 // get FS type … … 3483 3512 else 3484 3513 { 3485 assert( false , "undefined file system type \n" );3514 assert( false , "undefined file system type" ); 3486 3515 } 3487 3516 … … 3498 3527 3499 3528 // check arguments 3500 assert( (parent != NULL) , "parent pointer is NULL \n");3501 assert( (child_xp != XPTR_NULL) , "child pointer is NULL \n");3529 assert( (parent != NULL) , "parent pointer is NULL"); 3530 assert( (child_xp != XPTR_NULL) , "child pointer is NULL"); 3502 3531 3503 3532 // get parent inode FS type … … 3511 3540 else if( fs_type == FS_TYPE_RAMFS ) 3512 3541 { 3513 assert( false , "should not be called for RAMFS \n" );3542 assert( false , "should not be called for RAMFS" ); 3514 3543 } 3515 3544 else if( fs_type == FS_TYPE_DEVFS ) 3516 3545 { 3517 assert( false , "should not be called for DEVFS \n" );3546 assert( false , "should not be called for DEVFS" ); 3518 3547 } 3519 3548 else 3520 3549 { 3521 assert( false , "undefined file system type \n" );3550 assert( false , "undefined file system type" ); 3522 3551 } 3523 3552 … … 3534 3563 3535 3564 // check arguments 3536 assert( (inode != NULL) , "inode pointer is NULL \n");3537 assert( (dentry != NULL) , "dentry pointer is NULL \n");3565 assert( (inode != NULL) , "inode pointer is NULL"); 3566 assert( (dentry != NULL) , "dentry pointer is NULL"); 3538 3567 3539 3568 // get parent inode FS type … … 3547 3576 else if( fs_type == FS_TYPE_RAMFS ) 3548 3577 { 3549 assert( false , "should not be called for RAMFS \n" );3578 assert( false , "should not be called for RAMFS" ); 3550 3579 } 3551 3580 else if( fs_type == FS_TYPE_DEVFS ) 3552 3581 { 3553 assert( false , "should not be called for DEVFS \n" );3582 assert( false , "should not be called for DEVFS" ); 3554 3583 } 3555 3584 else 3556 3585 { 3557 assert( false , "undefined file system type \n" );3586 assert( false , "undefined file system type" ); 3558 3587 } 3559 3588 … … 3574 3603 3575 3604 // check arguments 3576 assert( (inode != NULL) , "parent pointer is NULL \n");3577 assert( (array != NULL) , "child pointer is NULL \n");3605 assert( (inode != NULL) , "parent pointer is NULL"); 3606 assert( (array != NULL) , "child pointer is NULL"); 3578 3607 assert( (detailed == false) , "detailed argument not supported\n"); 3579 3608 … … 3602 3631 else if( fs_type == FS_TYPE_RAMFS ) 3603 3632 { 3604 assert( false , "should not be called for RAMFS \n" );3633 assert( false , "should not be called for RAMFS" ); 3605 3634 } 3606 3635 else if( fs_type == FS_TYPE_DEVFS ) … … 3616 3645 else 3617 3646 { 3618 assert( false , "undefined file system type \n" );3647 assert( false , "undefined file system type" ); 3619 3648 } 3620 3649 … … 3629 3658 3630 3659 // check arguments 3631 assert( (inode != NULL) , "inode pointer is NULL \n");3660 assert( (inode != NULL) , "inode pointer is NULL"); 3632 3661 3633 3662 // get inode FS type … … 3641 3670 else if( fs_type == FS_TYPE_RAMFS ) 3642 3671 { 3643 assert( false , "should not be called for RAMFS \n" );3672 assert( false , "should not be called for RAMFS" ); 3644 3673 } 3645 3674 else if( fs_type == FS_TYPE_DEVFS ) 3646 3675 { 3647 assert( false , "should not be called for DEVFS \n" );3676 assert( false , "should not be called for DEVFS" ); 3648 3677 } 3649 3678 else 3650 3679 { 3651 assert( false , "undefined file system type \n" );3680 assert( false , "undefined file system type" ); 3652 3681 } 3653 3682 … … 3668 3697 else if( fs_type == FS_TYPE_RAMFS ) 3669 3698 { 3670 assert( false , "should not be called for RAMFS \n" );3699 assert( false , "should not be called for RAMFS" ); 3671 3700 } 3672 3701 else if( fs_type == FS_TYPE_DEVFS ) 3673 3702 { 3674 assert( false , "should not be called for DEVFS \n" );3703 assert( false , "should not be called for DEVFS" ); 3675 3704 } 3676 3705 else 3677 3706 { 3678 assert( false , "undefined file system type \n" );3707 assert( false , "undefined file system type" ); 3679 3708 } 3680 3709 … … 3695 3724 else if( fs_type == FS_TYPE_RAMFS ) 3696 3725 { 3697 assert( false , "should not be called for RAMFS \n" );3726 assert( false , "should not be called for RAMFS" ); 3698 3727 } 3699 3728 else if( fs_type == FS_TYPE_DEVFS ) 3700 3729 { 3701 assert( false , "should not be called for DEVFS \n" );3730 assert( false , "should not be called for DEVFS" ); 3702 3731 } 3703 3732 else 3704 3733 { 3705 assert( false , "undefined file system type \n" );3734 assert( false , "undefined file system type" ); 3706 3735 } 3707 3736 … … 3723 3752 else if( fs_type == FS_TYPE_RAMFS ) 3724 3753 { 3725 assert( false , "should not be called for RAMFS \n" );3754 assert( false , "should not be called for RAMFS" ); 3726 3755 } 3727 3756 else if( fs_type == FS_TYPE_DEVFS ) 3728 3757 { 3729 assert( false , "should not be called for DEVFS \n" );3758 assert( false , "should not be called for DEVFS" ); 3730 3759 } 3731 3760 else 3732 3761 { 3733 assert( false , "undefined file system type \n" );3762 assert( false , "undefined file system type" ); 3734 3763 } 3735 3764 … … 3743 3772 error_t error = 0; 3744 3773 3745 assert( (inode_xp != XPTR_NULL) , "inode pointer is NULL \n")3774 assert( (inode_xp != XPTR_NULL) , "inode pointer is NULL") 3746 3775 3747 3776 vfs_inode_t * inode_ptr = GET_PTR( inode_xp ); … … 3751 3780 mapper_t * mapper = hal_remote_lpt( XPTR( inode_cxy , &inode_ptr->mapper ) ); 3752 3781 3753 assert( (mapper != NULL) , "mapper pointer is NULL \n")3782 assert( (mapper != NULL) , "mapper pointer is NULL") 3754 3783 3755 3784 // get FS type from mapper … … 3763 3792 else if( fs_type == FS_TYPE_RAMFS ) 3764 3793 { 3765 assert( false , "should not be called for RAMFS \n" );3794 assert( false , "should not be called for RAMFS" ); 3766 3795 } 3767 3796 else if( fs_type == FS_TYPE_DEVFS ) 3768 3797 { 3769 assert( false , "should not be called for DEVFS \n" );3798 assert( false , "should not be called for DEVFS" ); 3770 3799 } 3771 3800 else 3772 3801 { 3773 assert( false , "undefined file system type \n" );3802 assert( false , "undefined file system type" ); 3774 3803 } 3775 3804
Note: See TracChangeset
for help on using the changeset viewer.