Commit Graph
627 Commits
Author SHA1 Message Date
Joel Sherrill 0d1184ffec changed version to 980707 1998-07-07 19:05:55 +00:00
Joel Sherrill d859b5fb22 changed version to 9800707 1998-07-07 19:00:26 +00:00
Joel Sherrill 270d58fe4c New file to satisfy readdir() family. 1998-07-06 19:00:33 +00:00
Joel Sherrill dd6dddcf1e Fixed typo. 1998-07-01 21:33:11 +00:00
Joel Sherrill 98100d275f Monstrous patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>. I have
made no attempt to divide the comments up and place them with just
the appropriate files.  Here is an excerpt from Ralf's email:

Changes including comments on changes I made after cycling through
all the targets:

  * Added ranlib support. Now all targets use "ranlib" instead of "ar -s"
    to build an index for a library. If ranlib isn't detected during
    configuration, check if ar -s is working and try "ar -s" instead of

  * Removed $(XXX_FOR_TARGET) from make/target.cfg.in, use $(XXX) instead now.

  * gcc-target-default.cfg: LINK_XXXX-defines reworked to solve the -l
    problem under posix (cf gcc-target-default.cfg)

  * rtems-glom replaced by Makefile-rules inside of the wrapup/Makefile.in
    that has been using rtems-glom until now.

  * Removed CCC and friends in gcc-target-default.cfg, as they have been
    breaking CXX support.

  * Removed CONFIG.$(TARGET_ARCH).CC lines from several custom/*.cfg
    files, because this is now set in custom/default.cfg.

  * Added aclocal/ar-s.m4, check whether "ar -s" is working

  * Added aclocal/cygwin.m4 and aclocal/exeext.m4.

  * Reworked aclocal/canonicalize-tools.m4: Added ar -s check; fixes for
    problems when  XXX_FOR_TARGET is given via environment variables (didn't
    work for gcc until now), adding cygwin check, improved autoconf-cache
    handling.

  * Removed -l from make rule dependencies. LINK_LIBS is now allowed to
    contain -L and -l. LINK_OBJS and LINK_FILES must not contain -L or -l.
    gcc28 make-exe rules now link using $(LINK_OBJS) $(LINK_LIBS) => Almost
    all custom/*.cfg are modified. This is very likely to break something
    because of typos or having missed to edit a file.

  Open problems, known bugs, things I didn't do:

  * custom/p4000.cfg seems to be out of date and requires to be reviewed.

    (JRS NOTE: It is subordinate p4650 and p4600 -- both of which build ok
               after minor changes.)

  * custom/psim.cfg needs to be reviewed, I added some changes to it, I am
    insecure about.

    (JRS NOTE: psim had a minor problem endif/endef swapped but runs fine.)

  * rtems-glom.in can now be removed.

  * gcc*.cfg files "make depend" rules don't honor language specific flags
    (e.g CXXFLAGS is ignored for *.cc) - Nothing to worry about now, but may
    cause problems for hosts/targets not using gcc or rtems-add-ons that use
    external packages.

  * AFAIS, the no_bsp BSP can't be build anymore, i.e. configure refused
    to configure for it whatever I tried.

  * The toplevel and toplevel+1 README files are quite out-dated

  * cygwin.m4 isn't of much use for rtems. In most cases (cf.
    aclocal/*.m4) it is worked around by directly using $host_os. I think
    I'll remove it soon after the next snapshot

  * Before release the cygwin patch needs to be tested under cygwin. I may
    have broken/missed something (esp. the sed-pattern to convert \\ into /
    may be broken).

  * You should try to build/run the posix-BSP under solaris - I don't
    expect problems, but I am not 100% sure, esp. with regard to ranlib/ar -s.

  * You should consider to convert all make/compilers/*.cfg files into
    make/compilers/*.cfg.in files and let autoconf generate the *.cfg. This
    may help getting rid of some if/then/else statements and help
    hard-coding some defines into those files in future and shouldn't
    disturb now.

  * Not having installed libc.a/libm.a on a host may still break building
    rtems, esp. when using -disable-gcc28 as the gcc27-configuration scheme
    directly accesses libc.a and libm.a. The problem should not appear when
    using gcc28 because it references libc/libm only through -lc and -lm
    which may be static or dynamic (I didn't test this).

  * shgen is not yet included (I didn't yet have enough time to integrate it).

  * I know about a few more configure-probs (esp. cross-checking
    --enable-* flags).
     + warn/refuse to configure when --enable-libcdir and
       --enable-gcc28 are given.
     + force --enable-libcdir when --disable-gcc28 is given

  * Replaced KSHELL with @KSH@ in some shell scripts generated by configure.in.

  * Added a dependency to aclocal/*.m4 in the toplevel Makefile => configure
    and aclocal.m4 will now be rebuild when any aclocal/*.m4 file is changed

  * Some changes to aclocal/gcc-pipe.m4 and aclocal/gcc-specs.m4

  * Replaced i[[3456]]86-unknown-freebsd2.[[12]] with i[[3456]]86-*freebsd2.*
    in configure.in, as I suppose there might exist a variety of valid vendors
    (2nd field of the name-tripple)

  * Disabled override MAKEFLAGS in toplevel Makefile.in - Potential
    side-effects are not really clear to me.

  * In mvme162.cfg, $(LINK_LIBS) is missing in the CC line in gcc28's make-exe
    rule (yet another one I missed to edit). Just append $(LINK_LIBS) to
    the "CC" line, like I hopefully did to ALL other custom/*.cfg files.

  * the problem with mvme162lx.cfg is a follow-up problem of the
    mvme162.cfg-bug.

  * mvme162/console and idp/console had variables named Buffer which
    conflicted with similarly named variables in some tests.
1998-06-27 17:09:47 +00:00
Joel Sherrill b22b1294a6 Coldfire support patch from David Fiddes <D.J.Fiddes@hw.ac.uk>. 1998-06-25 16:26:43 +00:00
Joel Sherrill 924e17ac81 Patch from Robin Kirkham <Robin.Kirkham@mlb.dmt.csiro.au> to distinguish
between CPU32 and CPU32+ cores.  Commentary follows:

    Unfortunately c/src/exec/score/cpu/m68k/m68k.h incorrectly defines
    M68K_HAS_MISALIGNED for the plain old CPU32 (it is correct for the CPU32+).
    As a consequence, the recently-relocated m68k memcpy() may still attempt
    misaligned memory accesses.

    I suggest that until such time as egcs/gcc differentiates these cores
    that we invent a new preprocessor symbol, RTEMS__mcpu32p__ for this
    purpose, on the assumption that egcs may one day grow a -mcpu32+ option
    which will define a __mcpu32p__ symbol (whether this option would also
    define __mcpu32__ is yet to be resolved).

    BSPs that have a CPU32+ (like gen68360) would for the time being define
    RTEMS__mcpu32p__ using -D. The symbol is `RTEMS__mcpu32p__' because
    symbols of the form __xxx__ should only be defined by the compiler
    itself.

    Note that the patch tests for RTEMS__mcpu32p__ *before* __mcpu32__, since
    __mcpu32__ is still defined for the CPU32+. It does not change the
    gen68360 BSP.

    An aside:
    Note that in egcs-1.0.3a, the option -m68332 is identical to -mcpu32,
    except it defines __mc68332__ as well as __mcpu32__. This is only
    for the sake of compatibility. The story with -m68302 is similar;
    it defines __mc68302__ and __mc68000__. In my opinion these options
    are depreciated and ought to be avoided in RTEMS.
1998-06-25 16:10:45 +00:00
Joel Sherrill 803de4133b Suggestion from Robin Kirkham <Robin.Kirkham@mlb.dmt.csiro.au> to improve
clarity.
1998-06-24 17:58:56 +00:00
Joel Sherrill ce17a7245c changed version to 980618 1998-06-18 19:14:36 +00:00
Joel Sherrill cb1b853d0b All task delete API level services were incorrectly assuming that the
task to be deleted was created via the same API (i.e. were of the object
class created by this API).  For example, a POSIX thread calling
the rtems_task_delete(SELF) directive would incorrectly update the RTEMS
object local pointer table.

Jennifer discovered this when moving tests implemented in C using the
Classic RTEMS API into a tree of Ada tests.  The Ada tests were implicitly
using POSIX services.  This lead to some unexpected behavior.
1998-06-18 19:01:57 +00:00
Joel Sherrill 7e4c3d8b1d Modified _Objects_Is_class_valid() to correctly report that 0 was
not a valid object class.  This was discovered while looking for
a bug reported by Jennifer.
1998-06-18 18:58:42 +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 773890639c Added optimized version of memcpy.c to this directory since RTEMS makes
important distinctions between CPU models which are not made by gcc.
These distinctions help give us a more optimized memcpy().  This is important
for message queues and KA9Q.
1998-06-12 21:12:12 +00:00
Joel Sherrill cec1095101 changed version to 980604 1998-06-04 15:15:30 +00:00
Joel Sherrill 937a6f3cef Added CPU_ISR_PASSES_FRAME_POINTER so some ports could pass just the
vector number to user ISR's and other ports could pass both the vector
number and a pointer to the ISF.
1998-06-03 19:00:17 +00:00
Joel Sherrill 75d0b0b83a Corrected macros for assembly language program sections. 1998-06-03 18:49:38 +00:00
Joel Sherrill 2e4b3d03da changed version to 980527 1998-05-27 22:10:10 +00:00
Joel Sherrill 71d07b9ddf Corrected interrupt stack allocation. 1998-05-27 19:18:02 +00:00
Joel Sherrill 448ba47a4c Fixed spacing 1998-05-27 12:26:07 +00:00
Joel Sherrill 139e6efe3c Fix from Jiri Gaisler <jgais@ws.estec.esa.nl> for a problem in which
external interrupt priorities were not being honored.  Here is some
of his original report:

    using rtems/erc32, I have a problem with interrupt priority when
    interrupts occure simultaneously. Erc32 has an interrupt force
    register where interrupts can be generated. If more than one
    interrupt is generated, the interrupt handlers are scheduled in
    the wrong order, i.e. with the lowest priority first.

    I have attched a program that generates three interrupts, 0x11, 0x12
    and 0x13. Interrupt 0x13 should be handled first, but is actually
    handled last. Below is the output from sis:

        sis> go
        resuming at 0x02000000
        RAM size: 4096 K, ROM size: 2048 K
        Watchdog disabled
        Waitstates = RAM read: 0, RAM write: 0, ROM read: 0, ROM write: 0
        Power-down mode enabled
        infinite UART baudrate
        External interrupt received with vector 0x11
        External interrupt received with vector 0x12
        External interrupt received with vector 0x13

    I have verified that sis generates the interrupts in the correct
    order, i.e. 0x13 first, then 0x12 and then 0x11. So the problem
    seems to be in the rtems interrupt handler. Do you use the PIL field
    in the %psr register to mask lower priority interrupts or are all
    external interrupts considered to have the same priority ..?

Here is a description of the fix:

  it turned out that lower priority interrupts were not at all masked
  off during interrupt handling. I made the following fix to cpu_asm.s:
       ... fix is in the code ...
  There might be a simpler way of doing this, but this works...
1998-05-27 12:21:32 +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 7e93af11ce changed version to 980521 1998-05-21 19:11:24 +00:00
Joel Sherrill d7588efc2f Per suggestion from Ralf Corsepius made all macros solaris2 -- not solaris
or solaris2.
1998-05-21 16:39:51 +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 8dc5d00f2c changed version to 980518 1998-05-18 17:35:24 +00:00
Joel Sherrill 64876e33f4 Added bsp_specs. 1998-05-18 16:37:32 +00:00
Joel Sherrill bac7b61449 Include memory for Ada task stacks. 1998-05-18 16:37:00 +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 b77b26742e fixed swap of unsigned16 1998-05-04 12:36:59 +00:00
Joel Sherrill 10b3c9b3ef Added default value for CONFIGURE_MAXIMUM_POSIX_THREADS since it is
used to calculate the amount of memory used by tasks whether the
POSIX API is enabled or disabled.
1998-05-04 12:35:22 +00:00
Joel Sherrill d74daf9d45 Fixed case where wrong variable was used. 1998-04-30 16:48:40 +00:00
Joel Sherrill b7be9c30d2 Removed redundant "* 1024" which exploded the size of the workspace. 1998-04-30 11:41:09 +00:00
Joel Sherrill 0c508af979 Added I386_HAS_BSWAP cpu model feature flag so swap u32 could take
advantage of this instruction.

Also up conditionals mapping cpu models to feature flags by having a
section which defaults all the i386 family feature flags to the most
common value.
1998-04-27 18:18:13 +00:00
Joel Sherrill b0aba4c46b Added swap of unsigned16 1998-04-27 16:10:16 +00:00
Joel Sherrill eac9871aa2 Fixed spelling errors. 1998-04-27 15:30:59 +00:00
Joel Sherrill 0153d180b3 Fixed trace bit manipulation per requests from Eric Norum and Chris Johns.
Actual patch was from Eric Norum.
1998-04-27 15:28:43 +00:00
Joel Sherrill 72aa8cf4a8 Fixed CVS Id 1998-04-27 14:16:29 +00:00
Joel Sherrill 308aed9b39 Added numerous entries to make the memory calculation more accurate:
+ POSIX threads
  + Ada tasks
  + POSIX threads API support
  + POSIX condition variables
  + POSIX keys (still do not account for data fields)
  + POSIX mutexes
  + POSIX queued signals
  + added macro for extra memory for task stacks
  + default value for CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
  + extra memory for Ada task stacks
1998-04-27 13:49:42 +00:00
Joel Sherrill 20fff72b41 Moved POSIX_signals_Siginfo_node structure definition to headers/psignal.h
so confdefs.h could see it.
1998-04-27 13:46:45 +00:00
Joel Sherrill 9f0dfeafdb Changed __POSIX_SIGNALS_h to __RTEMS_POSIX_SIGNALS_h to avoid conflict with
the system signals.h file.

Moved POSIX_signals_Siginfo_node type definition to this file to allow
confdefs.h to know the size per queued signal.
1998-04-27 13:46:18 +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 4390882539 Changed to account for libio's maximum_semaphores as well as its
memory requirements.

Also added variable to tell libio how many file descriptors to allocate.
1998-04-18 17:24:56 +00:00
Joel Sherrill b25d3d03df Changed version number so script will work. 1998-04-18 17:24:04 +00:00
Joel Sherrill 8a1636d39f Added bh, ch, dh, bl, cl, and dl register macros. 1998-04-15 22:16:22 +00:00