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 --- |