| # -*- mode: python -*- |
| # vim: filetype=python |
| # |
| # Copyright (C) 2011-2016 Lluís Vilanova <vilanova@ac.upc.edu> |
| # |
| # This work is licensed under the terms of the GNU GPL, version 2 or later. |
| # See the COPYING file in the top-level directory. |
| |
| ## |
| # = Tracing |
| ## |
| |
| ## |
| # @TraceEventState: |
| # |
| # State of a tracing event. |
| # |
| # @unavailable: The event is statically disabled. |
| # |
| # @disabled: The event is dynamically disabled. |
| # |
| # @enabled: The event is dynamically enabled. |
| # |
| # Since: 2.2 |
| ## |
| { 'enum': 'TraceEventState', |
| 'data': ['unavailable', 'disabled', 'enabled'] } |
| |
| ## |
| # @TraceEventInfo: |
| # |
| # Information of a tracing event. |
| # |
| # @name: Event name. |
| # @state: Tracing state. |
| # @vcpu: Whether this is a per-vCPU event (since 2.7). |
| # |
| # An event is per-vCPU if it has the "vcpu" property in the "trace-events" |
| # files. |
| # |
| # Since: 2.2 |
| ## |
| { 'struct': 'TraceEventInfo', |
| 'data': {'name': 'str', 'state': 'TraceEventState', 'vcpu': 'bool'} } |
| |
| ## |
| # @trace-event-get-state: |
| # |
| # Query the state of events. |
| # |
| # @name: Event name pattern (case-sensitive glob). |
| # @vcpu: The vCPU to query (any by default; since 2.7). |
| # |
| # Returns: a list of @TraceEventInfo for the matching events |
| # |
| # An event is returned if: |
| # |
| # - its name matches the @name pattern, and |
| # - if @vcpu is given, the event has the "vcpu" property. |
| # |
| # Therefore, if @vcpu is given, the operation will only match per-vCPU events, |
| # returning their state on the specified vCPU. Special case: if @name is an |
| # exact match, @vcpu is given and the event does not have the "vcpu" property, |
| # an error is returned. |
| # |
| # Since: 2.2 |
| # |
| # Example: |
| # |
| # -> { "execute": "trace-event-get-state", |
| # "arguments": { "name": "qemu_memalign" } } |
| # <- { "return": [ { "name": "qemu_memalign", "state": "disabled", "vcpu": false } ] } |
| # |
| ## |
| { 'command': 'trace-event-get-state', |
| 'data': {'name': 'str', '*vcpu': 'int'}, |
| 'returns': ['TraceEventInfo'] } |
| |
| ## |
| # @trace-event-set-state: |
| # |
| # Set the dynamic tracing state of events. |
| # |
| # @name: Event name pattern (case-sensitive glob). |
| # @enable: Whether to enable tracing. |
| # @ignore-unavailable: Do not match unavailable events with @name. |
| # @vcpu: The vCPU to act upon (all by default; since 2.7). |
| # |
| # An event's state is modified if: |
| # - its name matches the @name pattern, and |
| # - if @vcpu is given, the event has the "vcpu" property. |
| # |
| # Therefore, if @vcpu is given, the operation will only match per-vCPU events, |
| # setting their state on the specified vCPU. Special case: if @name is an exact |
| # match, @vcpu is given and the event does not have the "vcpu" property, an |
| # error is returned. |
| # |
| # Since: 2.2 |
| # |
| # Example: |
| # |
| # -> { "execute": "trace-event-set-state", |
| # "arguments": { "name": "qemu_memalign", "enable": true } } |
| # <- { "return": {} } |
| # |
| ## |
| { 'command': 'trace-event-set-state', |
| 'data': {'name': 'str', 'enable': 'bool', '*ignore-unavailable': 'bool', |
| '*vcpu': 'int'} } |