diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-10-14 15:06:25 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-10-14 15:06:25 +0000 |
commit | e2324c081a4b1a0c6d7fdaaa99e0d5ef29325e20 (patch) | |
tree | 828a80e48298c57d4b897d3b9a74f9ade00bbdf1 /cpukit/libcsupport | |
parent | Fix formatting. (diff) | |
download | rtems-e2324c081a4b1a0c6d7fdaaa99e0d5ef29325e20.tar.bz2 |
2008-10-14 Wei Shen <cquark@gmail.com>
* Makefile.am, preinstall.am, libcsupport/src/mknod.c,
libcsupport/src/open.c, libcsupport/src/pipe.c, libfs/Makefile.am,
libfs/preinstall.am, libfs/src/imfs/imfs.h,
libfs/src/imfs/imfs_creat.c, libfs/src/imfs/imfs_debug.c,
libfs/src/imfs/imfs_eval.c, libfs/src/imfs/imfs_initsupp.c,
libfs/src/imfs/imfs_mknod.c, libfs/src/imfs/imfs_stat.c,
libfs/src/imfs/memfile.c: Initial commit of POSIX pipe support.
* libfs/src/imfs/imfs_fifo.c, libfs/src/pipe/fifo.c,
libfs/src/pipe/pipe.c, libfs/src/pipe/pipe.h: New files.
Diffstat (limited to 'cpukit/libcsupport')
-rw-r--r-- | cpukit/libcsupport/src/mknod.c | 3 | ||||
-rw-r--r-- | cpukit/libcsupport/src/open.c | 4 | ||||
-rw-r--r-- | cpukit/libcsupport/src/pipe.c | 10 |
3 files changed, 11 insertions, 6 deletions
diff --git a/cpukit/libcsupport/src/mknod.c b/cpukit/libcsupport/src/mknod.c index c786c6d756..2d1db0fc3d 100644 --- a/cpukit/libcsupport/src/mknod.c +++ b/cpukit/libcsupport/src/mknod.c @@ -43,9 +43,6 @@ int mknod( if ( !(mode & (S_IFREG|S_IFCHR|S_IFBLK|S_IFIFO) ) ) rtems_set_errno_and_return_minus_one( EINVAL ); - if ( S_ISFIFO(mode) ) - rtems_set_errno_and_return_minus_one( ENOTSUP ); - rtems_filesystem_get_start_loc( pathname, &i, &temp_loc ); if ( !temp_loc.ops->evalformake_h ) { diff --git a/cpukit/libcsupport/src/open.c b/cpukit/libcsupport/src/open.c index e29427e568..1bc83ed7bc 100644 --- a/cpukit/libcsupport/src/open.c +++ b/cpukit/libcsupport/src/open.c @@ -164,8 +164,10 @@ int open( } rc = (*iop->handlers->open_h)( iop, pathname, flags, mode ); - if ( rc ) + if ( rc ) { + rc = errno; goto done; + } /* * Optionally truncate the file. diff --git a/cpukit/libcsupport/src/pipe.c b/cpukit/libcsupport/src/pipe.c index 57a682e55b..ef8c820483 100644 --- a/cpukit/libcsupport/src/pipe.c +++ b/cpukit/libcsupport/src/pipe.c @@ -16,11 +16,17 @@ #endif #include <errno.h> +#include <sys/types.h> + +extern int pipe_create(int filsdes[2]); int pipe( int filsdes[2] ) { - errno = ENOSYS; - return -1; + if (filsdes == NULL) { + errno = EFAULT; + return -1; + } + return pipe_create(filsdes); } |