blob: 073224fb20d68787c5931ebbfb7a7cc116ca3ddb [file] [log] [blame]
/*
* Copyright 2023 Google LLC
* Copyright lowRISC contributors
*
* 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
*
* http://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 OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_
#define OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_
// THIS FILE HAS BEEN GENERATED, DO NOT EDIT MANUALLY. COMMAND:
// util/autogen_testutils.py
/**
* @file
* @brief Default ISRs for each IP
*/
#include "sw/device/lib/dif/dif_adc_ctrl.h"
#include "sw/device/lib/dif/dif_alert_handler.h"
#include "sw/device/lib/dif/dif_aon_timer.h"
#include "sw/device/lib/dif/dif_csrng.h"
#include "sw/device/lib/dif/dif_edn.h"
#include "sw/device/lib/dif/dif_entropy_src.h"
#include "sw/device/lib/dif/dif_flash_ctrl.h"
#include "sw/device/lib/dif/dif_gpio.h"
#include "sw/device/lib/dif/dif_hmac.h"
#include "sw/device/lib/dif/dif_i2c.h"
#include "sw/device/lib/dif/dif_keymgr.h"
#include "sw/device/lib/dif/dif_kmac.h"
#include "sw/device/lib/dif/dif_otbn.h"
#include "sw/device/lib/dif/dif_otp_ctrl.h"
#include "sw/device/lib/dif/dif_pattgen.h"
#include "sw/device/lib/dif/dif_pwrmgr.h"
#include "sw/device/lib/dif/dif_rv_plic.h"
#include "sw/device/lib/dif/dif_rv_timer.h"
#include "sw/device/lib/dif/dif_sensor_ctrl.h"
#include "sw/device/lib/dif/dif_spi_device.h"
#include "sw/device/lib/dif/dif_spi_host.h"
#include "sw/device/lib/dif/dif_sysrst_ctrl.h"
#include "sw/device/lib/dif/dif_uart.h"
#include "sw/device/lib/dif/dif_usbdev.h"
#include "hw/top_matcha/sw/autogen/top_matcha.h" // Generated.
/**
* A handle to a PLIC ISR context struct.
*/
typedef struct plic_isr_ctx {
/**
* A handle to a rv_plic.
*/
dif_rv_plic_t *rv_plic;
/**
* The HART ID associated with the PLIC (correspond to a PLIC "target").
*/
uint32_t hart_id;
} plic_isr_ctx_t;
/**
* A handle to a adc_ctrl ISR context struct.
*/
typedef struct adc_ctrl_isr_ctx {
/**
* A handle to a adc_ctrl.
*/
dif_adc_ctrl_t *adc_ctrl;
/**
* The PLIC IRQ ID where this adc_ctrl instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_adc_ctrl_start_irq_id;
/**
* The adc_ctrl IRQ that is expected to be encountered in the ISR.
*/
dif_adc_ctrl_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} adc_ctrl_isr_ctx_t;
/**
* A handle to a alert_handler ISR context struct.
*/
typedef struct alert_handler_isr_ctx {
/**
* A handle to a alert_handler.
*/
dif_alert_handler_t *alert_handler;
/**
* The PLIC IRQ ID where this alert_handler instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_alert_handler_start_irq_id;
/**
* The alert_handler IRQ that is expected to be encountered in the ISR.
*/
dif_alert_handler_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} alert_handler_isr_ctx_t;
/**
* A handle to a aon_timer ISR context struct.
*/
typedef struct aon_timer_isr_ctx {
/**
* A handle to a aon_timer.
*/
dif_aon_timer_t *aon_timer;
/**
* The PLIC IRQ ID where this aon_timer instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_aon_timer_start_irq_id;
/**
* The aon_timer IRQ that is expected to be encountered in the ISR.
*/
dif_aon_timer_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} aon_timer_isr_ctx_t;
/**
* A handle to a csrng ISR context struct.
*/
typedef struct csrng_isr_ctx {
/**
* A handle to a csrng.
*/
dif_csrng_t *csrng;
/**
* The PLIC IRQ ID where this csrng instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_csrng_start_irq_id;
/**
* The csrng IRQ that is expected to be encountered in the ISR.
*/
dif_csrng_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} csrng_isr_ctx_t;
/**
* A handle to a edn ISR context struct.
*/
typedef struct edn_isr_ctx {
/**
* A handle to a edn.
*/
dif_edn_t *edn;
/**
* The PLIC IRQ ID where this edn instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_edn_start_irq_id;
/**
* The edn IRQ that is expected to be encountered in the ISR.
*/
dif_edn_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} edn_isr_ctx_t;
/**
* A handle to a entropy_src ISR context struct.
*/
typedef struct entropy_src_isr_ctx {
/**
* A handle to a entropy_src.
*/
dif_entropy_src_t *entropy_src;
/**
* The PLIC IRQ ID where this entropy_src instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_entropy_src_start_irq_id;
/**
* The entropy_src IRQ that is expected to be encountered in the ISR.
*/
dif_entropy_src_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} entropy_src_isr_ctx_t;
/**
* A handle to a flash_ctrl ISR context struct.
*/
typedef struct flash_ctrl_isr_ctx {
/**
* A handle to a flash_ctrl.
*/
dif_flash_ctrl_t *flash_ctrl;
/**
* The PLIC IRQ ID where this flash_ctrl instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_flash_ctrl_start_irq_id;
/**
* The flash_ctrl IRQ that is expected to be encountered in the ISR.
*/
dif_flash_ctrl_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} flash_ctrl_isr_ctx_t;
/**
* A handle to a gpio ISR context struct.
*/
typedef struct gpio_isr_ctx {
/**
* A handle to a gpio.
*/
dif_gpio_t *gpio;
/**
* The PLIC IRQ ID where this gpio instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_gpio_start_irq_id;
/**
* The gpio IRQ that is expected to be encountered in the ISR.
*/
dif_gpio_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} gpio_isr_ctx_t;
/**
* A handle to a hmac ISR context struct.
*/
typedef struct hmac_isr_ctx {
/**
* A handle to a hmac.
*/
dif_hmac_t *hmac;
/**
* The PLIC IRQ ID where this hmac instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_hmac_start_irq_id;
/**
* The hmac IRQ that is expected to be encountered in the ISR.
*/
dif_hmac_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} hmac_isr_ctx_t;
/**
* A handle to a i2c ISR context struct.
*/
typedef struct i2c_isr_ctx {
/**
* A handle to a i2c.
*/
dif_i2c_t *i2c;
/**
* The PLIC IRQ ID where this i2c instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_i2c_start_irq_id;
/**
* The i2c IRQ that is expected to be encountered in the ISR.
*/
dif_i2c_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} i2c_isr_ctx_t;
/**
* A handle to a keymgr ISR context struct.
*/
typedef struct keymgr_isr_ctx {
/**
* A handle to a keymgr.
*/
dif_keymgr_t *keymgr;
/**
* The PLIC IRQ ID where this keymgr instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_keymgr_start_irq_id;
/**
* The keymgr IRQ that is expected to be encountered in the ISR.
*/
dif_keymgr_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} keymgr_isr_ctx_t;
/**
* A handle to a kmac ISR context struct.
*/
typedef struct kmac_isr_ctx {
/**
* A handle to a kmac.
*/
dif_kmac_t *kmac;
/**
* The PLIC IRQ ID where this kmac instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_kmac_start_irq_id;
/**
* The kmac IRQ that is expected to be encountered in the ISR.
*/
dif_kmac_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} kmac_isr_ctx_t;
/**
* A handle to a otbn ISR context struct.
*/
typedef struct otbn_isr_ctx {
/**
* A handle to a otbn.
*/
dif_otbn_t *otbn;
/**
* The PLIC IRQ ID where this otbn instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_otbn_start_irq_id;
/**
* The otbn IRQ that is expected to be encountered in the ISR.
*/
dif_otbn_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} otbn_isr_ctx_t;
/**
* A handle to a otp_ctrl ISR context struct.
*/
typedef struct otp_ctrl_isr_ctx {
/**
* A handle to a otp_ctrl.
*/
dif_otp_ctrl_t *otp_ctrl;
/**
* The PLIC IRQ ID where this otp_ctrl instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_otp_ctrl_start_irq_id;
/**
* The otp_ctrl IRQ that is expected to be encountered in the ISR.
*/
dif_otp_ctrl_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} otp_ctrl_isr_ctx_t;
/**
* A handle to a pattgen ISR context struct.
*/
typedef struct pattgen_isr_ctx {
/**
* A handle to a pattgen.
*/
dif_pattgen_t *pattgen;
/**
* The PLIC IRQ ID where this pattgen instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_pattgen_start_irq_id;
/**
* The pattgen IRQ that is expected to be encountered in the ISR.
*/
dif_pattgen_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} pattgen_isr_ctx_t;
/**
* A handle to a pwrmgr ISR context struct.
*/
typedef struct pwrmgr_isr_ctx {
/**
* A handle to a pwrmgr.
*/
dif_pwrmgr_t *pwrmgr;
/**
* The PLIC IRQ ID where this pwrmgr instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_pwrmgr_start_irq_id;
/**
* The pwrmgr IRQ that is expected to be encountered in the ISR.
*/
dif_pwrmgr_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} pwrmgr_isr_ctx_t;
/**
* A handle to a rv_timer ISR context struct.
*/
typedef struct rv_timer_isr_ctx {
/**
* A handle to a rv_timer.
*/
dif_rv_timer_t *rv_timer;
/**
* The PLIC IRQ ID where this rv_timer instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_rv_timer_start_irq_id;
/**
* The rv_timer IRQ that is expected to be encountered in the ISR.
*/
dif_rv_timer_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} rv_timer_isr_ctx_t;
/**
* A handle to a sensor_ctrl ISR context struct.
*/
typedef struct sensor_ctrl_isr_ctx {
/**
* A handle to a sensor_ctrl.
*/
dif_sensor_ctrl_t *sensor_ctrl;
/**
* The PLIC IRQ ID where this sensor_ctrl instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_sensor_ctrl_start_irq_id;
/**
* The sensor_ctrl IRQ that is expected to be encountered in the ISR.
*/
dif_sensor_ctrl_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} sensor_ctrl_isr_ctx_t;
/**
* A handle to a spi_device ISR context struct.
*/
typedef struct spi_device_isr_ctx {
/**
* A handle to a spi_device.
*/
dif_spi_device_t *spi_device;
/**
* The PLIC IRQ ID where this spi_device instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_spi_device_start_irq_id;
/**
* The spi_device IRQ that is expected to be encountered in the ISR.
*/
dif_spi_device_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} spi_device_isr_ctx_t;
/**
* A handle to a spi_host ISR context struct.
*/
typedef struct spi_host_isr_ctx {
/**
* A handle to a spi_host.
*/
dif_spi_host_t *spi_host;
/**
* The PLIC IRQ ID where this spi_host instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_spi_host_start_irq_id;
/**
* The spi_host IRQ that is expected to be encountered in the ISR.
*/
dif_spi_host_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} spi_host_isr_ctx_t;
/**
* A handle to a sysrst_ctrl ISR context struct.
*/
typedef struct sysrst_ctrl_isr_ctx {
/**
* A handle to a sysrst_ctrl.
*/
dif_sysrst_ctrl_t *sysrst_ctrl;
/**
* The PLIC IRQ ID where this sysrst_ctrl instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_sysrst_ctrl_start_irq_id;
/**
* The sysrst_ctrl IRQ that is expected to be encountered in the ISR.
*/
dif_sysrst_ctrl_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} sysrst_ctrl_isr_ctx_t;
/**
* A handle to a uart ISR context struct.
*/
typedef struct uart_isr_ctx {
/**
* A handle to a uart.
*/
dif_uart_t *uart;
/**
* The PLIC IRQ ID where this uart instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_uart_start_irq_id;
/**
* The uart IRQ that is expected to be encountered in the ISR.
*/
dif_uart_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} uart_isr_ctx_t;
/**
* A handle to a usbdev ISR context struct.
*/
typedef struct usbdev_isr_ctx {
/**
* A handle to a usbdev.
*/
dif_usbdev_t *usbdev;
/**
* The PLIC IRQ ID where this usbdev instance's IRQs start.
*/
dif_rv_plic_irq_id_t plic_usbdev_start_irq_id;
/**
* The usbdev IRQ that is expected to be encountered in the ISR.
*/
dif_usbdev_irq_t expected_irq;
/**
* Whether or not a single IRQ is expected to be encountered in the ISR.
*/
bool is_only_irq;
} usbdev_isr_ctx_t;
/**
* Services an adc_ctrl IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param adc_ctrl_ctx A(n) adc_ctrl ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_adc_ctrl_isr(
plic_isr_ctx_t plic_ctx, adc_ctrl_isr_ctx_t adc_ctrl_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_adc_ctrl_irq_t *irq_serviced);
/**
* Services an alert_handler IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param alert_handler_ctx A(n) alert_handler ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_alert_handler_isr(
plic_isr_ctx_t plic_ctx, alert_handler_isr_ctx_t alert_handler_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_alert_handler_irq_t *irq_serviced);
/**
* Services an aon_timer IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param aon_timer_ctx A(n) aon_timer ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_aon_timer_isr(
plic_isr_ctx_t plic_ctx, aon_timer_isr_ctx_t aon_timer_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_aon_timer_irq_t *irq_serviced);
/**
* Services an csrng IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param csrng_ctx A(n) csrng ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_csrng_isr(
plic_isr_ctx_t plic_ctx, csrng_isr_ctx_t csrng_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_csrng_irq_t *irq_serviced);
/**
* Services an edn IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param edn_ctx A(n) edn ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_edn_isr(plic_isr_ctx_t plic_ctx, edn_isr_ctx_t edn_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_edn_irq_t *irq_serviced);
/**
* Services an entropy_src IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param entropy_src_ctx A(n) entropy_src ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_entropy_src_isr(
plic_isr_ctx_t plic_ctx, entropy_src_isr_ctx_t entropy_src_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_entropy_src_irq_t *irq_serviced);
/**
* Services an flash_ctrl IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param flash_ctrl_ctx A(n) flash_ctrl ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_flash_ctrl_isr(
plic_isr_ctx_t plic_ctx, flash_ctrl_isr_ctx_t flash_ctrl_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_flash_ctrl_irq_t *irq_serviced);
/**
* Services an gpio IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param gpio_ctx A(n) gpio ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_gpio_isr(plic_isr_ctx_t plic_ctx, gpio_isr_ctx_t gpio_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_gpio_irq_t *irq_serviced);
/**
* Services an hmac IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param hmac_ctx A(n) hmac ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_hmac_isr(plic_isr_ctx_t plic_ctx, hmac_isr_ctx_t hmac_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_hmac_irq_t *irq_serviced);
/**
* Services an i2c IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param i2c_ctx A(n) i2c ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_i2c_isr(plic_isr_ctx_t plic_ctx, i2c_isr_ctx_t i2c_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_i2c_irq_t *irq_serviced);
/**
* Services an keymgr IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param keymgr_ctx A(n) keymgr ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_keymgr_isr(
plic_isr_ctx_t plic_ctx, keymgr_isr_ctx_t keymgr_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_keymgr_irq_t *irq_serviced);
/**
* Services an kmac IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param kmac_ctx A(n) kmac ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_kmac_isr(plic_isr_ctx_t plic_ctx, kmac_isr_ctx_t kmac_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_kmac_irq_t *irq_serviced);
/**
* Services an otbn IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param otbn_ctx A(n) otbn ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_otbn_isr(plic_isr_ctx_t plic_ctx, otbn_isr_ctx_t otbn_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_otbn_irq_t *irq_serviced);
/**
* Services an otp_ctrl IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param otp_ctrl_ctx A(n) otp_ctrl ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_otp_ctrl_isr(
plic_isr_ctx_t plic_ctx, otp_ctrl_isr_ctx_t otp_ctrl_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_otp_ctrl_irq_t *irq_serviced);
/**
* Services an pattgen IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param pattgen_ctx A(n) pattgen ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_pattgen_isr(
plic_isr_ctx_t plic_ctx, pattgen_isr_ctx_t pattgen_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_pattgen_irq_t *irq_serviced);
/**
* Services an pwrmgr IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param pwrmgr_ctx A(n) pwrmgr ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_pwrmgr_isr(
plic_isr_ctx_t plic_ctx, pwrmgr_isr_ctx_t pwrmgr_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_pwrmgr_irq_t *irq_serviced);
/**
* Services an rv_timer IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param rv_timer_ctx A(n) rv_timer ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_rv_timer_isr(
plic_isr_ctx_t plic_ctx, rv_timer_isr_ctx_t rv_timer_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_rv_timer_irq_t *irq_serviced);
/**
* Services an sensor_ctrl IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param sensor_ctrl_ctx A(n) sensor_ctrl ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_sensor_ctrl_isr(
plic_isr_ctx_t plic_ctx, sensor_ctrl_isr_ctx_t sensor_ctrl_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_sensor_ctrl_irq_t *irq_serviced);
/**
* Services an spi_device IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param spi_device_ctx A(n) spi_device ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_spi_device_isr(
plic_isr_ctx_t plic_ctx, spi_device_isr_ctx_t spi_device_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_spi_device_irq_t *irq_serviced);
/**
* Services an spi_host IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param spi_host_ctx A(n) spi_host ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_spi_host_isr(
plic_isr_ctx_t plic_ctx, spi_host_isr_ctx_t spi_host_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_spi_host_irq_t *irq_serviced);
/**
* Services an sysrst_ctrl IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param sysrst_ctrl_ctx A(n) sysrst_ctrl ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_sysrst_ctrl_isr(
plic_isr_ctx_t plic_ctx, sysrst_ctrl_isr_ctx_t sysrst_ctrl_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_sysrst_ctrl_irq_t *irq_serviced);
/**
* Services an uart IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param uart_ctx A(n) uart ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_uart_isr(plic_isr_ctx_t plic_ctx, uart_isr_ctx_t uart_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_uart_irq_t *irq_serviced);
/**
* Services an usbdev IRQ.
*
* @param plic_ctx A PLIC ISR context handle.
* @param usbdev_ctx A(n) usbdev ISR context handle.
* @param[out] peripheral_serviced Out param for the peripheral that was
* serviced.
* @param[out] irq_serviced Out param for the IRQ that was serviced.
*/
void isr_testutils_usbdev_isr(
plic_isr_ctx_t plic_ctx, usbdev_isr_ctx_t usbdev_ctx,
top_matcha_plic_peripheral_t *peripheral_serviced,
dif_usbdev_irq_t *irq_serviced);
#endif // OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_