Prep for 5.11 Release
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2960 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
6427f98c3c
commit
d1b6f4fc9a
@ -1265,7 +1265,7 @@
|
|||||||
are after this point, but really causes problems if you want to handle
|
are after this point, but really causes problems if you want to handle
|
||||||
data and prefectch aborts which are within this zeroed region.
|
data and prefectch aborts which are within this zeroed region.
|
||||||
|
|
||||||
5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
* configs/ea3131/src/up_fillpage.c - Added new configuration item
|
* configs/ea3131/src/up_fillpage.c - Added new configuration item
|
||||||
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
|
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
|
||||||
@ -1286,4 +1286,7 @@
|
|||||||
to work correctly with these changes in place.
|
to work correctly with these changes in place.
|
||||||
* examples/ostest/prioinherit.c - Need to reinitialize globals if
|
* examples/ostest/prioinherit.c - Need to reinitialize globals if
|
||||||
test is ran repeatedly in a loop.
|
test is ran repeatedly in a loop.
|
||||||
|
* configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
|
||||||
|
|
||||||
|
5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<tr align="center" bgcolor="#e4e4e4">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
|
||||||
<p>Last Updated: September 28, 2010</p>
|
<p>Last Updated: October 1, 2010</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -772,72 +772,39 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p><b>nuttx-5.10 Release Notes</b>:
|
<p><b>nuttx-5.11 Release Notes</b>:
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This 57<sup>th</sup> release of NuttX, Version 5.10, was made on September 7, 2010 and is available for download from the
|
This 58<sup>th</sup> release of NuttX, Version 5.11, was made on October 1, 2010 and is available for download from the
|
||||||
<a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website.
|
<a href="http://sourceforge.net/project/showfiles.php?group_id=189573">SourceForge</a> website.
|
||||||
The change log associated with the release is available <a href="#currentrelease">here</a>.
|
The change log associated with the release is available <a href="#currentrelease">here</a>.
|
||||||
Unreleased changes after this release are available in CVS.
|
Unreleased changes after this release are available in CVS.
|
||||||
These unreleased changes are listed <a href="#pendingchanges">here</a>.
|
These unreleased changes are listed <a href="#pendingchanges">here</a>.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
This release includes a combination of some new features as well as several bugfixes.
|
This is primarily a bugfix release and includes some important corrections to the code:
|
||||||
New features include:
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<b>TI/Luminary Stellaris LM3S9B96</b>.
|
One very important bug fixes a race condition that can occur using
|
||||||
Header file changes contributed by Tiago Maluta.
|
semaphores that can be awakened by signals. Under this particular
|
||||||
|
race condition, a task could hang waiting for a semaphore.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b>TI/Luminary Stellaris LM3S8962</b>.
|
Corrections to lm3s8962 port contributed by Larry Arnold. That
|
||||||
Header file changes and support for the Stellaris LM3S8962 Ethernet+CAN Evaluation Board contributed by Larry Arnold.
|
port is purported to work correctly with these changes in place.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Plus less critical bugfixes as detailed in the ChangeLog. New features
|
||||||
|
include:
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
* A new configuration to support the mbed.org LPC1768 board (Contributed
|
||||||
|
by Dave Marples), and
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<b>On-Demand Paging Support</b>.
|
* A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part.
|
||||||
The basic logic for the On-Demand Paging feature is complete, implemented for the NXP LPC3131, and partially tested.
|
|
||||||
See <a href="http://www.nuttx.org/NuttXDemandPaging.html">On-Demand Paging Documentation</a>.
|
|
||||||
Some additional test infrastructure will be needed in order to complete the verification.
|
|
||||||
See the EA3131 <a href="http://nuttx.cvs.sourceforge.net/viewvc/nuttx/nuttx/configs/ea3131/README.txt?view=log">README</a> file for details.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>Two Pass Build Support</b>.
|
|
||||||
The make system now supports a two pass build where a relocatable, partially linked object is created on the first pass and that object is linked with the NuttX libraris to produce the final executable on the second pass.
|
|
||||||
This two pass build is currently only used to support the On-Demand paging feature:
|
|
||||||
The first pass link forces critical logic into the locked text region;
|
|
||||||
the second pass builds the NuttX executable more-or-less as normal.
|
|
||||||
<li>
|
|
||||||
<b><code>CONFIG_APP_DIR</code></b>.
|
|
||||||
Generalized the way in which applications are built and linked with NuttX.
|
|
||||||
The new configuration <code>CONFIG_APP_DIR</code> replaces <code>CONFIG_EXAMPLE</code>.
|
|
||||||
<code>CONFIG_EXAMPLE</code> used to identify the sub-directory within the NuttX <code>examples/</code> directory that held the example application to be built.
|
|
||||||
That made it awkward to configure to build an application that resided outside of the NuttX <code>examples/</code> directory.
|
|
||||||
<code>CONFIG_APP_DIR</code> is more general;
|
|
||||||
it can be used to refer to any directory containing the application to be built.
|
|
||||||
<ul>
|
|
||||||
<p><small>
|
|
||||||
For people who have their own configurations and/or Makefiles, you will need to make a couple of changes:
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
Replace all occurrences of <code>CONFIG_EXAMPLE=foobar</code> with <code>CONFIG_APP_DIR=examples/foobar</code> in all of the configuration files.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Replace any occurrences of <code>examples/$(CONFIG_EXAMPLE)</code> with <code>$(CONFIG_APP_DIR)</code>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Replace any occurrences of <code>lib$(CONFIG_EXAMPLE)$(LIBEXT)</code> with <code>libapp$(LIBEXT)</code> in your Makefiles.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Check any other occurrences of <code>CONFIG_EXAMPLE</code>.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</small></p>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>Other</b>.
|
|
||||||
Several bugfixes are included as well as code changes to eliminate some warnings.
|
|
||||||
See the ChangeLog for details.
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
@ -1887,50 +1854,28 @@ Other memory:
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
nuttx-5.10 2010-09-07 Gregory Nutt <spudmonkey@racsa.co.cr>
|
nuttx-5.11 2010-10-01 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
* configs/ea3131/locked - Create logic to support a two pass build
|
* configs/ea3131/src/up_fillpage.c - Added new configuration item
|
||||||
process: The first pass forces critical logic into the locked text
|
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
|
||||||
region, the second pass builds the NuttX executable more-or-less as
|
is the full path to a file on a mounted file system that contains
|
||||||
normal.
|
a binary image of the NuttX executable. Pages will be filled by
|
||||||
* Makefile, arch/arm/src/Makefile, configs/ea3131 - Add logic to
|
reading from offsets into this file that correspond to virtual
|
||||||
support a two-pass final link. This logic is only in place in
|
fault addresses. up_fillpage.c implements logic to perform page
|
||||||
the arch/arm/src/Makefile for now.
|
files using the CONFIG_PAGING_BINPATH file.
|
||||||
* arch/arm/src/lpc17xx/lpc17_internal.h - Add missing parentheses in
|
* configs/mbed - Add configuration to support the mbed.org LPC1768
|
||||||
macros definitions (patch submitted by Tiago Maluta).
|
board (Contributed by Dave Marples).
|
||||||
* Documents/NuttxPortingGuide.html, configs/README.txt, etc. -
|
* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
|
||||||
Replaced CONFIG_EXAMPLE with CONFIG_APP_DIR (see documents for
|
that can occur when a semaphore wait is interrupt by a signal.
|
||||||
desciption). This allows NuttX application code to be built
|
(see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
|
||||||
outside of the examples/ directory.
|
* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
|
||||||
|
SPI FLASH part (untested on initial check-in).
|
||||||
For people who have their own configurations and/or Makefiles,
|
* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
|
||||||
you will need to make a couple of changes:
|
lm3s8962 port contributed by Larry Arnold. That port is purported
|
||||||
|
to work correctly with these changes in place.
|
||||||
- Replace all occurrences of CONFIG_EXAMPLE=foobar with
|
* examples/ostest/prioinherit.c - Need to reinitialize globals if
|
||||||
CONFIG_APP_DIR=examples/foobar in all of the configuration
|
test is ran repeatedly in a loop.
|
||||||
files.
|
* configs/ez80f910200zco - Updated to used ZDS-II 4.11.1
|
||||||
- Replace any occurrences of examples/$(CONFIG_EXAMPLE) with
|
|
||||||
$(CONFIG_APP_DIR)
|
|
||||||
- Replace any occurrences of lib$(CONFIG_EXAMPLE)$(LIBEXT)
|
|
||||||
with libapp$(LIBEXT) in your Makefiles.
|
|
||||||
- Check any other occurrences of CONFIG_EXAMPLE.
|
|
||||||
|
|
||||||
* arch/arm/src/lpc313x/lpc313x_spi.c - Fix compilation error when
|
|
||||||
when CONFIG_DEBUG is enabled.
|
|
||||||
* arch/arm/src/lm3s and arch/arm/include/lm3s - Support for the
|
|
||||||
lm3s8962 contributed by Larry Arnold.
|
|
||||||
* configs/lm328962-ek - Support for the TI/Stellaris EKC-LM3S8962
|
|
||||||
board (also contributed by Larry Arnold).
|
|
||||||
* arch/arm/src/lpc313x/lpc313x_boot.c - The call to lpc313x_boardinitialized()
|
|
||||||
should not be conditioned on CONFIG_ARCH_LEDs being defined!
|
|
||||||
* arch/arm/src/lpc313x/ - APB0 and APB1 cannot lie in different
|
|
||||||
sections; they are too close together.
|
|
||||||
* arch/arm/src/lpc313x/lpc13x_boot.c - Resetting all of the clocking
|
|
||||||
had a side effect of wiping out the first 6 words of memory where the
|
|
||||||
interrupt vectors are located (and also not resetting the fractional
|
|
||||||
dividers). This is not usually noticeable because the IRQ vectors
|
|
||||||
are after this point, but really causes problems if you want to handle
|
|
||||||
data and prefectch aborts which are within this zeroed region.
|
|
||||||
|
|
||||||
pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
|
pascal-2.0 2009-12-21 Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
@ -1960,27 +1905,7 @@ buildroot-1.8 2009-12-21 <spudmonkey@racsa.co.cr>
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
nuttx-5.11 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
nuttx-5.12 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
* configs/ea3131/src/up_fillpage.c - Added new configuration item
|
|
||||||
CONFIG_PAGING_BINPATH. If CONFIG_PAGING_BINPATH is defined, then it
|
|
||||||
is the full path to a file on a mounted file system that contains
|
|
||||||
a binary image of the NuttX executable. Pages will be filled by
|
|
||||||
reading from offsets into this file that correspond to virtual
|
|
||||||
fault addresses. up_fillpage.c implements logic to perform page
|
|
||||||
files using the CONFIG_PAGING_BINPATH file.
|
|
||||||
* configs/mbed - Add configuration to support the mbed.org LPC1768
|
|
||||||
board (Contributed by Dave Marples).
|
|
||||||
* sched/sem_wait.c and sem_waitirq.c - Eliminate a race condition
|
|
||||||
that can occur when a semaphore wait is interrupt by a signal.
|
|
||||||
(see email thread: http://tech.groups.yahoo.com/group/nuttx/message/530)
|
|
||||||
* drivers/mtd/at45db.c - Add a driver for the Atmel AT45DB161D 4Mbit
|
|
||||||
SPI FLASH part (untested on initial check-in).
|
|
||||||
* arch/arm/src/lm3s and arch/arm/include/lm3s - Corrections for the
|
|
||||||
lm3s8962 port contributed by Larry Arnold. That port is purported
|
|
||||||
to work correctly with these changes in place.
|
|
||||||
* examples/ostest/prioinherit.c - Need to reinitialize globals if
|
|
||||||
test is ran repeatedly in a loop.
|
|
||||||
|
|
||||||
pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
pascal-2.1 2010-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
|
||||||
|
18
ReleaseNotes
18
ReleaseNotes
@ -1413,3 +1413,21 @@ some new features as well as several bugfixes. New features include:
|
|||||||
|
|
||||||
* Several bugfixes are included as well as code changes to eliminate
|
* Several bugfixes are included as well as code changes to eliminate
|
||||||
some warnings. See the ChangeLog for details.
|
some warnings. See the ChangeLog for details.
|
||||||
|
|
||||||
|
nuttx-5.11
|
||||||
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
This is the 58th release of NuttX. This is a bugfix release.
|
||||||
|
|
||||||
|
* One very important bug fixes a race condition that can occur using
|
||||||
|
semaphores that can be awakened by signals. Under this particular
|
||||||
|
race condition, a task could hang waiting for a semaphore.
|
||||||
|
* Corrections to lm3s8962 port contributed by Larry Arnold. That
|
||||||
|
port is purported to work correctly with these changes in place.
|
||||||
|
|
||||||
|
Plus less critical bugfixes as detailed in the ChangeLog. New features
|
||||||
|
include:
|
||||||
|
|
||||||
|
* A new configuration to support the mbed.org LPC1768 board (Contributed
|
||||||
|
by Dave Marples), and
|
||||||
|
* A driver for the Atmel AT45DB161D 4Mbit SPI FLASH part,
|
||||||
|
14
TODO
14
TODO
@ -1,5 +1,5 @@
|
|||||||
NuttX TODO List (Last updated September 30, 2010)
|
NuttX TODO List (Last updated October 1, 2010)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
(5) Task/Scheduler (sched/)
|
(5) Task/Scheduler (sched/)
|
||||||
(1) On-demand paging (sched/)
|
(1) On-demand paging (sched/)
|
||||||
@ -26,7 +26,7 @@ NuttX TODO List (Last updated September 30, 2010)
|
|||||||
(2) ARM/i.MX (arch/arm/src/imx/)
|
(2) ARM/i.MX (arch/arm/src/imx/)
|
||||||
(4) ARM/LPC17xx (arch/arm/src/lpc17xx/)
|
(4) ARM/LPC17xx (arch/arm/src/lpc17xx/)
|
||||||
(7) ARM/LPC214x (arch/arm/src/lpc214x/)
|
(7) ARM/LPC214x (arch/arm/src/lpc214x/)
|
||||||
(1) ARM/LPC313x (arch/arm/src/lpc313x/)
|
(2) ARM/LPC313x (arch/arm/src/lpc313x/)
|
||||||
(3) ARM/STR71x (arch/arm/src/str71x/)
|
(3) ARM/STR71x (arch/arm/src/str71x/)
|
||||||
(4) ARM/LM3S6918 (arch/arm/src/lm3s/)
|
(4) ARM/LM3S6918 (arch/arm/src/lm3s/)
|
||||||
(5) ARM/STM32 (arch/arm/src/stm32/)
|
(5) ARM/STM32 (arch/arm/src/stm32/)
|
||||||
@ -794,7 +794,7 @@ o ARM/LPC313x (arch/arm/src/lpc313x/)
|
|||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Description: arch/arm/src/lpc313x/lpc313x_spi.c contains logic that is specific to the
|
Description: arch/arm/src/lpc313x/lpc313x_spi.c contains logic that is specific to the
|
||||||
Embedded Artist's ea3131 board. We need to abstract the assignmen of SPI
|
Embedded Artist's ea3131 board. We need to abstract the assignment of SPI
|
||||||
chip selects and logic SPI functions (like SPIDEV_FLASH). My thoughts are:
|
chip selects and logic SPI functions (like SPIDEV_FLASH). My thoughts are:
|
||||||
- Remove lpc313x_spiselect and lpc313x_spistatus from lpc313x_internal.h
|
- Remove lpc313x_spiselect and lpc313x_spistatus from lpc313x_internal.h
|
||||||
- Remove configs/ea3131/src/up_spi.c
|
- Remove configs/ea3131/src/up_spi.c
|
||||||
@ -806,6 +806,12 @@ o ARM/LPC313x (arch/arm/src/lpc313x/)
|
|||||||
Status: Open
|
Status: Open
|
||||||
Priority: High if you want to use SPI on any board other than the ea3131.
|
Priority: High if you want to use SPI on any board other than the ea3131.
|
||||||
|
|
||||||
|
Description: arch/arm/src/lpc313x/lpc313x_spi.c may or may not be functional. It was
|
||||||
|
reported to be working, but I was unable to get it working with the
|
||||||
|
Atmel at45dbxx serial FLASH driver.
|
||||||
|
Status: Open
|
||||||
|
Priority: High if you need to use SPI.
|
||||||
|
|
||||||
o ARM/STR71x (arch/arm/src/str71x/)
|
o ARM/STR71x (arch/arm/src/str71x/)
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
@ -424,6 +424,12 @@ On-Demand Paging
|
|||||||
|
|
||||||
CONFIG_PAGING_M25PX=y
|
CONFIG_PAGING_M25PX=y
|
||||||
|
|
||||||
|
NOTE: See the TODO list in the top-level directory:
|
||||||
|
|
||||||
|
"arch/arm/src/lpc313x/lpc313x_spi.c may or may not be functional. It was
|
||||||
|
reported to be working, but I was unable to get it working with the
|
||||||
|
Atmel at45dbxx serial FLASH driver."
|
||||||
|
|
||||||
Alternative:
|
Alternative:
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -89,7 +89,10 @@ MQUEUE_SRCS = mq_open.c mq_close.c mq_unlink.c \
|
|||||||
mq_send.c mq_timedsend.c mq_sndinternal.c \
|
mq_send.c mq_timedsend.c mq_sndinternal.c \
|
||||||
mq_receive.c mq_timedreceive.c mq_rcvinternal.c \
|
mq_receive.c mq_timedreceive.c mq_rcvinternal.c \
|
||||||
mq_setattr.c mq_getattr.c mq_initialize.c mq_descreate.c \
|
mq_setattr.c mq_getattr.c mq_initialize.c mq_descreate.c \
|
||||||
mq_findnamed.c mq_msgfree.c mq_msgqfree.c mq_waitirq.c
|
mq_findnamed.c mq_msgfree.c mq_msgqfree.c
|
||||||
|
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
|
||||||
|
MQUEUE_SRCS += mq_waitirq.c
|
||||||
|
endif
|
||||||
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
|
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
|
||||||
MQUEUE_SRCS += mq_notify.c
|
MQUEUE_SRCS += mq_notify.c
|
||||||
endif
|
endif
|
||||||
@ -125,7 +128,10 @@ endif
|
|||||||
SEM_SRCS = sem_initialize.c sem_init.c sem_destroy.c\
|
SEM_SRCS = sem_initialize.c sem_init.c sem_destroy.c\
|
||||||
sem_open.c sem_close.c sem_unlink.c \
|
sem_open.c sem_close.c sem_unlink.c \
|
||||||
sem_wait.c sem_trywait.c sem_post.c sem_getvalue.c \
|
sem_wait.c sem_trywait.c sem_post.c sem_getvalue.c \
|
||||||
sem_waitirq.c sem_findnamed.c
|
sem_findnamed.c
|
||||||
|
ifneq ($(CONFIG_DISABLE_SIGNALS),y)
|
||||||
|
SEM_SRCS += sem_waitirq.c
|
||||||
|
endif
|
||||||
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
|
ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
|
||||||
SEM_SRCS += sem_holder.c
|
SEM_SRCS += sem_holder.c
|
||||||
endif
|
endif
|
||||||
|
@ -734,13 +734,14 @@ void sem_releaseholder(FAR sem_t *sem)
|
|||||||
* stcb - The TCB of the task that was just started (if any). If the
|
* stcb - The TCB of the task that was just started (if any). If the
|
||||||
* post action caused a count to be given to another thread, then stcb
|
* post action caused a count to be given to another thread, then stcb
|
||||||
* is the TCB that received the count. Note, just because stcb received
|
* is the TCB that received the count. Note, just because stcb received
|
||||||
* the count, it does not mean that it it is higher priority than other threads.
|
* the count, it does not mean that it it is higher priority than other
|
||||||
|
* threads.
|
||||||
* sem - A reference to the semaphore being posted.
|
* sem - A reference to the semaphore being posted.
|
||||||
* - If the semaphore count is <0 then there are still threads waiting
|
* - If the semaphore count is <0 then there are still threads waiting
|
||||||
* for a count. stcb should be non-null and will be higher priority than
|
* for a count. stcb should be non-null and will be higher priority
|
||||||
* all of the other threads still waiting.
|
* than all of the other threads still waiting.
|
||||||
* - If it is ==0 then stcb refers to the thread that got the last count; no
|
* - If it is ==0 then stcb refers to the thread that got the last count;
|
||||||
* other threads are waiting.
|
* no other threads are waiting.
|
||||||
* - If it is >0 then there should be no threads waiting for counts and
|
* - If it is >0 then there should be no threads waiting for counts and
|
||||||
* stcb should be null.
|
* stcb should be null.
|
||||||
*
|
*
|
||||||
@ -831,6 +832,7 @@ void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem)
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef CONFIG_DISABLE_SIGNALS
|
||||||
void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem)
|
void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem)
|
||||||
{
|
{
|
||||||
/* Check our assumptions */
|
/* Check our assumptions */
|
||||||
@ -841,6 +843,7 @@ void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem)
|
|||||||
|
|
||||||
(void)sem_foreachholder(sem, sem_restoreholderprio, stcb);
|
(void)sem_foreachholder(sem, sem_restoreholderprio, stcb);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Function: sem_enumholders
|
* Function: sem_enumholders
|
||||||
|
@ -100,7 +100,11 @@ EXTERN void sem_addholder(FAR sem_t *sem);
|
|||||||
EXTERN void sem_boostpriority(FAR sem_t *sem);
|
EXTERN void sem_boostpriority(FAR sem_t *sem);
|
||||||
EXTERN void sem_releaseholder(FAR sem_t *sem);
|
EXTERN void sem_releaseholder(FAR sem_t *sem);
|
||||||
EXTERN void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem);
|
EXTERN void sem_restorebaseprio(FAR _TCB *stcb, FAR sem_t *sem);
|
||||||
|
# ifndef CONFIG_DISABLE_SIGNALS
|
||||||
EXTERN void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem);
|
EXTERN void sem_canceled(FAR _TCB *stcb, FAR sem_t *sem);
|
||||||
|
# else
|
||||||
|
# define sem_canceled(stcb, sem)
|
||||||
|
# endif
|
||||||
#else
|
#else
|
||||||
# define sem_initholders()
|
# define sem_initholders()
|
||||||
# define sem_destroyholder(sem)
|
# define sem_destroyholder(sem)
|
||||||
|
Loading…
Reference in New Issue
Block a user