之前讲到mount函数中会调用如下函数。那么这个函数中做了什么呢?下面对IMFS_initialize_support函数进行分析,该函数在cpukit/libfs/src/imfs/imfs_initsupp.c中。
int IMFS_initialize_support(
rtems_filesystem_mount_table_entry_t *mt_entry,
const void *data
)
{
const IMFS_mount_data *mount_data = data;
IMFS_fs_info_t *fs_info = mount_data->fs_info;
IMFS_jnode_t *root_node;
fs_info->mknod_controls = mount_data->mknod_controls;
root_node = IMFS_initialize_node(
&fs_info->Root_directory.Node,
&fs_info->mknod_controls->directory->node_control,
"",
0,
(S_IFDIR | 0755),
NULL
);
IMFS_assert( root_node != NULL );
mt_entry->fs_info = fs_info;
mt_entry->ops = mount_data->ops;
mt_entry->pathconf_limits_and_options = &IMFS_LIMITS_AND_OPTIONS;
mt_entry->mt_fs_root->location.node_access