base-hw: make Trace_source in Platform() a class

Apparently, there is no need for exposing the data members of Trace_source, so,
we sould better make them private before someone gets the impression that they
are meant to be accessed directly.

Ref #4217
This commit is contained in:
Martin Stein 2021-07-09 16:38:18 +02:00 committed by Norman Feske
parent aa6a7db50a
commit 277adcacb0

View File

@ -216,32 +216,39 @@ Platform::Platform()
init_core_log(Core_log_range { core_local_addr, log_size } );
}
struct Trace_source : public Trace::Source::Info_accessor,
private Trace::Control,
private Trace::Source
class Trace_source : public Trace::Source::Info_accessor,
private Trace::Control,
private Trace::Source
{
Kernel::Thread &thread;
Affinity::Location const affinity;
private:
/**
* Trace::Source::Info_accessor interface
*/
Info trace_source_info() const override
{
Trace::Execution_time execution_time { thread.execution_time(), 0 };
return { Session_label("kernel"), thread.label(), execution_time,
affinity };
}
Kernel::Thread &_thread;
Affinity::Location const _affinity;
Trace_source(Trace::Source_registry &registry,
Kernel::Thread &thread, Affinity::Location affinity)
:
Trace::Control(),
Trace::Source(*this, *this),
thread(thread), affinity(affinity)
{
registry.insert(this);
}
public:
/**
* Trace::Source::Info_accessor interface
*/
Info trace_source_info() const override
{
Trace::Execution_time execution_time {
_thread.execution_time(), 0 };
return { Session_label("kernel"), _thread.label(),
execution_time, _affinity };
}
Trace_source(Trace::Source_registry &registry,
Kernel::Thread &thread, Affinity::Location affinity)
:
Trace::Control { },
Trace::Source { *this, *this },
_thread { thread },
_affinity { affinity }
{
registry.insert(this);
}
};
/* create trace sources for idle threads */