daniel-k
e626abfb52
tests/timer: add basic timer test
2018-01-16 15:08:12 +01:00
daniel-k
fc98aaecb4
lib/ips/intc: C++-ify interface
2018-01-16 15:07:21 +01:00
daniel-k
e05ff515c7
lib/ips/timer: implement basic functionality
2018-01-16 15:05:37 +01:00
daniel-k
05131258d4
lib/card: use new logger
2018-01-16 14:52:09 +01:00
daniel-k
77135feebc
lib/ips/intc: use new logger
2018-01-16 14:51:45 +01:00
daniel-k
80bc9af0e7
lib/ips/intc: change waitForInterrupt() interface
...
Return -1 on failure, change type to `int`. int/2 bits should still
be enough to track overflowed interrupts.
2018-01-16 14:51:45 +01:00
daniel-k
82204990cd
lib/card: remove unused C code
2018-01-16 14:46:59 +01:00
daniel-k
f987c29d71
lib/ip: change interface: start() -> init()
2018-01-16 14:46:00 +01:00
daniel-k
687f1e5bba
lib/ips/fifo: use std:min in favor of old macro
2018-01-10 15:49:53 +01:00
daniel-k
44e78643ea
lib/log: purge remaining of old logger
2018-01-10 15:49:53 +01:00
daniel-k
09534e83a6
lib/plugin: make type an argument of constructor
2018-01-10 15:49:53 +01:00
daniel-k
3cf50db98d
logging: use new spdlog library in favor of Logger
2018-01-10 15:49:53 +01:00
daniel-k
f2a5e7af22
spdlog: patch name formatter to implement fixed width names in format
2018-01-10 15:42:03 +01:00
daniel-k
b33b4d27d9
Merge commit '2cfd26b6ee2696a0e23b9caa72b89078d8428b94' as 'thirdparty/spdlog'
2018-01-10 15:24:09 +01:00
daniel-k
2cfd26b6ee
Squashed 'thirdparty/spdlog/' content from commit 32177aa
...
git-subtree-dir: thirdparty/spdlog
git-subtree-split: 32177aa77a0a20453d3e7455cac42406fc49b6ca
2018-01-10 15:24:09 +01:00
daniel-k
71a54eeab6
lib/ips: implement fifo driver and adapt test
2018-01-10 11:02:08 +01:00
daniel-k
e2e78cf8b3
lib: minor cleanup
2018-01-10 11:02:08 +01:00
daniel-k
da88b15af3
lib/ip: fail making if configureJson() fails
2018-01-10 11:02:08 +01:00
daniel-k
81db98e448
lib/ip-node: implement loopback mode if available
2018-01-10 11:02:08 +01:00
daniel-k
6ee860971a
ips/intc: supply methods to use with new IrqPort
2018-01-10 11:02:08 +01:00
daniel-k
c710a95352
lib/ip: generalize getting mapped addresses
2018-01-10 11:02:08 +01:00
daniel-k
4035aab49f
lib/ip: dependencies cannot be private
...
Has to be used by derived classes of course!
2018-01-10 11:02:08 +01:00
daniel-k
e96b08c53c
lib/ip: implement more comparison operators for IpCore
2018-01-10 11:02:08 +01:00
daniel-k
8345a15db0
lib/card: implement IP lookup
...
Search for an initialized IP by name.
2018-01-10 11:02:08 +01:00
daniel-k
af234e29c6
lib/ip: provide default implementation for getDependencies()
2018-01-10 11:02:08 +01:00
daniel-k
cb25861c7e
ip: remove excess space in output of identifier
2018-01-10 11:02:08 +01:00
daniel-k
018c89a2b0
tests/main: C++-ify
2018-01-10 11:02:08 +01:00
daniel-k
25d5552197
ips/intc: remove early return in start()
2018-01-10 11:02:08 +01:00
daniel-k
f94476b716
ip/node: rename OtherIpNode
to StreamPort
and other
to to
2018-01-10 11:02:08 +01:00
daniel-k
4d3e4dd931
ips: make irqs a list
2018-01-10 11:02:08 +01:00
daniel-k
79f37ce352
ips/switch: add C++ implementation of switch
2018-01-10 11:02:08 +01:00
daniel-k
12024d53e5
lib/ip-node: add IpNode class, IpCore which has streaming ports
2018-01-10 11:02:08 +01:00
daniel-k
f3f0f4d630
lib/ip: pass ip core by reference to factory instead of unique_ptr
2018-01-10 11:02:08 +01:00
daniel-k
9676a9535d
lib/ip: re-add IRQ to IpCore
2018-01-10 11:02:08 +01:00
daniel-k
ab183d2111
lib/ip: flip output of IpIdentifier (name first, VLNV second)
2018-01-10 11:02:08 +01:00
daniel-k
c105f1c925
lib/ip: remove unused includes and replace pragma by include guard
2018-01-10 11:02:08 +01:00
daniel-k
a5b5e317d4
wip implementing dependency parsing and proper memeory handling
...
works and compiles so for. next is to implement different IP interfaces
(Model, Interface, DataMover, Infrastructure, ...)
2018-01-10 11:02:08 +01:00
daniel-k
6a721847e4
set C++ standard to C++17
...
Primarily for structured binding declaration in range-based for loops
2018-01-10 11:02:08 +01:00
daniel-k
61ca7aa44f
fpga/ip: add C++ timer implementation
2018-01-10 11:02:08 +01:00
daniel-k
3d0afd671e
lib/utils: add string tokenizer
2018-01-10 11:02:08 +01:00
daniel-k
35d96ed277
lib: add dependency graph implementation
2018-01-10 11:02:08 +01:00
daniel-k
e590d1a350
add namespace villas::fpga and villas::fpga::ip and some renaming
2018-01-10 11:02:08 +01:00
daniel-k
09815a661e
rough implementation of a C++ style logger class
...
with many sharp edges :)
2018-01-10 11:02:08 +01:00
daniel-k
b0e55e6fb2
current wip implementing card, many changes in ip too
2018-01-10 11:02:08 +01:00
daniel-k
63a443527c
plugin: treat empty name in lookup() as wildcard
2018-01-10 11:02:08 +01:00
daniel-k
2bf8bf93bd
ips/intc: remove configureJson() method because not needed
2018-01-10 11:02:08 +01:00
daniel-k
a194f8d0b2
plugin: require name and add method to dump list
2018-01-10 11:02:08 +01:00
daniel-k
d63c2b30bf
tests: compile main as C++
2018-01-10 11:02:08 +01:00
daniel-k
7d883089c2
lib/card: copy C->C++ and just make it compile
2018-01-10 11:02:08 +01:00
daniel-k
68c9f08457
plugin: use Nifty Counter Idiom to intialize plugin list
...
Just using a standard std::list<> to hold plugins is problematic, because
we want to push Plugins to the list from within each Plugin's constructor
that is executed during static initialization. Since the order of static
initialization is undefined in C++, it may happen that a Plugin
constructor is executed before the list could be initialized. Therefore,
we use the Nifty Counter Idiom [1] to initialize the list ourself before
the first usage.
In short:
- allocate a buffer for the list
- initialize list before first usage
- (complicatedly) declaring a buffer is neccessary in order to avoid
that the constructor of the static list is executed again
2018-01-10 11:02:08 +01:00