Message ID | 1466631354-17309-2-git-send-email-clord@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 06/22 17:35, Colin Lord wrote: > This commit moves the initialization of the QemuOptsList qemu_iscsi_opts > struct out of block/iscsi.c in order to allow it to be dynamically > loaded. Drivers that perform init operations other than registering > themselves can't be modularized, so this moves the initialization of > this struct into the main binary. > > Signed-off-by: Colin Lord <clord@redhat.com> > --- > block/iscsi.c | 36 ------------------------------------ > vl.c | 36 ++++++++++++++++++++++++++++++++++++ > 2 files changed, 36 insertions(+), 36 deletions(-) > > diff --git a/block/iscsi.c b/block/iscsi.c > index 7e78ade..6193499 100644 > --- a/block/iscsi.c > +++ b/block/iscsi.c > @@ -1879,45 +1879,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); > diff --git a/vl.c b/vl.c > index 45eff56..4f04daa 100644 > --- a/vl.c > +++ b/vl.c > @@ -526,6 +526,41 @@ static QemuOptsList qemu_fw_cfg_opts = { > }, > }; > > +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 */ } > + }, > +}; > + > /** > * Get machine options > * > @@ -3006,6 +3041,7 @@ 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); > + qemu_add_opts(&qemu_iscsi_opts); Should the new code still be conditional on CONFIG_LIBISCSI? Because previously it was. Fam > module_call_init(MODULE_INIT_OPTS); > > runstate_init(); > -- > 2.5.5 > >
On 06/22/2016 09:22 PM, Fam Zheng wrote: > On Wed, 06/22 17:35, Colin Lord wrote: >> This commit moves the initialization of the QemuOptsList qemu_iscsi_opts >> struct out of block/iscsi.c in order to allow it to be dynamically >> loaded. Drivers that perform init operations other than registering >> themselves can't be modularized, so this moves the initialization of >> this struct into the main binary. >> >> Signed-off-by: Colin Lord <clord@redhat.com> >> --- >> block/iscsi.c | 36 ------------------------------------ >> vl.c | 36 ++++++++++++++++++++++++++++++++++++ >> 2 files changed, 36 insertions(+), 36 deletions(-) >> >> diff --git a/block/iscsi.c b/block/iscsi.c >> index 7e78ade..6193499 100644 >> --- a/block/iscsi.c >> +++ b/block/iscsi.c >> @@ -1879,45 +1879,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); >> diff --git a/vl.c b/vl.c >> index 45eff56..4f04daa 100644 >> --- a/vl.c >> +++ b/vl.c >> @@ -526,6 +526,41 @@ static QemuOptsList qemu_fw_cfg_opts = { >> }, >> }; >> >> +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 */ } >> + }, >> +}; >> + >> /** >> * Get machine options >> * >> @@ -3006,6 +3041,7 @@ 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); >> + qemu_add_opts(&qemu_iscsi_opts); > > Should the new code still be conditional on CONFIG_LIBISCSI? Because > previously it was. Yeah, I think that should still be the case. Thanks for catching that. > > Fam > >> module_call_init(MODULE_INIT_OPTS); >> >> runstate_init(); >> -- >> 2.5.5 >> >>
diff --git a/block/iscsi.c b/block/iscsi.c index 7e78ade..6193499 100644 --- a/block/iscsi.c +++ b/block/iscsi.c @@ -1879,45 +1879,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); diff --git a/vl.c b/vl.c index 45eff56..4f04daa 100644 --- a/vl.c +++ b/vl.c @@ -526,6 +526,41 @@ static QemuOptsList qemu_fw_cfg_opts = { }, }; +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 */ } + }, +}; + /** * Get machine options * @@ -3006,6 +3041,7 @@ 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); + qemu_add_opts(&qemu_iscsi_opts); module_call_init(MODULE_INIT_OPTS); runstate_init();
This commit moves the initialization of the QemuOptsList qemu_iscsi_opts struct out of block/iscsi.c in order to allow it to be dynamically loaded. Drivers that perform init operations other than registering themselves can't be modularized, so this moves the initialization of this struct into the main binary. Signed-off-by: Colin Lord <clord@redhat.com> --- block/iscsi.c | 36 ------------------------------------ vl.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 36 deletions(-)