aboutsummaryrefslogtreecommitdiff
path: root/nuttx/mm/mm_graninit.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-09-12 15:18:56 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-09-12 15:18:56 +0000
commiteac15a4720dd9d514ab7d683fb68797c174293cc (patch)
tree17de2185cab9be6f29164a2336855a57b8495627 /nuttx/mm/mm_graninit.c
parent1b7dad5a765bc86ee194f72b7a75d76b93e87943 (diff)
downloadpx4-firmware-eac15a4720dd9d514ab7d683fb68797c174293cc.tar.gz
px4-firmware-eac15a4720dd9d514ab7d683fb68797c174293cc.tar.bz2
px4-firmware-eac15a4720dd9d514ab7d683fb68797c174293cc.zip
Fix MMC/SD support for Wildfire board; Granule allocator can now be used from intrrupt handler
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5134 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/mm/mm_graninit.c')
-rw-r--r--nuttx/mm/mm_graninit.c39
1 files changed, 5 insertions, 34 deletions
diff --git a/nuttx/mm/mm_graninit.c b/nuttx/mm/mm_graninit.c
index d3144b2aa..cde2370d0 100644
--- a/nuttx/mm/mm_graninit.c
+++ b/nuttx/mm/mm_graninit.c
@@ -119,7 +119,12 @@ static inline FAR struct gran_s *gran_common_initialize(FAR void *heapstart,
priv->log2gran = log2gran;
priv->ngranules = ngranules;
priv->heapstart = alignedstart;
+
+ /* Initialize mutual exclusion support */
+
+#ifndef CONFIG_GRAN_INTR
sem_init(&priv->exclsem, 0, 1);
+#endif
}
return priv;
@@ -172,38 +177,4 @@ GRAN_HANDLE gran_initialize(FAR void *heapstart, size_t heapsize, uint8_t log2gr
}
#endif
-/****************************************************************************
- * Name: gran_semtake and gran_semgive
- *
- * Description:
- * Managed semaphore for the granule allocator. gran_semgive is
- * implemented as a macro.
- *
- * Input Parameters:
- * priv - Pointer to the gran state
- *
- * Returned Value:
- * None
- *
- ****************************************************************************/
-
-void gran_semtake(FAR struct gran_s *priv)
-{
- int ret;
-
- /* Continue waiting if we are awakened by a signal */
-
- do
- {
- ret = sem_wait(&priv->exclsem);
- if (ret < 0)
- {
- DEBUGASSERT(errno == EINTR);
- }
- }
- while (ret < 0);
-}
-
#endif /* CONFIG_GRAN */
-
-