summaryrefslogtreecommitdiffstats
path: root/cpukit/libnetworking/rtems/rtems_syscall.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Filesystem: Use rtems_libio_iop_to_descriptor()Sebastian Huber2015-02-041-1/+1
| | | | | Drop parameter check from previously unused rtems_libio_iop_to_descriptor().
* libnetworking: Fix close of active socketsSebastian Huber2015-01-201-10/+12
| | | | | | | 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.
* libnetworking: TypoSebastian Huber2014-03-061-1/+1
|
* Filesystem: Use default kqfilter and poll handlerSebastian Huber2013-12-201-0/+2
|
* Filesystem: Add readv/writev handlersSebastian Huber2013-12-201-11/+13
| | | | | | | | | 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.
* Filesystem: Move operations to mount table entrySebastian Huber2012-05-151-1/+0
| | | | | | | | | | | 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.
* Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill2012-05-111-4/+0
| | | | | | | | | | | | 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.
* networking: socket to/from file descriptorSebastian Huber2012-04-031-3/+58
| | | | | | | | | | 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.
* Filesystem: New defaults fsync_h and fdatasync_hSebastian Huber2012-03-131-2/+2
| | | | | | | 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.
* Filesystem: Reference counting for locationsSebastian Huber2012-03-131-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Removed fpathconf file system node handler.Sebastian Huber2012-02-021-1/+0
| | | | There existed no calling function for this handler.
* 2010-07-14 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill2010-07-141-1/+1
| | | | * libnetworking/rtems/rtems_syscall.c: Fix warning.
* 2010-07-12 Jennifer AverettJennifer Averett2010-07-121-14/+14
| | | | | * libnetworking/rtems/rtems_syscall.c: Replaced null socket handlers with default handlers. Null handlers are no longer allowed.
* Add missing initializers.Ralf Corsepius2008-12-231-0/+1
|
* Include <errno.h> (POSIX,C99) instead of <sys/errno.h> (BSD'ism).Ralf Corsepius2008-12-221-1/+1
|
* 2007-06-21 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill2007-06-211-19/+8
| | | | | | * libnetworking/rtems/rtems_syscall.c: Remove RTEMS versions of send() and recv(). We already had the BSD versions and these conflict sometimes when linking.
* Use size_t instead of uint32_t for read/write count-args.Ralf Corsepius2006-12-081-2/+2
|
* 2005-04-28 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2005-04-281-1/+2
| | | | | | | | | | | | * 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.
* Include config.h.Ralf Corsepius2005-02-021-0/+4
|
* 2004-04-22 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2004-04-221-2/+2
| | | | | | * 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.
* Remove stray white spaces.Ralf Corsepius2004-04-181-5/+5
|
* 2004-03-29 Ralf Corsepius <ralf_corsepius@rtems.org>Ralf Corsepius2004-03-291-4/+4
| | | | | | | | | | * 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.
* 2003-05-29 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2003-05-291-0/+1
| | | | * rtems/rtems_syscall.c: Removed warnings.
* 2002-11-26 Chris Johns <cjohns@cybertec.com.au>Joel Sherrill2003-01-031-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* 2002-10-28 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2002-10-281-2/+2
| | | | | | | | | | | | | | | | | | | | | * 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.
* 2000-09-05 Joel Sherrill <joel@OARcorp.com>Joel Sherrill2000-09-051-1/+1
| | | | | | * 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.
* Merged from 4.5.0-beta3aJoel Sherrill2000-06-121-7/+10
|
* Modified to avoid conflicts on definitions of malloc. newlib 1.8.2Joel Sherrill1999-10-061-1/+1
| | | | | | | | 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.
* Patch from Eric Norum <eric@skatter.usask.ca> which changed the exitJoel Sherrill1999-03-311-2/+1
| | | | sequence.
* Patch to add shutdown() routine from Tony R. Ambardar <tonya@ece.ubc.ca>.Joel Sherrill1999-03-301-0/+25
|
* Patch from Eric Norum <eric@skatter.usask.ca> that adds externalJoel Sherrill1999-03-191-4/+30
| | | | fcntl support and an external fcntl handler for sockets.
* Patch from Eric Norum <eric@skatter.usask.ca> to eliminate externalJoel Sherrill1999-03-011-13/+34
| | | | | IO handlers scheme that was implemented originally just to support sockets. The file system IO switch is more general and works fine.
* Patch from Eric Norum <eric@skatter.usask.ca> to avoid dereferencing aJoel Sherrill1999-01-281-1/+4
| | | | NULL pointer.
* Merged Eric Norum's select patch that was based on 4.0 and resolvedJoel Sherrill1998-12-101-89/+14
| | | | all conflicts.
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1998-12-071-2/+2
| | | | | | | | | | | | | 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.
* Patch from Eric Norum <eric@skatter.usask.ca>:Joel Sherrill1998-09-291-3/+2
| | | | | | | | | | | | | | 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.
* Patches from Eric NorumJoel Sherrill1998-08-201-3/+17
|
* Added CVS IdsJoel Sherrill1998-08-201-0/+4
|
* Fixed many warnings.Joel Sherrill1998-08-201-0/+1
|
* Base filesJoel Sherrill1998-08-191-0/+743