source: rtems/cpukit/libfs/src/devfs/devfs_init.c @ dace9ed1

4.115
Last change on this file since dace9ed1 was dace9ed1, checked in by Jennifer Averett <Jennifer.Averett@…>, on 06/29/10 at 19:37:28

2010-06-29 Jennifer.Averett <Jennifer.Averett@…>

  • libcsupport/include/rtems/libio.h, libfs/Makefile.am, libfs/src/defaults/default_chown.c, libfs/src/defaults/default_evalpath.c, libfs/src/defaults/default_freenode.c, libfs/src/defaults/default_fsmount.c, libfs/src/defaults/default_link.c, libfs/src/defaults/default_mount.c, libfs/src/defaults/default_rename.c, libfs/src/defaults/default_statvfs.c, libfs/src/defaults/default_symlink.c, libfs/src/defaults/default_unlink.c, libfs/src/defaults/default_utime.c, libfs/src/devfs/devfs_init.c, libfs/src/dosfs/msdos_init.c, libfs/src/imfs/imfs_init.c, libfs/src/nfsclient/src/nfs.c, libfs/src/rfs/rtems-rfs-rtems.c, wrapup/Makefile.am: Fixed typo in default names. Added default methods into filesystem tables.
  • libfs/src/defaults/default_close.c, libfs/src/defaults/default_evaluate_link.c, libfs/src/defaults/default_fpathconf.c, libfs/src/defaults/default_fsunmount.c, libfs/src/defaults/default_open.c, libfs/src/defaults/default_unmount.c: New files.
  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2 *  The license and distribution terms for this file may be
3 *  found in the file LICENSE in this distribution or at
4 *  http://www.rtems.com/license/LICENSE.
5 *
6 *  $Id$
7 */
8
9#if HAVE_CONFIG_H
10#include "config.h"
11#endif
12
13#include <stdlib.h>
14#include <rtems.h>
15#include <rtems/seterr.h>
16#include <rtems/score/wkspace.h>
17#include "devfs.h"
18
19rtems_filesystem_operations_table devFS_ops =
20{
21    devFS_evaluate_path,
22    devFS_evaluate_for_make,
23    rtems_filesystem_default_link,
24    rtems_filesystem_default_unlink,
25    devFS_node_type,
26    devFS_mknod,
27    rtems_filesystem_default_chown,
28    rtems_filesystem_default_freenode,
29    rtems_filesystem_default_mount,
30    devFS_initialize,
31    rtems_filesystem_default_unmount,
32    rtems_filesystem_default_fsunmount,
33    rtems_filesystem_default_utime,
34    rtems_filesystem_default_evaluate_link,
35    rtems_filesystem_default_symlink,
36    rtems_filesystem_default_readlink,
37    rtems_filesystem_default_rename,
38    rtems_filesystem_default_statvfs
39};
40
41
42rtems_filesystem_file_handlers_r devFS_file_handlers =
43{
44    devFS_open,
45    devFS_close,
46    devFS_read,
47    devFS_write,
48    devFS_ioctl,
49    rtems_filesystem_default_lseek,
50    devFS_stat,
51    rtems_filesystem_default_fchmod,
52    rtems_filesystem_default_ftruncate,
53    rtems_filesystem_default_fpathconf,
54    rtems_filesystem_default_fsync,
55    rtems_filesystem_default_fdatasync,
56    rtems_filesystem_default_fcntl,
57    rtems_filesystem_default_rmnod
58};
59
60
61
62int devFS_initialize(
63  rtems_filesystem_mount_table_entry_t *temp_mt_entry,
64  const void                           *data
65)
66{
67  rtems_device_name_t  *device_name_table;
68
69  /* allocate device only filesystem name table */
70  device_name_table = (rtems_device_name_t *)_Workspace_Allocate(
71        sizeof( rtems_device_name_t ) * ( rtems_device_table_size )
72        );
73
74  /* no memory for device filesystem */
75  if (!device_name_table)
76      rtems_set_errno_and_return_minus_one( ENOMEM );
77
78  memset(
79    device_name_table, 0,
80    sizeof( rtems_device_name_t ) * ( rtems_device_table_size )
81    );
82
83  /* set file handlers */
84  temp_mt_entry->mt_fs_root.handlers     = &devFS_file_handlers;
85  temp_mt_entry->mt_fs_root.ops          = &devFS_ops;
86
87  /* Set the node_access to device name table */
88  temp_mt_entry->mt_fs_root.node_access = (void *)device_name_table;
89
90  return 0;
91}
92
Note: See TracBrowser for help on using the repository browser.