diff options
Diffstat (limited to 'cpukit/libfs/src/imfs/imfs_handlers_device.c')
-rw-r--r-- | cpukit/libfs/src/imfs/imfs_handlers_device.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/cpukit/libfs/src/imfs/imfs_handlers_device.c b/cpukit/libfs/src/imfs/imfs_handlers_device.c index df9ea1ae70..625bc39884 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_device.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_device.c @@ -17,11 +17,7 @@ #include "imfs.h" -/* - * Handler table for IMFS device nodes - */ - -const rtems_filesystem_file_handlers_r IMFS_device_handlers = { +static const rtems_filesystem_file_handlers_r IMFS_device_handlers = { device_open, device_close, device_read, @@ -34,3 +30,22 @@ const rtems_filesystem_file_handlers_r IMFS_device_handlers = { rtems_filesystem_default_fsync_or_fdatasync, rtems_filesystem_default_fcntl }; + +static IMFS_jnode_t *IMFS_node_initialize_device( + IMFS_jnode_t *node, + const IMFS_types_union *info +) +{ + node->info.device.major = info->device.major; + node->info.device.minor = info->device.minor; + + return node; +} + +const IMFS_node_control IMFS_node_control_device = { + .imfs_type = IMFS_DEVICE, + .handlers = &IMFS_device_handlers, + .node_initialize = IMFS_node_initialize_device, + .node_remove = IMFS_node_remove_default, + .node_destroy = IMFS_node_destroy_default +}; |