spapr.c (e0eeb4a21a3ca4b296220ce4449d8acef9de9049) spapr.c (4f01a637795af77f1c191230b9f6e3a2547b0c28)
1/*
2 * QEMU PowerPC pSeries Logical Partition (aka sPAPR) hardware System Emulator
3 *
4 * Copyright (c) 2004-2007 Fabrice Bellard
5 * Copyright (c) 2007 Jocelyn Mayer
6 * Copyright (c) 2010 David Gibson, IBM Corporation.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 1096 unchanged lines hidden (view full) ---

1105 spapr->htab_shift = shift;
1106
1107 for (i = 0; i < size / HASH_PTE_SIZE_64; i++) {
1108 DIRTY_HPTE(HPTE(spapr->htab, i));
1109 }
1110 }
1111}
1112
1/*
2 * QEMU PowerPC pSeries Logical Partition (aka sPAPR) hardware System Emulator
3 *
4 * Copyright (c) 2004-2007 Fabrice Bellard
5 * Copyright (c) 2007 Jocelyn Mayer
6 * Copyright (c) 2010 David Gibson, IBM Corporation.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a copy

--- 1096 unchanged lines hidden (view full) ---

1105 spapr->htab_shift = shift;
1106
1107 for (i = 0; i < size / HASH_PTE_SIZE_64; i++) {
1108 DIRTY_HPTE(HPTE(spapr->htab, i));
1109 }
1110 }
1111}
1112
1113static int find_unknown_sysbus_device(SysBusDevice *sbdev, void *opaque)
1113static void find_unknown_sysbus_device(SysBusDevice *sbdev, void *opaque)
1114{
1115 bool matched = false;
1116
1117 if (object_dynamic_cast(OBJECT(sbdev), TYPE_SPAPR_PCI_HOST_BRIDGE)) {
1118 matched = true;
1119 }
1120
1121 if (!matched) {
1122 error_report("Device %s is not supported by this machine yet.",
1123 qdev_fw_name(DEVICE(sbdev)));
1124 exit(1);
1125 }
1114{
1115 bool matched = false;
1116
1117 if (object_dynamic_cast(OBJECT(sbdev), TYPE_SPAPR_PCI_HOST_BRIDGE)) {
1118 matched = true;
1119 }
1120
1121 if (!matched) {
1122 error_report("Device %s is not supported by this machine yet.",
1123 qdev_fw_name(DEVICE(sbdev)));
1124 exit(1);
1125 }
1126
1127 return 0;
1128}
1129
1130static void ppc_spapr_reset(void)
1131{
1132 MachineState *machine = MACHINE(qdev_get_machine());
1133 sPAPRMachineState *spapr = SPAPR_MACHINE(machine);
1134 PowerPCCPU *first_ppc_cpu;
1135 uint32_t rtas_limit;

--- 993 unchanged lines hidden (view full) ---

2129
2130static void spapr_machine_finalizefn(Object *obj)
2131{
2132 sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
2133
2134 g_free(spapr->kvm_type);
2135}
2136
1126}
1127
1128static void ppc_spapr_reset(void)
1129{
1130 MachineState *machine = MACHINE(qdev_get_machine());
1131 sPAPRMachineState *spapr = SPAPR_MACHINE(machine);
1132 PowerPCCPU *first_ppc_cpu;
1133 uint32_t rtas_limit;

--- 993 unchanged lines hidden (view full) ---

2127
2128static void spapr_machine_finalizefn(Object *obj)
2129{
2130 sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
2131
2132 g_free(spapr->kvm_type);
2133}
2134
2137static void ppc_cpu_do_nmi_on_cpu(CPUState *cs, void *arg)
2135static void ppc_cpu_do_nmi_on_cpu(void *arg)
2138{
2136{
2137 CPUState *cs = arg;
2138
2139 cpu_synchronize_state(cs);
2140 ppc_cpu_do_system_reset(cs);
2141}
2142
2143static void spapr_nmi(NMIState *n, int cpu_index, Error **errp)
2144{
2145 CPUState *cs;
2146
2147 CPU_FOREACH(cs) {
2139 cpu_synchronize_state(cs);
2140 ppc_cpu_do_system_reset(cs);
2141}
2142
2143static void spapr_nmi(NMIState *n, int cpu_index, Error **errp)
2144{
2145 CPUState *cs;
2146
2147 CPU_FOREACH(cs) {
2148 async_run_on_cpu(cs, ppc_cpu_do_nmi_on_cpu, NULL);
2148 async_run_on_cpu(cs, ppc_cpu_do_nmi_on_cpu, cs);
2149 }
2150}
2151
2152static void spapr_add_lmbs(DeviceState *dev, uint64_t addr, uint64_t size,
2153 uint32_t node, Error **errp)
2154{
2155 sPAPRDRConnector *drc;
2156 sPAPRDRConnectorClass *drck;

--- 445 unchanged lines hidden ---
2149 }
2150}
2151
2152static void spapr_add_lmbs(DeviceState *dev, uint64_t addr, uint64_t size,
2153 uint32_t node, Error **errp)
2154{
2155 sPAPRDRConnector *drc;
2156 sPAPRDRConnectorClass *drck;

--- 445 unchanged lines hidden ---