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

hotplug.c (1960B)


      1/*
      2 * Hotplug handler interface.
      3 *
      4 * Copyright (c) 2014 Red Hat Inc.
      5 *
      6 * Authors:
      7 *  Igor Mammedov <imammedo@redhat.com>,
      8 *
      9 * This work is licensed under the terms of the GNU GPL, version 2 or later.
     10 * See the COPYING file in the top-level directory.
     11 */
     12#include "qemu/osdep.h"
     13#include "hw/hotplug.h"
     14#include "qemu/module.h"
     15
     16void hotplug_handler_pre_plug(HotplugHandler *plug_handler,
     17                              DeviceState *plugged_dev,
     18                              Error **errp)
     19{
     20    HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
     21
     22    if (hdc->pre_plug) {
     23        hdc->pre_plug(plug_handler, plugged_dev, errp);
     24    }
     25}
     26
     27void hotplug_handler_plug(HotplugHandler *plug_handler,
     28                          DeviceState *plugged_dev,
     29                          Error **errp)
     30{
     31    HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
     32
     33    if (hdc->plug) {
     34        hdc->plug(plug_handler, plugged_dev, errp);
     35    }
     36}
     37
     38void hotplug_handler_unplug_request(HotplugHandler *plug_handler,
     39                                    DeviceState *plugged_dev,
     40                                    Error **errp)
     41{
     42    HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
     43
     44    if (hdc->unplug_request) {
     45        hdc->unplug_request(plug_handler, plugged_dev, errp);
     46    }
     47}
     48
     49void hotplug_handler_unplug(HotplugHandler *plug_handler,
     50                            DeviceState *plugged_dev,
     51                            Error **errp)
     52{
     53    HotplugHandlerClass *hdc = HOTPLUG_HANDLER_GET_CLASS(plug_handler);
     54
     55    if (hdc->unplug) {
     56        hdc->unplug(plug_handler, plugged_dev, errp);
     57    }
     58}
     59
     60static const TypeInfo hotplug_handler_info = {
     61    .name          = TYPE_HOTPLUG_HANDLER,
     62    .parent        = TYPE_INTERFACE,
     63    .class_size = sizeof(HotplugHandlerClass),
     64};
     65
     66static void hotplug_handler_register_types(void)
     67{
     68    type_register_static(&hotplug_handler_info);
     69}
     70
     71type_init(hotplug_handler_register_types)