在 2018/8/23 下午6:01, Andrea Bolognani 写道:
On Thu, 2018-08-23 at 17:15 +0800, Yi Min Zhao wrote:
> 在 2018/8/23 下午4:12, Andrea Bolognani 写道:
>> Exactly. You can either just add zpci_uid and zpci_fid to the
>> virPCIDeviceAddress struct, or have
>>
>> struct _virZPCIDeviceAddress {
>> unsigned int uid;
>> unsigned int fid;
>> };
>>
>> struct _virPCIDeviceAddress {
>> unsigned int domain;
>> unsigned int bus;
>> unsigned int slot;
>> unsigned int function;
>> int multi; /* virTristateSwitch */
>> virZPCIDeviceAddress zpci;
>> };
> There's an error in syntax-check. I think it's from common code.
>
> src/util/virpci.h:47: unsigned int uid;
> maint.mk: use pid_t for pid, uid_t for uid, gid_t for gid
>
> I think it mistakes zpci's uid.
Easy enough to fix: just apply the patch below, change the
struct definition to
struct _virZPCIDeviceAddress {
unsigned int uid; /* exempt from syntax-check */
unsigned int fid;
};
and it will go away :)
diff --git a/cfg.mk b/cfg.mk
index 609ae869c2..1116feb299 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -472,6 +472,7 @@ sc_prohibit_canonicalize_file_name:
# Insist on correct types for [pug]id.
sc_correct_id_types:
@prohibit='\<(int|long) *[pug]id\>' \
+ exclude='exempt from syntax-check' \
halt='use pid_t for pid, uid_t for uid, gid_t for gid' \
$(_sc_search_regexp)
Thanks for your help! I will look into this. Never meet this before.