blob: ab47fd87416b08cd4304a66ea2db081f2a3921e0 [file] [log] [blame]
/*
* Copyright (c) 2017-2018, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#include "tfm_sst_defs.h"
#include "tfm_ns_lock.h"
enum tfm_sst_err_t tfm_sst_create(uint32_t asset_uuid, const uint8_t* token,
uint32_t token_size)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_CREATE,
asset_uuid,
(uint32_t)&s_token,
0,
0);
}
enum tfm_sst_err_t tfm_sst_get_info(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size,
struct tfm_sst_asset_info_t *info)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_INFO,
asset_uuid,
(uint32_t)&s_token,
(uint32_t)info,
0);
}
enum tfm_sst_err_t tfm_sst_get_attributes(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size,
struct tfm_sst_asset_attrs_t *attrs)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_GET_ATTRIBUTES,
asset_uuid,
(uint32_t)&s_token,
(uint32_t)attrs,
0);
}
enum tfm_sst_err_t tfm_sst_set_attributes(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size,
const struct tfm_sst_asset_attrs_t *attrs)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_SET_ATTRIBUTES,
asset_uuid,
(uint32_t)&s_token,
(uint32_t)attrs,
0);
}
enum tfm_sst_err_t tfm_sst_read(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size,
struct tfm_sst_buf_t* data)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_READ,
asset_uuid,
(uint32_t)&s_token,
(uint32_t)data,
0);
}
enum tfm_sst_err_t tfm_sst_write(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size,
struct tfm_sst_buf_t* data)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_WRITE,
asset_uuid,
(uint32_t)&s_token,
(uint32_t)data,
0);
}
enum tfm_sst_err_t tfm_sst_delete(uint32_t asset_uuid,
const uint8_t* token,
uint32_t token_size)
{
struct tfm_sst_token_t s_token;
/* Pack the token information in the token structure */
s_token.token = token;
s_token.token_size = token_size;
return tfm_ns_lock_svc_dispatch(SVC_TFM_SST_DELETE,
asset_uuid,
(uint32_t)&s_token,
0,
0);
}