* libcsupport/include/rtems/libio.h: Removed file_info and handlers
	fields in rtems_libio_t.
	* libcsupport/src/close.c, libcsupport/src/fcntl.c,
	libcsupport/src/fdatasync.c, libcsupport/src/fstat.c,
	libcsupport/src/fsync.c, libcsupport/src/ftruncate.c,
	libcsupport/src/getdents.c, libcsupport/src/ioctl.c,
	libcsupport/src/libio_sockets.c, libcsupport/src/lseek.c,
	libcsupport/src/open.c, libcsupport/src/read.c,
	libcsupport/src/readv.c, libcsupport/src/write.c,
	libcsupport/src/writev.c, libfs/src/devfs/devclose.c,
	libfs/src/devfs/devioctl.c, libfs/src/devfs/devopen.c,
	libfs/src/devfs/devread.c, libfs/src/devfs/devwrite.c
	libfs/src/dosfs/msdos_dir.c libfs/src/dosfs/msdos_file.c
	libfs/src/imfs/deviceio.c libfs/src/imfs/imfs_directory.c
	libfs/src/imfs/imfs_fifo.c libfs/src/imfs/memfile.c
	libfs/src/nfsclient/src/nfs.c libfs/src/rfs/rtems-rfs-rtems-file.c
	libfs/src/rfs/rtems-rfs-rtems.h libnetworking/lib/ftpfs.c: Reflect
	changes above.
This commit is contained in:
Sebastian Huber
2010-07-15 08:10:48 +00:00
parent 106d8f5e74
commit fd2b1634bb
32 changed files with 99 additions and 98 deletions

View File

@@ -23,7 +23,7 @@ int devFS_close(
rtems_status_code status;
rtems_device_name_t *np;
np = (rtems_device_name_t *)iop->file_info;
np = (rtems_device_name_t *)iop->pathinfo.node_access;
args.iop = iop;
args.flags = 0;

View File

@@ -25,7 +25,7 @@ int devFS_ioctl(
rtems_status_code status;
rtems_device_name_t *np;
np = (rtems_device_name_t *)iop->file_info;
np = (rtems_device_name_t *)iop->pathinfo.node_access;
args.iop = iop;
args.command = command;

View File

@@ -26,7 +26,7 @@ int devFS_open(
rtems_status_code status;
rtems_device_name_t *np;
np = (rtems_device_name_t *)iop->file_info;
np = (rtems_device_name_t *)iop->pathinfo.node_access;
args.iop = iop;
args.flags = iop->flags;

View File

@@ -25,7 +25,7 @@ ssize_t devFS_read(
rtems_status_code status;
rtems_device_name_t *np;
np = (rtems_device_name_t *)iop->file_info;
np = (rtems_device_name_t *)iop->pathinfo.node_access;
args.iop = iop;
args.offset = iop->offset;

View File

@@ -25,7 +25,7 @@ ssize_t devFS_write(
rtems_status_code status;
rtems_device_name_t *np;
np = (rtems_device_name_t *)iop->file_info;
np = (rtems_device_name_t *)iop->pathinfo.node_access;
args.iop = iop;
args.offset = iop->offset;

View File

@@ -51,7 +51,7 @@ msdos_dir_open(rtems_libio_t *iop, const char *pathname, uint32_t flag,
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -86,7 +86,7 @@ msdos_dir_close(rtems_libio_t *iop)
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -201,7 +201,7 @@ msdos_dir_read(rtems_libio_t *iop, void *buffer, size_t count)
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
fat_file_fd_t *tmp_fat_fd = NULL;
struct dirent tmp_dirent;
uint32_t start = 0;
@@ -591,7 +591,7 @@ msdos_dir_sync(rtems_libio_t *iop)
{
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,

View File

@@ -47,7 +47,7 @@ msdos_file_open(rtems_libio_t *iop, const char *pathname, uint32_t flag,
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -88,7 +88,7 @@ msdos_file_close(rtems_libio_t *iop)
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -148,7 +148,7 @@ msdos_file_read(rtems_libio_t *iop, void *buffer, size_t count)
ssize_t ret = 0;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -181,7 +181,7 @@ msdos_file_write(rtems_libio_t *iop,const void *buffer, size_t count)
ssize_t ret = 0;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
@@ -228,7 +228,7 @@ msdos_file_lseek(rtems_libio_t *iop, rtems_off64_t offset, int whence)
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
uint32_t real_size = 0;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -306,7 +306,7 @@ msdos_file_ftruncate(rtems_libio_t *iop, rtems_off64_t length)
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
if (length >= fat_fd->fat_file_size)
return RC_OK;
@@ -349,7 +349,7 @@ msdos_file_sync(rtems_libio_t *iop)
{
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
@@ -409,7 +409,7 @@ msdos_file_datasync(rtems_libio_t *iop)
{
int rc = RC_OK;
rtems_status_code sc = RTEMS_SUCCESSFUL;
fat_file_fd_t *fat_fd = iop->file_info;
fat_file_fd_t *fat_fd = iop->pathinfo.node_access;
msdos_fs_info_t *fs_info = iop->pathinfo.mt_entry->fs_info;
sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,

View File

@@ -41,7 +41,7 @@ int device_open(
rtems_status_code status;
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
args.iop = iop;
args.flags = iop->flags;
@@ -70,7 +70,7 @@ int device_close(
rtems_status_code status;
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
args.iop = iop;
args.flags = 0;
@@ -103,7 +103,7 @@ ssize_t device_read(
rtems_status_code status;
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
args.iop = iop;
args.offset = iop->offset;
@@ -140,7 +140,7 @@ ssize_t device_write(
rtems_status_code status;
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
args.iop = iop;
args.offset = iop->offset;
@@ -181,7 +181,7 @@ int device_ioctl(
args.command = command;
args.buffer = buffer;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
status = rtems_io_control(
the_jnode->info.device.major,

View File

@@ -47,7 +47,7 @@ int imfs_dir_open(
IMFS_jnode_t *the_jnode;
/* Is the node a directory ? */
the_jnode = (IMFS_jnode_t *) iop->file_info;
the_jnode = (IMFS_jnode_t *) iop->pathinfo.node_access;
if ( the_jnode->type != IMFS_DIRECTORY )
return -1; /* It wasn't a directory --> return error */
@@ -90,7 +90,7 @@ ssize_t imfs_dir_read(
int last_entry;
struct dirent tmp_dirent;
the_jnode = (IMFS_jnode_t *)iop->file_info;
the_jnode = (IMFS_jnode_t *)iop->pathinfo.node_access;
the_chain = &the_jnode->info.directory.Entries;
if ( rtems_chain_is_empty( the_chain ) )

View File

@@ -22,7 +22,7 @@
#define JNODE2PIPE(_jnode) ( (_jnode)->info.fifo.pipe )
#define LIBIO2PIPE(_iop) ( JNODE2PIPE((IMFS_jnode_t *)(_iop)->file_info) )
#define LIBIO2PIPE(_iop) ( JNODE2PIPE((IMFS_jnode_t *)(_iop)->pathinfo.node_access) )
/* Set errno and return -1 if error, else return _err */
#define IMFS_FIFO_RETURN(_err) \
@@ -39,7 +39,7 @@ int IMFS_fifo_open(
uint32_t mode
)
{
IMFS_jnode_t *jnode = iop->file_info;
IMFS_jnode_t *jnode = iop->pathinfo.node_access;
int err = fifo_open(&JNODE2PIPE(jnode), iop);
IMFS_FIFO_RETURN(err);
@@ -49,7 +49,7 @@ int IMFS_fifo_close(
rtems_libio_t *iop
)
{
IMFS_jnode_t *jnode = iop->file_info;
IMFS_jnode_t *jnode = iop->pathinfo.node_access;
int err = pipe_release(&JNODE2PIPE(jnode), iop);
@@ -67,7 +67,7 @@ ssize_t IMFS_fifo_read(
size_t count
)
{
IMFS_jnode_t *jnode = iop->file_info;
IMFS_jnode_t *jnode = iop->pathinfo.node_access;
int err = pipe_read(JNODE2PIPE(jnode), buffer, count, iop);
if (err > 0)
@@ -82,7 +82,7 @@ ssize_t IMFS_fifo_write(
size_t count
)
{
IMFS_jnode_t *jnode = iop->file_info;
IMFS_jnode_t *jnode = iop->pathinfo.node_access;
int err = pipe_write(JNODE2PIPE(jnode), buffer, count, iop);
if (err > 0) {

View File

@@ -98,7 +98,7 @@ int memfile_open(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
/*
* Perform 'copy on write' for linear files
@@ -137,7 +137,7 @@ int memfile_close(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
if (iop->flags & LIBIO_FLAGS_APPEND)
iop->offset = the_jnode->info.file.size;
@@ -161,7 +161,7 @@ ssize_t memfile_read(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
return IMFS_memfile_read( the_jnode, iop->offset, buffer, count );
}
@@ -181,7 +181,7 @@ ssize_t memfile_write(
IMFS_jnode_t *the_jnode;
ssize_t status;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
status = IMFS_memfile_write( the_jnode, iop->offset, buffer, count );
iop->size = the_jnode->info.file.size;
@@ -205,7 +205,7 @@ int memfile_ioctl(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
return 0;
}
@@ -224,7 +224,7 @@ rtems_off64_t memfile_lseek(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
if (the_jnode->type == IMFS_LINEAR_FILE) {
if (iop->offset > the_jnode->info.linearfile.size)
@@ -258,7 +258,7 @@ int memfile_ftruncate(
{
IMFS_jnode_t *the_jnode;
the_jnode = iop->file_info;
the_jnode = iop->pathinfo.node_access;
/*
* POSIX 1003.1b does not specify what happens if you truncate a file

View File

@@ -2515,23 +2515,6 @@ struct _rtems_filesystem_operations_table nfs_fs_ops = {
'nfs_xxx'.
*****************************************/
#if 0
/* from rtems/libio.h for convenience */
struct rtems_libio_tt {
rtems_driver_name_t *driver;
off_t size; /* size of file */
off_t offset; /* current offset into file */
uint32_t flags;
rtems_filesystem_location_info_t pathinfo;
Objects_Id sem;
uint32_t data0; /* private to "driver" */
void *data1; /* ... */
void *file_info; /* used by file handlers */
rtems_filesystem_file_handlers_r *handlers; /* type specific handlers */
};
#endif
/* stateless NFS protocol makes this trivial */
static int nfs_file_open(
rtems_libio_t *iop,
@@ -2540,14 +2523,13 @@ static int nfs_file_open(
uint32_t mode
)
{
iop->file_info = 0;
return 0;
}
/* reading directories is not stateless; we must
* remember the last 'read' position, i.e.
* the server 'cookie'. We do manage this information
* attached to the iop->file_info.
* attached to the pathinfo.node_access_2.
*/
static int nfs_dir_open(
rtems_libio_t *iop,
@@ -2560,11 +2542,11 @@ NfsNode node = iop->pathinfo.node_access;
DirInfo di;
/* create a readdirargs object and copy the file handle;
* attach to the file_info.
* attach to the pathinfo.node_access_2
*/
di = (DirInfo) malloc(sizeof(*di));
iop->file_info = di;
iop->pathinfo.node_access_2 = di;
if ( !di ) {
errno = ENOMEM;
@@ -2598,8 +2580,8 @@ static int nfs_dir_close(
rtems_libio_t *iop
)
{
free(iop->file_info);
iop->file_info = 0;
free(iop->pathinfo.node_access_2);
iop->pathinfo.node_access_2 = 0;
return 0;
}
@@ -2656,7 +2638,7 @@ static ssize_t nfs_dir_read(
size_t count
)
{
DirInfo di = iop->file_info;
DirInfo di = iop->pathinfo.node_access_2;
RpcUdpServer server = ((Nfs)iop->pathinfo.mt_entry->fs_info)->server;
if ( di->eofreached )
@@ -2814,7 +2796,7 @@ static rtems_off64_t nfs_dir_lseek(
int whence
)
{
DirInfo di = iop->file_info;
DirInfo di = iop->pathinfo.node_access_2;
/* we don't support anything other than
* rewinding

View File

@@ -70,7 +70,7 @@ rtems_rfs_rtems_file_open (rtems_libio_t* iop,
if (rtems_rfs_rtems_trace (RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN))
printf("rtems-rfs: file-open: handle:%p\n", file);
iop->file_info = file;
iop->pathinfo.node_access = file;
rtems_rfs_rtems_unlock (fs);
return 0;
@@ -86,7 +86,7 @@ rtems_rfs_rtems_file_open (rtems_libio_t* iop,
static int
rtems_rfs_rtems_file_close (rtems_libio_t* iop)
{
rtems_rfs_file_handle* file = iop->file_info;
rtems_rfs_file_handle* file = iop->pathinfo.node_access;
rtems_rfs_file_system* fs = rtems_rfs_file_fs (file);
int rc;
@@ -116,7 +116,7 @@ rtems_rfs_rtems_file_read (rtems_libio_t* iop,
void* buffer,
size_t count)
{
rtems_rfs_file_handle* file = iop->file_info;
rtems_rfs_file_handle* file = iop->pathinfo.node_access;
rtems_rfs_pos pos;
uint8_t* data = buffer;
ssize_t read = 0;
@@ -181,7 +181,7 @@ rtems_rfs_rtems_file_write (rtems_libio_t* iop,
const void* buffer,
size_t count)
{
rtems_rfs_file_handle* file = iop->file_info;
rtems_rfs_file_handle* file = iop->pathinfo.node_access;
rtems_rfs_pos pos;
const uint8_t* data = buffer;
ssize_t write = 0;
@@ -271,7 +271,7 @@ rtems_rfs_rtems_file_lseek (rtems_libio_t* iop,
rtems_off64_t offset,
int whence)
{
rtems_rfs_file_handle* file = iop->file_info;
rtems_rfs_file_handle* file = iop->pathinfo.node_access;
rtems_rfs_pos pos;
int rc;
@@ -305,7 +305,7 @@ int
rtems_rfs_rtems_file_ftruncate (rtems_libio_t* iop,
rtems_off64_t length)
{
rtems_rfs_file_handle* file = iop->file_info;
rtems_rfs_file_handle* file = iop->pathinfo.node_access;
int rc;
if (rtems_rfs_rtems_trace (RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC))

View File

@@ -194,7 +194,7 @@ typedef struct rtems_rfs_rtems_private
* @return
*/
#define rtems_rfs_rtems_get_iop_ino(_iop) \
((intptr_t)(_iop)->file_info)
((intptr_t)(_iop)->pathinfo.node_access)
/**
* Create the name of the handler's table given the type of handlers.