1*120e512bSHervé Poussineau /*
2*120e512bSHervé Poussineau * QEMU Generic Interrupt Controller
3*120e512bSHervé Poussineau *
4*120e512bSHervé Poussineau * Copyright (c) 2016 Hervé Poussineau
5*120e512bSHervé Poussineau *
6*120e512bSHervé Poussineau * Permission is hereby granted, free of charge, to any person obtaining a copy
7*120e512bSHervé Poussineau * of this software and associated documentation files (the "Software"), to deal
8*120e512bSHervé Poussineau * in the Software without restriction, including without limitation the rights
9*120e512bSHervé Poussineau * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10*120e512bSHervé Poussineau * copies of the Software, and to permit persons to whom the Software is
11*120e512bSHervé Poussineau * furnished to do so, subject to the following conditions:
12*120e512bSHervé Poussineau *
13*120e512bSHervé Poussineau * The above copyright notice and this permission notice shall be included in
14*120e512bSHervé Poussineau * all copies or substantial portions of the Software.
15*120e512bSHervé Poussineau *
16*120e512bSHervé Poussineau * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*120e512bSHervé Poussineau * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*120e512bSHervé Poussineau * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19*120e512bSHervé Poussineau * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*120e512bSHervé Poussineau * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21*120e512bSHervé Poussineau * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22*120e512bSHervé Poussineau * THE SOFTWARE.
23*120e512bSHervé Poussineau */
24*120e512bSHervé Poussineau
25*120e512bSHervé Poussineau #include "qemu/osdep.h"
26*120e512bSHervé Poussineau #include "hw/intc/intc.h"
27*120e512bSHervé Poussineau #include "qemu/module.h"
28*120e512bSHervé Poussineau
29*120e512bSHervé Poussineau static const TypeInfo intctrl_info = {
30*120e512bSHervé Poussineau .name = TYPE_INTERRUPT_STATS_PROVIDER,
31*120e512bSHervé Poussineau .parent = TYPE_INTERFACE,
32*120e512bSHervé Poussineau .class_size = sizeof(InterruptStatsProviderClass),
33*120e512bSHervé Poussineau };
34*120e512bSHervé Poussineau
intc_register_types(void)35*120e512bSHervé Poussineau static void intc_register_types(void)
36*120e512bSHervé Poussineau {
37*120e512bSHervé Poussineau type_register_static(&intctrl_info);
38*120e512bSHervé Poussineau }
39*120e512bSHervé Poussineau
40*120e512bSHervé Poussineau type_init(intc_register_types)
41*120e512bSHervé Poussineau
42