simulate.py (9346:7a9b5e0335a6) simulate.py (9430:a113f27b68bd)
1# Copyright (c) 2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

223def switchCpus(cpuList):
224 print "switching cpus"
225 if not isinstance(cpuList, list):
226 raise RuntimeError, "Must pass a list to this function"
227 for item in cpuList:
228 if not isinstance(item, tuple) or len(item) != 2:
229 raise RuntimeError, "List must have tuples of (oldCPU,newCPU)"
230
1# Copyright (c) 2012 ARM Limited
2# All rights reserved.
3#
4# The license below extends only to copyright in the software and shall
5# not be construed as granting a license to any other intellectual
6# property including but not limited to intellectual property relating
7# to a hardware implementation of the functionality of the software
8# licensed hereunder. You may use the software subject to the license

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

223def switchCpus(cpuList):
224 print "switching cpus"
225 if not isinstance(cpuList, list):
226 raise RuntimeError, "Must pass a list to this function"
227 for item in cpuList:
228 if not isinstance(item, tuple) or len(item) != 2:
229 raise RuntimeError, "List must have tuples of (oldCPU,newCPU)"
230
231 old_cpu_set = set([old_cpu for old_cpu, new_cpu in cpuList])
231 for old_cpu, new_cpu in cpuList:
232 if not isinstance(old_cpu, objects.BaseCPU):
233 raise TypeError, "%s is not of type BaseCPU" % old_cpu
234 if not isinstance(new_cpu, objects.BaseCPU):
235 raise TypeError, "%s is not of type BaseCPU" % new_cpu
232 for old_cpu, new_cpu in cpuList:
233 if not isinstance(old_cpu, objects.BaseCPU):
234 raise TypeError, "%s is not of type BaseCPU" % old_cpu
235 if not isinstance(new_cpu, objects.BaseCPU):
236 raise TypeError, "%s is not of type BaseCPU" % new_cpu
237 if new_cpu in old_cpu_set:
238 raise RuntimeError, \
239 "New CPU (%s) is in the list of old CPUs." % (old_cpu,)
240 if not new_cpu.switchedOut():
241 raise RuntimeError, \
242 "New CPU (%s) is already active." % (new_cpu,)
243 if old_cpu.switchedOut():
244 raise RuntimeError, \
245 "Old CPU (%s) is inactive." % (new_cpu,)
236
237 # Now all of the CPUs are ready to be switched out
238 for old_cpu, new_cpu in cpuList:
239 old_cpu.switchOut()
240
241 for old_cpu, new_cpu in cpuList:
242 new_cpu.takeOverFrom(old_cpu)
243
244from internal.core import disableAllListeners
246
247 # Now all of the CPUs are ready to be switched out
248 for old_cpu, new_cpu in cpuList:
249 old_cpu.switchOut()
250
251 for old_cpu, new_cpu in cpuList:
252 new_cpu.takeOverFrom(old_cpu)
253
254from internal.core import disableAllListeners