From 69981587273b049826fcd992a1ffe9fd5b8eff9b Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 3 Jun 2009 19:27:38 +0000 Subject: 2009-06-03 Joel Sherrill PR 1421/filesystem * libfs/src/imfs/deviceio.c, libfs/src/imfs/imfs.h, libfs/src/imfs/imfs_handlers_device.c: Backport ftruncate support for devices so fopen(device, w) works. --- cpukit/ChangeLog | 7 +++++++ cpukit/libfs/src/imfs/deviceio.c | 9 +++++++++ cpukit/libfs/src/imfs/imfs.h | 5 +++++ cpukit/libfs/src/imfs/imfs_handlers_device.c | 2 +- 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index b7efc5e9bd..8bc2e1d3d2 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,10 @@ +2009-06-03 Joel Sherrill + + PR 1421/filesystem + * libfs/src/imfs/deviceio.c, libfs/src/imfs/imfs.h, + libfs/src/imfs/imfs_handlers_device.c: Backport ftruncate support for + devices so fopen(device, w) works. + 2009-05-28 Joel Sherrill PR 1415/cpukit diff --git a/cpukit/libfs/src/imfs/deviceio.c b/cpukit/libfs/src/imfs/deviceio.c index e088a7f8d7..e6a4dd6e0f 100644 --- a/cpukit/libfs/src/imfs/deviceio.c +++ b/cpukit/libfs/src/imfs/deviceio.c @@ -255,3 +255,12 @@ off_t device_lseek( * * The IMFS_rmnod() is used. */ + +int device_ftruncate( + rtems_libio_t *iop, + off_t length +) +{ + return 0; +} + diff --git a/cpukit/libfs/src/imfs/imfs.h b/cpukit/libfs/src/imfs/imfs.h index 25736b394d..a7f4cb43b4 100644 --- a/cpukit/libfs/src/imfs/imfs.h +++ b/cpukit/libfs/src/imfs/imfs.h @@ -480,6 +480,11 @@ off_t device_lseek( int whence /* IN */ ); +int device_ftruncate( + rtems_libio_t *iop, /* IN */ + off_t length /* IN */ +); + int IMFS_utime( rtems_filesystem_location_info_t *pathloc, /* IN */ time_t actime, /* IN */ diff --git a/cpukit/libfs/src/imfs/imfs_handlers_device.c b/cpukit/libfs/src/imfs/imfs_handlers_device.c index fa373b8b91..db8238d855 100644 --- a/cpukit/libfs/src/imfs/imfs_handlers_device.c +++ b/cpukit/libfs/src/imfs/imfs_handlers_device.c @@ -32,7 +32,7 @@ rtems_filesystem_file_handlers_r IMFS_device_handlers = { device_lseek, IMFS_stat, IMFS_fchmod, - NULL, /* ftruncate */ + device_ftruncate, NULL, /* fpathconf */ NULL, /* fsync */ NULL, /* fdatasync */ -- cgit v1.2.3