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);
|
||||
}
|
||||
|
||||
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 *new_wa = NULL;
|
||||
|
@ -1189,8 +1189,6 @@ int target_alloc_working_area(struct target *target, uint32_t size, struct worki
|
|||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -1231,6 +1229,19 @@ int target_alloc_working_area(struct target *target, uint32_t size, struct worki
|
|||
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)
|
||||
{
|
||||
if (area->free)
|
||||
|
|
|
@ -452,6 +452,14 @@ const char *target_state_name( struct target *target );
|
|||
*/
|
||||
int target_alloc_working_area(struct target *target,
|
||||
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);
|
||||
void target_free_all_working_areas(struct target *target);
|
||||
|
||||
|
|
Loading…
Reference in New Issue