| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Update #2738.
|
| |
|
|
|
|
|
|
|
|
| |
Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX
thread cancellation to use the thread life states.
Update #2555.
Update #2626.
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
|
|
|
| |
Rework pthread_join() to use _Thread_Join().
Close #2402.
Update #2555.
Update #2626.
Close #2714.
|
|
|
|
| |
Update #2555.
|
|
|
|
| |
Update #2555.
|
|
|
|
|
|
|
|
|
| |
Use a red-black tree instead of delta chains.
Close #2344.
Update #2554.
Update #2555.
Close #2606.
|
| |
|
|
|
|
|
|
|
| |
This avoids potential dead code in _Thread_Handler(). It gets rid of
the dangerous function pointer casts.
Update #2514.
|
|
|
|
|
|
| |
Rename _POSIX_Absolute_timeout_to_ticks() to
_TOD_Absolute_timeout_to_ticks() and move it to the score directory.
Delete empty <rtems/posix/time.h>.
|
|
|
|
|
|
|
|
| |
Store the floating-point unit property in the thread control block
regardless of the CPU_HARDWARE_FP and CPU_SOFTWARE_FP settings. Make
sure the floating-point unit is only enabled for the corresponding
multilibs. This helps targets which have a volatile only floating point
context like SPARC for example.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clustered/partitioned scheduling helps to control the worst-case
latencies in the system. The goal is to reduce the amount of shared
state in the system and thus prevention of lock contention. Modern
multi-processor systems tend to have several layers of data and
instruction caches. With clustered/partitioned scheduling it is
possible to honour the cache topology of a system and thus avoid
expensive cache synchronization traffic.
We have clustered scheduling in case the set of processors of a system
is partitioned into non-empty pairwise-disjoint subsets. These subsets
are called clusters. Clusters with a cardinality of one are partitions.
Each cluster is owned by exactly one scheduler instance.
|
|
|
|
|
| |
Scheduler operations must be free of a global scheduler context to
enable partitioned/clustered scheduling.
|
| |
|
| |
|
|
|
|
|
| |
Use allocator mutex for objects allocate/free. This prevents that the
thread dispatch latency depends on the workspace/heap fragmentation.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
With the addition of pthread affinity information in pthread_attr_t,
the existing code for pthread_attr_t had to be adjusted.
|
|
|
|
|
|
| |
Reproducable crashes occur when using pthreads and the capture engine
at the same time. 'pthread_create()' is the culprit. It creates a SCORE thread
and then calls Thread_Start( ) without disabling thread-dispatching.
|
|
|
|
|
|
|
|
| |
Move implementation specific parts of thread.h and thread.inl into new
header file threadimpl.h. The thread.h contains now only the
application visible API.
Remove superfluous header file includes from various files.
|
|
|
|
|
|
| |
Move implementation specific parts of stack.h and stack.inl into new
header file stackimpl.h. The stack.h contains now only the application
visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of watchdog.h and watchdog.inl into
new header file watchdogimpl.h. The watchdog.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of pthread.h and pthread.inl into new
header file pthreadimpl.h. The pthread.h contains now only the
application visible API.
|
|
|
|
|
|
| |
Move implementation specific parts of priority.h and priority.inl into
new header file priorityimpl.h. Remove priority.h since there is no
application visible API.
|
| |
|
|
|
|
| |
Add and use _Scheduler_Start_idle().
|
| |
|
|
|
|
| |
http://www.google-melange.com/gci/task/view/google/gci2012/7948216
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1573/cpukit
* configure.ac, posix/src/killinfo.c,
posix/src/psignalclearprocesssignals.c,
posix/src/psignalsetprocesssignals.c,
posix/src/psignalunblockthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadkill.c, posix/src/pthreadsigmask.c,
rtems/src/signalsend.c, rtems/src/taskmode.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/system.h,
score/include/rtems/score/context.h, score/include/rtems/score/isr.h,
score/include/rtems/score/thread.h, score/src/isr.c,
score/src/isrthreaddispatch.c, score/src/thread.c,
score/src/threaddispatch.c, score/src/threadloadenv.c: Add a per cpu
data structure which contains the information required by RTEMS for
each CPU core. This encapsulates information such as thread
executing, heir, idle and dispatch needed.
* score/include/rtems/score/percpu.h, score/src/percpu.c: New files.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am, posix/include/rtems/posix/priority.h,
posix/include/rtems/posix/pthread.h,
posix/inline/rtems/posix/priority.inl, posix/src/killinfo.c,
posix/src/pthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadsetschedparam.c: Various modifications to improve
binary code coverage analysis. Some of these are to mark code as
debug only. Some are to break conditional expressions into multiple
lines. Some are to move inline methods that are not time critical
into subroutines to make them easier to test. Inlining them multiple
times means that their logic paths are spread across multiple
methods. This explodes the test cases required.
* posix/src/psxpriorityisvalid.c, posix/src/psxtransschedparam.c: New files.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/include/rtems/posix/pthread.h, posix/src/pthread.c,
posix/src/pthreadcreate.c, rtems/include/rtems.h, rtems/src/attr.c,
sapi/include/confdefs.h, sapi/include/rtems/config.h,
score/inline/rtems/score/stack.inl, score/src/isr.c,
score/src/mpci.c, score/src/threadcreateidle.c,
score/src/threadinitialize.c, score/src/threadstackallocate.c: Add
ability for application to configure minimum stack size. Add
RTEMS_CONFIGURED_MINIMUM_STACK_SIZE constant so user can clearly
indicate they want the configured as opposed to the recommended
minimum stack size.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/include/rtems/itron/task.h, itron/src/cre_tsk.c,
posix/src/pthreadcreate.c, rtems/src/taskcreate.c,
rtems/src/taskdelete.c, rtems/src/timerserver.c,
score/src/threadclose.c, score/src/threadcreateidle.c,
score/src/threadinitialize.c: Switch task create and delete
operations to using API Allocator Mutex. This moves almost all uses
of the RTEMS Workspace from dispatching disabled to mutex protected
which should improve deterministic behavior. The implementation was
carefully done to allow task create and delete extensions to invoke
more services. In particular, a task delete extension should be able
to do mutex and file operations.
|
|
|
|
|
|
| |
* posix/src/clockgettime.c, posix/src/clocksettime.c,
Minor modifications to improve testability.
* posix/src/pthreadcreate.c: Add NULL check for thread entry.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* itron/include/rtems/itron/object.h, itron/src/cre_tsk.c,
libblock/src/show_bdbuf.c, libmisc/capture/capture-cli.c,
libmisc/capture/capture.c, libmisc/monitor/mon-manager.c,
libmisc/stackchk/check.c, posix/src/condinit.c,
posix/src/keycreate.c, posix/src/mqueuecreatesupp.c,
posix/src/mqueuedeletesupp.c, posix/src/mqueuenametoid.c,
posix/src/mqueueopen.c, posix/src/mqueueunlink.c,
posix/src/mutexinit.c, posix/src/pbarrierinit.c,
posix/src/prwlockinit.c, posix/src/pspininit.c,
posix/src/pthreadcreate.c, posix/src/pthreadexit.c,
posix/src/semaphorecreatesupp.c, posix/src/semaphorenametoid.c,
posix/src/timercreate.c, rtems/src/barrierident.c,
rtems/src/dpmemident.c, rtems/src/msgqident.c, rtems/src/partident.c,
rtems/src/ratemonident.c, rtems/src/regionident.c,
rtems/src/semident.c, rtems/src/taskident.c, rtems/src/timerident.c,
sapi/src/extensionident.c, score/Makefile.am,
score/include/rtems/score/object.h,
score/inline/rtems/score/object.inl, score/src/apimutexallocate.c,
score/src/objectextendinformation.c,
score/src/objectgetnameasstring.c, score/src/objectmp.c,
score/src/objectnametoid.c: Convert the Objects_Name type from a
simple type to a union of an unsigned 32 bit integer and a pointer.
This should help eliminate weird casts between u32 and pointers in
various places. The APIs now have to explicitly call _u32 or _string
versions of helper routines. This should also simplify things and
eliminate the need for ugly casts in some cases.
* score/src/objectclearname.c, score/src/objectcomparenameraw.c,
score/src/objectcomparenamestring.c, score/src/objectcopynameraw.c,
score/src/objectcopynamestring.c: Removed.
|
|
|
|
|
| |
* posix/src/pthreadcreate.c: Add commit.
* posix/src/pthreadinitthreads.c: Fix line length.
|
|
|
|
|
|
|
|
|
|
|
| |
* libcsupport/preinstall.am, posix/preinstall.am, posix/src/aio.c,
posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c,
posix/src/clockgettime.c, posix/src/clocksetenableattr.c,
posix/src/clocksettime.c, posix/src/devctl.c,
posix/src/pthreadcreate.c, posix/src/pthreadgetcpuclockid.c,
posix/src/types.c, rtems/preinstall.am, sapi/Makefile.am,
sapi/preinstall.am, score/Makefile.am, score/preinstall.am: Eliminate
POSIX_NOT_IMPLEMENTED(). Return ENOSYS instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* posix/Makefile.am, posix/include/rtems/posix/time.h,
posix/src/adjtime.c, posix/src/alarm.c, posix/src/clockgetres.c,
posix/src/condtimedwait.c, posix/src/mqueuetimedreceive.c,
posix/src/mqueuetimedsend.c, posix/src/mutextimedlock.c,
posix/src/nanosleep.c, posix/src/posixtimespecabsolutetimeout.c,
posix/src/pthread.c, posix/src/pthreadcreate.c,
posix/src/pthreadsetschedparam.c, posix/src/ptimer1.c,
posix/src/sched.c, posix/src/semtimedwait.c,
posix/src/sigtimedwait.c, posix/src/ualarm.c,
rtems/src/clocktodtoseconds.c, score/Makefile.am,
score/preinstall.am, score/include/rtems/score/tod.h,
score/inline/rtems/score/tod.inl, score/src/coretod.c,
score/src/coretodget.c, score/src/coretodgetuptime.c,
score/src/coretodset.c, score/src/coretodtickle.c: Provide timespec
manipulation routines in the SuperCore. Use them everywhere possible.
This lead to significant cleanup in the API routines and eliminated
some of the same code from the POSIX API. At this point, the
SuperCore keeps time in POSIX timespec format properly from 1970. You
just cannot set it before 1988 in keeping with RTEMS traditional
behavior.
* score/include/rtems/score/timespec.h, score/src/timespecaddto.c,
score/src/timespecfromticks.c, score/src/timespecisvalid.c,
score/src/timespeclessthan.c, score/src/timespecsubtract.c,
score/src/timespectoticks.c: New files.
* posix/src/posixintervaltotimespec.c,
posix/src/posixtimespecsubtract.c,
posix/src/posixtimespectointerval.c: Removed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* include/rtems/posix/cond.h, include/rtems/posix/condmp.h,
include/rtems/posix/config.h, include/rtems/posix/intr.h,
include/rtems/posix/key.h, include/rtems/posix/mqueue.h,
include/rtems/posix/mqueuemp.h, include/rtems/posix/mutex.h,
include/rtems/posix/mutexmp.h, include/rtems/posix/posixapi.h,
include/rtems/posix/pthread.h, include/rtems/posix/pthreadmp.h,
include/rtems/posix/ptimer.h, include/rtems/posix/semaphore.h,
include/rtems/posix/semaphoremp.h, inline/rtems/posix/cond.inl,
inline/rtems/posix/intr.inl, inline/rtems/posix/key.inl,
inline/rtems/posix/mqueue.inl, inline/rtems/posix/mutex.inl,
inline/rtems/posix/pthread.inl, inline/rtems/posix/semaphore.inl,
inline/rtems/posix/timer.inl, macros/rtems/posix/cond.inl,
macros/rtems/posix/intr.inl, macros/rtems/posix/key.inl,
macros/rtems/posix/mqueue.inl, macros/rtems/posix/mutex.inl,
macros/rtems/posix/pthread.inl, macros/rtems/posix/semaphore.inl,
macros/rtems/posix/timer.inl, src/alarm.c, src/kill.c,
src/killinfo.c, src/mqueuetranslatereturncode.c, src/pause.c,
src/pthreadattrdestroy.c, src/pthreadattrgetdetachstate.c,
src/pthreadattrgetinheritsched.c, src/pthreadattrgetschedparam.c,
src/pthreadattrgetschedpolicy.c, src/pthreadattrgetscope.c,
src/pthreadattrgetstackaddr.c, src/pthreadattrgetstacksize.c,
src/pthreadattrinit.c, src/pthreadattrsetdetachstate.c,
src/pthreadattrsetinheritsched.c, src/pthreadattrsetschedparam.c,
src/pthreadattrsetschedpolicy.c, src/pthreadattrsetscope.c,
src/pthreadattrsetstackaddr.c, src/pthreadattrsetstacksize.c,
src/pthreadcreate.c, src/pthreaddetach.c, src/pthreadequal.c,
src/pthreadexit.c, src/pthreadgetcpuclockid.c,
src/pthreadgetcputime.c, src/pthreadgetschedparam.c,
src/pthreadjoin.c, src/pthreadkill.c, src/pthreadonce.c,
src/pthreadself.c, src/pthreadsetcputime.c,
src/pthreadsetschedparam.c, src/pthreadsigmask.c, src/sigaction.c,
src/sigaddset.c, src/sigdelset.c, src/sigemptyset.c,
src/sigfillset.c, src/sigismember.c, src/signal_2.c,
src/sigpending.c, src/sigprocmask.c, src/sigqueue.c,
src/sigsuspend.c, src/sigtimedwait.c, src/sigwait.c,
src/sigwaitinfo.c, src/ualarm.c: URL for license changed.
|
|
|
|
|
|
|
| |
* configure.in: Add src/config.h
* src/Makefile.am: Add INCLUDES += -I. to pickup config.h
* src/.cvsignore: Add config.h and stamp-h
* src/*.c: Add config.h support.
|
|
|
|
|
|
|
|
|
|
|
| |
a BSP (c4xsim) supporting the simulator included with gdb. This port
was done by Joel Sherrill and Jennifer Averett of OAR Corporation.
Also included with this port is a space/time optimization to eliminate
FP context switch management on CPUs without hardware or software FP.
An issue with this port was that sizeof(unsigned32) = sizeof(unsigned8)
on this CPU. This required addressing alignment checks and assumptions
as well as fixing code that assumed sizeof(unsigned32) == 4.
|