μHAL
trigger_mux.h
1#ifndef TRIGGER_MUX_H
2#define TRIGGER_MUX_H
3
4#include <memory>
5#include <optional>
6#include <vector>
7
8#include "controllers.h"
9#include "decoders.h"
10
11namespace trigger_mux {
12
13/* forward declaration */
14struct trigger_mux_regs;
15
16class Core: public RegisterDecoder {
17 std::unique_ptr<struct trigger_mux_regs> regs_storage;
18 struct trigger_mux_regs &regs;
19
20 void decode() override;
21
22 public:
23 Core(struct pcie_bars &);
24 ~Core();
25};
26
28 protected:
29 std::unique_ptr<struct trigger_mux_regs> regs_storage;
30 struct trigger_mux_regs &regs;
31
32 void encode_params() override;
33
34 public:
35 Controller(struct pcie_bars &);
37
38 struct parameters {
39 std::optional<bool> rcv_src, transm_src;
40 std::optional<uint8_t> rcv_in_sel, transm_out_sel;
41 };
42 std::vector<struct parameters> parameters;
43};
44
45} /* namespace trigger_mux */
46
47#endif
Definition: controllers.h:7
Definition: decoders.h:97
Definition: trigger_mux.h:27
void encode_params() override
Definition: trigger_mux.cc:66
Definition: trigger_mux.h:16
void decode() override
Definition: trigger_mux.cc:43
Definition: pcie-defs.h:19
Definition: trigger_mux.h:38
Definition: trigger_mux.cc:24