# 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)