diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-09-12 15:18:56 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-09-12 15:18:56 +0000 |
commit | 7231abf1a51e65c9147598b665519d3d822f983f (patch) | |
tree | 17de2185cab9be6f29164a2336855a57b8495627 /nuttx/mm/mm_graninit.c | |
parent | 14c5c981145991a86366544bc11dbb9d410feecf (diff) | |
download | px4-nuttx-7231abf1a51e65c9147598b665519d3d822f983f.tar.gz px4-nuttx-7231abf1a51e65c9147598b665519d3d822f983f.tar.bz2 px4-nuttx-7231abf1a51e65c9147598b665519d3d822f983f.zip |
Fix MMC/SD support for Wildfire board; Granule allocator can now be used from intrrupt handler
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5134 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/mm/mm_graninit.c')
-rw-r--r-- | nuttx/mm/mm_graninit.c | 39 |
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 */ - - |