Create sched_ufree and sched_kfree from sched_free; Use user-accessible heap to allocae stacks

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5725 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2013-03-10 15:32:33 +00:00
parent e47c64204c
commit 3dc5b1fa9f
29 changed files with 56 additions and 57 deletions

View File

@ -1,4 +1,4 @@
/************************************************************
/************************************************************************
* up_idle.c
*
* Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
@ -33,7 +33,7 @@
*
************************************************************************/
/************************************************************
/************************************************************************
* Included Files
************************************************************************/
@ -44,27 +44,27 @@
#include "up_internal.h"
/************************************************************
* Private Definitions
/************************************************************************
* Pre-processor Definitions
************************************************************************/
/************************************************************
/************************************************************************
* Private Data
************************************************************************/
#if defined(CONFIG_ARCH_LEDS) && defined(CONFIG_ARCH_BRINGUP)
static /**************** g_ledtoggle = 0;
static uint8_t g_ledtoggle = 0;
#endif
/************************************************************
/************************************************************************
* Private Functions
************************************************************************/
/************************************************************
/************************************************************************
* Public Functions
************************************************************************/
/************************************************************
/************************************************************************
* Name: up_idle
*
* Description:
@ -93,4 +93,3 @@ void up_idle(void)
}
#endif
}

View File

@ -136,7 +136,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -149,9 +149,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -116,7 +116,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -95,7 +95,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -108,9 +108,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (FAR void *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (FAR void *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (FAR void *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (FAR void *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -92,7 +92,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -94,7 +94,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -107,9 +107,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (FAR void *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (FAR void *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (FAR void *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (FAR void *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -89,7 +89,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -91,7 +91,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -104,9 +104,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -72,7 +72,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -87,7 +87,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr && tcb->adj_stack_size != stack_size)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}

View File

@ -112,7 +112,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -125,9 +125,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -89,7 +89,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -123,7 +123,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
/* Allocate the memory for the stack */
uint32_t *stack_alloc_ptr = (uint32_t*)kmalloc(adj_stack_size);
uint32_t *stack_alloc_ptr = (uint32_t*)kumalloc(adj_stack_size);
if (stack_alloc_ptr) {
/* This is the address of the last word in the allocation */
@ -161,7 +161,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr) {
kfree(dtcb->stack_alloc_ptr);
kufree(dtcb->stack_alloc_ptr);
}
dtcb->stack_alloc_ptr = NULL;

View File

@ -91,7 +91,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -104,9 +104,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -89,7 +89,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -96,7 +96,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
/* Allocate the memory for the stack */
uint32_t *stack_alloc_ptr = (uint32_t*)kmalloc(adj_stack_size);
uint32_t *stack_alloc_ptr = (uint32_t*)kumalloc(adj_stack_size);
if (stack_alloc_ptr)
{
/* This is the address of the last word in the allocation */

View File

@ -93,7 +93,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -106,9 +106,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -88,7 +88,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -92,7 +92,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -105,9 +105,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -89,7 +89,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */

View File

@ -91,7 +91,7 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
{
/* Yes.. free it */
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
tcb->stack_alloc_ptr = NULL;
}
@ -104,9 +104,9 @@ int up_create_stack(struct tcb_s *tcb, size_t stack_size)
*/
#if defined(CONFIG_DEBUG) && !defined(CONFIG_DEBUG_STACK)
tcb->stack_alloc_ptr = (uint32_t *)kzalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kuzalloc(stack_size);
#else
tcb->stack_alloc_ptr = (uint32_t *)kmalloc(stack_size);
tcb->stack_alloc_ptr = (uint32_t *)kumalloc(stack_size);
#endif
#ifdef CONFIG_DEBUG
if (!tcb->stack_alloc_ptr)

View File

@ -71,7 +71,7 @@ void up_release_stack(struct tcb_s *dtcb)
{
if (dtcb->stack_alloc_ptr)
{
sched_free(dtcb->stack_alloc_ptr);
sched_ufree(dtcb->stack_alloc_ptr);
dtcb->stack_alloc_ptr = NULL;
}

View File

@ -88,7 +88,7 @@ int up_use_stack(struct tcb_s *tcb, void *stack, size_t stack_size)
if (tcb->stack_alloc_ptr)
{
sched_free(tcb->stack_alloc_ptr);
sched_ufree(tcb->stack_alloc_ptr);
}
/* Save the stack allocation */