Commit Graph

104 Commits

Author SHA1 Message Date
Joel Sherrill
4555bc1eb5 Initialized tty->refcount to 0. When (for whatever reason) malloc()
returned a buffer which was not zero-filled, the reference count
was not correct.  When the application exitted, the "lastClose"
handler was not being called to flush the output.  This problem
had manifested itself on a variety of platforms.

The function rtems_termios_dequeue_characters() incorrectly incremented
the buffer pointers when it was invoked and there were no characters
in the ring buffer.  This problem had also manifested itself on a
variety of platforms.  The symptom was a strange repeating of the
data in the transmitter buffer when the transmitter serial device
was supposed to go idle.
1998-07-17 22:34:54 +00:00
Joel Sherrill
6e65840670 Patch from Dario Alcocer <alcocer@connectnet.com>. His comments:
Haven't had a chance to do an extensive shake-out of 980710, but it
  builds just fine on FreeBSD 2.2.5 (after termios is fixed using the
  attached patch), and the tests run fine.  FYI: FreeBSD doesn't support
  System V IPC out of the box, but one only needs to add three options
  to the kernel build configuration file, recompile the kernel, and
  you're ready.
1998-07-17 13:05:03 +00:00
Joel Sherrill
270d58fe4c New file to satisfy readdir() family. 1998-07-06 19:00:33 +00:00
Joel Sherrill
9a6994b490 Added freebsd support from Dario Alcocer <alcocer@connectnet.com>. 1998-06-18 15:22:35 +00:00
Joel Sherrill
ce691c51fd Corrected so it returns the correct date. Previously was getting the number
of seconds since 1988 from RTEMS and not adding in the 1970-1988 correction
factor.  Plus removed checks for data/time set since POSIX does not permit
this call to fail.  GNAT 3.12 depends on this.
1998-06-18 15:14:48 +00:00
Joel Sherrill
ecc9737f40 Added a public interface to the chain handler. 1998-06-18 15:12:27 +00:00
Joel Sherrill
119bced0fd Added tcdrain(), cfgetospeed(0, cfsetospeed(), cfgetispeed(), and
cfsetispeed().
1998-05-22 14:51:11 +00:00
Joel Sherrill
e2476ed4d1 Added tcdrain(), cfgetospeed(), cfsetospeed(), cfgetispeed(), and cfsetispeed(). 1998-05-22 14:49:49 +00:00
Joel Sherrill
27dccaec15 Patch to add return status to rtems_termios_enqueue_raw_characters from
Eric Norum per request from Geoffroy Montel:

   > The rtems_termios_enqueue_raw_characters function type is void.
   > The problem is that I can't return an error message if the input
   > buffer is full.
   > Could we add a return value?

   Sure, but what would you do with the overflow indication?  POSIX says,
   ``when the input limit is reached, the saved characters are thrown away
   without notice''.

   Anyhow, the change is so small I've done it and enclosed the patch.
1998-05-20 17:09:12 +00:00
Joel Sherrill
603d706083 Added tcdrain() from Eric Norum 1998-05-20 17:00:22 +00:00
Joel Sherrill
9c3b406b4d Addition of tcdrain() from Eric Norum. 1998-05-19 11:34:04 +00:00
Joel Sherrill
3ac8e59c93 Removed prototype of rtems_libio_config() per Chris Johns' eagle eye. 1998-05-19 10:53:12 +00:00
Joel Sherrill
161e1b3f6a Patch from Eric Norum to switch to termios callback structure, add
support for device driver support on tcsetattr(), and hardware
flow control callbacks.
1998-05-04 12:41:07 +00:00
Joel Sherrill
4955afcca5 rtems_libio_number_iops is now defined in confdefs.h so the maximum
file descriptors is user configurable.
1998-04-18 17:25:35 +00:00
Joel Sherrill
bd9c3d1e76 Numerous changes which in total greatly reduced the amount of source
code in each BSP's bspstart.c.  These changes were:

  + confdefs.h now knows libio's semaphore requirements
  + shared/main.c now copies Configuration to BSP_Configuration
  + shared/main.c fills in the Cpu_table with default values

This removed the need for rtems_libio_config() and the constant
BSP_LIBIO_MAX_FDS in every BSP.  Plus now the maximum number of open
files can now be set on the gcc command line.
1998-04-15 20:50:31 +00:00
Joel Sherrill
c796ea979c More stuff removed as a result of using newlib's isatty() implementation.
These were noticed by Eric Norum.
1998-04-06 15:57:58 +00:00
Joel Sherrill
b82c9578f4 Removed isatty() since we are now using newlib's implementation as
a result of enabling the newlib POSIX directory.
1998-04-03 18:45:42 +00:00
Joel Sherrill
3973e40a54 Should have included <rtems.h> before checking for ifdef RTEMS_UNIX.
Bug report from Olivier Hainque <hainque@inf.enst.fr> on SPARC Solaris 2.6.
1998-03-27 16:34:25 +00:00
Joel Sherrill
60b791ada1 updated copyright to 1998 1998-02-17 23:46:28 +00:00
Joel Sherrill
9646d5bea1 Patch from Eric Norum <eric@skatter.usask.ca>:
I've gone through and cleaned up the TFTP driver so that it fits
  into the libio system.  Here's the comment from the new driver:

  /*
   * Usage:
   *
   * To open `/bootfiles/image' on `hostname' for reading:
   *         fd = open ("/TFTP/hostname/bootfiles/image", O_RDONLY);
   *
   * The `hostname' can be a symbolic name or four
   * dot-separated decimal values.
   *
   * To open a file on the host which supplied the BOOTP
   * information just leave the `hostname' part empty:
   *         fd = open ("/TFTP//bootfiles/image", O_RDONLY);
   *
   */

  You can `fopen' TFTP files the same way:

                  fp = fopen (fullname, "r");
                  nread = fread (cbuf, sizeof cbuf[0], sizeof cbuf, fp);

  The diff's are included below.  I've also modified the TFTP demo
  program and the bootstrap PROM example.  They should be on my ftp
  site `soon'.

  The one thing I don't like is the way I had to do an end-run on the
  libio routines to get errno passed back from my driver to the
  application (since there are some errno codes that don't map to RTEMS
  status codes).  My approach was to set errno in the driver and have
  the driver routine return an RTEMS status code that I `know' isn't in
  the errno_assoc[] in libio.c.

  Perhaps there should be an RTEMS_TRANPARENT_ERRNO status code (or
  something similar) which driver routines could return to indicate
  that the driver routine has set errno and that the libio routines
  shouldn't attempt to map the returned status code to errno.

  Actually, I think the entire I/O system needs looking at -- as
  you've already mentioned.  The hacks I've dropped in to syscalls.c to
  make fstat work, for example, are *not* shining examples of good
  code......
1998-02-17 18:46:38 +00:00
Joel Sherrill
f00d7add72 Added call to libc_wrapup() in _exit. This fixes a problem where
the atexit routines on the global reentrancy structure were not
invoked.  But it does not seem like a 100% correct solution.
1998-02-03 18:30:05 +00:00
Joel Sherrill
421dfef68e Corrected Linux port for glibc2 1998-01-30 20:59:22 +00:00
Joel Sherrill
2936b425fd Solaris port updates from Chris Johns 1998-01-23 17:45:05 +00:00
Joel Sherrill
3294650cc3 Added _times_r. 1998-01-19 22:31:23 +00:00
Joel Sherrill
4dc0fd685b Patch from Eric Norum:
With this in place, it is possible to fdopen a TCP stream socket and
  getc/fprintf/etc. on the STDIO stream!
1998-01-19 22:22:25 +00:00
Joel Sherrill
3a7782b09e Jennifer found some uninitialized variables:
+ major and minor number elements in rtems_termios_open.

  + arg->ioctl_return in rtems_termios_ioctl routine.
1998-01-16 15:37:20 +00:00
Joel Sherrill
2872e0bb1c Changed initial settings of first time. 1998-01-06 15:47:37 +00:00
Joel Sherrill
608641e6d2 Corrected prototypes for all termios console write driver entries to
properly reflect the const on the buffer pointer being passed in.
1997-12-22 17:29:51 +00:00
Joel Sherrill
7150f00f5b Inclusion of PC386 BSP submitted by Pedro Miguel Da Cruz Neto Romano
<pmcnr@camoes.rnl.ist.utl.pt> and Jose Rufino <ruf@asterix.ist.utl.pt>
of NavIST (http://pandora.ist.utl.pt/).
1997-12-01 22:06:48 +00:00
Joel Sherrill
c7ca28cf37 Removed warning under linux port. 1997-11-18 22:32:55 +00:00
Joel Sherrill
d24ceb38f7 interrupt driven change from Eric Norum 1997-11-15 18:15:36 +00:00
Joel Sherrill
a307f79f17 Fixed prototype 1997-11-10 17:50:50 +00:00
Joel Sherrill
52e1708d71 Set return code to avoid spurious errors. 1997-11-10 17:31:11 +00:00
Joel Sherrill
5a5bd13bac added katsutoshi Shibuya 1997-10-24 19:29:01 +00:00
Joel Sherrill
51eb8d55a0 Changed prototype of read routine. 1997-10-23 18:49:34 +00:00
Joel Sherrill
b628637805 Added prototype for console_reserve_resources. 1997-10-23 15:10:13 +00:00
Joel Sherrill
3ee825e830 fixed comment 1997-10-23 15:00:32 +00:00
Joel Sherrill
118a81295d New termios.c from Eric Norum.
Added new entry point to add in per physical port resource requirements.
1997-10-23 13:13:46 +00:00
Joel Sherrill
a75c783660 Converted from using a message queue for the raw input queue to using a
ring buffer in conjunction with a counting semaphore.
1997-10-21 17:03:18 +00:00
Joel Sherrill
55e13228e3 Added termios submission from Eric Norum and Katsutoshi Shibuya. 1997-10-21 17:03:17 +00:00
Joel Sherrill
ae35953d04 Added termios submission from Eric Norum and Katsutoshi Shibuya. 1997-10-21 16:18:03 +00:00
Joel Sherrill
4fd617952e Added casts and fixed line break. 1997-10-21 16:17:12 +00:00
Joel Sherrill
98e4ebf594 Fixed typo in the pointer to the license terms. 1997-10-08 15:45:54 +00:00
Joel Sherrill
f795ca905a Uncommented gettimeofday_r to resolve missing symbol. 1997-09-21 17:44:50 +00:00
Joel Sherrill
8f367d6baa Bug fix from Eric Norum:
After weeks of trying to figure why my RTEMS/KASQ server crashes now
    and then I found a nasty bug I introduced in adding multiple-driver
    support to libio.  The bug only affects `add-on' driver classes (like
    the networking code).  Old-style file descriptors were not affected.

    The bug cleared 32 bytes of memory (unspecified location) whenever a
    `close' of a socket was performed!  I was clearing an IOP I hadn't
    allocated -- and the pointer wasn't initiallized, either!
1997-09-19 18:31:05 +00:00
Joel Sherrill
7d352a49b7 Added RTEMS_IO_ERROR status code. 1997-08-28 13:59:41 +00:00
Joel Sherrill
3473f60548 Added error numbers and changed default error code from 0 to -1 for
error number mapping.
1997-08-27 20:33:49 +00:00
Joel Sherrill
b1459dc199 Moved reentrant wrappers into their own file. 1997-08-22 19:17:09 +00:00
Joel Sherrill
78d87bd3f3 Fixed iop/memory leak bug reported by Dan Dickey. 1997-08-22 19:16:47 +00:00
Joel Sherrill
0789abefbc new implementation of mc68681.h 1997-08-04 22:17:17 +00:00