forked from Imagelibrary/rtems
Added support for configuring base filesystem. First attempt at
a full mount table at initialization. This is the wrong place to mount filesystems 2-n since no device drivers are initialized yet.
This commit is contained in:
@@ -41,9 +41,13 @@ mode_t rtems_filesystem_umask;
|
||||
void rtems_filesystem_initialize( void )
|
||||
{
|
||||
#if !defined(RTEMS_UNIX)
|
||||
#if 0
|
||||
int i;
|
||||
#endif
|
||||
int status;
|
||||
rtems_filesystem_mount_table_entry_t *first_entry;
|
||||
|
||||
rtems_filesystem_mount_table_entry_t *entry;
|
||||
rtems_filesystem_mount_table_t *mt;
|
||||
|
||||
/*
|
||||
* Set the default umask to "022".
|
||||
*/
|
||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
||||
|
||||
/*
|
||||
* mount the first filesystem.
|
||||
*
|
||||
* NOTE: XXX This really needs to be read from a table of filesystems
|
||||
* to mount initially and the miniIMFS needs to be shaken out.
|
||||
*/
|
||||
|
||||
status = mount(
|
||||
&first_entry,
|
||||
&IMFS_ops,
|
||||
RTEMS_FILESYSTEM_READ_WRITE,
|
||||
NULL,
|
||||
NULL );
|
||||
if( status == -1 ){
|
||||
if ( rtems_filesystem_mount_table_size == 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||
}
|
||||
|
||||
rtems_filesystem_link_counts = 0;
|
||||
|
||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
||||
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
rtems_filesystem_root = entry->mt_fs_root;
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
|
||||
/*
|
||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
||||
@@ -86,5 +86,29 @@ void rtems_filesystem_initialize( void )
|
||||
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||
if ( status != 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
|
||||
/*
|
||||
* This code if if'ed 0 out because you can't mount another
|
||||
* filesystem properly until the mount point it will be
|
||||
* mounted onto is created. Moreover, if it is going to
|
||||
* use a device, then it is REALLY unfair to attempt this
|
||||
* before device drivers are initialized.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Now if there are other filesystems to mount, go for it.
|
||||
*/
|
||||
|
||||
for ( i=1 ; i < rtems_filesystem_mount_table_size ; i++ ) {
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -41,9 +41,13 @@ mode_t rtems_filesystem_umask;
|
||||
void rtems_filesystem_initialize( void )
|
||||
{
|
||||
#if !defined(RTEMS_UNIX)
|
||||
#if 0
|
||||
int i;
|
||||
#endif
|
||||
int status;
|
||||
rtems_filesystem_mount_table_entry_t *first_entry;
|
||||
|
||||
rtems_filesystem_mount_table_entry_t *entry;
|
||||
rtems_filesystem_mount_table_t *mt;
|
||||
|
||||
/*
|
||||
* Set the default umask to "022".
|
||||
*/
|
||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
||||
|
||||
/*
|
||||
* mount the first filesystem.
|
||||
*
|
||||
* NOTE: XXX This really needs to be read from a table of filesystems
|
||||
* to mount initially and the miniIMFS needs to be shaken out.
|
||||
*/
|
||||
|
||||
status = mount(
|
||||
&first_entry,
|
||||
&IMFS_ops,
|
||||
RTEMS_FILESYSTEM_READ_WRITE,
|
||||
NULL,
|
||||
NULL );
|
||||
if( status == -1 ){
|
||||
if ( rtems_filesystem_mount_table_size == 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||
}
|
||||
|
||||
rtems_filesystem_link_counts = 0;
|
||||
|
||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
||||
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
rtems_filesystem_root = entry->mt_fs_root;
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
|
||||
/*
|
||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
||||
@@ -86,5 +86,29 @@ void rtems_filesystem_initialize( void )
|
||||
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||
if ( status != 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
|
||||
/*
|
||||
* This code if if'ed 0 out because you can't mount another
|
||||
* filesystem properly until the mount point it will be
|
||||
* mounted onto is created. Moreover, if it is going to
|
||||
* use a device, then it is REALLY unfair to attempt this
|
||||
* before device drivers are initialized.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Now if there are other filesystems to mount, go for it.
|
||||
*/
|
||||
|
||||
for ( i=1 ; i < rtems_filesystem_mount_table_size ; i++ ) {
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -41,9 +41,13 @@ mode_t rtems_filesystem_umask;
|
||||
void rtems_filesystem_initialize( void )
|
||||
{
|
||||
#if !defined(RTEMS_UNIX)
|
||||
#if 0
|
||||
int i;
|
||||
#endif
|
||||
int status;
|
||||
rtems_filesystem_mount_table_entry_t *first_entry;
|
||||
|
||||
rtems_filesystem_mount_table_entry_t *entry;
|
||||
rtems_filesystem_mount_table_t *mt;
|
||||
|
||||
/*
|
||||
* Set the default umask to "022".
|
||||
*/
|
||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
||||
|
||||
/*
|
||||
* mount the first filesystem.
|
||||
*
|
||||
* NOTE: XXX This really needs to be read from a table of filesystems
|
||||
* to mount initially and the miniIMFS needs to be shaken out.
|
||||
*/
|
||||
|
||||
status = mount(
|
||||
&first_entry,
|
||||
&IMFS_ops,
|
||||
RTEMS_FILESYSTEM_READ_WRITE,
|
||||
NULL,
|
||||
NULL );
|
||||
if( status == -1 ){
|
||||
if ( rtems_filesystem_mount_table_size == 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||
}
|
||||
|
||||
rtems_filesystem_link_counts = 0;
|
||||
|
||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
||||
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
rtems_filesystem_root = entry->mt_fs_root;
|
||||
rtems_filesystem_current = rtems_filesystem_root;
|
||||
|
||||
/*
|
||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
||||
@@ -86,5 +86,29 @@ void rtems_filesystem_initialize( void )
|
||||
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||
if ( status != 0 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
|
||||
/*
|
||||
* This code if if'ed 0 out because you can't mount another
|
||||
* filesystem properly until the mount point it will be
|
||||
* mounted onto is created. Moreover, if it is going to
|
||||
* use a device, then it is REALLY unfair to attempt this
|
||||
* before device drivers are initialized.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Now if there are other filesystems to mount, go for it.
|
||||
*/
|
||||
|
||||
for ( i=1 ; i < rtems_filesystem_mount_table_size ; i++ ) {
|
||||
mt = &rtems_filesystem_mount_table[0];
|
||||
|
||||
status = mount(
|
||||
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||
|
||||
if ( status == -1 )
|
||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user