| Commit message (Collapse) | Author | Files | Lines |
|
* Per PR147 addressed problems when reseting and inserting a timer
into a timer chain that did not honor time passage since the last
time the timer server was scheduled and the new insertion.
* include/rtems/rtems/timer.h, src/timerreset.c, src/timerserver.c,
src/timerserverfireafter.c, src/timerserverfirewhen.c: Broke up
the "reset server" routine into a set of very specific routines
that allowed the server to be unscheduled, timer chains to be
"synchronized" with the current time before inserting a new timer.
|
|
* Makefile.am: Remove AUTOMAKE_OPTIONS.
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
* inline/Makefile.am: Remove AUTOMAKE_OPTIONS.
* macros/Makefile.am: Remove AUTOMAKE_OPTIONS.
* src/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
|
* Fixed bug where resetting a timer that was not at the head
of one of the task timer chains resulted in the Timer Server
task waking up too far in the future.
* Added rtems_timer_get_information() directive to support testing.
* src/timerserver.c, include/rtems/rtems/timer.h,
* src/timergetinfo.c: New file.
* src/Makefile.am: Modified to reflect above.
|
|
* include/rtems/rtems/timer.h, src/timerserver.c: Add priority
argument to rtems_timer_initiate_server().
|
|
* include/rtems/system.h: Only include cpuopts.h when building a
multilib configuration. Some ports still need targopts.h but this
small modification lets those ports work non-multilib while
fixing being fixed for multilib.
|
|
* Added task-based timers to the Timer Manager. This added three
new directives:
- rtems_timer_initiate_server
- rtems_timer_server_fire_after
- rtems_timer_server_fire_when
In the process of doing this, a number of cleanups were made.
* src/timerserver.c, src/timerserverfireafter.c,
src/timerserverfirewhen.c: New files.
* include/timer/timer.h: Added new prototypes and supporting types.
* inline/rtems/rtems/timer.h, macros/rtems/rtems/timer.h: Enhanced
_Timer_Is_interval_class() to cover the class TIMER_INTERVAL_ON_TASK.
* src/Makefile.am: Accounted for new files.
* src/rtemstimer.c: Added initialization of _Timer_Server variable.
* src/timercancel.c, src/timerreset.c: Account for addition
of timer classes. Also corrected the headers.
* src/timercreate.c, src/timerdelete.c, src/timerfireafter.c,
src/timerfireafter.c, src/timerident.c: Corrected header.
|
|
* Added task-based timers to the Timer Manager. This added three
new directives:
- rtems_timer_initiate_server
- rtems_timer_server_fire_after
- rtems_timer_server_fire_when
In the process of doing this, a number of cleanups were made.
* src/timerserver.c, src/timerserverfireafter.c,
src/timerserverfirewhen.c: New files.
* include/timer/timer.h: Added new prototypes and supporting types.
* inline/rtems/rtems/timer.h, macros/rtems/rtems/timer.h: Enhanced
_Timer_Is_interval_class() to cover the class TIMER_INTERVAL_ON_TASK.
* src/Makefile.am: Accounted for new files.
* src/rtemstimer.c: Added initialization of _Timer_Server variable.
* src/timercancel.c, src/timerreset.c: Account for addition
of timer classes. Also corrected the headers.
* src/timercreate.c, src/timerdelete.c, src/timerfireafter.c,
src/timerfireafter.c, src/timerident.c: Corrected header.
|
|
* src/taskmode.c: Ensure the this service does not dispatch before
tasking is enabled at initialization time.
|
|
* src/Makefile.am: Add multilib support.
* optman/Makefile.am: Add multilib support.
|
|
* src/tasks.c: Dereference pointer passed to destructor.
|
|
* src/msgqsubmit.c: Add a comment indicating that we do not have
to account for possibly blocking during the core send operation
because Classic API message queue send is always non-blocking.
|
|
* src/msgqsubmit.c: Unblocking message queue operations should
NOT use _Thread_Executing for return status since it is permissible
to invoke message send operations from an ISR. This was reported
by Suvrat Gupta <suvrat@utstar.com>.
|
|
* src/eventsurrender.c: Clear event condition when task is unblocked.
This makes sure that subsequent event send thinks the task is still
blocked and overwrites the initial events received.
|
|
* include/rtems.h, src/signalcatch.c: Modifications to make
CodeWarrior happy.
|
|
* src/regiongetinfo.c: Removed unused variable to eliminate warning.
|
|
* src/msgqsubmit.c: Modified multiprocessing conditional so
this would compile with both macros and inlines.
|
|
* src/regiongetinfo.c, include/rtems/rtems/region.h,
include/rtems/rtems/types.h, src/Makefile.am: Added
region_get_information() and information control block.
* src/regiongetinfo.c: New file.
|
|
* include/rtems/rtems/ratemon.h, src/ratemonperiod.c,
src/ratemontimeout.c: Add next_length field so period length
can be changed by the the sequence period(X), period(not X)
with no intervening cancel or expiration.
|
|
* optman/Makefile.am, src/Makefile.am: Include compile.am.
|
|
* taskstart.c: Removed 1st cut at rtems_task_start_main_style.
Only committed this so it could be easily revisited as we
discussing moving main() to user space from BSP space.
|
|
* taskstart.c: Added 1st cut at rtems_task_start_main_style.
|
|
|
|
|
|
semaphore/mutex can be obtained immediately, this cuts execution time
by 50%.
|
|
|
|
now is an implementation of the prototypes in rtems/rtems/cache.h.
The libcpu/i386/wrapup directory is no longer needed.
The PowerPC needs this done to it.
|
|
<charles.gauthier@iit.nrc.ca>, and Darlene A. Stewart
<Darlene.Stewart@nrc.ca> to add support for a number of very
significant things:
+ BSPs for many variations on the Motorola MBX8xx board series
+ Cache Manager including initial support for m68040
and PowerPC
+ Rework of mpc8xx libcpu code so all mpc8xx CPUs now use
same code base.
+ Rework of eth_comm BSP to utiltize above.
John reports this works on the 821 and 860
|
|
|
|
adds .cvsignore.
|
|
that contains:
* Removes remaining (now illegal) references to $(SRC) from a couple of
Makefile.ams
* Removes duplicate AC_CONFIG_SUBDIRS macro from c/configure.in
* Moves ENABLE_LIBCDIR into RTEMS_PROG_C[C|XX]_FOR_TARGET (hides LIBCDIR
from most configure scripts, i.e. LIBCDIR becomes less visible)
* Adds RTEMS_PROG_C[C|XX]_FOR_TARGET and RTEMS_CANONICALIZE_TOOLS to
libbsp/*/configure.ins (A minor bug in previous implementations, which
only has an impact when switching to GNU/Cygnus canonicalization)
* Cleans up several bogus comments.
* Removes MKLIB
* Switches the version number to 4.5.0 (for testing version number
handling)
|
|
<andrew@pogo.wv.tek.com>.
|
|
<andrew@pogo.wv.tek.com>.
|
|
Eric Norum <eric@cls.usask.ca>.
|
|
|
|
|
|
I'd like to propose a change to RTEMS task variables that I think would
make them more useful. I think that it is early enough in their
existence to still make changes to their API.
1) Change type from `int' to `void *'.
2) Add extra argument to task_variable_add -- if non-NULL, a pointer to
a `destructor' function to be called when the task exits. This function
would be called with that task's value of the task variable as its
argument. In many cases, the `dtor' function could be `free'.
rtems_status_code rtems_task_variable_add (
rtems_id tid, void **ptr, void (*dtor)(void *));
rtems_status_code rtems_task_variable_delete (rtems_id tid, void **ptr);
This would be all we'd need to cleanly and efficiently support C++
per-thread exception information without dragging in all that POSIX API
stuff.
|
|
|
|
blocking sends when the queue is full. The SuperCore was enhanced
to support blocking on send. The existing POSIX API was debugged
and numerous test cases were added to psxmsgq01 by Jennifer Averett.
SuperCore enhancements and resulting modifications to other APIs
were done by Joel.
There is one significant point of interpretation for the POSIX API.
What happens to threads already blocked on a message queue when the
mode of that same message queue is changed from blocking to non-blocking?
We decided to unblock all waiting tasks with an EAGAIN error just
as if a non-blocking version of the same operation had returned
unsatisfied. This case is not discussed in the POSIX standard and
other implementations may have chosen differently.
|
|
|
|
power binary/mutex style semaphores already supported by RTEMS. This
was done at the request of Eric Norum <eric@cls.usask.ca> in support
of his effort to port EPICS to RTEMS. This change consisted of
changing the nesting_allowed boolean into a lock_nesting_behavior
enumerated value as well as allowing the core mutex object to optionally
support ensuring that the holder of a binary semaphore released it.
Finally, a more subtle enhancement was to allow the non-holder to release
a priority inheritance/ceiling mutex and still allow the holding task
to return to its original priority.
|
|
|
|
"mutex" and counting semaphore. This is at the request of Eric Norum
and his EPICS porting effort.
|
|
to convert the libc directory to automake and "dozens of
small fixes for Makefile.ins/configure.ins below c/src/lib."
|
|
|
|
RTEMS API extension to avoid problems when the extension is freed.
Eventually the task variable switch extension should become part
of the core context switch and the Ada tcb self implemented in
terms of it.
|
|
it is now typedef'ed.
|
|
just "rtems_task_variable_t".
|
|
After being submitted, this support was rewritten to be inside the
executive rather than layered on top of it using an extension.
|
|
|
|
Working Group. Included are tests.
|