From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58147) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aotmy-0007oS-1r for qemu-devel@nongnu.org; Sat, 09 Apr 2016 10:23:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aotmt-0005KB-VP for qemu-devel@nongnu.org; Sat, 09 Apr 2016 10:23:03 -0400 References: <1458814461-5387-1-git-send-email-caoj.fnst@cn.fujitsu.com> <87mvp4xsbk.fsf@dusky.pond.sub.org> From: Cao jin Message-ID: <570910D5.4030705@cn.fujitsu.com> Date: Sat, 9 Apr 2016 22:25:25 +0800 MIME-Version: 1.0 In-Reply-To: <87mvp4xsbk.fsf@dusky.pond.sub.org> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] qdev property: cleanup List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: qemu-devel@nongnu.org, qemu-trivial@nongnu.org, pbonzini@redhat.com, peter.maydell@linaro.org On 04/08/2016 07:17 PM, Markus Armbruster wrote: >> - * Static properties access data in a struct. The actual type of the >> - * property and the field depends on the property type. >> + * Static properties access data in a struct. The actual type of ObjectProperty >> + * and the struct field depends on the @qtype type. >> */ > > Not sure this part is an improvement. What's wrong with the current text? > In a word: little hard for newbies like me to understand. (I think comments are for newbies). see my feeling about the comment: As per my understanding, property has 2 kinds, former qdev property and the latest QOM property. For me, the original description is too ambiguous about 'property'. original: *The actual type of the property and the field depends on the property type* Using two same word 'property' is ambiguous and hard for newbie to distinguish. The 1st 'property' should mean a QOM property. and the 2nd 'property', I think the original author`s meaning is: qdev property. But, what is the qdev property *type*? cannot find 'type' field in the definition except a *qtype* struct Property { const char *name; PropertyInfo *info; ptrdiff_t offset; uint8_t bitnr; QType qtype; int64_t defval; int arrayoffset; PropertyInfo *arrayinfo; int arrayfieldsize; }; And *the actual type of the field* depends on the qtype, take bitmap field for example, bitmap field in a structure is always a *int*, but when convert to QOM property, it is treated as a *bool*, see DEFINE_PROP_BIT, DEFINE_PROP_BIT64, its qtype are QTYPE_QBOOL. But I am little confused also now, I think my modification isn`t perfect 1. see how qdev_property_add_static invoke object_property_add, it pass prop->info->name as its QOM property type 2. when structure field is enum, QOM property will treat it as string(not depends on qtype now), see code: else if (prop->info->enum_table) { object_property_set_str(obj, prop->info->enum_table[prop->defval], prop->name, &error_abort); I will do more analyse before v2. -- Yours Sincerely, Cao jin