Software APIs
isr_testutils.h
Go to the documentation of this file.
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
5#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_
6#define OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_
7
8// THIS FILE HAS BEEN GENERATED, DO NOT EDIT MANUALLY. COMMAND:
9// util/autogen_testutils.py
10
11/**
12 * @file
13 * @brief Default ISRs for each IP
14 */
15
17#include "sw/device/lib/dif/autogen/dif_alert_handler_autogen.h"
18#include "sw/device/lib/dif/autogen/dif_aon_timer_autogen.h"
19#include "sw/device/lib/dif/autogen/dif_csrng_autogen.h"
21#include "sw/device/lib/dif/autogen/dif_edn_autogen.h"
22#include "sw/device/lib/dif/autogen/dif_entropy_src_autogen.h"
23#include "sw/device/lib/dif/autogen/dif_gpio_autogen.h"
24#include "sw/device/lib/dif/autogen/dif_hmac_autogen.h"
25#include "sw/device/lib/dif/autogen/dif_i2c_autogen.h"
27#include "sw/device/lib/dif/autogen/dif_kmac_autogen.h"
29#include "sw/device/lib/dif/autogen/dif_otbn_autogen.h"
30#include "sw/device/lib/dif/autogen/dif_otp_ctrl_autogen.h"
31#include "sw/device/lib/dif/autogen/dif_pwrmgr_autogen.h"
33#include "sw/device/lib/dif/autogen/dif_rv_timer_autogen.h"
35#include "sw/device/lib/dif/autogen/dif_spi_device_autogen.h"
36#include "sw/device/lib/dif/autogen/dif_spi_host_autogen.h"
37#include "sw/device/lib/dif/autogen/dif_uart_autogen.h"
39
41
42/**
43 * A handle to a PLIC ISR context struct.
44 */
45typedef struct plic_isr_ctx {
46 /**
47 * A handle to a rv_plic.
48 */
50 /**
51 * The HART ID associated with the PLIC (correspond to a PLIC "target").
52 */
53 uint32_t hart_id;
55
56/**
57 * A handle to a ac_range_check ISR context struct.
58 */
59typedef struct ac_range_check_isr_ctx {
60 /**
61 * A handle to a ac_range_check.
62 */
64 /**
65 * The PLIC IRQ ID where this ac_range_check instance's IRQs start.
66 */
68 /**
69 * The ac_range_check IRQ that is expected to be encountered in the ISR.
70 */
71 dif_ac_range_check_irq_t expected_irq;
72 /**
73 * Whether or not a single IRQ is expected to be encountered in the ISR.
74 */
77
78/**
79 * A handle to a alert_handler ISR context struct.
80 */
81typedef struct alert_handler_isr_ctx {
82 /**
83 * A handle to a alert_handler.
84 */
86 /**
87 * The PLIC IRQ ID where this alert_handler instance's IRQs start.
88 */
90 /**
91 * The alert_handler IRQ that is expected to be encountered in the ISR.
92 */
93 dif_alert_handler_irq_t expected_irq;
94 /**
95 * Whether or not a single IRQ is expected to be encountered in the ISR.
96 */
97 bool is_only_irq;
99
100/**
101 * A handle to a aon_timer ISR context struct.
102 */
103typedef struct aon_timer_isr_ctx {
104 /**
105 * A handle to a aon_timer.
106 */
108 /**
109 * The PLIC IRQ ID where this aon_timer instance's IRQs start.
110 */
112 /**
113 * The aon_timer IRQ that is expected to be encountered in the ISR.
114 */
115 dif_aon_timer_irq_t expected_irq;
116 /**
117 * Whether or not a single IRQ is expected to be encountered in the ISR.
118 */
119 bool is_only_irq;
121
122/**
123 * A handle to a csrng ISR context struct.
124 */
125typedef struct csrng_isr_ctx {
126 /**
127 * A handle to a csrng.
128 */
130 /**
131 * The PLIC IRQ ID where this csrng instance's IRQs start.
132 */
134 /**
135 * The csrng IRQ that is expected to be encountered in the ISR.
136 */
137 dif_csrng_irq_t expected_irq;
138 /**
139 * Whether or not a single IRQ is expected to be encountered in the ISR.
140 */
141 bool is_only_irq;
143
144/**
145 * A handle to a dma ISR context struct.
146 */
147typedef struct dma_isr_ctx {
148 /**
149 * A handle to a dma.
150 */
152 /**
153 * The PLIC IRQ ID where this dma instance's IRQs start.
154 */
156 /**
157 * The dma IRQ that is expected to be encountered in the ISR.
158 */
159 dif_dma_irq_t expected_irq;
160 /**
161 * Whether or not a single IRQ is expected to be encountered in the ISR.
162 */
165
166/**
167 * A handle to a edn ISR context struct.
168 */
169typedef struct edn_isr_ctx {
170 /**
171 * A handle to a edn.
172 */
173 dif_edn_t *edn;
174 /**
175 * The PLIC IRQ ID where this edn instance's IRQs start.
176 */
178 /**
179 * The edn IRQ that is expected to be encountered in the ISR.
180 */
181 dif_edn_irq_t expected_irq;
182 /**
183 * Whether or not a single IRQ is expected to be encountered in the ISR.
184 */
185 bool is_only_irq;
187
188/**
189 * A handle to a entropy_src ISR context struct.
190 */
191typedef struct entropy_src_isr_ctx {
192 /**
193 * A handle to a entropy_src.
194 */
196 /**
197 * The PLIC IRQ ID where this entropy_src instance's IRQs start.
198 */
200 /**
201 * The entropy_src IRQ that is expected to be encountered in the ISR.
202 */
203 dif_entropy_src_irq_t expected_irq;
204 /**
205 * Whether or not a single IRQ is expected to be encountered in the ISR.
206 */
207 bool is_only_irq;
209
210/**
211 * A handle to a gpio ISR context struct.
212 */
213typedef struct gpio_isr_ctx {
214 /**
215 * A handle to a gpio.
216 */
218 /**
219 * The PLIC IRQ ID where this gpio instance's IRQs start.
220 */
222 /**
223 * The gpio IRQ that is expected to be encountered in the ISR.
224 */
225 dif_gpio_irq_t expected_irq;
226 /**
227 * Whether or not a single IRQ is expected to be encountered in the ISR.
228 */
229 bool is_only_irq;
231
232/**
233 * A handle to a hmac ISR context struct.
234 */
235typedef struct hmac_isr_ctx {
236 /**
237 * A handle to a hmac.
238 */
240 /**
241 * The PLIC IRQ ID where this hmac instance's IRQs start.
242 */
244 /**
245 * The hmac IRQ that is expected to be encountered in the ISR.
246 */
247 dif_hmac_irq_t expected_irq;
248 /**
249 * Whether or not a single IRQ is expected to be encountered in the ISR.
250 */
251 bool is_only_irq;
253
254/**
255 * A handle to a i2c ISR context struct.
256 */
257typedef struct i2c_isr_ctx {
258 /**
259 * A handle to a i2c.
260 */
261 dif_i2c_t *i2c;
262 /**
263 * The PLIC IRQ ID where this i2c instance's IRQs start.
264 */
266 /**
267 * The i2c IRQ that is expected to be encountered in the ISR.
268 */
269 dif_i2c_irq_t expected_irq;
270 /**
271 * Whether or not a single IRQ is expected to be encountered in the ISR.
272 */
273 bool is_only_irq;
275
276/**
277 * A handle to a keymgr_dpe ISR context struct.
278 */
279typedef struct keymgr_dpe_isr_ctx {
280 /**
281 * A handle to a keymgr_dpe.
282 */
284 /**
285 * The PLIC IRQ ID where this keymgr_dpe instance's IRQs start.
286 */
288 /**
289 * The keymgr_dpe IRQ that is expected to be encountered in the ISR.
290 */
291 dif_keymgr_dpe_irq_t expected_irq;
292 /**
293 * Whether or not a single IRQ is expected to be encountered in the ISR.
294 */
297
298/**
299 * A handle to a kmac ISR context struct.
300 */
301typedef struct kmac_isr_ctx {
302 /**
303 * A handle to a kmac.
304 */
306 /**
307 * The PLIC IRQ ID where this kmac instance's IRQs start.
308 */
310 /**
311 * The kmac IRQ that is expected to be encountered in the ISR.
312 */
313 dif_kmac_irq_t expected_irq;
314 /**
315 * Whether or not a single IRQ is expected to be encountered in the ISR.
316 */
317 bool is_only_irq;
319
320/**
321 * A handle to a mbx ISR context struct.
322 */
323typedef struct mbx_isr_ctx {
324 /**
325 * A handle to a mbx.
326 */
328 /**
329 * The PLIC IRQ ID where this mbx instance's IRQs start.
330 */
332 /**
333 * The mbx IRQ that is expected to be encountered in the ISR.
334 */
335 dif_mbx_irq_t expected_irq;
336 /**
337 * Whether or not a single IRQ is expected to be encountered in the ISR.
338 */
341
342/**
343 * A handle to a otbn ISR context struct.
344 */
345typedef struct otbn_isr_ctx {
346 /**
347 * A handle to a otbn.
348 */
350 /**
351 * The PLIC IRQ ID where this otbn instance's IRQs start.
352 */
354 /**
355 * The otbn IRQ that is expected to be encountered in the ISR.
356 */
357 dif_otbn_irq_t expected_irq;
358 /**
359 * Whether or not a single IRQ is expected to be encountered in the ISR.
360 */
361 bool is_only_irq;
363
364/**
365 * A handle to a otp_ctrl ISR context struct.
366 */
367typedef struct otp_ctrl_isr_ctx {
368 /**
369 * A handle to a otp_ctrl.
370 */
372 /**
373 * The PLIC IRQ ID where this otp_ctrl instance's IRQs start.
374 */
376 /**
377 * The otp_ctrl IRQ that is expected to be encountered in the ISR.
378 */
379 dif_otp_ctrl_irq_t expected_irq;
380 /**
381 * Whether or not a single IRQ is expected to be encountered in the ISR.
382 */
383 bool is_only_irq;
385
386/**
387 * A handle to a pwrmgr ISR context struct.
388 */
389typedef struct pwrmgr_isr_ctx {
390 /**
391 * A handle to a pwrmgr.
392 */
394 /**
395 * The PLIC IRQ ID where this pwrmgr instance's IRQs start.
396 */
398 /**
399 * The pwrmgr IRQ that is expected to be encountered in the ISR.
400 */
401 dif_pwrmgr_irq_t expected_irq;
402 /**
403 * Whether or not a single IRQ is expected to be encountered in the ISR.
404 */
405 bool is_only_irq;
407
408/**
409 * A handle to a racl_ctrl ISR context struct.
410 */
411typedef struct racl_ctrl_isr_ctx {
412 /**
413 * A handle to a racl_ctrl.
414 */
416 /**
417 * The PLIC IRQ ID where this racl_ctrl instance's IRQs start.
418 */
420 /**
421 * The racl_ctrl IRQ that is expected to be encountered in the ISR.
422 */
423 dif_racl_ctrl_irq_t expected_irq;
424 /**
425 * Whether or not a single IRQ is expected to be encountered in the ISR.
426 */
429
430/**
431 * A handle to a rv_timer ISR context struct.
432 */
433typedef struct rv_timer_isr_ctx {
434 /**
435 * A handle to a rv_timer.
436 */
438 /**
439 * The PLIC IRQ ID where this rv_timer instance's IRQs start.
440 */
442 /**
443 * The rv_timer IRQ that is expected to be encountered in the ISR.
444 */
445 dif_rv_timer_irq_t expected_irq;
446 /**
447 * Whether or not a single IRQ is expected to be encountered in the ISR.
448 */
449 bool is_only_irq;
451
452/**
453 * A handle to a soc_proxy ISR context struct.
454 */
455typedef struct soc_proxy_isr_ctx {
456 /**
457 * A handle to a soc_proxy.
458 */
460 /**
461 * The PLIC IRQ ID where this soc_proxy instance's IRQs start.
462 */
464 /**
465 * The soc_proxy IRQ that is expected to be encountered in the ISR.
466 */
467 dif_soc_proxy_irq_t expected_irq;
468 /**
469 * Whether or not a single IRQ is expected to be encountered in the ISR.
470 */
473
474/**
475 * A handle to a spi_device ISR context struct.
476 */
477typedef struct spi_device_isr_ctx {
478 /**
479 * A handle to a spi_device.
480 */
482 /**
483 * The PLIC IRQ ID where this spi_device instance's IRQs start.
484 */
486 /**
487 * The spi_device IRQ that is expected to be encountered in the ISR.
488 */
489 dif_spi_device_irq_t expected_irq;
490 /**
491 * Whether or not a single IRQ is expected to be encountered in the ISR.
492 */
493 bool is_only_irq;
495
496/**
497 * A handle to a spi_host ISR context struct.
498 */
499typedef struct spi_host_isr_ctx {
500 /**
501 * A handle to a spi_host.
502 */
504 /**
505 * The PLIC IRQ ID where this spi_host instance's IRQs start.
506 */
508 /**
509 * The spi_host IRQ that is expected to be encountered in the ISR.
510 */
511 dif_spi_host_irq_t expected_irq;
512 /**
513 * Whether or not a single IRQ is expected to be encountered in the ISR.
514 */
515 bool is_only_irq;
517
518/**
519 * A handle to a uart ISR context struct.
520 */
521typedef struct uart_isr_ctx {
522 /**
523 * A handle to a uart.
524 */
526 /**
527 * The PLIC IRQ ID where this uart instance's IRQs start.
528 */
530 /**
531 * The uart IRQ that is expected to be encountered in the ISR.
532 */
533 dif_uart_irq_t expected_irq;
534 /**
535 * Whether or not a single IRQ is expected to be encountered in the ISR.
536 */
537 bool is_only_irq;
539
540/**
541 * Services an ac_range_check IRQ.
542 *
543 * @param plic_ctx A PLIC ISR context handle.
544 * @param ac_range_check_ctx A(n) ac_range_check ISR context handle.
545 * @param mute_status_irq set to true to disable the serviced status type IRQ.
546 * @param[out] peripheral_serviced Out param for the peripheral that was
547 * serviced.
548 * @param[out] irq_serviced Out param for the IRQ that was serviced.
549 */
551 plic_isr_ctx_t plic_ctx, ac_range_check_isr_ctx_t ac_range_check_ctx,
552 bool mute_status_irq, top_darjeeling_plic_peripheral_t *peripheral_serviced,
553 dif_ac_range_check_irq_t *irq_serviced);
554
555/**
556 * Services an alert_handler IRQ.
557 *
558 * @param plic_ctx A PLIC ISR context handle.
559 * @param alert_handler_ctx A(n) alert_handler ISR context handle.
560 * @param[out] peripheral_serviced Out param for the peripheral that was
561 * serviced.
562 * @param[out] irq_serviced Out param for the IRQ that was serviced.
563 */
565 plic_isr_ctx_t plic_ctx, alert_handler_isr_ctx_t alert_handler_ctx,
566 top_darjeeling_plic_peripheral_t *peripheral_serviced,
567 dif_alert_handler_irq_t *irq_serviced);
568
569/**
570 * Services an aon_timer IRQ.
571 *
572 * @param plic_ctx A PLIC ISR context handle.
573 * @param aon_timer_ctx A(n) aon_timer ISR context handle.
574 * @param[out] peripheral_serviced Out param for the peripheral that was
575 * serviced.
576 * @param[out] irq_serviced Out param for the IRQ that was serviced.
577 */
579 plic_isr_ctx_t plic_ctx, aon_timer_isr_ctx_t aon_timer_ctx,
580 top_darjeeling_plic_peripheral_t *peripheral_serviced,
581 dif_aon_timer_irq_t *irq_serviced);
582
583/**
584 * Services an csrng IRQ.
585 *
586 * @param plic_ctx A PLIC ISR context handle.
587 * @param csrng_ctx A(n) csrng ISR context handle.
588 * @param[out] peripheral_serviced Out param for the peripheral that was
589 * serviced.
590 * @param[out] irq_serviced Out param for the IRQ that was serviced.
591 */
593 plic_isr_ctx_t plic_ctx, csrng_isr_ctx_t csrng_ctx,
594 top_darjeeling_plic_peripheral_t *peripheral_serviced,
595 dif_csrng_irq_t *irq_serviced);
596
597/**
598 * Services an dma IRQ.
599 *
600 * @param plic_ctx A PLIC ISR context handle.
601 * @param dma_ctx A(n) dma ISR context handle.
602 * @param mute_status_irq set to true to disable the serviced status type IRQ.
603 * @param[out] peripheral_serviced Out param for the peripheral that was
604 * serviced.
605 * @param[out] irq_serviced Out param for the IRQ that was serviced.
606 */
608 plic_isr_ctx_t plic_ctx, dma_isr_ctx_t dma_ctx, bool mute_status_irq,
609 top_darjeeling_plic_peripheral_t *peripheral_serviced,
610 dif_dma_irq_t *irq_serviced);
611
612/**
613 * Services an edn IRQ.
614 *
615 * @param plic_ctx A PLIC ISR context handle.
616 * @param edn_ctx A(n) edn ISR context handle.
617 * @param[out] peripheral_serviced Out param for the peripheral that was
618 * serviced.
619 * @param[out] irq_serviced Out param for the IRQ that was serviced.
620 */
622 plic_isr_ctx_t plic_ctx, edn_isr_ctx_t edn_ctx,
623 top_darjeeling_plic_peripheral_t *peripheral_serviced,
624 dif_edn_irq_t *irq_serviced);
625
626/**
627 * Services an entropy_src IRQ.
628 *
629 * @param plic_ctx A PLIC ISR context handle.
630 * @param entropy_src_ctx A(n) entropy_src ISR context handle.
631 * @param[out] peripheral_serviced Out param for the peripheral that was
632 * serviced.
633 * @param[out] irq_serviced Out param for the IRQ that was serviced.
634 */
636 plic_isr_ctx_t plic_ctx, entropy_src_isr_ctx_t entropy_src_ctx,
637 top_darjeeling_plic_peripheral_t *peripheral_serviced,
638 dif_entropy_src_irq_t *irq_serviced);
639
640/**
641 * Services an gpio IRQ.
642 *
643 * @param plic_ctx A PLIC ISR context handle.
644 * @param gpio_ctx A(n) gpio ISR context handle.
645 * @param[out] peripheral_serviced Out param for the peripheral that was
646 * serviced.
647 * @param[out] irq_serviced Out param for the IRQ that was serviced.
648 */
650 plic_isr_ctx_t plic_ctx, gpio_isr_ctx_t gpio_ctx,
651 top_darjeeling_plic_peripheral_t *peripheral_serviced,
652 dif_gpio_irq_t *irq_serviced);
653
654/**
655 * Services an hmac IRQ.
656 *
657 * @param plic_ctx A PLIC ISR context handle.
658 * @param hmac_ctx A(n) hmac ISR context handle.
659 * @param mute_status_irq set to true to disable the serviced status type IRQ.
660 * @param[out] peripheral_serviced Out param for the peripheral that was
661 * serviced.
662 * @param[out] irq_serviced Out param for the IRQ that was serviced.
663 */
665 plic_isr_ctx_t plic_ctx, hmac_isr_ctx_t hmac_ctx, bool mute_status_irq,
666 top_darjeeling_plic_peripheral_t *peripheral_serviced,
667 dif_hmac_irq_t *irq_serviced);
668
669/**
670 * Services an i2c IRQ.
671 *
672 * @param plic_ctx A PLIC ISR context handle.
673 * @param i2c_ctx A(n) i2c ISR context handle.
674 * @param mute_status_irq set to true to disable the serviced status type IRQ.
675 * @param[out] peripheral_serviced Out param for the peripheral that was
676 * serviced.
677 * @param[out] irq_serviced Out param for the IRQ that was serviced.
678 */
680 plic_isr_ctx_t plic_ctx, i2c_isr_ctx_t i2c_ctx, bool mute_status_irq,
681 top_darjeeling_plic_peripheral_t *peripheral_serviced,
682 dif_i2c_irq_t *irq_serviced);
683
684/**
685 * Services an keymgr_dpe IRQ.
686 *
687 * @param plic_ctx A PLIC ISR context handle.
688 * @param keymgr_dpe_ctx A(n) keymgr_dpe ISR context handle.
689 * @param[out] peripheral_serviced Out param for the peripheral that was
690 * serviced.
691 * @param[out] irq_serviced Out param for the IRQ that was serviced.
692 */
694 plic_isr_ctx_t plic_ctx, keymgr_dpe_isr_ctx_t keymgr_dpe_ctx,
695 top_darjeeling_plic_peripheral_t *peripheral_serviced,
696 dif_keymgr_dpe_irq_t *irq_serviced);
697
698/**
699 * Services an kmac IRQ.
700 *
701 * @param plic_ctx A PLIC ISR context handle.
702 * @param kmac_ctx A(n) kmac ISR context handle.
703 * @param mute_status_irq set to true to disable the serviced status type IRQ.
704 * @param[out] peripheral_serviced Out param for the peripheral that was
705 * serviced.
706 * @param[out] irq_serviced Out param for the IRQ that was serviced.
707 */
709 plic_isr_ctx_t plic_ctx, kmac_isr_ctx_t kmac_ctx, bool mute_status_irq,
710 top_darjeeling_plic_peripheral_t *peripheral_serviced,
711 dif_kmac_irq_t *irq_serviced);
712
713/**
714 * Services an mbx IRQ.
715 *
716 * @param plic_ctx A PLIC ISR context handle.
717 * @param mbx_ctx A(n) mbx ISR context handle.
718 * @param[out] peripheral_serviced Out param for the peripheral that was
719 * serviced.
720 * @param[out] irq_serviced Out param for the IRQ that was serviced.
721 */
723 plic_isr_ctx_t plic_ctx, mbx_isr_ctx_t mbx_ctx,
724 top_darjeeling_plic_peripheral_t *peripheral_serviced,
725 dif_mbx_irq_t *irq_serviced);
726
727/**
728 * Services an otbn IRQ.
729 *
730 * @param plic_ctx A PLIC ISR context handle.
731 * @param otbn_ctx A(n) otbn ISR context handle.
732 * @param[out] peripheral_serviced Out param for the peripheral that was
733 * serviced.
734 * @param[out] irq_serviced Out param for the IRQ that was serviced.
735 */
737 plic_isr_ctx_t plic_ctx, otbn_isr_ctx_t otbn_ctx,
738 top_darjeeling_plic_peripheral_t *peripheral_serviced,
739 dif_otbn_irq_t *irq_serviced);
740
741/**
742 * Services an otp_ctrl IRQ.
743 *
744 * @param plic_ctx A PLIC ISR context handle.
745 * @param otp_ctrl_ctx A(n) otp_ctrl ISR context handle.
746 * @param[out] peripheral_serviced Out param for the peripheral that was
747 * serviced.
748 * @param[out] irq_serviced Out param for the IRQ that was serviced.
749 */
751 plic_isr_ctx_t plic_ctx, otp_ctrl_isr_ctx_t otp_ctrl_ctx,
752 top_darjeeling_plic_peripheral_t *peripheral_serviced,
753 dif_otp_ctrl_irq_t *irq_serviced);
754
755/**
756 * Services an pwrmgr IRQ.
757 *
758 * @param plic_ctx A PLIC ISR context handle.
759 * @param pwrmgr_ctx A(n) pwrmgr ISR context handle.
760 * @param[out] peripheral_serviced Out param for the peripheral that was
761 * serviced.
762 * @param[out] irq_serviced Out param for the IRQ that was serviced.
763 */
765 plic_isr_ctx_t plic_ctx, pwrmgr_isr_ctx_t pwrmgr_ctx,
766 top_darjeeling_plic_peripheral_t *peripheral_serviced,
767 dif_pwrmgr_irq_t *irq_serviced);
768
769/**
770 * Services an racl_ctrl IRQ.
771 *
772 * @param plic_ctx A PLIC ISR context handle.
773 * @param racl_ctrl_ctx A(n) racl_ctrl ISR context handle.
774 * @param mute_status_irq set to true to disable the serviced status type IRQ.
775 * @param[out] peripheral_serviced Out param for the peripheral that was
776 * serviced.
777 * @param[out] irq_serviced Out param for the IRQ that was serviced.
778 */
780 plic_isr_ctx_t plic_ctx, racl_ctrl_isr_ctx_t racl_ctrl_ctx,
781 bool mute_status_irq, top_darjeeling_plic_peripheral_t *peripheral_serviced,
782 dif_racl_ctrl_irq_t *irq_serviced);
783
784/**
785 * Services an rv_timer IRQ.
786 *
787 * @param plic_ctx A PLIC ISR context handle.
788 * @param rv_timer_ctx A(n) rv_timer ISR context handle.
789 * @param[out] peripheral_serviced Out param for the peripheral that was
790 * serviced.
791 * @param[out] irq_serviced Out param for the IRQ that was serviced.
792 */
794 plic_isr_ctx_t plic_ctx, rv_timer_isr_ctx_t rv_timer_ctx,
795 top_darjeeling_plic_peripheral_t *peripheral_serviced,
796 dif_rv_timer_irq_t *irq_serviced);
797
798/**
799 * Services an soc_proxy IRQ.
800 *
801 * @param plic_ctx A PLIC ISR context handle.
802 * @param soc_proxy_ctx A(n) soc_proxy ISR context handle.
803 * @param[out] peripheral_serviced Out param for the peripheral that was
804 * serviced.
805 * @param[out] irq_serviced Out param for the IRQ that was serviced.
806 */
808 plic_isr_ctx_t plic_ctx, soc_proxy_isr_ctx_t soc_proxy_ctx,
809 top_darjeeling_plic_peripheral_t *peripheral_serviced,
810 dif_soc_proxy_irq_t *irq_serviced);
811
812/**
813 * Services an spi_device IRQ.
814 *
815 * @param plic_ctx A PLIC ISR context handle.
816 * @param spi_device_ctx A(n) spi_device ISR context handle.
817 * @param mute_status_irq set to true to disable the serviced status type IRQ.
818 * @param[out] peripheral_serviced Out param for the peripheral that was
819 * serviced.
820 * @param[out] irq_serviced Out param for the IRQ that was serviced.
821 */
823 plic_isr_ctx_t plic_ctx, spi_device_isr_ctx_t spi_device_ctx,
824 bool mute_status_irq, top_darjeeling_plic_peripheral_t *peripheral_serviced,
825 dif_spi_device_irq_t *irq_serviced);
826
827/**
828 * Services an spi_host IRQ.
829 *
830 * @param plic_ctx A PLIC ISR context handle.
831 * @param spi_host_ctx A(n) spi_host ISR context handle.
832 * @param mute_status_irq set to true to disable the serviced status type IRQ.
833 * @param[out] peripheral_serviced Out param for the peripheral that was
834 * serviced.
835 * @param[out] irq_serviced Out param for the IRQ that was serviced.
836 */
838 plic_isr_ctx_t plic_ctx, spi_host_isr_ctx_t spi_host_ctx,
839 bool mute_status_irq, top_darjeeling_plic_peripheral_t *peripheral_serviced,
840 dif_spi_host_irq_t *irq_serviced);
841
842/**
843 * Services an uart IRQ.
844 *
845 * @param plic_ctx A PLIC ISR context handle.
846 * @param uart_ctx A(n) uart ISR context handle.
847 * @param mute_status_irq set to true to disable the serviced status type IRQ.
848 * @param[out] peripheral_serviced Out param for the peripheral that was
849 * serviced.
850 * @param[out] irq_serviced Out param for the IRQ that was serviced.
851 */
853 plic_isr_ctx_t plic_ctx, uart_isr_ctx_t uart_ctx, bool mute_status_irq,
854 top_darjeeling_plic_peripheral_t *peripheral_serviced,
855 dif_uart_irq_t *irq_serviced);
856
857#endif // OPENTITAN_SW_DEVICE_LIB_TESTING_AUTOGEN_ISR_TESTUTILS_H_