From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22362 invoked by alias); 18 May 2009 08:43:48 -0000 Received: (qmail 22345 invoked by uid 22791); 18 May 2009 08:43:46 -0000 X-SWARE-Spam-Status: No, hits=-0.7 required=5.0 tests=AWL,BAYES_20,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from ti-out-0910.google.com (HELO ti-out-0910.google.com) (209.85.142.190) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 18 May 2009 08:43:41 +0000 Received: by ti-out-0910.google.com with SMTP id a1so303531tib.12 for ; Mon, 18 May 2009 01:43:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.110.103.5 with SMTP id a5mr421270tic.31.1242636216711; Mon, 18 May 2009 01:43:36 -0700 (PDT) In-Reply-To: <20090510235109.GD25909@ednor.casa.cgf.cx> References: <20090510174809.GA25909@ednor.casa.cgf.cx> <20090510235109.GD25909@ednor.casa.cgf.cx> Date: Mon, 18 May 2009 08:43:00 -0000 Message-ID: Subject: Re: [Prec/RFA] fix build error of prec in cygwin From: Hui Zhu To: cgf-use-the-mailinglist-please@sourceware.org Cc: gdb-patches ml Content-Type: multipart/mixed; boundary=0016e652d2244842f9046a2bcab5 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-05/txt/msg00354.txt.bz2 --0016e652d2244842f9046a2bcab5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 4701 On Mon, May 11, 2009 at 07:51, Christopher Faylor wrote: > On Mon, May 11, 2009 at 02:07:29AM +0800, Hui Zhu wrote: >>On Mon, May 11, 2009 at 01:48, Christopher Faylor >> wrote: >>> On Mon, May 11, 2009 at 01:31:18AM +0800, Hui Zhu wrote: >>>>--- a/i386-linux-tdep.c >>>>+++ b/i386-linux-tdep.c >>>>@@ -586,6 +586,14 @@ static int i386_linux_sc_reg_offset[] =3D >>>> #define I386_LINUX_RECORD_IOCTL_TIOCSHAYESESP ? ? ? ? 0x545F >>>> #define I386_LINUX_RECORD_IOCTL_FIOQSIZE ? ? ? ? ? ? ?0x5460 >>>> >>>>+/* The values of the second argument of system call "sys_fcntl" >>>>+ ? and "sys_fcntl64". ?The values of these macros were obtained from >>>>+ ? Linux Kernel source. ?*/ >>>>+#define I386_LINUX_RECORD_FCNTL_F_GETLK ? ? ? ? ? ? ? ? ? ? ? 5 >>>>+#define I386_LINUX_RECORD_FCNTL_F_GETLK64 ? ? ? ? ? ? 12 >>>>+#define I386_LINUX_RECORD_FCNTL_F_SETLK64 ? ? ? ? ? ? 13 >>>>+#define I386_LINUX_RECORD_FCNTL_F_SETLKW64 ? ? ? ? ? ?14 >>>>+ >>>> static void >>>> i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch) >>>> { >>>>@@ -781,6 +789,12 @@ i386_linux_init_abi (struct gdbarch_info >>>> ? ? I386_LINUX_RECORD_IOCTL_TIOCSHAYESESP; >>>> ? i386_linux_record_tdep.ioctl_FIOQSIZE =3D I386_LINUX_RECORD_IOCTL_FI= OQSIZE; >>>> >>>>+ ?i386_linux_record_tdep.fcntl_F_GETLK =3D I386_LINUX_RECORD_FCNTL_F_G= ETLK; >>>>+ ?i386_linux_record_tdep.fcntl_F_GETLK64 =3D I386_LINUX_RECORD_FCNTL_F= _GETLK64; >>>>+ ?i386_linux_record_tdep.fcntl_F_SETLK64 =3D I386_LINUX_RECORD_FCNTL_F= _SETLK64; >>>>+ ?i386_linux_record_tdep.fcntl_F_SETLKW64 =3D >>>>+ ? ?I386_LINUX_RECORD_FCNTL_F_SETLKW64; >>>>+ >>>> ? i386_linux_record_tdep.arg1 =3D I386_EBX_REGNUM; >>>> ? i386_linux_record_tdep.arg2 =3D I386_ECX_REGNUM; >>>> ? i386_linux_record_tdep.arg3 =3D I386_EDX_REGNUM; >>>>--- a/linux-record.c >>>>+++ b/linux-record.c >>>>@@ -394,7 +394,7 @@ record_linux_system_call (int num, struc >>>> ? ? ? { >>>> ? ? ? ? printf_unfiltered (_("Process record and replay target doesn't= " >>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"support ioctl request 0x%08x.\n"), >>>>- ? ? ? ? ? ? ? ? ? ? ? ? ? tmpu32); >>>>+ ? ? ? ? ? ? ? ? ? ? ? ? ? (int)tmpu32); >>> >>> How did a 0x%08x make it into the source after the "2009/04/17 15:44:28" >>> change which changed all %p's to host_address_to_string? ?Shouldn't >>> this just be a call to host_address_to_string? >>> >>I am not sure %p or host_address_to_string is right. =A0It is not a >>address. =A0Just a simple value. > > Perusing the gdb source code, I see a fair amount of precedent for using > host_address_to_string just to display 0x... const char * host_address_to_string (const void *addr) { char *str =3D get_cell (); xsnprintf (str, CELLSIZE, "0x%s", phex_nz ((uintptr_t) addr, sizeof (addr= ))); return str; } And code in linux-record.c is for arch target. So current address size is not same with 32 bits sometime. So I use phex_nz directly. > >>>> ? ? ? ? return 1; >>>> ? ? ? } >>>> ? ? ? break; >>>>@@ -404,7 +404,7 @@ record_linux_system_call (int num, struc >>>> ? ? ? /* XXX */ >>>> ? ? ? regcache_raw_read (regcache, tdep->arg2, (gdb_byte *) & tmpu32); >>>> ? ? sys_fcntl: >>>>- ? ? ?if (tmpu32 =3D=3D F_GETLK) >>>>+ ? ? ?if (tmpu32 =3D=3D tdep->fcntl_F_GETLK) >>>> ? ? ? { >>>> ? ? ? ? regcache_raw_read (regcache, tdep->arg3, >>>> ? ? ? ? ? ? ? ? ? ? ? ? ? ?(gdb_byte *) & tmpu32); >>>>@@ -626,7 +626,7 @@ record_linux_system_call (int num, struc >>>> ? ? ? ? ? ? ? ? ? "It will free the memory addr =3D 0x%s len =3D %d. ?" >>>> ? ? ? ? ? ? ? ? ? "It will make record target get error. ?" >>>> ? ? ? ? ? ? ? ? ? "Do you want to stop the program?"), >>>>- ? ? ? ? ? ? ? ?paddr_nz (tmpu32), len); >>>>+ ? ? ? ? ? ? ? ?paddr_nz (tmpu32), (int)len); >>> >>> If len is a uint32_t isn't casting it to an int the wrong thing to do? >>> Looking at the code, len is first defined as uint32_t, then a pointer to >>> it is cast as (gdb_byte *) (and it doesn't look like the space following >>> the '&' doesn't follow GNU coding standards). ?So it is never actually >>> used as a uint32_t. ?That doesn't seem right. >>> >> >>Use uint32_t because it's a 32 bits register's value. > > So wouldn't that indicate that your format specifier is wrong and should > be "%u" rather than "%d"? =A0Coercion is something that should be avoided > unless it is absolutely necessary. > I changed it. > Also, grepping gdb source code, it seems like other places which use > this call use a real gdb_byte to catch it. =A0Either that or they call > regcache_raw_read_unsigned. It will changed to gdb_byte in linux-record.c 64 bits support that I am working on. Thanks, Hui --0016e652d2244842f9046a2bcab5 Content-Type: text/plain; charset=US-ASCII; name="fix-prec-cygwin-build-error.txt" Content-Disposition: attachment; filename="fix-prec-cygwin-build-error.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fuuxgo1o0 Content-length: 12282 LS0tCiBpMzg2LWxpbnV4LXRkZXAuYyB8ICAgMTQgKysrKysrKysrKysKIGxp bnV4LXJlY29yZC5jICAgIHwgICA2NCArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGxpbnV4LXJlY29y ZC5oICAgIHwgICAgNyArKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNl cnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCi0tLSBhL2kzODYtbGludXgt dGRlcC5jCisrKyBiL2kzODYtbGludXgtdGRlcC5jCkBAIC01ODYsNiArNTg2 LDE0IEBAIHN0YXRpYyBpbnQgaTM4Nl9saW51eF9zY19yZWdfb2Zmc2V0W10g PQogI2RlZmluZSBJMzg2X0xJTlVYX1JFQ09SRF9JT0NUTF9USU9DU0hBWUVT RVNQCQkweDU0NUYKICNkZWZpbmUgSTM4Nl9MSU5VWF9SRUNPUkRfSU9DVExf RklPUVNJWkUJCTB4NTQ2MAogCisvKiBUaGUgdmFsdWVzIG9mIHRoZSBzZWNv bmQgYXJndW1lbnQgb2Ygc3lzdGVtIGNhbGwgInN5c19mY250bCIKKyAgIGFu ZCAic3lzX2ZjbnRsNjQiLiAgVGhlIHZhbHVlcyBvZiB0aGVzZSBtYWNyb3Mg d2VyZSBvYnRhaW5lZCBmcm9tCisgICBMaW51eCBLZXJuZWwgc291cmNlLiAg Ki8KKyNkZWZpbmUgSTM4Nl9MSU5VWF9SRUNPUkRfRkNOVExfRl9HRVRMSwkJ CTUKKyNkZWZpbmUgSTM4Nl9MSU5VWF9SRUNPUkRfRkNOVExfRl9HRVRMSzY0 CQkxMgorI2RlZmluZSBJMzg2X0xJTlVYX1JFQ09SRF9GQ05UTF9GX1NFVExL NjQJCTEzCisjZGVmaW5lIEkzODZfTElOVVhfUkVDT1JEX0ZDTlRMX0ZfU0VU TEtXNjQJCTE0CisKIHN0YXRpYyB2b2lkCiBpMzg2X2xpbnV4X2luaXRfYWJp IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoKQogewpAQCAtNzgzLDYgKzc5MSwxMiBAQCBpMzg2X2xpbnV4X2lu aXRfYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvCiAgICAgSTM4Nl9MSU5VWF9S RUNPUkRfSU9DVExfVElPQ1NIQVlFU0VTUDsKICAgaTM4Nl9saW51eF9yZWNv cmRfdGRlcC5pb2N0bF9GSU9RU0laRSA9IEkzODZfTElOVVhfUkVDT1JEX0lP Q1RMX0ZJT1FTSVpFOwogCisgIGkzODZfbGludXhfcmVjb3JkX3RkZXAuZmNu dGxfRl9HRVRMSyA9IEkzODZfTElOVVhfUkVDT1JEX0ZDTlRMX0ZfR0VUTEs7 CisgIGkzODZfbGludXhfcmVjb3JkX3RkZXAuZmNudGxfRl9HRVRMSzY0ID0g STM4Nl9MSU5VWF9SRUNPUkRfRkNOVExfRl9HRVRMSzY0OworICBpMzg2X2xp bnV4X3JlY29yZF90ZGVwLmZjbnRsX0ZfU0VUTEs2NCA9IEkzODZfTElOVVhf UkVDT1JEX0ZDTlRMX0ZfU0VUTEs2NDsKKyAgaTM4Nl9saW51eF9yZWNvcmRf dGRlcC5mY250bF9GX1NFVExLVzY0ID0KKyAgICBJMzg2X0xJTlVYX1JFQ09S RF9GQ05UTF9GX1NFVExLVzY0OworCiAgIGkzODZfbGludXhfcmVjb3JkX3Rk ZXAuYXJnMSA9IEkzODZfRUJYX1JFR05VTTsKICAgaTM4Nl9saW51eF9yZWNv cmRfdGRlcC5hcmcyID0gSTM4Nl9FQ1hfUkVHTlVNOwogICBpMzg2X2xpbnV4 X3JlY29yZF90ZGVwLmFyZzMgPSBJMzg2X0VEWF9SRUdOVU07Ci0tLSBhL2xp bnV4LXJlY29yZC5jCisrKyBiL2xpbnV4LXJlY29yZC5jCkBAIC0zOTMsOCAr MzkzLDggQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBz dHJ1YwogICAgICAgZWxzZQogCXsKIAkgIHByaW50Zl91bmZpbHRlcmVkIChf KCJQcm9jZXNzIHJlY29yZCBhbmQgcmVwbGF5IHRhcmdldCBkb2Vzbid0ICIK LQkJCSAgICAgICAic3VwcG9ydCBpb2N0bCByZXF1ZXN0IDB4JTA4eC5cbiIp LAotCQkJICAgICB0bXB1MzIpOworCQkJICAgICAgICJzdXBwb3J0IGlvY3Rs IHJlcXVlc3QgMHglcy5cbiIpLAorCQkJICAgICBwaGV4X256ICh0bXB1MzIs IDQpKTsKIAkgIHJldHVybiAxOwogCX0KICAgICAgIGJyZWFrOwpAQCAtNDA0 LDcgKzQwNCw3IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51 bSwgc3RydWMKICAgICAgIC8qIFhYWCAqLwogICAgICAgcmVnY2FjaGVfcmF3 X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmcyLCAoZ2RiX2J5dGUgKikgJiB0 bXB1MzIpOwogICAgIHN5c19mY250bDoKLSAgICAgIGlmICh0bXB1MzIgPT0g Rl9HRVRMSykKKyAgICAgIGlmICh0bXB1MzIgPT0gdGRlcC0+ZmNudGxfRl9H RVRMSykKIAl7CiAJICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRk ZXAtPmFyZzMsCiAJCQkgICAgIChnZGJfYnl0ZSAqKSAmIHRtcHUzMik7CkBA IC01NDYsNyArNTQ2LDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChp bnQgbnVtLCBzdHJ1YwogCQlpZiAocmVjb3JkX2RlYnVnKQogCQkgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCQkgICAgICAiUHJvY2Vz cyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgbWVtb3J5ICIKLQkJCQkgICAgICAi YXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4iLAorCQkJCSAgICAgICJhdCBh ZGRyID0gMHglcyBsZW4gPSAldS5cbiIsCiAJCQkJICAgICAgcGFkZHJfbnog KHRtcHUzMiksCiAJCQkJICAgICAgKGludCkgc2l6ZW9mIChzZWwpKTsKIAkJ cmV0dXJuIC0xOwpAQCAtNjIzLDEwICs2MjMsMTAgQEAgcmVjb3JkX2xpbnV4 X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCXRhcmdldF90ZXJtaW5h bF9vdXJzICgpOwogCXEgPQogCSAgeXF1ZXJ5IChfKCJUaGUgbmV4dCBpbnN0 cnVjdGlvbiBpcyBzeXNjYWxsIG11bm1hcC4gICIKLQkJICAgICJJdCB3aWxs IGZyZWUgdGhlIG1lbW9yeSBhZGRyID0gMHglcyBsZW4gPSAlZC4gICIKKwkJ ICAgICJJdCB3aWxsIGZyZWUgdGhlIG1lbW9yeSBhZGRyID0gMHglcyBsZW4g PSAldS4gICIKIAkJICAgICJJdCB3aWxsIG1ha2UgcmVjb3JkIHRhcmdldCBn ZXQgZXJyb3IuICAiCiAJCSAgICAiRG8geW91IHdhbnQgdG8gc3RvcCB0aGUg cHJvZ3JhbT8iKSwKLQkJICBwYWRkcl9ueiAodG1wdTMyKSwgbGVuKTsKKwkJ ICBwYWRkcl9ueiAodG1wdTMyKSwgKGludClsZW4pOwogCXRhcmdldF90ZXJt aW5hbF9pbmZlcmlvciAoKTsKIAlpZiAocSkKIAkgIHJldHVybiAxOwpAQCAt Njg2LDcgKzY4Niw3IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50 IG51bSwgc3RydWMKIAkJICAgIGlmIChyZWNvcmRfZGVidWcpCiAJCSAgICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKIAkJCQkJICAiUHJv Y2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgIgotCQkJCQkgICJtZW1vcnkg YXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4iLAorCQkJCQkgICJtZW1vcnkg YXQgYWRkciA9IDB4JXMgbGVuID0gJXUuXG4iLAogCQkJCQkgIHBhZGRyX256 ICh0bXB1MzIpLAogCQkJCQkgIChpbnQpIHNpemVvZiAoYSkpOwogCQkgICAg cmV0dXJuIC0xOwpAQCAtNzExLDcgKzcxMSw3IEBAIHJlY29yZF9saW51eF9z eXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkJICAgIGlmIChyZWNvcmRf ZGVidWcpCiAJCSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywKIAkJCQkJICAiUHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgIgot CQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4iLAor CQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJXUuXG4iLAog CQkJCQkgIHBhZGRyX256ICh0bXB1MzIpLAogCQkJCSAgICAgICAgICAoaW50 KSBzaXplb2YgKGEpKTsKIAkJICAgIHJldHVybiAtMTsKQEAgLTczNiw3ICs3 MzYsNyBAQCByZWNvcmRfbGludXhfc3lzdGVtX2NhbGwgKGludCBudW0sIHN0 cnVjCiAJCSAgICBpZiAocmVjb3JkX2RlYnVnKQogCQkgICAgICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkJCSAgIlByb2Nlc3MgcmVj b3JkOiBlcnJvciByZWFkaW5nICIKLQkJCQkJICAibWVtb3J5IGF0IGFkZHIg PSAweCVzIGxlbiA9ICVkLlxuIiwKKwkJCQkJICAibWVtb3J5IGF0IGFkZHIg PSAweCVzIGxlbiA9ICV1LlxuIiwKIAkJCQkJICBwYWRkcl9ueiAodG1wdTMy KSwKIAkJCQkJICAoaW50KSBzaXplb2YgKGEpKTsKIAkJICAgIHJldHVybiAt MTsKQEAgLTc1MCw3ICs3NTAsNyBAQCByZWNvcmRfbGludXhfc3lzdGVtX2Nh bGwgKGludCBudW0sIHN0cnVjCiAJCQkgIGZwcmludGZfdW5maWx0ZXJlZCAo Z2RiX3N0ZGxvZywKIAkJCQkJICAgICAgIlByb2Nlc3MgcmVjb3JkOiBlcnJv ciByZWFkaW5nICIKIAkJCQkJICAgICAgIm1lbW9yeSBhdCBhZGRyID0gMHgl cyAiCi0JCQkJCSAgICAgICJsZW4gPSAlZC5cbiIsCisJCQkJCSAgICAgICJs ZW4gPSAldS5cbiIsCiAJCQkJCSAgICAgIHBhZGRyX256IChhWzJdKSwKIAkJ CQkJICAgICAgKGludCkgc2l6ZW9mIChhWzJdKSk7CiAJCQlyZXR1cm4gLTE7 CkBAIC03NzMsNyArNzczLDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxs IChpbnQgbnVtLCBzdHJ1YwogCQkgICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJ ICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkg ICJQcm9jZXNzIHJlY29yZDogZXJyb3IgcmVhZGluZyAiCi0JCQkJCSAgIm1l bW9yeSBhdCBhZGRyID0gMHglcyBsZW4gPSAlZC5cbiIsCisJCQkJCSAgIm1l bW9yeSBhdCBhZGRyID0gMHglcyBsZW4gPSAldS5cbiIsCiAJCQkJCSAgcGFk ZHJfbnogKHRtcHUzMiksCiAJCQkJCSAgKGludCkgc2l6ZW9mIChhKSk7CiAJ CSAgICByZXR1cm4gLTE7CkBAIC03ODcsNyArNzg3LDcgQEAgcmVjb3JkX2xp bnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCQkJICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAJCQkJCSAgICAgICJQcm9jZXNz IHJlY29yZDogZXJyb3IgcmVhZGluZyAiCiAJCQkJCSAgICAgICJtZW1vcnkg YXQgYWRkciA9IDB4JXMgIgotCQkJCQkgICAgICAibGVuID0gJWQuXG4iLAor CQkJCQkgICAgICAibGVuID0gJXUuXG4iLAogCQkJCQkgICAgICBwYWRkcl9u eiAoYVsyXSksCiAJCQkJCSAgICAgIChpbnQpIHNpemVvZiAoYVsyXSkpOwog CQkJcmV0dXJuIC0xOwpAQCAtODE5LDcgKzgxOSw3IEBAIHJlY29yZF9saW51 eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkJICAgIGlmIChyZWNv cmRfZGVidWcpCiAJCSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0 ZGxvZywKIAkJCQkJICAiUHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcg IgotCQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4i LAorCQkJCQkgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgbGVuID0gJXUuXG4i LAogCQkJCQkgIHBhZGRyX256ICh0bXB1MzIpLAogCQkJCQkgIChpbnQpIHNp emVvZiAoYSkpOwogCQkgICAgcmV0dXJuIC0xOwpAQCAtODMzLDcgKzgzMyw3 IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMK IAkJCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkg ICAgICAiUHJvY2VzcyByZWNvcmQ6IGVycm9yIHJlYWRpbmcgIgogCQkJCQkg ICAgICAibWVtb3J5IGF0IGFkZHIgPSAweCVzICIKLQkJCQkJICAgICAgImxl biA9ICVkLlxuIiwKKwkJCQkJICAgICAgImxlbiA9ICV1LlxuIiwKIAkJCQkJ ICAgICAgcGFkZHJfbnogKGFbNF0pLAogCQkJCQkgICAgICAoaW50KSBzaXpl b2YgKGF2KSk7CiAJCQlyZXR1cm4gLTE7CkBAIC04NzYsNyArODc2LDcgQEAg cmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVtLCBzdHJ1YwogCQkg ICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJICAgICAgZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICJQcm9jZXNzIHJlY29yZDogZXJy b3IgcmVhZGluZyAiCi0JCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0gMHglcyBs ZW4gPSAlZC5cbiIsCisJCQkJCSAgIm1lbW9yeSBhdCBhZGRyID0gMHglcyBs ZW4gPSAldS5cbiIsCiAJCQkJCSAgcGFkZHJfbnogKHRtcHUzMiksCiAJCQkJ CSAgKGludCkgc2l6ZW9mIChhKSk7CiAJCSAgICByZXR1cm4gLTE7CkBAIC04 OTIsNyArODkyLDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQg bnVtLCBzdHJ1YwogCQkJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRs b2csCiAJCQkJCSAgICAgICJQcm9jZXNzIHJlY29yZDogZXJyb3IgcmVhZGlu ZyAiCiAJCQkJCSAgICAgICJtZW1vcnkgYXQgYWRkciA9IDB4JXMgIgotCQkJ CQkgICAgICAibGVuID0gJWQuXG4iLAorCQkJCQkgICAgICAibGVuID0gJXUu XG4iLAogCQkJCQkgICAgICBwYWRkcl9ueiAoYVsxXSksCiAJCQkJCSAgICAg IChpbnQpIHNpemVvZiAocmVjKSk7CiAJCQlyZXR1cm4gLTE7CkBAIC05MTYs NyArOTE2LDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQgbnVt LCBzdHJ1YwogCQkJCQkJICAgICAgIlByb2Nlc3MgcmVjb3JkOiBlcnJvciAi CiAJCQkJCQkgICAgICAicmVhZGluZyBtZW1vcnkgYXQgIgogCQkJCQkJICAg ICAgImFkZHIgPSAweCVzICIKLQkJCQkJCSAgICAgICJsZW4gPSAlZC5cbiIs CisJCQkJCQkgICAgICAibGVuID0gJXUuXG4iLAogCQkJCQkJICAgICAgcGFk ZHJfbnogKHJlYy4KIAkJCQkJCQkJbXNnX2lvdiksCiAJCQkJCQkgICAgICAo aW50KSBzaXplb2YgKGlvdikpOwpAQCAtOTM0LDggKzkzNCw4IEBAIHJlY29y ZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkgIGJyZWFr OwogCWRlZmF1bHQ6CiAJICBwcmludGZfdW5maWx0ZXJlZCAoXygiUHJvY2Vz cyByZWNvcmQgYW5kIHJlcGxheSB0YXJnZXQgIgotCQkJICAgICAgICJkb2Vz bid0IHN1cHBvcnQgc29ja2V0Y2FsbCBjYWxsIDB4JTA4eFxuIiksCi0JCQkg ICAgIHRtcHUzMik7CisJCQkgICAgICAgImRvZXNuJ3Qgc3VwcG9ydCBzb2Nr ZXRjYWxsIGNhbGwgMHglc1xuIiksCisJCQkgICAgIHBoZXhfbnogKHRtcHUz MiwgNCkpOwogCSAgcmV0dXJuIC0xOwogCSAgYnJlYWs7CiAJfQpAQCAtMTIz Myw3ICsxMjMzLDcgQEAgcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChpbnQg bnVtLCBzdHJ1YwogCQkgICAgaWYgKHJlY29yZF9kZWJ1ZykKIAkJICAgICAg ZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogCQkJCQkgICJQcm9j ZXNzIHJlY29yZDogZXJyb3IgcmVhZGluZyAiCi0JCQkJCSAgIm1lbW9yeSBh dCBhZGRyID0gMHglcyBsZW4gPSAlZC5cbiIsCisJCQkJCSAgIm1lbW9yeSBh dCBhZGRyID0gMHglcyBsZW4gPSAldS5cbiIsCiAJCQkJCSAgcGFkZHJfbnog KHZlYyksCiAJCQkJCSAgKGludCkgc2l6ZW9mIChzdHJ1Y3QgcmVjb3JkX2lv dmVjKSk7CiAJCSAgICByZXR1cm4gLTE7CkBAIC0xNjMxLDIwICsxNjMxLDE3 IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMK ICAgICAgIC8qIHN5c19mY250bDY0ICovCiAgICAgY2FzZSAyMjE6CiAgICAg ICByZWdjYWNoZV9yYXdfcmVhZCAocmVnY2FjaGUsIHRkZXAtPmFyZzIsIChn ZGJfYnl0ZSAqKSAmIHRtcHUzMik7Ci0gICAgICBzd2l0Y2ggKHRtcHUzMikK LQl7Ci0JY2FzZSBGX0dFVExLNjQ6CisgICAgICBpZiAodG1wdTMyID09IHRk ZXAtPmZjbnRsX0ZfR0VUTEs2NCkKKyAgICAgICAgewogCSAgcmVnY2FjaGVf cmF3X3JlYWQgKHJlZ2NhY2hlLCB0ZGVwLT5hcmczLAogCQkJICAgICAoZ2Ri X2J5dGUgKikgJiB0bXB1MzIpOwogCSAgaWYgKHJlY29yZF9hcmNoX2xpc3Rf YWRkX21lbSAodG1wdTMyLCB0ZGVwLT5zaXplX2Zsb2NrNjQpKQogCSAgICBy ZXR1cm4gLTE7Ci0JICBicmVhazsKLQljYXNlIEZfU0VUTEs2NDoKLQljYXNl IEZfU0VUTEtXNjQ6Ci0JICBicmVhazsKLQlkZWZhdWx0OgorCX0KKyAgICAg IGVsc2UgaWYgKHRtcHUzMiAhPSB0ZGVwLT5mY250bF9GX1NFVExLNjQKKwkg ICAgICAgJiYgdG1wdTMyICE9IHRkZXAtPmZjbnRsX0ZfU0VUTEtXNjQpCisg ICAgICAgIHsKIAkgIGdvdG8gc3lzX2ZjbnRsOwotCSAgYnJlYWs7CiAJfQog ICAgICAgYnJlYWs7CiAKQEAgLTE3ODUsOCArMTc4Miw5IEBAIHJlY29yZF9s aW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwgc3RydWMKIAkgICAgICBpZiAo cmVjb3JkX2RlYnVnKQogCQlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRs b2csCiAJCQkJICAgICJQcm9jZXNzIHJlY29yZDogZXJyb3IgcmVhZGluZyBt ZW1vcnkgIgotCQkJCSAgICAiYXQgYWRkciA9IDB4JXMgbGVuID0gJWQuXG4i LAotCQkJCSAgICBwYWRkcl9ueiAodG1wdTMyKSwgbnIgKiB0ZGVwLT5zaXpl X2ludCk7CisJCQkJICAgICJhdCBhZGRyID0gMHglcyBsZW4gPSAldS5cbiIs CisJCQkJICAgIHBhZGRyX256ICh0bXB1MzIpLAorCQkJCSAgICAoaW50KShu ciAqIHRkZXAtPnNpemVfaW50KSk7CiAJICAgICAgcmV0dXJuIC0xOwogCSAg ICB9CiAJICBmb3IgKGkgPSAwOyBpIDwgbnI7IGkrKykKQEAgLTIxOTUsOCAr MjE5Myw4IEBAIHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoaW50IG51bSwg c3RydWMKIAogICAgIGRlZmF1bHQ6CiAgICAgICBwcmludGZfdW5maWx0ZXJl ZCAoXygiUHJvY2VzcyByZWNvcmQgYW5kIHJlcGxheSB0YXJnZXQgZG9lc24n dCAiCi0JCQkgICAic3VwcG9ydCBzeXNjYWxsIG51bWJlciAweCUwOHhcbiIp LAotCQkJIHRtcHUzMik7CisJCQkgICAic3VwcG9ydCBzeXNjYWxsIG51bWJl ciAldVxuIiksCisJCQkgKGludCl0bXB1MzIpOwogICAgICAgcmV0dXJuIC0x OwogICAgICAgYnJlYWs7CiAgICAgfQotLS0gYS9saW51eC1yZWNvcmQuaAor KysgYi9saW51eC1yZWNvcmQuaApAQCAtMTU4LDYgKzE1OCwxMyBAQCBzdHJ1 Y3QgbGludXhfcmVjb3JkX3RkZXAKICAgaW50IGlvY3RsX1RJT0NTSEFZRVNF U1A7CiAgIGludCBpb2N0bF9GSU9RU0laRTsKIAorICAvKiBUaGUgdmFsdWVz IG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc3lzdGVtIGNhbGwgInN5c19m Y250bCIKKyAgICAgYW5kICJzeXNfZmNudGw2NCIuICAqLworICBpbnQgZmNu dGxfRl9HRVRMSzsKKyAgaW50IGZjbnRsX0ZfR0VUTEs2NDsKKyAgaW50IGZj bnRsX0ZfU0VUTEs2NDsKKyAgaW50IGZjbnRsX0ZfU0VUTEtXNjQ7CisKICAg LyogVGhlIG51bWJlciBvZiB0aGUgcmVnaXN0ZXJzIHRoYXQgYXJlIHVzZWQg YXMgdGhlIGFyZ3VtZW50cyBvZgogICAgICBhIHN5c3RlbSBjYWxsLiAgKi8K ICAgaW50IGFyZzE7Cg== --0016e652d2244842f9046a2bcab5--