aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport/nirio/lvbitx/template_lvbitx.cpp
blob: 8f1fb6b366ff14cc1a92035566ba85d4c80fe00a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{autogen_msg}

#include "{lvbitx_classname}_lvbitx.hpp"
#include <string>
#include <iostream>
#include <fstream>
#include <streambuf>
#include <boost/filesystem/path.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/regex.hpp>
#include <uhd/utils/paths.hpp>

namespace uhd {{ namespace niusrprio {{

#define SEARCH_PATHS "{lvbitx_search_paths}"

const char* {lvbitx_classname}_lvbitx::CONTROLS[] = {{{control_list}
}};

const char* {lvbitx_classname}_lvbitx::INDICATORS[] = {{{indicator_list}
}};

const char* {lvbitx_classname}_lvbitx::OUTPUT_FIFOS[] = {{{out_fifo_list}
}};

const char* {lvbitx_classname}_lvbitx::INPUT_FIFOS[] = {{{in_fifo_list}
}};

{lvbitx_classname}_lvbitx::{lvbitx_classname}_lvbitx(const std::string& option)
{{
    std::string fpga_file = "usrp_{lvbitx_classname}_fpga_" + option + ".lvbitx";
    boost::filesystem::path fpga_path(uhd::find_image_path(fpga_file, SEARCH_PATHS));

    _fpga_file_name = fpga_path.string();
    _bitstream_checksum = _get_bitstream_checksum(_fpga_file_name);
}}

const char* {lvbitx_classname}_lvbitx::get_bitfile_path() {{
    return _fpga_file_name.c_str();
}}

const char* {lvbitx_classname}_lvbitx::get_signature() {{
    return "{lvbitx_signature}";
}}

const char* {lvbitx_classname}_lvbitx::get_bitstream_checksum() {{
    return _bitstream_checksum.c_str();
}}

size_t {lvbitx_classname}_lvbitx::get_input_fifo_count() {{
    return sizeof(INPUT_FIFOS)/sizeof(*INPUT_FIFOS);
}}

const char** {lvbitx_classname}_lvbitx::get_input_fifo_names() {{
    return INPUT_FIFOS;
}}

size_t {lvbitx_classname}_lvbitx::get_output_fifo_count() {{
    return sizeof(OUTPUT_FIFOS)/sizeof(*OUTPUT_FIFOS);
}}

const char** {lvbitx_classname}_lvbitx::get_output_fifo_names() {{
    return OUTPUT_FIFOS;
}}

size_t {lvbitx_classname}_lvbitx::get_control_count() {{
    return sizeof(CONTROLS)/sizeof(*CONTROLS);
}}

const char** {lvbitx_classname}_lvbitx::get_control_names() {{
    return CONTROLS;
}}

size_t {lvbitx_classname}_lvbitx::get_indicator_count() {{
    return sizeof(INDICATORS)/sizeof(*INDICATORS);
}}

const char** {lvbitx_classname}_lvbitx::get_indicator_names() {{
    return INDICATORS;
}}

void {lvbitx_classname}_lvbitx::init_register_info(nirio_register_info_vtr& vtr) {{ {register_init}
}}

void {lvbitx_classname}_lvbitx::init_fifo_info(nirio_fifo_info_vtr& vtr) {{ {fifo_init}
}}

}}}}