Moved the rmnod callback from the operations table to the handler table.

This commit is contained in:
Jennifer Averett
1999-10-29 15:19:13 +00:00
parent 4bde80720f
commit 4a07d2b866
23 changed files with 82 additions and 42 deletions

View File

@@ -121,6 +121,10 @@ typedef int (*rtems_filesystem_fcntl_t)(
rtems_libio_t *iop
);
typedef int (*rtems_filesystem_rmnod_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef struct {
rtems_filesystem_open_t open;
rtems_filesystem_close_t close;
@@ -135,6 +139,7 @@ typedef struct {
rtems_filesystem_fsync_t fsync;
rtems_filesystem_fdatasync_t fdatasync;
rtems_filesystem_fcntl_t fcntl;
rtems_filesystem_rmnod_t rmnod;
} rtems_filesystem_file_handlers_r;
/*
@@ -193,10 +198,6 @@ typedef int (*rtems_filesystem_freenode_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef int (*rtems_filesystem_rmnod_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef int (* rtems_filesystem_mount_t ) (
rtems_filesystem_mount_table_entry_t *mt_entry /* in */
);
@@ -254,7 +255,6 @@ typedef struct {
rtems_filesystem_unlink_t unlink;
rtems_filesystem_node_type_t node_type;
rtems_filesystem_mknod_t mknod;
rtems_filesystem_rmnod_t rmnod;
rtems_filesystem_chown_t chown;
rtems_filesystem_freenode_t freenod;
rtems_filesystem_mount_t mount;

View File

@@ -33,5 +33,6 @@ rtems_filesystem_file_handlers_r IMFS_device_handlers = {
NULL, /* fpathconf */
NULL, /* fsync */
NULL, /* fdatasync */
NULL /* fcntl */
NULL, /* fcntl */
IMFS_rmnod
};

View File

@@ -33,5 +33,14 @@ rtems_filesystem_file_handlers_r IMFS_directory_handlers = {
NULL, /* fpathconf */
NULL, /* fsync */
IMFS_fdatasync,
IMFS_fcntl
IMFS_fcntl,
IMFS_rmnod
};

View File

@@ -33,5 +33,6 @@ rtems_filesystem_file_handlers_r IMFS_memfile_handlers = {
NULL, /* fpathconf */
NULL, /* fsync */
IMFS_fdatasync,
IMFS_fcntl
IMFS_fcntl,
IMFS_rmnod
};

View File

@@ -37,7 +37,6 @@ rtems_filesystem_operations_table IMFS_ops = {
IMFS_unlink,
IMFS_node_type,
IMFS_mknod,
IMFS_rmnod,
IMFS_chown,
IMFS_freenodinfo,
IMFS_mount,

View File

@@ -121,6 +121,10 @@ typedef int (*rtems_filesystem_fcntl_t)(
rtems_libio_t *iop
);
typedef int (*rtems_filesystem_rmnod_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef struct {
rtems_filesystem_open_t open;
rtems_filesystem_close_t close;
@@ -135,6 +139,7 @@ typedef struct {
rtems_filesystem_fsync_t fsync;
rtems_filesystem_fdatasync_t fdatasync;
rtems_filesystem_fcntl_t fcntl;
rtems_filesystem_rmnod_t rmnod;
} rtems_filesystem_file_handlers_r;
/*
@@ -193,10 +198,6 @@ typedef int (*rtems_filesystem_freenode_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef int (*rtems_filesystem_rmnod_t)(
rtems_filesystem_location_info_t *pathloc /* IN */
);
typedef int (* rtems_filesystem_mount_t ) (
rtems_filesystem_mount_table_entry_t *mt_entry /* in */
);
@@ -254,7 +255,6 @@ typedef struct {
rtems_filesystem_unlink_t unlink;
rtems_filesystem_node_type_t node_type;
rtems_filesystem_mknod_t mknod;
rtems_filesystem_rmnod_t rmnod;
rtems_filesystem_chown_t chown;
rtems_filesystem_freenode_t freenod;
rtems_filesystem_mount_t mount;

View File

@@ -53,12 +53,12 @@ int rmdir(
* Use the filesystems rmnod to remove the node.
*/
if ( !loc.ops->rmnod ){
if ( !loc.handlers->rmnod ){
rtems_filesystem_freenode( &loc );
set_errno_and_return_minus_one( ENOTSUP );
}
result = (*loc.ops->rmnod)( &loc );
result = (*loc.handlers->rmnod)( &loc );
rtems_filesystem_freenode( &loc );