μHAL
bpm_swap.h
1#ifndef BPM_SWAP_H
2#define BPM_SWAP_H
3
4#include <memory>
5
6#include "controllers.h"
7#include "decoders.h"
8
9namespace bpm_swap {
10
11/* forward declaration */
12struct bpm_swap_regs;
13
14class Core: public RegisterDecoder {
15 std::unique_ptr<struct bpm_swap_regs> regs_storage;
16 struct bpm_swap_regs &regs;
17
18 void decode() override;
19
20 public:
21 Core(struct pcie_bars &);
22 ~Core() override;
23};
24
26 std::unique_ptr<struct bpm_swap_regs> regs_storage;
27 struct bpm_swap_regs &regs;
28
29 void encode_params() override;
30 void write_params() override;
31
32 public:
33 Controller(struct pcie_bars &);
35
36 static const std::vector<std::string> mode_list;
37
38 bool reset = false;
39 std::string mode = "direct";
40 bool swap_div_f_cnt_en = false;
41 uint16_t swap_div_f = 0;
42 uint16_t deswap_delay = 0;
43};
44
45} /* namespace bpm_swap */
46
47#endif
Definition: controllers.h:7
Definition: decoders.h:97
Definition: bpm_swap.h:25
void encode_params() override
Definition: bpm_swap.cc:67
void write_params() override
Definition: bpm_swap.cc:79
Definition: bpm_swap.h:14
void decode() override
Definition: bpm_swap.cc:39
Definition: bpm_swap.cc:22
Definition: pcie-defs.h:19