5#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_OTBN_TESTUTILS_H_
6#define OPENTITAN_SW_DEVICE_LIB_TESTING_OTBN_TESTUTILS_H_
9#include "sw/device/lib/base/status.h"
65#define OTBN_SYMBOL_PTR(app_name, sym) _otbn_local_app_##app_name##_##sym
76#define OTBN_SYMBOL_ADDR(app_name, sym) _otbn_remote_app_##app_name##_##sym
85#define OTBN_DECLARE_SYMBOL_PTR(app_name, symbol_name) \
86 extern const uint8_t OTBN_SYMBOL_PTR(app_name, symbol_name)[]
102#define OTBN_DECLARE_SYMBOL_ADDR(app_name, symbol_name) \
103 extern const uint8_t OTBN_SYMBOL_ADDR(app_name, symbol_name)[]
117#define OTBN_DECLARE_APP_SYMBOLS(app_name) \
118 OTBN_DECLARE_SYMBOL_PTR(app_name, _imem_start); \
119 OTBN_DECLARE_SYMBOL_PTR(app_name, _imem_end); \
120 OTBN_DECLARE_SYMBOL_PTR(app_name, _dmem_data_start); \
121 OTBN_DECLARE_SYMBOL_PTR(app_name, _dmem_data_end)
133#define OTBN_APP_T_INIT(app_name) \
135 .imem_start = OTBN_SYMBOL_PTR(app_name, _imem_start), \
136 .imem_end = OTBN_SYMBOL_PTR(app_name, _imem_end), \
137 .dmem_data_start = OTBN_SYMBOL_PTR(app_name, _dmem_data_start), \
138 .dmem_data_end = OTBN_SYMBOL_PTR(app_name, _dmem_data_end), \
144#define OTBN_ADDR_T_INIT(app_name, symbol_name) \
145 ((uint32_t)OTBN_SYMBOL_ADDR(app_name, symbol_name))