Commit Graph

59 Commits

Author SHA1 Message Date
Sebastian Huber
e366f774a7 score: Add _Thread_queue_Object_name
Add the special thread queue name _Thread_queue_Object_name to mark
thread queues embedded in an object with identifier.  Using the special
thread state STATES_THREAD_QUEUE_WITH_IDENTIFIER is not reliable for
this purpose since the thread wait information and thread state are
protected by different SMP locks in separate critical sections.  Remove
STATES_THREAD_QUEUE_WITH_IDENTIFIER.

Add and use _Thread_queue_Object_initialize().

Update #2858.
2017-01-31 09:38:07 +01:00
Sebastian Huber
9a448aabe6 score: Add STATES_THREAD_QUEUE_WITH_IDENTIFIER
Add thread state bit to identify thread queues that are embedded in an
object with identifier.
2017-01-11 08:16:27 +01:00
Sebastian Huber
620b23ece5 score: Optimize _Thread_queue_Enqueue()
Move thread state for _Thread_queue_Enqueue() to the thread queue
context.  This reduces the parameter count of _Thread_queue_Enqueue()
from five to four (ARM for example has only four function parameter
registers).  Since the thread state is used after several function calls
inside _Thread_queue_Enqueue() this parameter was saved on the stack
previously.
2016-11-24 08:46:20 +01:00
Sebastian Huber
a4217c674d score: Rename _Thread_queue_Enqueue_critical()
Delete unused _Thread_queue_Enqueue() and rename
_Thread_queue_Enqueue_critical() to _Thread_queue_Enqueue().
2016-11-23 12:52:06 +01:00
Sebastian Huber
125f248231 score: Add thread queue enqueue callout
Replace the expected thread dispatch disable level with a thread queue
enqueue callout.  This enables the use of _Thread_Dispatch_direct() in
the thread queue enqueue procedure.  This avoids impossible exection
paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
2016-11-23 12:52:06 +01:00
Gedare Bloom
f23d470616 cpukit: Add and use Watchdog_Discipline.
Clock disciplines may be WATCHDOG_RELATIVE, WATCHDOG_ABSOLUTE,
or WATCHDOG_NO_TIMEOUT. A discipline of WATCHDOG_RELATIVE with
a timeout of WATCHDOG_NO_TIMEOUT is equivalent to a discipline
of WATCHDOG_NO_TIMEOUT.

updates #2732
2016-07-25 12:44:47 -04:00
Sebastian Huber
93306058c0 score: _CORE_mutex_Check_dispatch_for_seize()
Move the safety check performed by
_CORE_mutex_Check_dispatch_for_seize() out of the performance critical
path and generalize it.  Blocking on a thread queue with an unexpected
thread dispatch disabled level is illegal in all system states.

Add the expected thread dispatch disable level (which may be 1 or 2
depending on the operation) to Thread_queue_Context and use it in
_Thread_queue_Enqueue_critical().
2016-05-30 16:16:21 +02:00
Sebastian Huber
dce487912d score: Add Status_Control for all APIs
Unify the status codes of the Classic and POSIX API to use the new enum
Status_Control.  This eliminates the Thread_Control::Wait::timeout_code
field and the timeout parameter of _Thread_queue_Enqueue_critical() and
_MPCI_Send_request_packet().  It gets rid of the status code translation
tables and instead uses simple bit operations to get the status for a
particular API.  This enables translation of status code constants at
compile time.  Add _Thread_Wait_get_status() to avoid direct access of
thread internal data structures.
2016-05-26 21:44:31 +02:00
Sebastian Huber
631b3c8967 score: Move thread queue MP callout to context
Drop the multiprocessing (MP) dependent callout parameter from the
thread queue extract, dequeue, flush and unblock methods.  Merge this
parameter with the lock context into new structure Thread_queue_Context.
This helps to gets rid of the conditionally compiled method call
helpers.
2016-05-25 12:43:54 +02:00
Sebastian Huber
c3d8d9e0bf score: Get rid of mp_id parameter
Get rid of the mp_id parameter used for some thread queue methods.  Use
THREAD_QUEUE_QUEUE_TO_OBJECT() instead.
2016-05-25 12:43:53 +02:00
Sebastian Huber
4b623d655b score: Fix blocking _CORE_message_queue_Submit()
Close #2718.
2016-05-24 15:37:10 +02:00
Sebastian Huber
7e66865e17 score: Move message notification
Move message notification to end of critical section and delegate the
message queue release to the notification handler.  It may do more
complex notification actions out of the critical section.

Update #2555.
2016-05-02 07:46:15 +02:00
Sebastian Huber
88e09b983d score: _CORE_message_queue_Insert_message()
Move common code into _CORE_message_queue_Insert_message().
2016-05-02 07:46:14 +02:00
Sebastian Huber
1b7a6a3863 score: _CORE_message_queue_Set_message_priority()
Remove _CORE_message_queue_Set_message_priority() and set the priority
in _CORE_message_queue_Insert_message().
2016-05-02 07:46:14 +02:00
Sebastian Huber
99112f76b8 score: _CORE_message_queue_Submit()
Move lock acquire to caller of _CORE_message_queue_Submit() to allow
state checks during send operations under lock protection.
2016-05-02 07:46:14 +02:00
Sebastian Huber
8f9658187a score: Rework MP thread queue callout support
The thread queue implementation was heavily reworked to support SMP.
This broke the multiprocessing support of the thread queues.  This is
fixed by this patch.

A thread proxy is unblocked due to three reasons
  1) timeout,
  2) request satisfaction, and
  3) extraction.

In case 1) no MPCI message must be sent.  This is ensured via the
_Thread_queue_MP_callout_do_nothing() callout set during
_Thread_MP_Allocate_proxy().

In case 2) and 3) an MPCI message must be sent.  In case we interrupt
the blocking operation during _Thread_queue_Enqueue_critical(), then
this message must be sent by the blocking thread.  For this the new
fields Thread_Proxy_control::thread_queue_callout and
Thread_Proxy_control::thread_queue_id are used.

Delete the individual API MP callout types and use
Thread_queue_MP_callout throughout.  This type is only defined in
multiprocessing configurations.  Prefix the multiprocessing parameters
with mp_ to ease code review.  Multiprocessing specific parameters are
optional due to use of a similar macro pattern.  There is no overhead
for non-multiprocessing configurations.
2016-04-06 09:08:21 +02:00
Sebastian Huber
97312fcc6d score: Delete Thread_Wait_information::id
This field was only by the monitor in non-multiprocessing
configurations.  Add new field Thread_Wait_information::remote_id in
multiprocessing configurations and use it for the remote procedure call
thread queue.

Add _Thread_Wait_get_id() to obtain the object identifier for debug and
system information tools.  Ensure the object layout via static asserts.
Add test cases to sptests/spthreadq01.
2016-04-06 09:08:20 +02:00
Sebastian Huber
1e1a91ed11 score: Remove Thread_queue_Queue::operations field
Remove the Thread_queue_Queue::operations field to reduce the size of
this structure.  Add a thread queue operations parameter to the
_Thread_queue_First(), _Thread_queue_First_locked(),
_Thread_queue_Enqueue(), _Thread_queue_Dequeue() and
_Thread_queue_Flush() functions.  This is a preparation patch to reduce
the size of several synchronization objects.
2016-03-29 07:26:42 +02:00
Sebastian Huber
f97536dcd3 basdefs.h: Add and use RTEMS_UNUSED 2015-10-26 09:13:19 +01:00
Sebastian Huber
e273501233 score: Introduce Thread_queue_Queue
Separate the thread queue heads and lock from the operations.  This
enables the support for light weight objects which only support one
queuing discipline.
2015-07-23 08:00:19 +02:00
Sebastian Huber
cc18d7bec7 score: Fine grained locking for message queues
Aggregate several critical sections into a bigger one.  Sending and
receiving messages is now protected by an ISR lock.  Thread dispatching
is only disabled in case a blocking operation is necessary.  The message
copy procedure is done inside the critical section (interrupts
disabled).  Thus this change may have a negative impact on the interrupt
latency in case very large messages are transferred.

Update #2273.
2015-05-19 12:00:46 +02:00
Sebastian Huber
f5d6c8b58d score: Delete Thread_queue_Control::timeout_status
Use a parameter for _Thread_queue_Enqueue() instead to reduce memory
usage.
2015-05-19 12:00:46 +02:00
Sebastian Huber
02c4c441a5 score: Add Thread_queue_Control::Lock
Move the complete thread queue enqueue procedure into
_Thread_queue_Enqueue_critical().  It is possible to use the thread
queue lock to protect state of the object embedding the thread queue.
This enables per object fine grained locking in the future.

Delete _Thread_queue_Enter_critical_section().

Update #2273.
2015-05-19 12:00:45 +02:00
Sebastian Huber
9f10911d2b score: Delete Thread_queue_Control::state
Use a parameter for _Thread_queue_Enqueue() instead to reduce memory
usage.
2015-04-23 08:55:43 +02:00
Chris Johns
c49985691f Change all references of rtems.com to rtems.org. 2014-03-21 08:10:47 +11:00
Sebastian Huber
07332ae4db score: _Thread_queue_Enqueue_with_handler()
Add thread parameter to _Thread_queue_Enqueue_with_handler() to avoid
access to global _Thread_Executing.
2013-08-23 12:54:03 +02:00
Sebastian Huber
a2e3f33f39 score: Create object implementation header
Move implementation specific parts of object.h and object.inl into new
header file objectimpl.h.  The object.h contains now only the
application visible API.
2013-07-26 11:55:47 +02:00
Sebastian Huber
fe6c170cf5 score: Create states implementation header
Move implementation specific parts of states.h and states.inl into new
header file statesimpl.h.  The states.h contains now only the
application visible API.
2013-07-26 11:55:45 +02:00
Sebastian Huber
33a4a56e7f score: Avoid direct usage of _Thread_Executing
Pass the executing thread as a function parameter.  Obtain the executing
thread inside a thread dispatch critical section to avoid problems on
SMP.
2013-07-22 16:56:59 +02:00
Sebastian Huber
b5d514fe2d score: Create message queue implementation header
Move implementation specific parts of coremsg.h and coremsg.inl into new
header file coremsgimpl.h.  The coremsg.h contains now only the
application visible API.
2013-07-22 16:56:59 +02:00
Christopher Kerl
1b4758602f score misc: Score misc: Clean up Doxygen #6 (GCI 2012)
This patch is a task from GCI 2012 which improves the Doxygen
comments in the RTEMS source.

http://www.google-melange.com/gci/task/view/google/gci2012/7976215
2012-11-29 13:39:17 -06:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
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.
2012-05-11 08:44:13 -05:00
Joel Sherrill
e5a80202a8 2011-11-28 Werner Almesberger <werner@almesberger.net>
PR 1961/cpukit
	* score/src/coremsgsubmit.c: Close window caused by using message
	pending count rather than directly obtaining unused buffer.
2011-11-28 16:36:14 +00:00
Joel Sherrill
64adc13c86 2011-07-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* ftpd/ftpd.c, libcsupport/src/geteuid.c, libcsupport/src/getgroups.c,
	libcsupport/src/getpgrp.c, libcsupport/src/getpid.c,
	libcsupport/src/getppid.c, libcsupport/src/setpgid.c,
	libcsupport/src/setsid.c, libcsupport/src/utsname.c,
	libmisc/stackchk/check.c, posix/include/rtems/posix/mqueue.h,
	posix/inline/rtems/posix/cond.inl,
	posix/inline/rtems/posix/mqueue.inl,
	posix/inline/rtems/posix/mutex.inl,
	posix/inline/rtems/posix/pthread.inl,
	posix/inline/rtems/posix/semaphore.inl,
	posix/inline/rtems/posix/timer.inl, posix/src/alarm.c,
	posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c,
	posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c,
	posix/src/cleanuppop.c, posix/src/cleanuppush.c,
	posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c,
	posix/src/clockgetres.c, posix/src/clockgettime.c,
	posix/src/clocksetenableattr.c, posix/src/clocksettime.c,
	posix/src/cond.c, posix/src/condattrdestroy.c,
	posix/src/condattrgetpshared.c, posix/src/condattrinit.c,
	posix/src/condattrsetpshared.c, posix/src/condbroadcast.c,
	posix/src/conddefaultattributes.c, posix/src/conddestroy.c,
	posix/src/condinit.c, posix/src/condsignal.c,
	posix/src/condsignalsupp.c, posix/src/condtimedwait.c,
	posix/src/condwait.c, posix/src/condwaitsupp.c,
	posix/src/keygetspecific.c, posix/src/keyrundestructors.c,
	posix/src/keysetspecific.c, posix/src/mprotect.c, posix/src/mqueue.c,
	posix/src/mqueuecreatesupp.c, posix/src/mqueuedeletesupp.c,
	posix/src/mqueuegetattr.c, posix/src/mqueuenotify.c,
	posix/src/mqueuereceive.c, posix/src/mqueuesend.c,
	posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
	posix/src/mqueuetimedreceive.c, posix/src/mqueuetimedsend.c,
	posix/src/mqueuetranslatereturncode.c, posix/src/mqueueunlink.c,
	posix/src/mutex.c, posix/src/mutexattrdestroy.c,
	posix/src/mutexattrgetprioceiling.c,
	posix/src/mutexattrgetprotocol.c, posix/src/mutexattrgetpshared.c,
	posix/src/mutexattrinit.c, posix/src/mutexattrsetprioceiling.c,
	posix/src/mutexattrsetprotocol.c, posix/src/mutexattrsetpshared.c,
	posix/src/mutexdestroy.c, posix/src/mutexgetprioceiling.c,
	posix/src/mutexinit.c, posix/src/mutexlock.c,
	posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
	posix/src/mutextimedlock.c, posix/src/mutextrylock.c,
	posix/src/mutexunlock.c, posix/src/nanosleep.c, posix/src/psignal.c,
	posix/src/psignalchecksignal.c,
	posix/src/psignalclearprocesssignals.c,
	posix/src/psignalclearsignals.c,
	posix/src/psignalsetprocesssignals.c,
	posix/src/psignalunblockthread.c, posix/src/pthreadinitthreads.c,
	posix/src/rwlockattrdestroy.c, posix/src/rwlockattrgetpshared.c,
	posix/src/rwlockattrinit.c, posix/src/rwlockattrsetpshared.c,
	posix/src/semaphore.c, posix/src/semaphoredeletesupp.c,
	posix/src/semaphorenametoid.c, posix/src/semaphorewaitsupp.c,
	posix/src/semclose.c, posix/src/semdestroy.c,
	posix/src/semgetvalue.c, posix/src/seminit.c, posix/src/semopen.c,
	posix/src/sempost.c, posix/src/semtimedwait.c,
	posix/src/semtrywait.c, posix/src/semunlink.c, posix/src/semwait.c,
	posix/src/sysconf.c, posix/src/testcancel.c, posix/src/ualarm.c,
	rtems/src/clockgetuptime.c, rtems/src/clockset.c,
	rtems/src/clocksetnsecshandler.c, rtems/src/clocktick.c,
	rtems/src/clocktodtoseconds.c, rtems/src/clocktodvalidate.c,
	rtems/src/dpmem.c, rtems/src/dpmemcreate.c, rtems/src/dpmemdelete.c,
	rtems/src/dpmemexternal2internal.c, rtems/src/dpmemident.c,
	rtems/src/dpmeminternal2external.c, rtems/src/event.c,
	rtems/src/eventmp.c, rtems/src/eventreceive.c,
	rtems/src/eventseize.c, rtems/src/eventsend.c,
	rtems/src/eventsurrender.c, rtems/src/eventtimeout.c, rtems/src/mp.c,
	rtems/src/msg.c, rtems/src/msgmp.c, rtems/src/msgqallocate.c,
	rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c,
	rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
	rtems/src/msgqgetnumberpending.c, rtems/src/msgqident.c,
	rtems/src/msgqreceive.c, rtems/src/msgqtranslatereturncode.c,
	rtems/src/msgqurgent.c, rtems/src/part.c, rtems/src/partcreate.c,
	rtems/src/partdelete.c, rtems/src/partgetbuffer.c,
	rtems/src/partident.c, rtems/src/partmp.c,
	rtems/src/partreturnbuffer.c, rtems/src/ratemon.c,
	rtems/src/ratemoncancel.c, rtems/src/ratemoncreate.c,
	rtems/src/ratemondelete.c, rtems/src/ratemongetstatistics.c,
	rtems/src/ratemongetstatus.c, rtems/src/ratemonident.c,
	rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
	rtems/src/ratemontimeout.c, rtems/src/region.c,
	rtems/src/regioncreate.c, rtems/src/regiondelete.c,
	rtems/src/regionextend.c, rtems/src/regiongetfreeinfo.c,
	rtems/src/regiongetinfo.c, rtems/src/regiongetsegment.c,
	rtems/src/regiongetsegmentsize.c, rtems/src/regionident.c,
	rtems/src/regionmp.c, rtems/src/regionprocessqueue.c,
	rtems/src/regionresizesegment.c, rtems/src/regionreturnsegment.c,
	rtems/src/rtemsobjectgetclassicname.c, rtems/src/rtemstimer.c,
	rtems/src/sem.c, rtems/src/semcreate.c, rtems/src/semdelete.c,
	rtems/src/semflush.c, rtems/src/semident.c, rtems/src/semmp.c,
	rtems/src/semobtain.c, rtems/src/semrelease.c,
	rtems/src/semtranslatereturncode.c, rtems/src/signal.c,
	rtems/src/signalcatch.c, rtems/src/signalmp.c,
	rtems/src/signalsend.c, rtems/src/taskcreate.c,
	rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
	rtems/src/taskident.c, rtems/src/taskinitusers.c,
	rtems/src/taskissuspended.c, rtems/src/taskmp.c,
	rtems/src/taskrestart.c, rtems/src/taskresume.c, rtems/src/tasks.c,
	rtems/src/tasksetnote.c, rtems/src/tasksetpriority.c,
	rtems/src/taskstart.c, rtems/src/tasksuspend.c,
	rtems/src/taskwakeafter.c, rtems/src/taskwakewhen.c,
	rtems/src/timercancel.c, rtems/src/timercreate.c,
	rtems/src/timerdelete.c, rtems/src/timerfireafter.c,
	rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
	rtems/src/timerident.c, rtems/src/timerreset.c,
	rtems/src/timerserverfireafter.c, rtems/src/timerserverfirewhen.c,
	sapi/src/debug.c, sapi/src/extension.c, sapi/src/posixapi.c,
	sapi/src/rtemsapi.c, score/src/apiext.c, score/src/chain.c,
	score/src/corebarrier.c, score/src/corebarrierrelease.c,
	score/src/corebarrierwait.c, score/src/coremsgbroadcast.c,
	score/src/coremsgclose.c, score/src/coremsgflush.c,
	score/src/coremsgflushsupp.c, score/src/coremsgflushwait.c,
	score/src/coremsginsert.c, score/src/coremsgseize.c,
	score/src/coremsgsubmit.c, score/src/coremutex.c,
	score/src/coremutexflush.c, score/src/coremutexseize.c,
	score/src/corerwlock.c, score/src/corerwlockobtainread.c,
	score/src/corerwlockobtainwrite.c, score/src/corerwlockrelease.c,
	score/src/coresem.c, score/src/coresemflush.c,
	score/src/coresemsurrender.c, score/src/corespinlock.c,
	score/src/corespinlockrelease.c, score/src/corespinlockwait.c,
	score/src/coretod.c, score/src/coretodset.c,
	score/src/coretodtickle.c, score/src/heap.c, score/src/interr.c,
	score/src/mpci.c, score/src/objectallocate.c,
	score/src/objectextendinformation.c, score/src/objectfree.c,
	score/src/objectget.c, score/src/objectgetisr.c,
	score/src/objectgetnext.c, score/src/objectgetnoprotection.c,
	score/src/objectinitializeinformation.c, score/src/objectmp.c,
	score/src/objectnametoid.c, score/src/objectnametoidstring.c,
	score/src/objectshrinkinformation.c, score/src/rbtree.c,
	score/src/threaddelayended.c, score/src/threadhandler.c,
	score/src/threadinitialize.c, score/src/threadloadenv.c,
	score/src/threadmp.c, score/src/threadq.c,
	score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
	score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
	score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
	score/src/threadqextract.c, score/src/threadqextractfifo.c,
	score/src/threadqextractpriority.c,
	score/src/threadqextractwithproxy.c, score/src/threadqfirst.c,
	score/src/threadqfirstfifo.c, score/src/threadqfirstpriority.c,
	score/src/threadqflush.c, score/src/threadqrequeue.c,
	score/src/threadstackallocate.c, score/src/threadstartmultitasking.c,
	score/src/watchdog.c, score/src/watchdogadjust.c,
	score/src/watchdoginsert.c, score/src/watchdogremove.c,
	score/src/watchdogtickle.c: Remove /*PAGE markers which were
	interpreted by a long dead print script.
2011-07-24 23:55:15 +00:00
Ralf Corsepius
28352faecf Whitespace removal. 2009-11-29 13:51:53 +00:00
Chris Johns
eb649786c8 2009-10-08 Chris Johns <chrisj@rtems.org>
* Makefile.am, preinstall.am: Added statvfs.h.
        * libcsupport/Makefile.am: Add statvfs.c.
        * libcsupport/include/sys/statvfs.h, libcsupport/src/statvfs.c:
        New.
        * libcsupport/include/rtems/libio.h: Add a file system handler for
        the statvfs call.
        * libfs/src/devfs/devfs_init.c, libfs/src/dosfs/msdos_init.c,
        libfs/src/imfs/imfs_init.c, libfs/src/nfsclient/src/nfs.c: Set the
        statvfs handler to NULL.
        * include/rtems/fs.h: Add a second node access field for the RFS
        file system to hold a directory offset while the existing field
        holds the inode number. This save a rescan of the directory when
        working with directories.
        * libblock/include/rtems/bdbuf.h: Added references and user fields
        to the buffer descriptor.
        * libblock/src/bdbuf.c: Added dynamic buffer support for different
        block sizes. Fixed a number of bugs.
        * libblock/src/blkdev.c: Release the disk device on an error.
        * libblock/src/diskdevs.c: Set the block size to the media block
        size during initialisation of the disk device.
        * libblock/src/flashdisk.c, libblock/src/nvdisk.c,
        libblock/src/ramdisk.c: Updated the drivers to handle variable
        block sizes.
        * libfs/src/dosfs/fat.c, libfs/src/dosfs/fat.h: Release any
        buffers when an error occurs. The FAT buffer layer hangs onto a
        single buffer while mounted. This should be fixed.
        * sapi/inline/rtems/chain.inl: Added rtems_chain_set_off_chain,
        rtems_chain_is_node_off_chain, and rtems_chain_previous.
        * score/inline/rtems/score/chain.inl: Added _Chain_Set_off_chain,
        and _Chain_Is_node_off_chain.
        * libmisc/shell/main_ln.c, libmisc/shell/main_mknod.c,
        libmisc/shell/mknod-pack_dev.c, libmisc/shell/mknod-pack_dev.h:
        New shell commands.
        * libmisc/Makefile.am, libmisc/shell/shellconfig.h: Added ln and
        mknod commands.
        * libmisc/shell/hexdump-display.c: Fixed the reopen bug which
        showed up as a free with a bad pointer.
        * libmisc/shell/main_mount.c: List the user adding file system
        when listing the available file systems to mount.
        * libmisc/shell/utils-cp.c: Remove the fixed static copy buffer
        and use a large dynamic buffer.
        * score/inline/rtems/score/address.inl, score/src/coremsgsubmit.c,
        score/src/objectallocate.c, score/src/objectfree.c: Remove
        warnings.
2009-10-08 07:07:36 +00:00
Joel Sherrill
50d1e15412 2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* score/src/coremsgsubmit.c: Remove extra #else.
2009-09-13 16:37:11 +00:00
Joel Sherrill
939ba8162f 2009-09-13 Joel Sherrill <joel.sherrill@oarcorp.com>
* score/inline/rtems/score/coremsg.inl, score/src/coremsg.c,
	score/src/coremsgbroadcast.c, score/src/coremsginsert.c,
	score/src/coremsgseize.c, score/src/coremsgsubmit.c: Add wrappers for
	accessing message priority. Since these are empty when priority-based
	message queues are disabled, this eliminates some of the
	conditionals.
2009-09-13 16:05:14 +00:00
Joel Sherrill
507d38261d 2009-09-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/include/rtems/score/coremsg.h,
	score/inline/rtems/score/coremsg.inl, score/src/coremsg.c,
	score/src/coremsginsert.c, score/src/coremsgseize.c,
	score/src/coremsgsubmit.c, score/src/objectnametoidstring.c: Disable
	the Core Message Queue features of notification, priority messages,
	and blocking sends when no API requires them.
2009-09-11 20:00:30 +00:00
Joel Sherrill
402dad517e 2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/src/coremsgsubmit.c: Move impossible case inside an RTEMS_DEBUG
	conditional.
2009-07-06 16:44:49 +00:00
Ralf Corsepius
f0b14cf2fb Add __attribute__((unused)) to unused function args. 2008-12-31 03:24:18 +00:00
Joel Sherrill
b3836ce3ec 2008-09-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* score/src/corebarrier.c, score/src/corebarrierrelease.c,
	score/src/corebarrierwait.c, score/src/coremsg.c,
	score/src/coremsgbroadcast.c, score/src/coremsgclose.c,
	score/src/coremsgflush.c, score/src/coremsgflushsupp.c,
	score/src/coremsgflushwait.c, score/src/coremsginsert.c,
	score/src/coremsgseize.c, score/src/coremsgsubmit.c,
	score/src/corerwlock.c, score/src/coresem.c,
	score/src/coresemflush.c, score/src/coresemseize.c,
	score/src/coresemsurrender.c, score/src/corespinlock.c,
	score/src/threadblockingoperationcancel.c,
	score/src/threadqenqueue.c: Remove unnecessary include of mpci.h.
2008-09-05 21:54:20 +00:00
Ralf Corsepius
484a76996e Convert to "bool". 2008-09-04 17:46:39 +00:00
Joel Sherrill
f773c0122a 2008-08-04 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/include/rtems/rtems/sem.h, rtems/src/semobtain.c:
	Changed option set type to rtems_option.

	* score/src/objectgetinfo.c: Check return value of
	_Objects_API_maximum_class().

	* libmisc/monitor/mon-mpci.c, libmisc/monitor/monitor.h,
	rtems/include/rtems/rtems/message.h, rtems/src/msgmp.c,
	rtems/src/msgqallocate.c, rtems/src/msgqbroadcast.c,
	rtems/src/msgqcreate.c, rtems/src/msgqreceive.c, rtems/src/msgqsend.c,
	rtems/src/msgqurgent.c, score/include/rtems/score/coremsg.h,
	score/include/rtems/score/mpci.h, score/include/rtems/score/thread.h,
	score/inline/rtems/score/coremsg.inl, score/src/coremsg.c,
	score/src/coremsgbroadcast.c, score/src/coremsgseize.c,
	score/src/coremsgsubmit.c:
	Removed parameters of _Message_queue_Allocate().  Changed option set
	type to rtems_option.  Changed type of maximum message and packet size
	to size_t.  Changed the input buffer type for message send functions to
	"const void *".  Changed the pointer to the second return argument in
	the thread wait information to a union.  This union can contain a
	pointer to an immutable or a mutable object.  This is somewhat fragile.
	An alternative would be to add a third pointer for immutable objects,
	but this would increase the structure size.
2008-08-05 13:32:39 +00:00
Joel Sherrill
96d0b64c62 2007-03-05 Joel Sherrill <joel@OARcorp.com>
PR 1222/cpukit
	* score/Makefile.am, score/include/rtems/score/coremutex.h,
	score/include/rtems/score/threadq.h,
	score/inline/rtems/score/coremutex.inl, score/src/coremsgsubmit.c,
	score/src/coremutexsurrender.c, score/src/threadchangepriority.c,
	score/src/threadclearstate.c, score/src/threadhandler.c,
	score/src/threadinitialize.c, score/src/threadqdequeuefifo.c,
	score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
	score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
	score/src/threadqextractfifo.c, score/src/threadqextractpriority.c,
	score/src/threadsetstate.c: Enhance so that when the prioirity of a
	thread that is blocked on a priority based thread queue is changed,
	that its placement in the queue is reevaluated based upon the new
	priority. This enhancement includes modifications to the SuperCore as
	well as new test cases.
	* score/src/threadqrequeue.c: New file.
2007-03-05 21:01:40 +00:00
Ralf Corsepius
32e101ba3a Use size_t for sizes. 2007-02-05 15:35:36 +00:00
Ralf Corsepius
a8eed2387c Include config.h. 2005-01-27 05:57:05 +00:00
Ralf Corsepius
a0ed4edee0 Remove stray white spaces. 2004-04-18 06:13:55 +00:00
Ralf Corsepius
05279b84b4 Remove stray white spaces. 2004-04-17 13:32:13 +00:00
Ralf Corsepius
3127180e74 2004-04-29 Ralf Corsepius <ralf_corsepius@rtems.org>
* score/src/Unlimited.txt, score/src/chain.c, score/src/coremsg.c,
	score/src/coremsgbroadcast.c, score/src/coremsgclose.c,
	score/src/coremsgflush.c, score/src/coremsgflushsupp.c,
	score/src/coremsgseize.c, score/src/coremsgsubmit.c,
	score/src/coremutex.c, score/src/coremutexflush.c,
	score/src/coresem.c, score/src/coresemflush.c, score/src/coretod.c,
	score/src/coretodtickle.c, score/src/coretodtoseconds.c,
	score/src/coretodvalidate.c, score/src/heap.c,
	score/src/heapallocate.c, score/src/heapextend.c,
	score/src/heapfree.c, score/src/heapsizeofuserarea.c,
	score/src/interr.c, score/src/iterateoverthreads.c,
	score/src/mpci.c, score/src/object.c, score/src/objectallocate.c,
	score/src/objectallocatebyindex.c, score/src/objectclearname.c,
	score/src/objectcomparenameraw.c,
	score/src/objectcomparenamestring.c, score/src/objectcopynameraw.c,
	score/src/objectcopynamestring.c,
	score/src/objectextendinformation.c, score/src/objectfree.c,
	score/src/objectget.c, score/src/objectgetbyindex.c,
	score/src/objectgetisr.c, score/src/objectgetnoprotection.c,
	score/src/objectidtoname.c, score/src/objectinitializeinformation.c,
	score/src/objectmp.c, score/src/objectnametoid.c,
	score/src/objectshrinkinformation.c, score/src/thread.c,
	score/src/threadcreateidle.c, score/src/threadget.c,
	score/src/threadidlebody.c, score/src/threadinitialize.c,
	score/src/threadmp.c, score/src/threadq.c,
	score/src/threadqdequeuepriority.c,
	score/src/threadqenqueuepriority.c,
	score/src/threadqfirstpriority.c, score/src/threadqflush.c,
	score/src/threadreset.c, score/src/threadrestart.c,
	score/src/threadsettransient.c, score/src/threadstackallocate.c,
	score/src/threadstart.c, score/src/userext.c,
	score/src/watchdoginsert.c, score/src/wkspace.c: Convert to using
	c99 fixed size types.
2004-03-29 12:51:43 +00:00