cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

trace-control.c (1285B)


      1/*
      2 * Interface for configuring and controlling the state of tracing events.
      3 *
      4 * Copyright (C) 2014-2016 LluĂ­s Vilanova <vilanova@ac.upc.edu>
      5 *
      6 * This work is licensed under the terms of the GNU GPL, version 2 or later.
      7 * See the COPYING file in the top-level directory.
      8 */
      9
     10#include "qemu/osdep.h"
     11#include "trace/control.h"
     12
     13
     14void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state)
     15{
     16    trace_event_set_state_dynamic(ev, state);
     17}
     18
     19void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
     20{
     21    bool state_pre;
     22    assert(trace_event_get_state_static(ev));
     23
     24    /*
     25     * We ignore the "vcpu" property here, since there's no target code. Then
     26     * dstate can only be 1 or 0.
     27     */
     28    state_pre = *(ev->dstate);
     29    if (state_pre != state) {
     30        if (state) {
     31            trace_events_enabled_count++;
     32            *(ev->dstate) = 1;
     33        } else {
     34            trace_events_enabled_count--;
     35            *(ev->dstate) = 0;
     36        }
     37    }
     38}
     39
     40void trace_event_set_vcpu_state_dynamic(CPUState *vcpu,
     41                                        TraceEvent *ev, bool state)
     42{
     43    /* should never be called on non-target binaries */
     44    abort();
     45}
     46
     47void trace_init_vcpu(CPUState *vcpu)
     48{
     49    /* should never be called on non-target binaries */
     50    abort();
     51}