 4c046ce37a
			
		
	
	
		4c046ce37a
		
	
	
	
	
		
			
			Implement a ResetContainer. This is a subclass of Object, and it implements the Resettable interface. The container holds a list of arbitrary other objects which implement Resettable, and when the container is reset, all the objects it contains are also reset. This will allow us to have a 3-phase-reset equivalent of the old qemu_register_reset() API: we will have a single "simulation reset" top level ResetContainer, and objects in it are the equivalent of the old QEMUResetHandler functions. The qemu_register_reset() API manages its list of callbacks using a QTAILQ, but here we use a GPtrArray for our list of Resettable children: we expect the "remove" operation (which will need to do an iteration through the list) to be fairly uncommon, and we get simpler code with fewer memory allocations. Since there is currently no listed owner in MAINTAINERS for the existing reset-related source files, create a new section for them, and add these new files there also. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-id: 20240220160622.114437-7-peter.maydell@linaro.org Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| # core qdev-related obj files, also used by *-user and unit tests
 | |
| hwcore_ss.add(files(
 | |
|   'bus.c',
 | |
|   'qdev-properties.c',
 | |
|   'qdev.c',
 | |
|   'reset.c',
 | |
|   'resetcontainer.c',
 | |
|   'resettable.c',
 | |
|   'vmstate-if.c',
 | |
|   # irq.c needed for qdev GPIO handling:
 | |
|   'irq.c',
 | |
|   'clock.c',
 | |
|   'qdev-clock.c',
 | |
| ))
 | |
| if have_system
 | |
|   hwcore_ss.add(files(
 | |
|     'hotplug.c',
 | |
|     'qdev-hotplug.c',
 | |
|   ))
 | |
| else
 | |
|   hwcore_ss.add(files(
 | |
|     'hotplug-stubs.c',
 | |
|   ))
 | |
| endif
 | |
| 
 | |
| common_ss.add(files('cpu-common.c'))
 | |
| common_ss.add(files('machine-smp.c'))
 | |
| system_ss.add(when: 'CONFIG_FITLOADER', if_true: files('loader-fit.c'))
 | |
| system_ss.add(when: 'CONFIG_GENERIC_LOADER', if_true: files('generic-loader.c'))
 | |
| system_ss.add(when: ['CONFIG_GUEST_LOADER', fdt], if_true: files('guest-loader.c'))
 | |
| system_ss.add(when: 'CONFIG_OR_IRQ', if_true: files('or-irq.c'))
 | |
| system_ss.add(when: 'CONFIG_PLATFORM_BUS', if_true: files('platform-bus.c'))
 | |
| system_ss.add(when: 'CONFIG_PTIMER', if_true: files('ptimer.c'))
 | |
| system_ss.add(when: 'CONFIG_REGISTER', if_true: files('register.c'))
 | |
| system_ss.add(when: 'CONFIG_SPLIT_IRQ', if_true: files('split-irq.c'))
 | |
| system_ss.add(when: 'CONFIG_XILINX_AXI', if_true: files('stream.c'))
 | |
| system_ss.add(when: 'CONFIG_PLATFORM_BUS', if_true: files('sysbus-fdt.c'))
 | |
| 
 | |
| system_ss.add(files(
 | |
|   'cpu-sysemu.c',
 | |
|   'fw-path-provider.c',
 | |
|   'gpio.c',
 | |
|   'loader.c',
 | |
|   'machine-hmp-cmds.c',
 | |
|   'machine-qmp-cmds.c',
 | |
|   'machine.c',
 | |
|   'nmi.c',
 | |
|   'null-machine.c',
 | |
|   'numa.c',
 | |
|   'qdev-fw.c',
 | |
|   'qdev-properties-system.c',
 | |
|   'sysbus.c',
 | |
|   'vm-change-state-handler.c',
 | |
|   'clock-vmstate.c',
 | |
| ))
 |