diff options
Diffstat (limited to 'trappy/common_clk.py')
-rw-r--r-- | trappy/common_clk.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/trappy/common_clk.py b/trappy/common_clk.py new file mode 100644 index 0000000..7bccb9c --- /dev/null +++ b/trappy/common_clk.py @@ -0,0 +1,58 @@ +# Copyright 2017 Google, ARM Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +""" +Definitions of common_clk (CONFIG_COMMON_CLK) trace parsers +registered by the FTrace class +""" + +from trappy.base import Base +from trappy.dynamic import register_ftrace_parser, register_dynamic_ftrace + +class CommonClkBase(Base): + #clock traces are of the form "clk_name field0=x field1=y ..." + def generate_data_dict(self, data_str): + clk_name, fields = data_str.split(' ', 1) + ret = super(CommonClkBase, self).generate_data_dict(fields) + ret['clk_name'] = clk_name + return ret + +class CommonClkEnable(CommonClkBase): + """Corresponds to Linux kernel trace event clock_enable""" + + unique_word = "clock_enable:" + """The unique word that will be matched in a trace line""" + +register_ftrace_parser(CommonClkEnable) + +class CommonClkDisable(CommonClkBase): + """Corresponds to Linux kernel trace event clock_disable""" + + unique_word = "clock_disable:" + """The unique word that will be matched in a trace line""" + +register_ftrace_parser(CommonClkDisable) + +class CommonClkSetRate(CommonClkBase): + """Corresponds to Linux kernel trace event clock_set_rate""" + + unique_word = "clock_set_rate:" + """The unique word that will be matched in a trace line""" + + def finalize_object(self): + self.data_frame.rename(columns={'state':'rate'}, inplace=True) + +register_ftrace_parser(CommonClkSetRate) |