18#ifndef BACKENDS_TOFINO_BF_ASM_BFAS_H_
19#define BACKENDS_TOFINO_BF_ASM_BFAS_H_
29enum config_version_t { CONFIG_OLD = 1, CONFIG_NEW = 2, CONFIG_BOTH = 3 };
56 bool disable_egress_latency_padding;
57 bool disable_gfm_parity;
58 bool disable_long_branch;
59 bool disable_power_gating;
61 bool high_availability_enabled;
66 std::string stage_dependency_pattern;
68 bool tof2lab44_workaround;
69 config_version_t version;
73 std::string output_dir;
74 int num_stages_override;
75 bool tof1_egr_parse_depth_checks_disabled;
76 const char *fill_noop_slot;
79extern unsigned unique_action_handle;
82extern std::string asmfile_name;
83extern std::string asmfile_dir;
84extern std::unique_ptr<std::ostream> gfm_out;
88void createSingleAsmParser();
90std::string toString(target_t target);
91std::ostream &operator<<(std::ostream &out, target_t target);
93int asm_parse_file(
const char *name, FILE *in);
94int asm_parse_string(
const char *in);
96void no_sections_error_exit();
97bool no_section_error(
const char *name);
100extern int error_count, warn_count;
101extern void error(
int lineno,
const char *fmt, va_list);
102void error(
int lineno,
const char *fmt, ...) __attribute__((format(printf, 2, 3)));
103inline
void error(
int lineno, const
char *fmt, ...) {
106 error(lineno, fmt, args);
109extern void warning(
int lineno,
const char *fmt, va_list);
110void warning(
int lineno,
const char *fmt, ...) __attribute__((format(printf, 2, 3)));
111inline
void warning(
int lineno, const
char *fmt, ...) {
112#ifdef BAREFOOT_INTERNAL
113 if (!options.nowarn) {
116 warning(lineno, fmt, args);
122extern std::unique_ptr<std::ostream> open_output(
const char *, ...)
123 __attribute__((format(printf, 1, 2)));
128 while (left && !(left & 1)) {
133 VersionIter() : left(0), bit(0) {}
136 explicit VersionIter(config_version_t v) : left(v), bit(0) { check(); }
137 VersionIter begin() {
return *
this; }
138 VersionIter end() {
return VersionIter(); }
139 int operator*()
const {
return bit; }
140 bool operator==(VersionIter &a) {
return (left << bit) == (a.left << a.bit); }
141 VersionIter &operator++() {
148extern unsigned unique_table_offset;
Base class of parser assembly section.
Definition tofino/bf-asm/parser.h:40
void warning(const char *format, Args &&...args)
Report a warning with the given message.
Definition lib/error.h:128
void error(const char *format, Args &&...args)
Report an error with the given message.
Definition lib/error.h:58
Definition asm-types.h:114