blob: 0440b584568e365ffd451b4914558402391f13cf [file] [log] [blame]
/*
* Copyright (c) 2022 Arm Limited.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef TEST_HELPERS_H
#define TEST_HELPERS_H
#include <inttypes.h>
#include <stdio.h>
#include "ethosu_core_interface.h"
namespace MessageHandler {
ethosu_core_network_info_req networkInfoIndexedRequest(uint64_t user_arg, uint32_t index) {
ethosu_core_network_info_req req = {user_arg, // user_arg
{ // network
ETHOSU_CORE_NETWORK_INDEX, // type
{{
index, // index
0 // ignored padding of union
}}}};
return req;
}
ethosu_core_network_info_req networkInfoBufferRequest(uint64_t user_arg, unsigned char *ptr, uint32_t ptr_size) {
ethosu_core_network_info_req req = {user_arg, // user_arg
{ // network
ETHOSU_CORE_NETWORK_BUFFER, // type
{{
reinterpret_cast<uint32_t>(ptr), // ptr
ptr_size // size
}}}};
return req;
}
ethosu_core_network_info_rsp networkInfoResponse(uint64_t user_arg) {
ethosu_core_network_info_rsp rsp = {
user_arg, // user_arg
"Vela Optimised", // description
1, // ifm_count
{/* not comparable */}, // ifm_sizes
1, // ofm_count
{/* not comparable */}, // ofm_sizes
ETHOSU_CORE_STATUS_OK // status
};
return rsp;
}
ethosu_core_inference_req inferenceIndexedRequest(uint64_t user_arg,
uint32_t index,
unsigned char *input_data,
uint32_t input_data_size,
uint8_t *output_data,
uint32_t output_data_size) {
ethosu_core_inference_req req = {
user_arg, // user_arg
1, // ifm_count
{ // ifm
{
reinterpret_cast<uint32_t>(input_data), // ptr
input_data_size // size
}},
1, // ofm_count
{ // ofm
{
reinterpret_cast<uint32_t>(output_data), // ptr
output_data_size // size
}},
{ // network
ETHOSU_CORE_NETWORK_INDEX, // type
{{
index, // index
0 // ignored padding of union
}}},
{0, 0, 0, 0, 0, 0, 0, 0}, // pmu_event_config
0 // pmu_cycle_counter_enable
};
return req;
}
ethosu_core_inference_req inferenceBufferRequest(uint64_t user_arg,
unsigned char *ptr,
uint32_t ptr_size,
unsigned char *input_data,
uint32_t input_data_size,
uint8_t *output_data,
uint32_t output_data_size) {
ethosu_core_inference_req req = {
user_arg, // user_arg
1, // ifm_count
{ // ifm
{
reinterpret_cast<uint32_t>(input_data), // ptr
input_data_size // size
}},
1, // ofm_count
{ // ofm
{
reinterpret_cast<uint32_t>(output_data), // ptr
output_data_size // size
}},
{ // network
ETHOSU_CORE_NETWORK_BUFFER, // type
{{
reinterpret_cast<uint32_t>(ptr), // ptr
ptr_size // size
}}},
{0, 0, 0, 0, 0, 0, 0, 0}, // pmu_event_config
0 // pmu_cycle_counter_enable
};
return req;
}
} // namespace MessageHandler
#endif