29 Commits

Author SHA1 Message Date
2bf739efed Reject incomplete thread streams 2024-09-10 11:57:45 +02:00
aafaf6e954 Load thread tid from metadata 2024-09-10 09:59:22 +02:00
c8750b9dfd Enable -Wconversion and -Wsign-conversion
Prevents implicit conversions to go undetected, as they will have to be
explicit now.
2024-09-09 08:28:02 +02:00
129020e1c5 Fix format errors in printf-like functions 2024-07-24 15:12:09 +02:00
Miquel Vidal i Pinyol
478ed1f5d0 Use proper format specifiers
Allows compiling for architectures with different data type sizes
2024-07-24 15:12:09 +02:00
72b7eb8332 Mark the finalization of streams
The emulator will now check that all threads are properly finalyzed by
calling ovni_thread_free(), as required by the specification. For now
only a warning is issued, which is enough to determine the cause of
potential emulator panics.

The ovni model is now always enabled.
2023-11-16 12:39:14 +01:00
59385fad03 Add compatibility mode for missing require key
Traces with metadata version 1 don't use per-thread information, so we
cannot read the 'require' key. All models will be enabled for old traces
(which will cause performance problems).
2023-11-16 12:39:14 +01:00
3d10bef305 Load thread metadata from the JSON file 2023-11-16 12:21:50 +01:00
c2b6bfd3a8 Set the size of the channel property arrays
Arrays which don't initialize the last elements of the enumeration are
shorter and will cause a buffer overflow when read in a loop.
2023-04-24 12:37:20 +02:00
7aa3434e79 Remove ENABLE_DEBUG comments 2023-04-06 15:33:15 +00:00
4f440c5104 Add some debug messages 2023-04-06 15:33:15 +00:00
7f63d1e048 Remove unused thread_select_any() function 2023-03-24 12:08:45 +00:00
ddbb7dd9f4 Add include-what-you-use
Adds forwards declarations in headers and includes all headers in
sources, even if they are found by transitive includes.
2023-03-24 12:08:45 +00:00
5a03fd49e9 Remove function prefix from err() 2023-03-24 12:08:45 +00:00
4a2a9ec685 Replace uses of die() with err() + return 2023-03-24 12:08:45 +00:00
8da0342760 Set thread and CPU channels to ignore duplicates
Some of the PRV channels no longer need to skip duplicates.
2023-03-24 12:08:45 +00:00
ab3e823134 Rename CHAN_DUPLICATES to CHAN_ALLOW_DUP 2023-03-24 12:08:45 +00:00
68690b4127 Define all static PRV types in a global enum 2023-03-24 12:08:45 +00:00
a24477629d Set PRV flags explicitly per channel
Added PRV_EMITDUP and PRV_SKIPDUP to allow the check to be skipped. By
default it will fail to emit duplicated values.
2023-03-24 12:08:45 +00:00
2eac823014 Add missing PCF thread types 2023-03-24 12:08:45 +00:00
0447c52f0b Use strtol to parse the TID 2023-03-24 12:08:45 +00:00
7ba810fd4a Set the thread->proc in proc_add_thread() 2023-03-24 12:08:45 +00:00
9d7ff947b1 Get the first input cleanly 2023-03-24 12:08:45 +00:00
259de4df43 Add track module and port Nanos6 model 2023-03-24 12:08:45 +00:00
e3880d178e Move flush channel to ovni model only 2023-03-24 12:08:45 +00:00
4a8255e227 Complete Nanos6 model 2023-03-24 12:08:45 +00:00
524ccc4dd5 Begin porting nanos6 model 2023-03-24 12:08:45 +00:00
04029995be Begin porting the ovni model 2023-03-24 12:08:45 +00:00
f5db3a9814 Add cpu module and begin ovni model 2023-03-24 12:08:45 +00:00