diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-12-31 10:56:05 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-01-27 06:54:22 +0100 |
commit | cf36b70e8dd8755e7dac6eb516169f586e78566d (patch) | |
tree | 97200818ec5dfeaa4e137a572fcbb4db746842b1 /cpukit/libfs/src/imfs/imfs_handlers_memfile.c | |
parent | user/conf.t: Fix typo (diff) | |
download | rtems-cf36b70e8dd8755e7dac6eb516169f586e78566d.tar.bz2 |
IMFS: Replace node union with individual struct
This reduces the average node size.
Add and use IMFS_GENERIC_INITIALIZER().
Diffstat (limited to '')
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_memfile.c | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c index fbc3054bdf..db682bbbbb 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_memfile.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_memfile.c @@ -25,16 +25,16 @@ static int IMFS_stat_file( struct stat *buf ) { - const IMFS_jnode_t *node = loc->node_access; + const IMFS_file_t *file = loc->node_access; - buf->st_size = node->info.file.size; + buf->st_size = file->File.size; buf->st_blksize = imfs_rq_memfile_bytes_per_block; return IMFS_stat( loc, buf ); } static const rtems_filesystem_file_handlers_r IMFS_memfile_handlers = { - .open_h = memfile_open, + .open_h = rtems_filesystem_default_open, .close_h = rtems_filesystem_default_close, .read_h = memfile_read, .write_h = memfile_write, @@ -51,17 +51,35 @@ static const rtems_filesystem_file_handlers_r IMFS_memfile_handlers = { .writev_h = rtems_filesystem_default_writev }; +static const rtems_filesystem_file_handlers_r IMFS_linfile_handlers = { + .open_h = IMFS_linfile_open, + .close_h = rtems_filesystem_default_close, + .read_h = IMFS_linfile_read, + .write_h = rtems_filesystem_default_write, + .ioctl_h = rtems_filesystem_default_ioctl, + .lseek_h = rtems_filesystem_default_lseek_file, + .fstat_h = IMFS_stat_file, + .ftruncate_h = rtems_filesystem_default_ftruncate, + .fsync_h = rtems_filesystem_default_fsync_or_fdatasync_success, + .fdatasync_h = rtems_filesystem_default_fsync_or_fdatasync_success, + .fcntl_h = rtems_filesystem_default_fcntl, + .kqfilter_h = rtems_filesystem_default_kqfilter, + .poll_h = rtems_filesystem_default_poll, + .readv_h = rtems_filesystem_default_readv, + .writev_h = rtems_filesystem_default_writev +}; + const IMFS_node_control IMFS_node_control_memfile = { - .imfs_type = IMFS_MEMORY_FILE, .handlers = &IMFS_memfile_handlers, + .node_size = sizeof(IMFS_file_t), .node_initialize = IMFS_node_initialize_default, .node_remove = IMFS_node_remove_default, .node_destroy = IMFS_memfile_remove }; const IMFS_node_control IMFS_node_control_linfile = { - .imfs_type = IMFS_LINEAR_FILE, - .handlers = &IMFS_memfile_handlers, + .handlers = &IMFS_linfile_handlers, + .node_size = sizeof(IMFS_file_t), .node_initialize = IMFS_node_initialize_default, .node_remove = IMFS_node_remove_default, .node_destroy = IMFS_node_destroy_default |