blockdev: prepare iSCSI block driver for dynamic loading
This commit moves the initialization of the QemuOptsList qemu_iscsi_opts struct out of block/iscsi.c in order to allow the iscsi module to be dynamically loaded. Signed-off-by: Colin Lord <clord@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1471008424-16465-2-git-send-email-clord@redhat.com Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
		
							parent
							
								
									f7c1553388
								
							
						
					
					
						commit
						f57b4b5fb1
					
				| @ -2010,45 +2010,9 @@ static BlockDriver bdrv_iscsi = { | ||||
|     .bdrv_attach_aio_context = iscsi_attach_aio_context, | ||||
| }; | ||||
| 
 | ||||
| static QemuOptsList qemu_iscsi_opts = { | ||||
|     .name = "iscsi", | ||||
|     .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), | ||||
|     .desc = { | ||||
|         { | ||||
|             .name = "user", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "username for CHAP authentication to target", | ||||
|         },{ | ||||
|             .name = "password", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "password for CHAP authentication to target", | ||||
|         },{ | ||||
|             .name = "password-secret", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "ID of the secret providing password for CHAP " | ||||
|                     "authentication to target", | ||||
|         },{ | ||||
|             .name = "header-digest", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "HeaderDigest setting. " | ||||
|                     "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", | ||||
|         },{ | ||||
|             .name = "initiator-name", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "Initiator iqn name to use when connecting", | ||||
|         },{ | ||||
|             .name = "timeout", | ||||
|             .type = QEMU_OPT_NUMBER, | ||||
|             .help = "Request timeout in seconds (default 0 = no timeout)", | ||||
|         }, | ||||
|         { /* end of list */ } | ||||
|     }, | ||||
| }; | ||||
| 
 | ||||
| static void iscsi_block_init(void) | ||||
| { | ||||
|     bdrv_register(&bdrv_iscsi); | ||||
|     qemu_add_opts(&qemu_iscsi_opts); | ||||
| } | ||||
| 
 | ||||
| block_init(iscsi_block_init); | ||||
|  | ||||
							
								
								
									
										40
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								vl.c
									
									
									
									
									
								
							| @ -507,6 +507,43 @@ static QemuOptsList qemu_fw_cfg_opts = { | ||||
|     }, | ||||
| }; | ||||
| 
 | ||||
| #ifdef CONFIG_LIBISCSI | ||||
| static QemuOptsList qemu_iscsi_opts = { | ||||
|     .name = "iscsi", | ||||
|     .head = QTAILQ_HEAD_INITIALIZER(qemu_iscsi_opts.head), | ||||
|     .desc = { | ||||
|         { | ||||
|             .name = "user", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "username for CHAP authentication to target", | ||||
|         },{ | ||||
|             .name = "password", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "password for CHAP authentication to target", | ||||
|         },{ | ||||
|             .name = "password-secret", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "ID of the secret providing password for CHAP " | ||||
|                     "authentication to target", | ||||
|         },{ | ||||
|             .name = "header-digest", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "HeaderDigest setting. " | ||||
|                     "{CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}", | ||||
|         },{ | ||||
|             .name = "initiator-name", | ||||
|             .type = QEMU_OPT_STRING, | ||||
|             .help = "Initiator iqn name to use when connecting", | ||||
|         },{ | ||||
|             .name = "timeout", | ||||
|             .type = QEMU_OPT_NUMBER, | ||||
|             .help = "Request timeout in seconds (default 0 = no timeout)", | ||||
|         }, | ||||
|         { /* end of list */ } | ||||
|     }, | ||||
| }; | ||||
| #endif | ||||
| 
 | ||||
| /**
 | ||||
|  * Get machine options | ||||
|  * | ||||
| @ -3017,6 +3054,9 @@ int main(int argc, char **argv, char **envp) | ||||
|     qemu_add_opts(&qemu_icount_opts); | ||||
|     qemu_add_opts(&qemu_semihosting_config_opts); | ||||
|     qemu_add_opts(&qemu_fw_cfg_opts); | ||||
| #ifdef CONFIG_LIBISCSI | ||||
|     qemu_add_opts(&qemu_iscsi_opts); | ||||
| #endif | ||||
|     module_call_init(MODULE_INIT_OPTS); | ||||
| 
 | ||||
|     runstate_init(); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Colin Lord
						Colin Lord