summaryrefslogtreecommitdiffstats
path: root/c/src/exec/libcsupport (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Added lstat().Joel Sherrill1999-04-222-6/+39
|
* Added reentrant versions.Joel Sherrill1999-04-152-0/+41
|
* Updated version string.Joel Sherrill1999-04-151-2/+1
|
* Disable IXON by default based on comment from Eric NorumJoel Sherrill1999-04-011-1/+1
| | | | | | | | | | | | | | | <e.norum@sk.sympatico.ca> and concerns from Thomas Doerfler <td@imd.m.ISAR.de> when he submitted the patch: Since enabling XON/XOFF has such a major performance hit on `smart' output devices I think it should be *off* by default. I think some thought should be given to adding hooks for hardware that can support XON/XOFF without software intervention, or for hardware like the 68360 SCC's that can use large buffers, but still handle special characters immediately. The patch you sent is a very good start, though. I just think that the software flow control should be off -- to match the way the serial I/O support has worked up until now.
* Patch from Thomas Doerfler <td@imd.m.ISAR.de> to add flow control:Joel Sherrill1999-03-311-32/+272
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some lines for "documentation": ====================================== One thing should be noted: when XON/XOFF is enabled, the serial device will always work with one-character buffers, so the interrupt load for the CPU might get higer, especially on devices like MC68360 and MPC860, where the serial channels are capable of using big buffers. But, once again, this only happens when XON/XOFF is actually selected. Please note that the flag IXON is set by default, so outgoing XON/XOFF flow control is enabled by default. XON/XOFF is controlled using the "standard" fields IXON/IXOFF in the termios structure. The termios flag IXANY is not (yet) supported. Hardware handshake for the incoming data stream is controlled using the standard flag CRTSCTS. If this flag is set, whenever the receive buffer is almost full, the driver function "device.stopRemoteTx()" is called, when the receive buffer has more space available, "device.startRemoteTx()" is called again. If the driver does not provide these interface functions (entries in device structure are NULL pointers), then these calls are suppressed. Changes of the flow control options during operation should work at any time, but this has not been extensively tested. No changes to the device driver interface are needed. ================================================ One critical point when using this patch might be, that any BSP using this version of termios will now have outgoing flow control enabled by default, so the behaviour of these BSPs will change here. The option IXON has already been set in older termios by default, but it did not work until this patch. Maybe this option should be switched off by default, what do you think?
* Removed asserts that shouldn't be called and commented case where thisJennifer Averett1999-03-311-1/+0
| | | | indicates an internal error.
* Corrected return value.Jennifer Averett1999-03-311-1/+1
|
* Removed warning for const removal.Joel Sherrill1999-03-301-1/+1
|
* Removed an uninitialized variable.Jennifer Averett1999-03-291-4/+5
|
* Fix based on bug report from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:Joel Sherrill1999-03-241-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There seems to be an ugly dependency between posix-headers and libcsupport. Configuring rtems with ../rtems-rc-19990324-0/configure \ --target=i386-rtems \ --prefix=<somewhere> \ --disable-posix "make RTEMS_BSP=pc386" results into: [...] /opt/rtems/bin/i386-rtems-gcc --pipe -B/users/rtems/src/multi/build/pc386/lib/ -specs bsp_specs -qrtems -I/users/rtems/src/multi/build/pc386/lib/include/networking -g -Wall -ansi -fasm -O4 -fomit-frame-pointer -c -o o-pc386/utime.o ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c In file included from ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:16: /opt/rtems/i386-rtems/include/utime.h:4: sys/utime.h: No such file or directory ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning: `struct utimbuf' declared inside parameter list ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning: its scope is only this definition or declaration, ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:24: warning: which is probably not what you want. ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c: In function `utime': ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:34: dereferencing pointer to incomplete type ../../../../../rtems-rc-19990324-0/c/src/lib/libc/utime.c:34: dereferencing pointer to incomplete type make[4]: *** [o-pc386/utime.o] Error 1 make[3]: *** [all] Error 1 make[2]: *** [all] Error 1 make[1]: *** [all] Error 1 make[1]: Leaving directory `/lfs/poseidon/users/rtems/src/multi/build/c' make: *** [all] Error 1 Apparently sys/utime.h is one of the posix headers and therefore gets not installed (I suppose this is correct). IMO, this probably indicates that sys/utime.h has to be moved to another include subdirectory and should not be part of the posix-package. [AFAIK, sys/*.h are system dependent headers, so why should it be a posix-header? - Hmm]
* Another cleanup patch for the previous rejected hunk.Joel Sherrill1999-03-191-0/+1
|
* A cleanup patch on fcntl.c from Eric Norum <eric@skatter.usask.ca> forJoel Sherrill1999-03-191-0/+2
| | | | | 2 lines of code that did not get included when Joel tried to manually add a rejected patch.
* Patch from Eric Norum <eric@skatter.usask.ca> that adds externalJoel Sherrill1999-03-192-24/+42
| | | | fcntl support and an external fcntl handler for sockets.
* Use proper include for libio.h.Joel Sherrill1999-03-165-8/+5
|
* Added code to translate internal libio flags to POSIX style flags.Joel Sherrill1999-03-081-3/+20
|
* Added support for F_GETFL and F_SETFL.Joel Sherrill1999-03-081-2/+3
|
* Added F_GETFL support so the fdopen() implementation in newlib 1.8.1Joel Sherrill1999-03-063-2/+39
| | | | | | | | would work. At the same time, the initial implementation of F_SETFL was added. A support routine was added to convert internal libio flags back to the POSIX style. Eventually the internal representation should be eliminated in the interest of simplicity and code reduction. This problem was reported by Jake Janovetz <janovetz@tempest.ece.uiuc.edu>.
* Patch from Eric Norum <eric@skatter.usask.ca> to eliminate externalJoel Sherrill1999-03-0116-244/+26
| | | | | IO handlers scheme that was implemented originally just to support sockets. The file system IO switch is more general and works fine.
* Changed IMFS to use IMFS_NAME_MAX as the maximum length of a basenameJoel Sherrill1999-02-241-1/+5
| | | | | | | rather then NAME_MAX. NAME_MAX is 255 and that lets IMFS chew up memory too fast. Perhaps in the future, the places in IMFS that put a maximum length name string on the stack and the jnode structure does not include a maximu length name string can be fixed so this is not a problem.
* GLobal reentrancy structure is now dynamically initialized.Joel Sherrill1999-02-181-1/+2
|
* Patch from Eric Valette <valette@crf.canon.fr> to undo the patchJoel Sherrill1999-02-151-2/+0
| | | | that added ifdef on the pc386.
* Set the read/write offset to 0 when the file is opened. The ACVC had a testJoel Sherrill1999-02-101-0/+1
| | | | | that performed the sequence open/write/close/open/read/close on a file. It did not get the correct result since the file descriptor was reused.
* Added getcwd().Joel Sherrill1999-02-101-0/+280
|
* Corrected spacing and added some new error checks that were neededJoel Sherrill1999-02-052-15/+25
| | | | to avoid dereferencing NULLs.
* Patch from Eric Norum <eric@skatter.usask.ca> to set more flags inJoel Sherrill1999-01-281-2/+2
| | | | rtems_bsdnet_makeFdForSocket().
* Added libio_sockets.c to hold support routines for networking code.Joel Sherrill1999-01-261-0/+58
|
* More general fix based on bug report and patch from Ian Lance TaylorJoel Sherrill1999-01-2013-1/+27
| | | | | | | | | | <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.
* Per bug report from Jiri Gaisler that RTEMS would no longer buildJoel Sherrill1999-01-191-1/+13
| | | | | with the --disable-posix option, stubs for some routines (_getpid_r and _kill_r) that are normally defined with POSIX were added.
* Removed blank linesJoel Sherrill1999-01-042-3/+0
|
* Corrected prototype to confirm to POSIX 1003.1b.Joel Sherrill1998-12-142-10/+4
|
* Merged Eric Norum's select patch that was based on 4.0 and resolvedJoel Sherrill1998-12-1015-121/+166
| | | | all conflicts.
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1998-12-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From: Eric Norum <eric@skatter.usask.ca> Date: Sat, 5 Dec 98 13:20:51 -0600 What do you think of this patch? It implements your `tap' suggestion in a way that adds support for all ethernet devices with no driver modifications. I also added a return value from the tap function. If the return value is zero, the packet will be passed up the chain as usual. If the return value is non-zero the mbuf holding the packet will be freed and the packet will be dropped. If you like it, please submit it to Joel. I guess there needs to be an addition to the network documentation describing the additional ioctl's -- and a big warning that the tap function is called from a context that holds the network semaphore. Here is Eric's patch. I've tested it a bit, and made a couple of trivial changes. This is certainly better than mine: it should work for all Ethernet drivers. ================================================== The only concern I have about this patch is that the tap function may want to fiddle with the mbuf, calling functions like m_pullup and the like. If those force the networking code to rearrange the mbuf structure, then the caller's call to m_freem may crash. I don't know if this is a realistic concern--I don't know enough about the mbuf layer.
* Added source for F_DUPFD.Jennifer Averett1998-12-031-12/+18
|
* Modifications for RTEMS_UNIX.Jennifer Averett1998-12-033-0/+8
|
* Added base version of file system infrastructure. This includes a majorJoel Sherrill1998-11-2366-642/+4434
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merged Vista SCORE603e, Radstone PPCn_60x, and DY-4 DMV177 BSPs alongJoel Sherrill1998-10-281-0/+2
| | | | with libchip.
* Changed all of these to stubs.Joel Sherrill1998-10-227-403/+34
|
* Added rest of opendir family and made it compile.Joel Sherrill1998-10-131-1/+16
|
* New files.Joel Sherrill1998-10-135-0/+328
|
* New files.Joel Sherrill1998-10-122-0/+164
|
* Patch from Ian Lance Taylor <ian@airs.com>:Joel Sherrill1998-10-011-5/+8
| | | | | | | | The reentrant versions of the malloc functions in c/src/lib/libc/malloc.c do not match the definitions in newlib. These will be used if you use newlib routines such as fdopen. I believe this patch to malloc.c is needed to provide the correct versions.
* Modifed to zero out the C heap if the CPU Table indicates that theJoel Sherrill1998-09-231-0/+15
| | | | RTEMS workspace is to be zeroed out.
* Patch from Aleksey (Quality Quorum <qqi@world.std.com>):Joel Sherrill1998-09-232-4/+10
| | | | | | | | | | | 1. Finally fixes raw interrupts for pc386 2. Makes some minor cleanup in console and startup 3. Makes rtems_termios_dequeue_characters() to return count of outstanding chars - it allows to simplify console isrs a little bit. 4. pc386 uart modified to be friendlier to termios parameter changes, to have minor performance improvement and to take advantage of of above termios modification.
* Patch from Eric Norum:Joel Sherrill1998-09-211-7/+2
| | | | | | | | I fixed the problems noted by Victor Vengerov. 1) Fix typo in cfsetispeed(). 2) In rtems_termios_open, ensure that args->iop->data1 is set before calling device-specific open routine.
* Corrected spelling error.Joel Sherrill1998-09-111-10/+10
|
* Patch from Emmanuel Raguet <raguet@crf.canon.fr>:Joel Sherrill1998-08-311-3/+0
| | | | | I have reworked the ethernet driver for the BSP pc386 and here is the patch to apply.
* Patch from Eric Norum <eric@skatter.usask.ca>:Joel Sherrill1998-08-311-4/+2
| | | | | | | | | | | | | | I think I figured out why rtems_panic was locking up instead of shutting down the executive and returning to the code that called boot_card(). Later on there is code to print some messages on the standard error stream, a recursive call back to rtems_verror (through rtems_error) and finally a call to _exit(). I think that the _Thread_Disable_dispatch() is preventing the final context switch back to the boot_card() code. Does this sound right to you?
* Fix from Eric Norum <eric@skatter.usask.ca>:Joel Sherrill1998-08-211-14/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "Thomas Doerfler" <td@imd.m.isar.de> wrote: > > While implementing/testing the console/termios support for > PPC403 in RTEMS-4.0.0-beta3, I am stuck at a certain location in > termios.c: > > During "rtems_termios_initialize", the main control data structure > "*tty" is allocated using malloc(). (Note, that malloc does not > clear the allocated memory and my BSP does not clear memory during > startup). Furtheron, a lot of fields of that structure are > initialized, but the field "rawOutBufState" is not, and therefore > keeps an arbitrary contents. > > When "osend()" is called the first time(with the serial device > driver working in interrupt mode), termios gets stuck and will not > call the device drivers output function. > > My questions now are: > > - anybody already experienced this bug? > - is it a bug at all or did I do anything fundamentally wrong? > - is there already a common bugfix for that? > > I don't like poking around in other people code, as long as I am > not absolutely sure, what I do... Yes, there's a bug there. I thought that Joel had patched this already, but here's a patch to fix this. This patch also addresses a concern that many others have raised regarding enabling and disabling of transmitter interrupts. First, here's the example I've been using of a simple UART-style interrupt-driven driver: =============================================================== void device_write_routine (int minor, char *buf, int count) { UART->control_register &= ~UART_TRANSMITTER_READY; UART->output_register = *buf; UART->control_register |= UART_TRANSMIT_INTERRUPT_ENABLE; } void device_transmit_interrupt_routine (int vector) { UART->control_register &= ~UART_TRANSMIT_INTERRUPT_ENABLE; rtems_termios_dequeue_characters (device_ttyp, 1); } ============================================================== Several people have expressed their concern about the disable/enable of transmitter interrupts for every character. On some machines this disable/enable is an expensive operation. With the attached patch applied you can write the two routines as: ============================================================== void device_write_routine (int minor, char *buf, int count) { code_to_clear_transmitter_ready_status (); if (device_ttyp->rawOutBufState == rob_idle) code_to_enable_transmitter_interrupts (); code_to_send_one_character_to_transmitter (*buf); } void device_transmit_interrupt_routine (int vector) { rtems_termios_dequeue_characters (device_ttyp, 1); if (device_ttyp->rawOutBufState == rob_idle) code_to_disable_transmitter_interrupts (); } ===============================================================
* Added initialization of missing termios structure entries.Joel Sherrill1998-08-211-2/+3
|
* Base filesJoel Sherrill1998-08-193-0/+219
|