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 )
|
void rtems_filesystem_initialize( void )
|
||||||
{
|
{
|
||||||
#if !defined(RTEMS_UNIX)
|
#if !defined(RTEMS_UNIX)
|
||||||
|
#if 0
|
||||||
|
int i;
|
||||||
|
#endif
|
||||||
int status;
|
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".
|
* Set the default umask to "022".
|
||||||
*/
|
*/
|
||||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* mount the first filesystem.
|
* 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(
|
if ( rtems_filesystem_mount_table_size == 0 )
|
||||||
&first_entry,
|
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||||
&IMFS_ops,
|
|
||||||
RTEMS_FILESYSTEM_READ_WRITE,
|
mt = &rtems_filesystem_mount_table[0];
|
||||||
NULL,
|
|
||||||
NULL );
|
status = mount(
|
||||||
if( status == -1 ){
|
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||||
|
|
||||||
|
if ( status == -1 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||||
}
|
|
||||||
|
|
||||||
rtems_filesystem_link_counts = 0;
|
rtems_filesystem_link_counts = 0;
|
||||||
|
rtems_filesystem_root = entry->mt_fs_root;
|
||||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
rtems_filesystem_current = rtems_filesystem_root;
|
||||||
|
|
||||||
rtems_filesystem_current = rtems_filesystem_root;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
* 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 );
|
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||||
if ( status != 0 )
|
if ( status != 0 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
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
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,13 @@ mode_t rtems_filesystem_umask;
|
|||||||
void rtems_filesystem_initialize( void )
|
void rtems_filesystem_initialize( void )
|
||||||
{
|
{
|
||||||
#if !defined(RTEMS_UNIX)
|
#if !defined(RTEMS_UNIX)
|
||||||
|
#if 0
|
||||||
|
int i;
|
||||||
|
#endif
|
||||||
int status;
|
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".
|
* Set the default umask to "022".
|
||||||
*/
|
*/
|
||||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* mount the first filesystem.
|
* 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(
|
if ( rtems_filesystem_mount_table_size == 0 )
|
||||||
&first_entry,
|
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||||
&IMFS_ops,
|
|
||||||
RTEMS_FILESYSTEM_READ_WRITE,
|
mt = &rtems_filesystem_mount_table[0];
|
||||||
NULL,
|
|
||||||
NULL );
|
status = mount(
|
||||||
if( status == -1 ){
|
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||||
|
|
||||||
|
if ( status == -1 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||||
}
|
|
||||||
|
|
||||||
rtems_filesystem_link_counts = 0;
|
rtems_filesystem_link_counts = 0;
|
||||||
|
rtems_filesystem_root = entry->mt_fs_root;
|
||||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
rtems_filesystem_current = rtems_filesystem_root;
|
||||||
|
|
||||||
rtems_filesystem_current = rtems_filesystem_root;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
* 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 );
|
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||||
if ( status != 0 )
|
if ( status != 0 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
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
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,9 +41,13 @@ mode_t rtems_filesystem_umask;
|
|||||||
void rtems_filesystem_initialize( void )
|
void rtems_filesystem_initialize( void )
|
||||||
{
|
{
|
||||||
#if !defined(RTEMS_UNIX)
|
#if !defined(RTEMS_UNIX)
|
||||||
|
#if 0
|
||||||
|
int i;
|
||||||
|
#endif
|
||||||
int status;
|
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".
|
* Set the default umask to "022".
|
||||||
*/
|
*/
|
||||||
@@ -54,26 +58,22 @@ void rtems_filesystem_initialize( void )
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* mount the first filesystem.
|
* 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(
|
if ( rtems_filesystem_mount_table_size == 0 )
|
||||||
&first_entry,
|
rtems_fatal_error_occurred( 0xABCD0001 );
|
||||||
&IMFS_ops,
|
|
||||||
RTEMS_FILESYSTEM_READ_WRITE,
|
mt = &rtems_filesystem_mount_table[0];
|
||||||
NULL,
|
|
||||||
NULL );
|
status = mount(
|
||||||
if( status == -1 ){
|
&entry, mt->fs_ops, mt->fsoptions, mt->device, mt->mount_point );
|
||||||
|
|
||||||
|
if ( status == -1 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0002 );
|
rtems_fatal_error_occurred( 0xABCD0002 );
|
||||||
}
|
|
||||||
|
|
||||||
rtems_filesystem_link_counts = 0;
|
rtems_filesystem_link_counts = 0;
|
||||||
|
rtems_filesystem_root = entry->mt_fs_root;
|
||||||
rtems_filesystem_root = first_entry->mt_fs_root;
|
rtems_filesystem_current = rtems_filesystem_root;
|
||||||
|
|
||||||
rtems_filesystem_current = rtems_filesystem_root;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Traditionally RTEMS devices are under "/dev" so install this directory.
|
* 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 );
|
status = mkdir( "/dev", S_IRWXU | S_IRWXG | S_IRWXO );
|
||||||
if ( status != 0 )
|
if ( status != 0 )
|
||||||
rtems_fatal_error_occurred( 0xABCD0003 );
|
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
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user