NEORV32 Software Framework Documentation
The NEORV32 RISC-V Processor
Loading...
Searching...
No Matches
neorv32_smp.h
Go to the documentation of this file.
1// ================================================================================ //
2// The NEORV32 RISC-V Processor - https://github.com/stnolting/neorv32 //
3// Copyright (c) NEORV32 contributors. //
4// Copyright (c) 2020 - 2025 Stephan Nolting. All rights reserved. //
5// Licensed under the BSD-3-Clause license, see LICENSE for details. //
6// SPDX-License-Identifier: BSD-3-Clause //
7// ================================================================================ //
8
13
14#ifndef neorv32_smp_h
15#define neorv32_smp_h
16
17
18/**********************************************************************/
22int neorv32_smp_launch(int (*entry_point)(void), uint8_t* stack_memory, size_t stack_size_bytes);
23void neorv32_smp_icc_push(uint32_t data);
24uint32_t neorv32_smp_icc_pop(void);
26
27
28/**********************************************************************/
33inline uint32_t __attribute__ ((always_inline)) neorv32_smp_whoami(void) {
34
36}
37
38
39/**********************************************************************/
45inline uint32_t __attribute__ ((always_inline)) neorv32_smp_icc_get(void) {
46
48}
49
50
51/**********************************************************************/
57inline void __attribute__ ((always_inline)) neorv32_smp_icc_put(uint32_t data) {
58
60}
61
62
63/**********************************************************************/
68inline int __attribute__ ((always_inline)) neorv32_smp_icc_avail(void) {
69
71}
72
73
74/**********************************************************************/
79inline int __attribute__ ((always_inline)) neorv32_smp_icc_free(void) {
80
82}
83
84#endif // neorv32_smp_h
uint32_t neorv32_cpu_csr_read(const int csr_id)
Definition neorv32_cpu.h:174
void neorv32_cpu_csr_write(const int csr_id, uint32_t data)
Definition neorv32_cpu.h:188
@ CSR_MXICCSREG_TX_FREE
Definition neorv32_cpu_csr.h:352
@ CSR_MXICCSREG_RX_AVAIL
Definition neorv32_cpu_csr.h:351
@ CSR_MXICCDATA
Definition neorv32_cpu_csr.h:142
@ CSR_MXICCSREG
Definition neorv32_cpu_csr.h:141
@ CSR_MHARTID
Definition neorv32_cpu_csr.h:155
uint32_t neorv32_smp_icc_get(void)
Definition neorv32_smp.h:45
void neorv32_smp_icc_push(uint32_t data)
Definition neorv32_smp.c:85
void neorv32_smp_icc_put(uint32_t data)
Definition neorv32_smp.h:57
int neorv32_smp_launch(int(*entry_point)(void), uint8_t *stack_memory, size_t stack_size_bytes)
Definition neorv32_smp.c:33
uint32_t neorv32_smp_whoami(void)
Definition neorv32_smp.h:33
int neorv32_smp_icc_free(void)
Definition neorv32_smp.h:79
int neorv32_smp_icc_avail(void)
Definition neorv32_smp.h:68
uint32_t neorv32_smp_icc_pop(void)
Definition neorv32_smp.c:99