# # Copyright (c) 2012 Qualcomm Atheros, Inc. # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # trace-cmd plugin for ath10k, QCA Linux wireless driver import tracecmd import struct import binascii def hexdump(buf, prefix=None): s = binascii.b2a_hex(buf) s_len = len(s) result = "" if prefix == None: prefix = "" for i in range(s_len / 2): if i % 16 == 0: result = result + ("%s%04x: " % (prefix, i)) result = result + (s[2*i] + s[2*i+1] + " ") if (i + 1) % 16 == 0: result = result + "\n" # FIXME: if len(s) % 16 == 0 there's an extra \n in the end return result wmi_scan_event_names = [ [0x1, "WMI_SCAN_EVENT_STARTED" ], [0x2, "WMI_SCAN_EVENT_COMPLETED" ], [0x4, "WMI_SCAN_EVENT_BSS_CHANNEL" ], [0x8, "WMI_SCAN_EVENT_FOREIGN_CHANNEL"], [0x10, "WMI_SCAN_EVENT_DEQUEUED" ], [0x20, "WMI_SCAN_EVENT_PREEMPTED" ], [0x40, "WMI_SCAN_EVENT_START_FAILED" ], ] def wmi_event_scan(pevent, trace_seq, event, buf): hdr = struct.unpack("