177429fabc
Follow K&R coding style using clang-format
2022-09-29 16:52:28 +02:00
834b33af33
Use SPDX license identifiers
2022-09-29 14:16:47 +02:00
David Alvarez
b226afb630
Implement Nanos6 emulator model
2022-09-12 16:16:10 +02:00
David Alvarez
a8b1256375
Support for nested tasks
2022-04-25 12:20:33 +02:00
75c32f3a99
Transform all aserts into unconditional checks
2021-12-09 16:08:36 +01:00
34701b2219
Transform bad exits into aborts in channels
2021-11-19 16:47:35 +01:00
cddda71cfb
Early duplicate state detection in channels
...
These checks allows the emulator to abort at the moment in which two
consecutive states are going to be emitted by the channel, showing the
culpirit in the backtrace. Waiting for the check in chan_emit() hides
the source of the problem.
2021-11-19 16:22:37 +01:00
557371e836
Only allow and emit state transitions
...
Fixes the ghost events shown in the PRV trace. Only transitions to a
different state are allowed now.
2021-11-17 12:08:25 +01:00
4fcef1c5b6
Fix some warnings for clang and intel compilers
2021-11-16 19:20:50 +01:00
73d9e323b9
Remove const array initialization
...
The implementation is not mandatory and clang doesn't support it.
2021-11-16 19:20:45 +01:00
d3e87c2272
Add GPLv3 and MIT licenses
2021-11-03 11:32:17 +01:00
3c913dd26b
Implement extended init for CPU channels
2021-10-21 16:53:01 +02:00
5a940540d3
Use priority queue for streams and fast channels
...
A priority queue (in heap.h) is used to keep the next event ready in the
emulator loop. Additionally, a list of dirty channels is keept to
limit the complexity of the propagation and emit phases.
2021-10-21 16:53:00 +02:00
dd1567e0ec
Add support for tracking modes in channels
2021-10-21 16:52:51 +02:00
fbfbb8fc0f
Introduce channels
2021-10-21 16:15:29 +02:00