diff options
Diffstat (limited to 'src/tools/tracegen/helpers.cpp')
-rw-r--r-- | src/tools/tracegen/helpers.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/tools/tracegen/helpers.cpp b/src/tools/tracegen/helpers.cpp index de523e74a67..c2059835a38 100644 --- a/src/tools/tracegen/helpers.cpp +++ b/src/tools/tracegen/helpers.cpp @@ -6,6 +6,12 @@ using namespace Qt::StringLiterals; +QString typeToName(const QString &name) +{ + QString ret = name; + return ret.replace(QStringLiteral("::"), QStringLiteral("_")); +} + QString includeGuard(const QString &filename) { QString guard = filename.toUpper(); @@ -43,11 +49,32 @@ QString formatFunctionSignature(const QList<Tracepoint::Argument> &args) }); } -QString formatParameterList(const QList<Tracepoint::Argument> &args, ParamType type) +QString formatParameterList(const Provider &provider, const QList<Tracepoint::Argument> &args, const QList<Tracepoint::Field> &fields, ParamType type) { if (type == LTTNG) { QString ret; + for (int i = 0; i < args.size(); i++) { + const Tracepoint::Argument &arg = args[i]; + const Tracepoint::Field &field = fields[i]; + if (field.backendType.backendType == Tracepoint::Field::FlagType) + ret += ", trace_convert_"_L1 + typeToName(arg.type) + "("_L1 + arg.name + ")"_L1; + else + ret += ", "_L1 + arg.name; + } + return ret; + } + + auto findEnumeration = [](const QList<TraceEnum> &enums, const QString &name) { + for (const auto &e : enums) { + if (e.name == name) + return e; + } + return TraceEnum(); + }; + if (type == LTTNG) { + QString ret; + for (const Tracepoint::Argument &arg : args) ret += ", "_L1 + arg.name; |