forked from Imagelibrary/rtems
Split null handlers table to own file and renamed.
Renamed IMFS handler tables to include IMFS prefix.
This commit is contained in:
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Operations Tables for the IMFS
|
* Null Filesystem Operations Tables
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-1998.
|
* COPYRIGHT (c) 1989-1998.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
@@ -14,73 +14,13 @@
|
|||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "imfs.h"
|
#include <rtems/libio.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on memfile entities.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r memfile_handlers = {
|
|
||||||
memfile_open,
|
|
||||||
memfile_close,
|
|
||||||
memfile_read,
|
|
||||||
memfile_write,
|
|
||||||
memfile_ioctl,
|
|
||||||
memfile_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
memfile_ftruncate,
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on directories.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r dir_handlers = {
|
|
||||||
imfs_dir_open,
|
|
||||||
imfs_dir_close,
|
|
||||||
imfs_dir_read,
|
|
||||||
NULL, /* write */
|
|
||||||
NULL, /* ioctl */
|
|
||||||
imfs_dir_lseek,
|
|
||||||
imfs_dir_fstat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handler table for IMFS device nodes
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r device_handlers = {
|
|
||||||
device_open,
|
|
||||||
device_close,
|
|
||||||
device_read,
|
|
||||||
device_write,
|
|
||||||
device_ioctl,
|
|
||||||
device_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
NULL, /* fdatasync */
|
|
||||||
NULL /* fcntl */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set of null operations handlers.
|
* Set of null operations handlers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r null_handlers = {
|
rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
|
||||||
NULL, /* open */
|
NULL, /* open */
|
||||||
NULL, /* close */
|
NULL, /* close */
|
||||||
NULL, /* read */
|
NULL, /* read */
|
||||||
|
|||||||
@@ -210,10 +210,9 @@ typedef enum {
|
|||||||
* Shared Data
|
* Shared Data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern rtems_filesystem_file_handlers_r device_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_device_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r memfile_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r dir_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_directory_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r null_handlers;
|
|
||||||
extern rtems_filesystem_operations_table IMFS_ops;
|
extern rtems_filesystem_operations_table IMFS_ops;
|
||||||
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -36,17 +36,17 @@ int IMFS_Set_handlers(
|
|||||||
|
|
||||||
switch( node->type ) {
|
switch( node->type ) {
|
||||||
case IMFS_DIRECTORY:
|
case IMFS_DIRECTORY:
|
||||||
loc->handlers = &dir_handlers;
|
loc->handlers = &IMFS_directory_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_DEVICE:
|
case IMFS_DEVICE:
|
||||||
loc->handlers = &device_handlers;
|
loc->handlers = &IMFS_device_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_SYM_LINK:
|
case IMFS_SYM_LINK:
|
||||||
case IMFS_HARD_LINK:
|
case IMFS_HARD_LINK:
|
||||||
loc->handlers = &null_handlers;
|
loc->handlers = &rtems_filesystem_null_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_MEMORY_FILE:
|
case IMFS_MEMORY_FILE:
|
||||||
loc->handlers = &memfile_handlers;
|
loc->handlers = &IMFS_memfile_handlers;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Operations Tables for the IMFS
|
* Null Filesystem Operations Tables
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-1998.
|
* COPYRIGHT (c) 1989-1998.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
@@ -14,73 +14,13 @@
|
|||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "imfs.h"
|
#include <rtems/libio.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on memfile entities.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r memfile_handlers = {
|
|
||||||
memfile_open,
|
|
||||||
memfile_close,
|
|
||||||
memfile_read,
|
|
||||||
memfile_write,
|
|
||||||
memfile_ioctl,
|
|
||||||
memfile_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
memfile_ftruncate,
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on directories.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r dir_handlers = {
|
|
||||||
imfs_dir_open,
|
|
||||||
imfs_dir_close,
|
|
||||||
imfs_dir_read,
|
|
||||||
NULL, /* write */
|
|
||||||
NULL, /* ioctl */
|
|
||||||
imfs_dir_lseek,
|
|
||||||
imfs_dir_fstat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handler table for IMFS device nodes
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r device_handlers = {
|
|
||||||
device_open,
|
|
||||||
device_close,
|
|
||||||
device_read,
|
|
||||||
device_write,
|
|
||||||
device_ioctl,
|
|
||||||
device_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
NULL, /* fdatasync */
|
|
||||||
NULL /* fcntl */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set of null operations handlers.
|
* Set of null operations handlers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r null_handlers = {
|
rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
|
||||||
NULL, /* open */
|
NULL, /* open */
|
||||||
NULL, /* close */
|
NULL, /* close */
|
||||||
NULL, /* read */
|
NULL, /* read */
|
||||||
|
|||||||
@@ -210,10 +210,9 @@ typedef enum {
|
|||||||
* Shared Data
|
* Shared Data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern rtems_filesystem_file_handlers_r device_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_device_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r memfile_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r dir_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_directory_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r null_handlers;
|
|
||||||
extern rtems_filesystem_operations_table IMFS_ops;
|
extern rtems_filesystem_operations_table IMFS_ops;
|
||||||
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -36,17 +36,17 @@ int IMFS_Set_handlers(
|
|||||||
|
|
||||||
switch( node->type ) {
|
switch( node->type ) {
|
||||||
case IMFS_DIRECTORY:
|
case IMFS_DIRECTORY:
|
||||||
loc->handlers = &dir_handlers;
|
loc->handlers = &IMFS_directory_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_DEVICE:
|
case IMFS_DEVICE:
|
||||||
loc->handlers = &device_handlers;
|
loc->handlers = &IMFS_device_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_SYM_LINK:
|
case IMFS_SYM_LINK:
|
||||||
case IMFS_HARD_LINK:
|
case IMFS_HARD_LINK:
|
||||||
loc->handlers = &null_handlers;
|
loc->handlers = &rtems_filesystem_null_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_MEMORY_FILE:
|
case IMFS_MEMORY_FILE:
|
||||||
loc->handlers = &memfile_handlers;
|
loc->handlers = &IMFS_memfile_handlers;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
* Set of operations handlers for operations on memfile entities.
|
* Set of operations handlers for operations on memfile entities.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r memfile_handlers = {
|
rtems_filesystem_file_handlers_r IMFS_memfile_handlers = {
|
||||||
memfile_open,
|
memfile_open,
|
||||||
memfile_close,
|
memfile_close,
|
||||||
memfile_read,
|
memfile_read,
|
||||||
@@ -40,7 +40,7 @@ rtems_filesystem_file_handlers_r memfile_handlers = {
|
|||||||
* Set of operations handlers for operations on directories.
|
* Set of operations handlers for operations on directories.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r dir_handlers = {
|
rtems_filesystem_file_handlers_r IMFS_directory_handlers = {
|
||||||
imfs_dir_open,
|
imfs_dir_open,
|
||||||
imfs_dir_close,
|
imfs_dir_close,
|
||||||
imfs_dir_read,
|
imfs_dir_read,
|
||||||
@@ -60,7 +60,7 @@ rtems_filesystem_file_handlers_r dir_handlers = {
|
|||||||
* Handler table for IMFS device nodes
|
* Handler table for IMFS device nodes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r device_handlers = {
|
rtems_filesystem_file_handlers_r IMFS_device_handlers = {
|
||||||
device_open,
|
device_open,
|
||||||
device_close,
|
device_close,
|
||||||
device_read,
|
device_read,
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -210,10 +210,9 @@ typedef enum {
|
|||||||
* Shared Data
|
* Shared Data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern rtems_filesystem_file_handlers_r device_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_device_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r memfile_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r dir_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_directory_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r null_handlers;
|
|
||||||
extern rtems_filesystem_operations_table IMFS_ops;
|
extern rtems_filesystem_operations_table IMFS_ops;
|
||||||
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -36,17 +36,17 @@ int IMFS_Set_handlers(
|
|||||||
|
|
||||||
switch( node->type ) {
|
switch( node->type ) {
|
||||||
case IMFS_DIRECTORY:
|
case IMFS_DIRECTORY:
|
||||||
loc->handlers = &dir_handlers;
|
loc->handlers = &IMFS_directory_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_DEVICE:
|
case IMFS_DEVICE:
|
||||||
loc->handlers = &device_handlers;
|
loc->handlers = &IMFS_device_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_SYM_LINK:
|
case IMFS_SYM_LINK:
|
||||||
case IMFS_HARD_LINK:
|
case IMFS_HARD_LINK:
|
||||||
loc->handlers = &null_handlers;
|
loc->handlers = &rtems_filesystem_null_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_MEMORY_FILE:
|
case IMFS_MEMORY_FILE:
|
||||||
loc->handlers = &memfile_handlers;
|
loc->handlers = &IMFS_memfile_handlers;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ extern "C" {
|
|||||||
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
#define RTEMS_LIBIO_SEM rtems_build_name('L', 'B', 'I', 'O')
|
||||||
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
#define RTEMS_LIBIO_IOP_SEM(n) rtems_build_name('L', 'B', 'I', n)
|
||||||
|
|
||||||
extern rtems_id rtems_libio_semaphore;
|
extern rtems_id rtems_libio_semaphore;
|
||||||
|
extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* File descriptor Table Information
|
* File descriptor Table Information
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Operations Tables for the IMFS
|
* Null Filesystem Operations Tables
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1989-1998.
|
* COPYRIGHT (c) 1989-1998.
|
||||||
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
||||||
@@ -14,73 +14,13 @@
|
|||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "imfs.h"
|
#include <rtems/libio.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on memfile entities.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r memfile_handlers = {
|
|
||||||
memfile_open,
|
|
||||||
memfile_close,
|
|
||||||
memfile_read,
|
|
||||||
memfile_write,
|
|
||||||
memfile_ioctl,
|
|
||||||
memfile_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
memfile_ftruncate,
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set of operations handlers for operations on directories.
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r dir_handlers = {
|
|
||||||
imfs_dir_open,
|
|
||||||
imfs_dir_close,
|
|
||||||
imfs_dir_read,
|
|
||||||
NULL, /* write */
|
|
||||||
NULL, /* ioctl */
|
|
||||||
imfs_dir_lseek,
|
|
||||||
imfs_dir_fstat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
IMFS_fdatasync,
|
|
||||||
IMFS_fcntl
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Handler table for IMFS device nodes
|
|
||||||
*/
|
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r device_handlers = {
|
|
||||||
device_open,
|
|
||||||
device_close,
|
|
||||||
device_read,
|
|
||||||
device_write,
|
|
||||||
device_ioctl,
|
|
||||||
device_lseek,
|
|
||||||
IMFS_stat,
|
|
||||||
IMFS_fchmod,
|
|
||||||
NULL, /* ftruncate */
|
|
||||||
NULL, /* fpathconf */
|
|
||||||
NULL, /* fsync */
|
|
||||||
NULL, /* fdatasync */
|
|
||||||
NULL /* fcntl */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set of null operations handlers.
|
* Set of null operations handlers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
rtems_filesystem_file_handlers_r null_handlers = {
|
rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
|
||||||
NULL, /* open */
|
NULL, /* open */
|
||||||
NULL, /* close */
|
NULL, /* close */
|
||||||
NULL, /* read */
|
NULL, /* read */
|
||||||
|
|||||||
@@ -210,10 +210,9 @@ typedef enum {
|
|||||||
* Shared Data
|
* Shared Data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern rtems_filesystem_file_handlers_r device_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_device_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r memfile_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_memfile_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r dir_handlers;
|
extern rtems_filesystem_file_handlers_r IMFS_directory_handlers;
|
||||||
extern rtems_filesystem_file_handlers_r null_handlers;
|
|
||||||
extern rtems_filesystem_operations_table IMFS_ops;
|
extern rtems_filesystem_operations_table IMFS_ops;
|
||||||
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
extern rtems_filesystem_limits_and_options_t IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -36,17 +36,17 @@ int IMFS_Set_handlers(
|
|||||||
|
|
||||||
switch( node->type ) {
|
switch( node->type ) {
|
||||||
case IMFS_DIRECTORY:
|
case IMFS_DIRECTORY:
|
||||||
loc->handlers = &dir_handlers;
|
loc->handlers = &IMFS_directory_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_DEVICE:
|
case IMFS_DEVICE:
|
||||||
loc->handlers = &device_handlers;
|
loc->handlers = &IMFS_device_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_SYM_LINK:
|
case IMFS_SYM_LINK:
|
||||||
case IMFS_HARD_LINK:
|
case IMFS_HARD_LINK:
|
||||||
loc->handlers = &null_handlers;
|
loc->handlers = &rtems_filesystem_null_handlers;
|
||||||
break;
|
break;
|
||||||
case IMFS_MEMORY_FILE:
|
case IMFS_MEMORY_FILE:
|
||||||
loc->handlers = &memfile_handlers;
|
loc->handlers = &IMFS_memfile_handlers;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ int IMFS_initialize(
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
temp_mt_entry->mt_fs_root.handlers = &dir_handlers;
|
temp_mt_entry->mt_fs_root.handlers = &IMFS_directory_handlers;
|
||||||
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
temp_mt_entry->mt_fs_root.ops = &IMFS_ops;
|
||||||
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
temp_mt_entry->pathconf_limits_and_options = IMFS_LIMITS_AND_OPTIONS;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user