qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH 1/3] blockdev: prepare iSCSI block


From: Colin Lord
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH 1/3] blockdev: prepare iSCSI block driver for dynamic loading
Date: Thu, 23 Jun 2016 16:44:49 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1

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 <address@hidden>
>> ---
>>  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
>>
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]