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_mknod.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 'cpukit/libfs/src/imfs/imfs_mknod.c')
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_mknod.c | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_mknod.c b/cpukit/libfs/src/imfs/imfs_mknod.c index 5bb8c2da80..9800642180 100644 --- a/cpukit/libfs/src/imfs/imfs_mknod.c +++ b/cpukit/libfs/src/imfs/imfs_mknod.c @@ -23,27 +23,17 @@ #include "imfs.h" -static void get_type_and_info_by_mode_and_dev( - mode_t mode, - dev_t dev, - IMFS_jnode_types_t *type, - IMFS_types_union *info -) +static IMFS_jnode_types_t get_type( mode_t mode ) { if ( S_ISDIR( mode ) ) { - *type = IMFS_DIRECTORY; + return IMFS_DIRECTORY; } else if ( S_ISBLK( mode ) || S_ISCHR( mode ) ) { - *type = IMFS_DEVICE; - rtems_filesystem_split_dev_t( - dev, - info->device.major, - info->device.minor - ); + return IMFS_DEVICE; } else if (S_ISFIFO( mode )) { - *type = IMFS_FIFO; + return IMFS_FIFO; } else { IMFS_assert( S_ISREG( mode ) ); - *type = IMFS_MEMORY_FILE; + return IMFS_MEMORY_FILE; } } @@ -57,12 +47,11 @@ int IMFS_mknod( { int rv = 0; IMFS_jnode_types_t type; - IMFS_types_union info; IMFS_jnode_t *new_node; - get_type_and_info_by_mode_and_dev( mode, dev, &type, &info ); + type = get_type( mode ); - new_node = IMFS_create_node( parentloc, type, name, namelen, mode, &info ); + new_node = IMFS_create_node( parentloc, type, name, namelen, mode, &dev ); if ( new_node != NULL ) { IMFS_jnode_t *parent = parentloc->node_access; |