| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Use the following variant which was already used by most source files:
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
|
|
|
|
|
|
|
| |
Check iop reference count in close() and return -1 with errno set to
EBUSY in case the file descriptor is still in use.
Update #3132.
|
|
|
|
|
|
|
|
|
| |
Replace rtems_libio_check_fd(), rtems_libio_iop(),
rtems_libio_check_open() and rtems_libio_check_permissions()
combinations with new LIBIO_GET_IOP() and LIBIO_GET_IOP_WITH_ACCESS()
macros.
Update #3132.
|
|
|
|
|
|
|
| |
Rename rtems_libio_check_permissions_with_error() in
rtems_libio_check_permissions().
Update #3132.
|
|
|
|
|
|
| |
This simplifies error handling later.
Update #3132.
|
| |
|
|
|
|
| |
http://www.google-melange.com/gci/task/view/google/gci2012/7992212
|
|
|
|
|
|
|
| |
It is now the responsibility of the read() and write() handler to update
the offset field of the IO descriptor (rtems_libio_t). This change
makes it possible to protect the IO descriptor from concurrent access by
per file locks.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1839/filesystem
* libcsupport/include/rtems/libio_.h, libcsupport/src/fchdir.c,
libcsupport/src/fdatasync.c, libcsupport/src/fpathconf.c,
libcsupport/src/fsync.c, libcsupport/src/ftruncate.c,
libcsupport/src/read.c, libcsupport/src/readv.c,
libcsupport/src/write.c, libcsupport/src/writev.c: Some calls did not
return proper status for permission errors or incorrectly permissions
at all.
|
|
|
|
|
| |
* libcsupport/src/read.c, libcsupport/src/write.c: Remove redundant
check for 0 size request.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/src/chdir.c, libcsupport/src/chmod.c,
libcsupport/src/chown.c, libcsupport/src/close.c,
libcsupport/src/eval.c, libcsupport/src/fchdir.c,
libcsupport/src/fchmod.c, libcsupport/src/fchown.c,
libcsupport/src/fcntl.c, libcsupport/src/fdatasync.c,
libcsupport/src/freenode.c, libcsupport/src/fstat.c,
libcsupport/src/fsync.c, libcsupport/src/ftruncate.c,
libcsupport/src/ioctl.c, libcsupport/src/link.c,
libcsupport/src/lseek.c, libcsupport/src/mknod.c,
libcsupport/src/mount.c, libcsupport/src/open.c,
libcsupport/src/read.c, libcsupport/src/readlink.c,
libcsupport/src/readv.c, libcsupport/src/rmdir.c,
libcsupport/src/stat.c, libcsupport/src/statvfs.c,
libcsupport/src/symlink.c, libcsupport/src/unlink.c,
libcsupport/src/unmount.c, libcsupport/src/write.c: Removed
filesystem checks for NULL methods checks from the main posix
rountines. These are now required to have at a miminum default
routines in the tables.
|
|
|
|
|
|
| |
* libcsupport/src/read.c, libcsupport/src/write.c: read(2) and write(2)
should return 0 when passed a count of 0 after verifying other
possible errors.
|
|
|
|
| |
* libcsupport/src/read.c, libcsupport/src/write.c: Fix spacing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/src/assoc.c, libcsupport/src/libio.c,
libcsupport/src/write.c: Split files to shrink minimum.exe. Hopefully
this will not be deemed necessary to commit to the 4.7 branch.
* libcsupport/src/assoclocalbyname.c,
libcsupport/src/assoclocalbyremote.c,
libcsupport/src/assoclocalbyremotebitfield.c,
libcsupport/src/assocnamebylocal.c,
libcsupport/src/assocnamebylocalbitfield.c,
libcsupport/src/assocnamebyremote.c,
libcsupport/src/assocnamebyremotebitfield.c,
libcsupport/src/assocptrbylocal.c, libcsupport/src/assocptrbyname.c,
libcsupport/src/assocptrbyremote.c,
libcsupport/src/assocremotebylocal.c,
libcsupport/src/assocremotebylocalbitfield.c,
libcsupport/src/assocremotebyname.c, libcsupport/src/libio_init.c,
libcsupport/src/write_r.c: New files.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/chain.h, include/clockdrv.h, include/console.h,
include/iosupp.h, include/rtc.h, include/spurious.h,
include/timerdrv.h, include/vmeintr.h, include/motorola/mc68230.h,
include/rtems/libcsupport.h, include/rtems/libio.h,
include/rtems/libio_.h, include/rtems/termiostypes.h,
include/sys/termios.h, include/zilog/z8036.h, include/zilog/z8530.h,
include/zilog/z8536.h, src/__brk.c, src/__gettod.c, src/__sbrk.c,
src/__times.c, src/access.c, src/base_fs.c, src/cfgetispeed.c,
src/cfgetospeed.c, src/cfsetispeed.c, src/cfsetospeed.c, src/chdir.c,
src/chmod.c, src/chown.c, src/chroot.c, src/close.c, src/ctermid.c,
src/dup.c, src/dup2.c, src/eval.c, src/fchdir.c, src/fchmod.c,
src/fcntl.c, src/fdatasync.c, src/fpathconf.c,
src/fs_null_handlers.c, src/fstat.c, src/fsync.c, src/ftruncate.c,
src/getdents.c, src/getpwent.c, src/hosterr.c, src/ioctl.c,
src/isatty.c, src/libio.c, src/libio_sockets.c, src/link.c,
src/lseek.c, src/lstat.c, src/malloc.c, src/mallocfreespace.c,
src/mkdir.c, src/mkfifo.c, src/mknod.c, src/mount.c, src/newlibc.c,
src/no_libc.c, src/no_posix.c, src/open.c, src/pathconf.c,
src/pipe.c, src/privateenv.c, src/read.c, src/readlink.c,
src/rewinddir.c, src/rmdir.c, src/seekdir.c, src/stat.c,
src/symlink.c, src/sync.c, src/tcdrain.c, src/tcflow.c,
src/tcflush.c, src/tcgetattr.c, src/tcgetprgrp.c, src/tcsendbreak.c,
src/tcsetattr.c, src/tcsetpgrp.c, src/telldir.c, src/termios.c,
src/termiosinitialize.c, src/truncate.c, src/umask.c, src/unixlibc.c,
src/unlink.c, src/unmount.c, src/utime.c, src/write.c: URL for
license changed.
|
|
|
|
| |
* src/write.c (_write_r): Change prototype to match newlib's reent.h.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems/libio_.h: Remove set_errno_and_return_minus_one.
* libc/cfsetispeed.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/cfsetospeed.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/chdir.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/chmod.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/chown.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/chroot.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/closedir.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/eval.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fchdir.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fchmod.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fdatasync.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fpathconf.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fstat.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/fsync.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/ftruncate.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/getdents.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/ioctl.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/link.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/lseek.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/mknod.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/open.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/read.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/readlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/rmdir.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/stat.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/symlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/tcsetattr.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/telldir.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/ttyname.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/ttyname_r.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/unlink.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/unmount.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/utime.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
* libc/write.c: Include <rtems/seterr.h>.
Apply rtems_set_errno_and_return_minus_one.
|
|
|
|
|
| |
* libc/write.c: Change type of rc to match return type from
underlying function per report from Eric Norum.
|
|
|
|
|
|
|
| |
* configure.in: Add libc/config.h
* libc/Makefile.am: Add INCLUDES += -I. to pickup config.h
* libc/.cvsignore: Add config.h and stamp-h
* libc/*.c: Add config.h support.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/Makefile.am, include/rtems/libio_.h, libc/Makefile.am,
libc/assoc.c, libc/assocnamebad.c, libc/base_fs.c, libc/cfsetispeed.c,
libc/cfsetospeed.c, libc/chdir.c, libc/chmod.c, libc/chown.c,
libc/close.c, libc/closedir.c, libc/dup2.c, libc/error.c, libc/eval.c,
libc/fchdir.c, libc/fchmod.c, libc/fcntl.c, libc/fdatasync.c,
libc/fpathconf.c, libc/fstat.c, libc/fsync.c, libc/ftruncate.c,
libc/getdents.c, libc/ioctl.c, libc/libio.c, libc/libio_sockets.c,
libc/link.c, libc/lseek.c, libc/malloc.c, libc/mallocfreespace.c,
libc/mknod.c, libc/mount.c, libc/newlibc.c, libc/no_libc.c,
libc/open.c, libc/read.c, libc/readlink.c, libc/rmdir.c, libc/stat.c,
libc/symlink.c, libc/tcsetattr.c, libc/telldir.c, libc/ttyname.c,
libc/ttyname_r.c, libc/umask.c, libc/unlink.c, libc/unmount.c,
libc/utime.c, libc/write.c:
assoc.h, error.h, libio_.h, libio.h, and libcsupport.h moved
from libc to lib/include/rtems and now must be referenced as
<rtems/XXX.h>.
* include/rtems/Makefile.am, include/rtems/.cvsignore: New file.
* include/rtems/assoc.h, include/rtems/error.h,
include/rtems/libcsupport.h, include/rtems/libio.h,
include/rtems/libio_.h: New/moved files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/libio.h (rtems_filesystem_file_handlers_r,
rtems_filesystem_operations_table): Added _h to all structure
fields to indicate they are "handlers".
* libc/libio_.h, libc/chdir.c, libc/chmod.c, libc/chown.c,
libc/close.c, libc/eval.c, libc/fchdir.c, libc/fchmod.c,
libc/fcntl.c, libc/fdatasync.c, libc/fstat.c, libc/fsync.c,
libc/ftruncate.c, libc/getdents.c, libc/imfs_eval.c,
libc/imfs_unlink.c, libc/ioctl.c, libc/ioman.c, libc/link.c,
libc/lseek.c, libc/mknod.c, libc/mount.c, libc/open.c, libc/read.c,
libc/readlink.c, libc/rmdir.c, libc/stat.c, libc/symlink.c,
libc/unlink.c, libc/unmount.c, libc/utime.c, libc/write.c:
Modified to reflect above name change.
|
| |
|
|
|
|
|
| |
IO handlers scheme that was implemented originally just to support
sockets. The file system IO switch is more general and works fine.
|
|
|
|
|
|
|
|
|
|
| |
<ian@airs.com> to fix this problem:
There is a small bug in __rtems_close in c/src/lib/libc/libio.c. It
does not check whether the file descriptor it is passed is open. This
can cause it to make a null dereference if it is passed a file
descriptor which is in the valid range but which was not opened, or
which was already closed.
|
| |
|
|
|
|
| |
all conflicts.
|
|
overhaul of the RTEMS system call interface. This base file system is
the "In-Memory File System" aka IMFS.
The design and implementation was done by the following people:
+ Joel Sherrill (joel@OARcorp.com)
+ Jennifer Averett (jennifer@OARcorp.com)
+ Steve "Mr Mount" Salitasc (salitasc@OARcorp.com)
+ Kerwin Wade (wade@OARcorp.com)
PROBLEMS
========
+ It is VERY likely that merging this will break the UNIX port. This
can/will be fixed.
+ There is likely some reentrancy/mutual exclusion needed.
+ Eventually, there should be a "mini-IMFS" description table to
eliminate links, symlinks, etc to save memory. All you need to
have "classic RTEMS" functionality is technically directories
and device IO. All the rest could be left out to save memory.
|