From cf36b70e8dd8755e7dac6eb516169f586e78566d Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 31 Dec 2014 10:56:05 +0100 Subject: IMFS: Replace node union with individual struct This reduces the average node size. Add and use IMFS_GENERIC_INITIALIZER(). --- cpukit/libblock/src/blkdev-imfs.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'cpukit/libblock') diff --git a/cpukit/libblock/src/blkdev-imfs.c b/cpukit/libblock/src/blkdev-imfs.c index d6134f94b1..7a2d00bcaf 100644 --- a/cpukit/libblock/src/blkdev-imfs.c +++ b/cpukit/libblock/src/blkdev-imfs.c @@ -229,13 +229,13 @@ static const rtems_filesystem_file_handlers_r rtems_blkdev_imfs_node = { static IMFS_jnode_t *rtems_blkdev_imfs_initialize( IMFS_jnode_t *node, - const IMFS_types_union *info + void *arg ) { rtems_blkdev_imfs_context *ctx; rtems_disk_device *dd; - node = IMFS_node_initialize_generic(node, info); + node = IMFS_node_initialize_generic(node, arg); ctx = IMFS_generic_get_context_by_node(node); dd = &ctx->dd; @@ -244,7 +244,7 @@ static IMFS_jnode_t *rtems_blkdev_imfs_initialize( return node; } -static IMFS_jnode_t *rtems_blkdev_imfs_destroy(IMFS_jnode_t *node) +static void rtems_blkdev_imfs_destroy(IMFS_jnode_t *node) { rtems_blkdev_imfs_context *ctx = IMFS_generic_get_context_by_node(node); rtems_disk_device *dd = &ctx->dd; @@ -260,16 +260,15 @@ static IMFS_jnode_t *rtems_blkdev_imfs_destroy(IMFS_jnode_t *node) free(ctx); - return node; + IMFS_node_destroy_default(node); } -static const IMFS_node_control rtems_blkdev_imfs_control = { - .imfs_type = IMFS_GENERIC, - .handlers = &rtems_blkdev_imfs_node, - .node_initialize = rtems_blkdev_imfs_initialize, - .node_remove = IMFS_node_remove_default, - .node_destroy = rtems_blkdev_imfs_destroy -}; +static const IMFS_node_control rtems_blkdev_imfs_control = + IMFS_GENERIC_INITIALIZER( + &rtems_blkdev_imfs_node, + rtems_blkdev_imfs_initialize, + rtems_blkdev_imfs_destroy + ); rtems_status_code rtems_blkdev_create( const char *device, -- cgit v1.2.3