target: clean up target memory allocation error messages
target memory allocation can be implemented not to show bogus error messages. E.g. when trying a big allocation first and then a smaller one if that fails. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
This commit is contained in:
parent
32e647acf4
commit
8865209545
|
@ -1111,7 +1111,7 @@ int target_call_timer_callbacks_now(void)
|
||||||
return target_call_timer_callbacks_check_time(0);
|
return target_call_timer_callbacks_check_time(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int target_alloc_working_area(struct target *target, uint32_t size, struct working_area **area)
|
int target_alloc_working_area_try(struct target *target, uint32_t size, struct working_area **area)
|
||||||
{
|
{
|
||||||
struct working_area *c = target->working_areas;
|
struct working_area *c = target->working_areas;
|
||||||
struct working_area *new_wa = NULL;
|
struct working_area *new_wa = NULL;
|
||||||
|
@ -1189,8 +1189,6 @@ int target_alloc_working_area(struct target *target, uint32_t size, struct worki
|
||||||
|
|
||||||
if (free_size < size)
|
if (free_size < size)
|
||||||
{
|
{
|
||||||
LOG_WARNING("not enough working area available(requested %u, free %u)",
|
|
||||||
(unsigned)(size), (unsigned)(free_size));
|
|
||||||
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
|
return ERROR_TARGET_RESOURCE_NOT_AVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1231,6 +1229,19 @@ int target_alloc_working_area(struct target *target, uint32_t size, struct worki
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int target_alloc_working_area(struct target *target, uint32_t size, struct working_area **area)
|
||||||
|
{
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
retval = target_alloc_working_area_try(target, size, area);
|
||||||
|
if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE)
|
||||||
|
{
|
||||||
|
LOG_WARNING("not enough working area available(requested %u)", (unsigned)(size));
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static int target_free_working_area_restore(struct target *target, struct working_area *area, int restore)
|
static int target_free_working_area_restore(struct target *target, struct working_area *area, int restore)
|
||||||
{
|
{
|
||||||
if (area->free)
|
if (area->free)
|
||||||
|
|
|
@ -452,6 +452,14 @@ const char *target_state_name( struct target *target );
|
||||||
*/
|
*/
|
||||||
int target_alloc_working_area(struct target *target,
|
int target_alloc_working_area(struct target *target,
|
||||||
uint32_t size, struct working_area **area);
|
uint32_t size, struct working_area **area);
|
||||||
|
/* Same as target_alloc_working_area, except that no error is logged
|
||||||
|
* when ERROR_TARGET_RESOURCE_NOT_AVAILABLE is returned.
|
||||||
|
*
|
||||||
|
* This allows the calling code to *try* to allocate target memory
|
||||||
|
* and have a fallback to another behavior(slower?).
|
||||||
|
*/
|
||||||
|
int target_alloc_working_area_try(struct target *target,
|
||||||
|
uint32_t size, struct working_area **area);
|
||||||
int target_free_working_area(struct target *target, struct working_area *area);
|
int target_free_working_area(struct target *target, struct working_area *area);
|
||||||
void target_free_all_working_areas(struct target *target);
|
void target_free_all_working_areas(struct target *target);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue