 3770141139
			
		
	
	
		3770141139
		
	
	
	
	
		
			
			Change the parser to put the values into a QDict and pass them to a callback. qemu_config_parse's QemuOpts creation is itself turned into a callback function. This is useful for -readconfig to support keyval-based options; getting a QDict from the parser removes a roundtrip from QDict to QemuOpts and then back to QDict. Unfortunately there is a disadvantage in that semantic errors will point to the last line of the group, because the entries of the QDict do not have a location attached. Cc: Kevin Wolf <kwolf@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20210524105752.3318299-2-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef QEMU_CONFIG_FILE_H
 | |
| #define QEMU_CONFIG_FILE_H
 | |
| 
 | |
| typedef void QEMUConfigCB(const char *group, QDict *qdict, void *opaque, Error **errp);
 | |
| 
 | |
| void qemu_load_module_for_opts(const char *group);
 | |
| QemuOptsList *qemu_find_opts(const char *group);
 | |
| QemuOptsList *qemu_find_opts_err(const char *group, Error **errp);
 | |
| QemuOpts *qemu_find_opts_singleton(const char *group);
 | |
| 
 | |
| void qemu_add_opts(QemuOptsList *list);
 | |
| void qemu_add_drive_opts(QemuOptsList *list);
 | |
| int qemu_global_option(const char *str);
 | |
| 
 | |
| void qemu_config_write(FILE *fp);
 | |
| int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname,
 | |
|                       Error **errp);
 | |
| 
 | |
| /* A default callback for qemu_read_config_file().  */
 | |
| void qemu_config_do_parse(const char *group, QDict *qdict, void *opaque, Error **errp);
 | |
| 
 | |
| int qemu_read_config_file(const char *filename, QEMUConfigCB *f, Error **errp);
 | |
| 
 | |
| /* Parse QDict options as a replacement for a config file (allowing multiple
 | |
|    enumerated (0..(n-1)) configuration "sections") */
 | |
| void qemu_config_parse_qdict(QDict *options, QemuOptsList **lists,
 | |
|                              Error **errp);
 | |
| 
 | |
| #endif /* QEMU_CONFIG_FILE_H */
 |