| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Drop parameter check from previously unused
rtems_libio_iop_to_descriptor().
|
|
|
|
|
|
|
| |
Send a special event to notify tasks waiting for a socket state change
in case this socket gets closed. This prevents a use after free.
Close #785.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers. This imposes a problem on device
files which use an IO vector as single request entity. For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
|
|
|
|
|
|
|
|
|
|
|
| |
The scope of the file system operations is the file system instance.
The scope of the file system node handlers is the file location. The
benefit of moving the operations to the mount table entry is a size
reduction of the file location (rtems_filesystem_location_info_t). The
code size is slightly increased due to additional load instructions.
Restructure rtems_filesystem_mount_table_entry_t to improve cache
efficiency.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
o Move rtems_bsdnet_fdToSocket() and rtems_bsdnet_makeFdForSocket() to
"cpukit/libnetworking/rtems/rtems_syscall.c".
o The rtems_bsdnet_makeFdForSocket() function is now static.
o Check in rtems_bsdnet_fdToSocket() function that the file descriptor
uses the socket handlers, otherwise an error status will be returned
and errno set to ENOTSOCK.
o New test libtests/syscall01.
|
|
|
|
|
|
|
| |
New defaults rtems_filesystem_default_fsync_or_fdatasync() and
rtems_filesystem_default_fsync_or_fdatasync_success() for fsync_h and
fdatasync_h. The rtems_filesystem_default_fsync_or_fdatasync() sets now
errno to EINVAL according to POSIX.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o A new data structure rtems_filesystem_global_location_t was
introduced to be used for
o the mount point location in the mount table entry,
o the file system root location in the mount table entry,
o the root directory location in the user environment, and
o the current directory location in the user environment.
During the path evaluation global start locations are obtained to
ensure that the current file system instance will be not unmounted in
the meantime.
o The user environment uses now reference counting and is protected
from concurrent access.
o The path evaluation process was completely rewritten and simplified.
The IMFS, RFS, NFS, and DOSFS use now a generic path evaluation
method. Recursive calls in the path evaluation have been replaced
with iteration to avoid stack overflows. Only the evaluation of
symbolic links is recursive. No dynamic memory allocations and
intermediate buffers are used in the high level path evaluation. No
global locks are held during the file system instance specific path
evaluation process.
o Recursive symbolic link evaluation is now limited by
RTEMS_FILESYSTEM_SYMLOOP_MAX. Applications can retrieve this value
via sysconf().
o The device file system (devFS) uses now no global variables and
allocation from the workspace. Node names are allocated from the
heap.
o The upper layer lseek() performs now some parameter checks.
o The upper layer ftruncate() performs now some parameter checks.
o unmask() is now restricted to the RWX flags and protected from
concurrent access.
o The fchmod_h and rmnod_h file system node handlers are now a file
system operation.
o The unlink_h operation has been removed. All nodes are now destroyed
with the rmnod_h operation.
o New lock_h, unlock_h, clonenod_h, and are_nodes_equal_h file system
operations.
o The path evaluation and file system operations are now protected by
per file system instance lock and unlock operations.
o Fix and test file descriptor duplicate in fcntl().
o New test fstests/fsnofs01.
|
|
|
|
| |
There existed no calling function for this handler.
|
|
|
|
| |
* libnetworking/rtems/rtems_syscall.c: Fix warning.
|
|
|
|
|
| |
* libnetworking/rtems/rtems_syscall.c: Replaced null socket handlers
with default handlers. Null handlers are no longer allowed.
|
| |
|
| |
|
|
|
|
|
|
| |
* libnetworking/rtems/rtems_syscall.c: Remove RTEMS versions of send()
and recv(). We already had the BSD versions and these conflict
sometimes when linking.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libnetworking/kern/kern_sysctl.c, libnetworking/libc/inet_ntop.c,
libnetworking/net/if_ppp.c, libnetworking/net/pppcompress.c,
libnetworking/net/slcompress.c, libnetworking/netinet/ip_output.c,
libnetworking/netinet/udp_usrreq.c, libnetworking/nfs/bootp_subr.c,
libnetworking/rtems/rtems_select.c,
libnetworking/rtems/rtems_showifstat.c,
libnetworking/rtems/rtems_showroute.c,
libnetworking/rtems/rtems_syscall.c: Fixed type mismatch and
uninitialized variable warnings.
|
| |
|
|
|
|
|
|
| |
* libnetworking/sys/protosw.h: Partial update from FreeBSD.
* libnetworking/sys/socket.h: Partial update from FreeBSD.
* libnetworking/rtems/rtems_syscall.c: Reflect changes to socket.h.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* libnetworking/lib/ftpfs.c, libnetworking/lib/rtems_bsdnet_ntp.c,
libnetworking/lib/tftpDriver.c, libnetworking/machine/endian.h,
libnetworking/net/if_ppp.c, libnetworking/rtems/rtems_bsdnet.h,
libnetworking/rtems/rtems_bsdnet_internal.h,
libnetworking/rtems/rtems_glue.c,
libnetworking/rtems/rtems_syscall.c: Convert to using c99 fixed size
types.
|
|
|
|
| |
* rtems/rtems_syscall.c: Removed warnings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am: Added sys/linker_set.h
* kern/Makefile.am: Added kern_mib.c and kern_sysctl.c.
* kern/uipc_socket.c: OID changed from KERN_SOMAXCONN to KIPC_SOMAXCONN.
* kern/uipc_socket2.c: OID changed from KERN_MAXSOCKBUF to
KIPC_MAXSOCKBUF.
* net/if_ethersubr.c: FreeBSD 2.2.2 does not have a _net_link node
while 5.0 does.
* net/if_ppp.c: Removed the TEXT_SET define as these macros are
now implemented.
* net/rtsock.c: Enable sysctl support plus fix the bug with the
lastest FreeBSD sysctl header file.
* netinet/icmp_var.h: FreeBSD 2.2.2 does not have a _net_inet_icmp
node while 5.0 does.
* netinet/if_ether.c: FreeBSD 2.2.2 does not have a _net_link_ether
node while 5.0 does.
* netinet/igmp_var.h: FreeBSD 2.2.2 does not have a _net_inet_igmp
node while 5.0 does.
* netinet/in_pcb.c: Fixed the arguments to the sysctl call. Add
inp_gencnt and ipi_count. These are used when listing connections.
* netinet/in_pcb.h: Added counters to aid the listing of connections.
* netinet/in_var.h: Provide the _net_inet_ip and _net_inet_raw nodes.
* netinet/ip_fw.c: Disable the firewall sysctl calls.
* netinet/tcp_subr.c: Merge tcp_pcblist from the lastest FreeBSD source.
* netinet/tcp_var.h: Add structures needed by net-snmp to list
connections.
* netinet/udp_usrreq.c: Merged udp_pcblist from the lastest FreeBSD
source.
* netinet/udp_var.h: Added the sysctl id UDPCTL_PCBLIST. Used by
net-snmp.
* rtems_glue.c: Call sysctl_register_all when initialising the
network stack to register all the sysctl calls. These are in the
special sections and required an updated linker script.
* rtems/rtems_syscall.c: Add the sysctl call.
* sys/kernel.h: Use the lastest FreeBSD method of handling sysctl
structures. This now held in the sys/linker_set.h file.
* sys/queue.h: This is from the lastest FreeBSD code with the circular
code merged back in as it is not used in the lastest FreeBSD kernel.
* sys/sysctl.h: The lastest sysctl. This was needed to use with the new
linker set method. The FreeBSD 2.2.2 version has asm hacks. The lastest
version of the FreeBSD does not have these hacks. It uses gcc attribute
directives.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Pass to eliminate warnings.
* kern/uipc_mbuf.c: Conditional SYSINIT() usage on __rtems__.
Fix return statement without a value.
* lib/ftpfs.c: read and write filesystem routines return ssize_t.
* lib/syslog.c: Add include of <string.h> to eliminate warning.
* lib/tftpDriver.c: read and write filesystem routines return ssize_t.
* libc/gethostbydns.c: Prototype abort().
* libc/inet_ntoa.c: Prototype strcpy().
* libc/rcmd.c: Add include of <sys/select.h>
* net/if_loop.c: Turn token at end of endif to comment.
* net/rtsock.c, nfs/bootp_subr.c: Conditional SYSINIT() usage
on __rtems__.
* rtems/rtems_bootp.c: Add include of <rtems/rtems_bsdnet_internal.h>.
* rtems/rtems_bsdnet_internal.h: Added prototypes for memcpy() and
memset() since the BSD code tries to avoid using libc .h files
since it is used to being in the kernel.
* rtems/rtems_syscall.c: read and write filesystem routines
return ssize_t.
|
|
|
|
|
|
| |
* rtems/rtems_syscall.c: Changed from O_NONBLOCK to internal
RTEMS_LIBIO_FLAGS_NO_DELAY to avoid O_NONBLOCK/O_NDELAY confusion
and to work with the converted flags.
|
| |
|
|
|
|
|
|
|
|
| |
now prototypes the malloc family in stdlib.h. This causes conflicts
with the way the network stack overrides the definitions of malloc.
As best I (being Joel) can tell, commenting stdlib.h out keeps the
files compiling and referencing the desired malloc/free but results
in more warnings.
|
|
|
|
| |
sequence.
|
| |
|
|
|
|
| |
fcntl support and an external fcntl handler for sockets.
|
|
|
|
|
| |
IO handlers scheme that was implemented originally just to support
sockets. The file system IO switch is more general and works fine.
|
|
|
|
| |
NULL pointer.
|
|
|
|
| |
all conflicts.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RTEMS permits using the SO_SNDTIMEO and SO_RCVTIMEO socket options to
set a timeout for most socket I/O operations. However, in RTEMS
4.0.0, those options do not affect connect or accept. I don't know of
any way to put a timeout on those calls in RTEMS 4.0.0; can anybody
point to one.
Since it is frequently useful to have a timeout on accept, and
sometimes useful to have a timeout on connect shorter than the BSD
system default of 75 seconds, the following patch causes SO_RCVTIMEO
to affect connect and accept.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remember the test to see if a socket could be read and written at
the same time by two different tasks? I discovered that if both
tasks attempt to close the socket a panic can occur from inside the
BSD code.
Closing the same socket twice from two different threads is
certainly an error, but a panic is not the greatest error reporting
method :-)
The following small change to the socket close routine should reduce
the chances of the panic.
|
| |
|
| |
|
| |
|
|
|