Menu Toggle
v2.3.1 (RP2350)
Toggle main menu visibility
Loading...
Searching...
No Matches
hazard3.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2022 Raspberry Pi (Trading) Ltd.
3
*
4
* SPDX-License-Identifier: BSD-3-Clause
5
*/
6
7
#ifndef _HARDWARE_HAZARD3_H
8
#define _HARDWARE_HAZARD3_H
9
10
#include "
pico.h
"
11
#include "
hardware/riscv.h
"
12
13
// This includes both standard and Hazard3 custom CSRs:
14
#include "hardware/regs/rvcsr.h"
15
16
#include "
hardware/hazard3/features.h
"
17
#include "
hardware/hazard3/instructions.h
"
18
25
26
#ifndef __ASSEMBLER__
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
32
#ifdef __hazard3_extension_xh3irq
33
#define hazard3_irqarray_read(csr, index) (riscv_read_set_csr(csr, (index)) >> 16)
34
#else
35
#define hazard3_irqarray_read(csr, index) static_assert(false, "Not supported: Xh3irq extension")
36
#endif
37
38
#ifdef __hazard3_extension_xh3irq
39
#define hazard3_irqarray_write(csr, index, data) (riscv_write_csr(csr, (index) | ((uint32_t)(data) << 16)))
40
#else
41
#define hazard3_irqarray_write(csr, index, data) static_assert(false, "Not supported: Xh3irq extension")
42
#endif
43
44
#ifdef __hazard3_extension_xh3irq
45
#define hazard3_irqarray_set(csr, index, data) (riscv_set_csr(csr, (index) | ((uint32_t)(data) << 16)))
46
#else
47
#define hazard3_irqarray_set(csr, index, data) static_assert(false, "Not supported: Xh3irq extension")
48
#endif
49
50
#ifdef __hazard3_extension_xh3irq
51
#define hazard3_irqarray_clear(csr, index, data) (riscv_clear_csr(csr, (index) | ((uint32_t)(data) << 16)))
52
#else
53
#define hazard3_irqarray_clear(csr, index, data) static_assert(false, "Not supported: Xh3irq extension")
54
#endif
55
56
#ifdef __cplusplus
57
}
58
#endif
59
60
#endif
61
62
#endif
features.h
instructions.h
pico.h
riscv.h