aboutsummaryrefslogtreecommitdiff
path: root/lib/libmpa/mpa_mem_static.c
blob: c9c13fa9f5be79596d1e02d58ece1d7838166575 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// SPDX-License-Identifier: BSD-2-Clause
/*
 * Copyright (c) 2014, STMicroelectronics International N.V.
 */
#include "mpa.h"
#include <util.h>
#include <trace.h>

mpanum mpa_alloc_static_temp_var_size(int size_bits, mpanum *var,
				      mpa_scratch_mem pool)
{
	*var = mempool_alloc(pool->pool, mpa_StaticVarSizeInU32(size_bits) *
					 sizeof(uint32_t));
	if (*var)
		mpa_init_static(*var, mpa_StaticVarSizeInU32(size_bits));

	return *var;
}

mpanum mpa_alloc_static_temp_var(mpanum *var, mpa_scratch_mem pool)
{
	return mpa_alloc_static_temp_var_size(pool->bn_bits, var, pool);
}

/*------------------------------------------------------------
 *
 *  mpa_free_static_temp_var
 *
 */
void mpa_free_static_temp_var(mpanum *var, mpa_scratch_mem pool)
{
	if (!var || !(*var))
		return;

	mempool_free(pool->pool, *var);
}