From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HqwVo-0002R4-4Y for qemu-devel@nongnu.org; Wed, 23 May 2007 15:28:44 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HqwVl-0002Qs-CL for qemu-devel@nongnu.org; Wed, 23 May 2007 15:28:42 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HqwVl-0002Qp-7g for qemu-devel@nongnu.org; Wed, 23 May 2007 15:28:41 -0400 Received: from ug-out-1314.google.com ([66.249.92.169]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HqwVj-0001Nt-Pm for qemu-devel@nongnu.org; Wed, 23 May 2007 15:28:41 -0400 Received: by ug-out-1314.google.com with SMTP id a2so527512ugf for ; Wed, 23 May 2007 12:28:12 -0700 (PDT) Message-ID: Date: Wed, 23 May 2007 22:28:11 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] Timers In-Reply-To: <200705231818.59906.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_56749_22107700.1179948491805" References: <200705230107.00962.paul@codesourcery.com> <200705231818.59906.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org ------=_Part_56749_22107700.1179948491805 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 5/23/07, Paul Brook wrote: > On Wednesday 23 May 2007, Blue Swirl wrote: > > On 5/23/07, Paul Brook wrote: > > > I get fed up of having to re-implement a simple countdown timer for every > > > new board, so I've added a simple periodic timer implementation to cvs > > > (ptimer.c). Currently only the Arm PrimeCell based boards use this, but > > > I've a few other uses in the pipeline. > > > > Nice idea! On Sparc the timer can be configured to work in 64-bit > > mode, so could the ptimer_get/set_count be changed to use 64-bit > > values? > > In principle yes, though you may have to be careful to avoid overflows. > > The current API supports specifying either frequency (better for fast, large > count timers) and period (better for slow, small count timers). We want to > avoid breaking either extreme when adding 64-bit counters. I made the API change and converted Sparc timers. Looks like it works (guest clock runs normally), though there are the following messages on startup: FIXME: ptimer_set_limit with running timer Comments? Did I break something? ------=_Part_56749_22107700.1179948491805 Content-Type: text/x-diff; name=generic_timers.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_f226qi0m Content-Disposition: attachment; filename="generic_timers.diff" SW5kZXg6IHFlbXUvaHcvc2xhdmlvX3RpbWVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3 L3NsYXZpb190aW1lci5jCTIwMDctMDUtMjMgMTg6NDQ6MjAuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3NsYXZpb190aW1lci5jCTIwMDctMDUtMjMgMTg6NDY6MTguMDAwMDAwMDAwICswMDAw CkBAIC00OCw2MSArNDgsMjYgQEAKICAqLwogCiB0eXBlZGVmIHN0cnVjdCBTTEFWSU9fVElNRVJT dGF0ZSB7Ci0gICAgdWludDMyX3QgbGltaXQsIGNvdW50LCBjb3VudGhpZ2g7Ci0gICAgaW50NjRf dCBjb3VudF9sb2FkX3RpbWU7Ci0gICAgaW50NjRfdCBleHBpcmVfdGltZTsKLSAgICBpbnQ2NF90 IHN0b3BfdGltZSwgdGlja19vZmZzZXQ7CisgICAgcHRpbWVyX3N0YXRlICp0aW1lcjsKKyAgICB1 aW50MzJfdCBsaW1pdCwgY291bnQsIGNvdW50aGlnaCwgcmVhY2hlZDsKICAgICBRRU1VVGltZXIg KmlycV90aW1lcjsKICAgICBpbnQgaXJxOwotICAgIGludCByZWFjaGVkLCBzdG9wcGVkOworICAg IGludCBzdG9wcGVkOwogICAgIGludCBtb2RlOyAvLyAwID0gcHJvY2Vzc29yLCAxID0gdXNlciwg MiA9IHN5c3RlbQogICAgIHVuc2lnbmVkIGludCBjcHU7CiAgICAgdm9pZCAqaW50Y3RsOwogfSBT TEFWSU9fVElNRVJTdGF0ZTsKIAogI2RlZmluZSBUSU1FUl9NQVhBRERSIDB4MWYKLSNkZWZpbmUg Q05UX0ZSRVEgMjAwMDAwMAogCiAvLyBVcGRhdGUgY291bnQsIHNldCBpcnEsIHVwZGF0ZSBleHBp cmVfdGltZQogc3RhdGljIHZvaWQgc2xhdmlvX3RpbWVyX2dldF9vdXQoU0xBVklPX1RJTUVSU3Rh dGUgKnMpCiB7Ci0gICAgaW50IG91dDsKLSAgICBpbnQ2NF90IGRpZmYsIHRpY2tzLCBjb3VudDsK LSAgICB1aW50MzJfdCBsaW1pdDsKLQotICAgIC8vIFRoZXJlIGFyZSB0aHJlZSBjbG9jayB0aWNr IHVuaXRzOiBDUFUgdGlja3MsIHJlZ2lzdGVyIHVuaXRzCi0gICAgLy8gKG5hbm9zZWNvbmRzKSwg YW5kIGNvdW50ZXIgdGlja3MgKDUwMCBucykuCi0gICAgaWYgKHMtPm1vZGUgPT0gMSAmJiBzLT5z dG9wcGVkKQotCXRpY2tzID0gcy0+c3RvcF90aW1lOwotICAgIGVsc2UKLQl0aWNrcyA9IHFlbXVf Z2V0X2Nsb2NrKHZtX2Nsb2NrKSAtIHMtPnRpY2tfb2Zmc2V0OwotCi0gICAgb3V0ID0gKHRpY2tz ID4gcy0+ZXhwaXJlX3RpbWUpOwotICAgIGlmIChvdXQpCi0Jcy0+cmVhY2hlZCA9IDB4ODAwMDAw MDA7Ci0gICAgLy8gQ29udmVydCByZWdpc3RlciB1bml0cyB0byBjb3VudGVyIHRpY2tzCi0gICAg bGltaXQgPSBzLT5saW1pdCA+PiA5OwotCi0gICAgaWYgKCFsaW1pdCkKLQlsaW1pdCA9IDB4N2Zm ZmZmZmYgPj4gOTsKLQotICAgIC8vIENvbnZlcnQgY3B1IHRpY2tzIHRvIGNvdW50ZXIgdGlja3MK LSAgICBkaWZmID0gbXVsZGl2NjQodGlja3MgLSBzLT5jb3VudF9sb2FkX3RpbWUsIENOVF9GUkVR LCB0aWNrc19wZXJfc2VjKTsKLQotICAgIC8vIENhbGN1bGF0ZSB3aGF0IHRoZSBjb3VudGVyIHNo b3VsZCBiZSwgY29udmVydCB0byByZWdpc3RlcgotICAgIC8vIHVuaXRzCi0gICAgY291bnQgPSBk aWZmICUgbGltaXQ7Ci0gICAgcy0+Y291bnQgPSBjb3VudCA8PCA5OwotICAgIHMtPmNvdW50aGln aCA9IGNvdW50ID4+IDIyOwotCi0gICAgLy8gRXhwaXJlIHRpbWU6IENQVSB0aWNrcyBsZWZ0IHRv IG5leHQgaW50ZXJydXB0Ci0gICAgLy8gQ29udmVydCByZW1haW5pbmcgY291bnRlciB0aWNrcyB0 byBDUFUgdGlja3MKLSAgICBzLT5leHBpcmVfdGltZSA9IHRpY2tzICsgbXVsZGl2NjQobGltaXQg LSBjb3VudCwgdGlja3NfcGVyX3NlYywgQ05UX0ZSRVEpOworICAgIHVpbnQ2NF90IGNvdW50Owog Ci0gICAgRFBSSU5URigiaXJxICVkIGxpbWl0ICVkIHJlYWNoZWQgJWQgZCAlIiBQUklkNjQgIiBj b3VudCAlZCBzLT5jICV4IGRpZmYgJSIgUFJJZDY0ICIgc3RvcHBlZCAlZCBtb2RlICVkXG4iLCBz LT5pcnEsIGxpbWl0LCBzLT5yZWFjaGVkPzE6MCwgKHRpY2tzLXMtPmNvdW50X2xvYWRfdGltZSks IGNvdW50LCBzLT5jb3VudCwgcy0+ZXhwaXJlX3RpbWUgLSB0aWNrcywgcy0+c3RvcHBlZCwgcy0+ bW9kZSk7Ci0KLSAgICBpZiAocy0+bW9kZSAhPSAxKQotCXBpY19zZXRfaXJxX2NwdShzLT5pbnRj dGwsIHMtPmlycSwgb3V0LCBzLT5jcHUpOworICAgIGNvdW50ID0gcHRpbWVyX2dldF9jb3VudChz LT50aW1lcik7CisgICAgcy0+Y291bnQgPSBjb3VudCAmIDB4ZmZmZmZmZmY7CisgICAgcy0+Y291 bnRoaWdoID0gY291bnQgPj4gMzI7CiB9CiAKIC8vIHRpbWVyIGNhbGxiYWNrCkBAIC0xMTAsMTEg Kzc1LDExIEBACiB7CiAgICAgU0xBVklPX1RJTUVSU3RhdGUgKnMgPSBvcGFxdWU7CiAKLSAgICBp ZiAoIXMtPmlycV90aW1lcikKLSAgICAgICAgcmV0dXJuOwogICAgIHNsYXZpb190aW1lcl9nZXRf b3V0KHMpOworICAgIERQUklOVEYoImNhbGxiYWNrOiBjb3VudCAleCUwOHhcbiIsIHMtPmNvdW50 aGlnaCwgcy0+Y291bnQpOworICAgIHMtPnJlYWNoZWQgPSAweDgwMDAwMDAwOwogICAgIGlmIChz LT5tb2RlICE9IDEpCi0JcWVtdV9tb2RfdGltZXIocy0+aXJxX3RpbWVyLCBzLT5leHBpcmVfdGlt ZSk7CisJcGljX3NldF9pcnFfY3B1KHMtPmludGN0bCwgcy0+aXJxLCAxLCBzLT5jcHUpOwogfQog CiBzdGF0aWMgdWludDMyX3Qgc2xhdmlvX3RpbWVyX21lbV9yZWFkbCh2b2lkICpvcGFxdWUsIHRh cmdldF9waHlzX2FkZHJfdCBhZGRyKQpAQCAtMTIyLDYgKzg3LDcgQEAKICAgICBTTEFWSU9fVElN RVJTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICB1aW50MzJfdCBzYWRkcjsKIAorICAgIERQUklOVEYo InJlYWQgIiBUQVJHRVRfRk1UX3BseCAiXG4iLCBhZGRyKTsKICAgICBzYWRkciA9IChhZGRyICYg VElNRVJfTUFYQUREUikgPj4gMjsKICAgICBzd2l0Y2ggKHNhZGRyKSB7CiAgICAgY2FzZSAwOgpA QCAtMTYwLDEyICsxMjYsMTUgQEAKIHsKICAgICBTTEFWSU9fVElNRVJTdGF0ZSAqcyA9IG9wYXF1 ZTsKICAgICB1aW50MzJfdCBzYWRkcjsKKyAgICBpbnQgcmVsb2FkID0gMDsKIAorICAgIERQUklO VEYoIndyaXRlICIgVEFSR0VUX0ZNVF9wbHggIiAlMDh4XG4iLCBhZGRyLCB2YWwpOwogICAgIHNh ZGRyID0gKGFkZHIgJiBUSU1FUl9NQVhBRERSKSA+PiAyOwogICAgIHN3aXRjaCAoc2FkZHIpIHsK ICAgICBjYXNlIDA6CiAJLy8gc2V0IGxpbWl0LCByZXNldCBjb3VudGVyCi0Jcy0+Y291bnRfbG9h ZF90aW1lID0gcWVtdV9nZXRfY2xvY2sodm1fY2xvY2spOworICAgICAgICByZWxvYWQgPSAxOwor CXBpY19zZXRfaXJxX2NwdShzLT5pbnRjdGwsIHMtPmlycSwgMCwgcy0+Y3B1KTsKIAkvLyBmYWxs IHRocm91Z2gKICAgICBjYXNlIDI6CiAJLy8gc2V0IGxpbWl0IHdpdGhvdXQgcmVzZXR0aW5nIGNv dW50ZXIKQEAgLTE3MywxOCArMTQyLDE3IEBACiAJICAgIHMtPmxpbWl0ID0gMHg3ZmZmZmZmZjsK IAllbHNlCiAJICAgIHMtPmxpbWl0ID0gdmFsICYgMHg3ZmZmZmZmZjsKLQlzbGF2aW9fdGltZXJf aXJxKHMpOworICAgICAgICBwdGltZXJfc2V0X2xpbWl0KHMtPnRpbWVyLCBzLT5saW1pdCwgcmVs b2FkKTsKIAlicmVhazsKICAgICBjYXNlIDM6CiAJLy8gc3RhcnQvc3RvcCB1c2VyIGNvdW50ZXIK IAlpZiAocy0+bW9kZSA9PSAxKSB7CiAJICAgIGlmICh2YWwgJiAxKSB7Ci0JCXMtPnN0b3BfdGlt ZSA9IHFlbXVfZ2V0X2Nsb2NrKHZtX2Nsb2NrKTsKKyAgICAgICAgICAgICAgICBwdGltZXJfc3Rv cChzLT50aW1lcik7CiAJCXMtPnN0b3BwZWQgPSAxOwogCSAgICB9CiAJICAgIGVsc2UgewotCQlp ZiAocy0+c3RvcHBlZCkKLQkJICAgIHMtPnRpY2tfb2Zmc2V0ICs9IHFlbXVfZ2V0X2Nsb2NrKHZt X2Nsb2NrKSAtIHMtPnN0b3BfdGltZTsKKyAgICAgICAgICAgICAgICBwdGltZXJfcnVuKHMtPnRp bWVyLCAwKTsKIAkJcy0+c3RvcHBlZCA9IDA7CiAJICAgIH0KIAl9CkBAIC0yMTgsMTAgKzE4Niw2 IEBACiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMtPmxpbWl0KTsKICAgICBxZW11X3B1dF9iZTMy cyhmLCAmcy0+Y291bnQpOwogICAgIHFlbXVfcHV0X2JlMzJzKGYsICZzLT5jb3VudGhpZ2gpOwot ICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT5jb3VudF9sb2FkX3RpbWUpOwotICAgIHFlbXVfcHV0 X2JlNjRzKGYsICZzLT5leHBpcmVfdGltZSk7Ci0gICAgcWVtdV9wdXRfYmU2NHMoZiwgJnMtPnN0 b3BfdGltZSk7Ci0gICAgcWVtdV9wdXRfYmU2NHMoZiwgJnMtPnRpY2tfb2Zmc2V0KTsKICAgICBx ZW11X3B1dF9iZTMycyhmLCAmcy0+aXJxKTsKICAgICBxZW11X3B1dF9iZTMycyhmLCAmcy0+cmVh Y2hlZCk7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMtPnN0b3BwZWQpOwpAQCAtMjMyLDE2ICsx OTYsMTIgQEAKIHsKICAgICBTTEFWSU9fVElNRVJTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICAKLSAg ICBpZiAodmVyc2lvbl9pZCAhPSAxKQorICAgIGlmICh2ZXJzaW9uX2lkICE9IDIpCiAgICAgICAg IHJldHVybiAtRUlOVkFMOwogCiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMtPmxpbWl0KTsKICAg ICBxZW11X2dldF9iZTMycyhmLCAmcy0+Y291bnQpOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZz LT5jb3VudGhpZ2gpOwotICAgIHFlbXVfZ2V0X2JlNjRzKGYsICZzLT5jb3VudF9sb2FkX3RpbWUp OwotICAgIHFlbXVfZ2V0X2JlNjRzKGYsICZzLT5leHBpcmVfdGltZSk7Ci0gICAgcWVtdV9nZXRf YmU2NHMoZiwgJnMtPnN0b3BfdGltZSk7Ci0gICAgcWVtdV9nZXRfYmU2NHMoZiwgJnMtPnRpY2tf b2Zmc2V0KTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+aXJxKTsKICAgICBxZW11X2dldF9i ZTMycyhmLCAmcy0+cmVhY2hlZCk7CiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMtPnN0b3BwZWQp OwpAQCAtMjUzLDEzICsyMTMsMTIgQEAKIHsKICAgICBTTEFWSU9fVElNRVJTdGF0ZSAqcyA9IG9w YXF1ZTsKIAotICAgIHMtPmxpbWl0ID0gMDsKKyAgICBzLT5saW1pdCA9IDB4N2ZmZmZmZmY7CiAg ICAgcy0+Y291bnQgPSAwOwotICAgIHMtPmNvdW50X2xvYWRfdGltZSA9IHFlbXVfZ2V0X2Nsb2Nr KHZtX2Nsb2NrKTs7Ci0gICAgcy0+c3RvcF90aW1lID0gcy0+Y291bnRfbG9hZF90aW1lOwotICAg IHMtPnRpY2tfb2Zmc2V0ID0gMDsKICAgICBzLT5yZWFjaGVkID0gMDsKICAgICBzLT5tb2RlICY9 IDI7CisgICAgcHRpbWVyX3NldF9saW1pdChzLT50aW1lciwgcy0+bGltaXQsIDEpOworICAgIHB0 aW1lcl9ydW4ocy0+dGltZXIsIDApOwogICAgIHMtPnN0b3BwZWQgPSAxOwogICAgIHNsYXZpb190 aW1lcl9pcnEocyk7CiB9CkBAIC0yNjksNiArMjI4LDcgQEAKIHsKICAgICBpbnQgc2xhdmlvX3Rp bWVyX2lvX21lbW9yeTsKICAgICBTTEFWSU9fVElNRVJTdGF0ZSAqczsKKyAgICBRRU1VQkggKmJo OwogCiAgICAgcyA9IHFlbXVfbWFsbG9jeihzaXplb2YoU0xBVklPX1RJTUVSU3RhdGUpKTsKICAg ICBpZiAoIXMpCkBAIC0yNzYsMTMgKzIzNiwxNSBAQAogICAgIHMtPmlycSA9IGlycTsKICAgICBz LT5tb2RlID0gbW9kZTsKICAgICBzLT5jcHUgPSBjcHU7Ci0gICAgcy0+aXJxX3RpbWVyID0gcWVt dV9uZXdfdGltZXIodm1fY2xvY2ssIHNsYXZpb190aW1lcl9pcnEsIHMpOworICAgIGJoID0gcWVt dV9iaF9uZXcoc2xhdmlvX3RpbWVyX2lycSwgcyk7CisgICAgcy0+dGltZXIgPSBwdGltZXJfaW5p dChiaCk7CisgICAgcHRpbWVyX3NldF9wZXJpb2Qocy0+dGltZXIsIDFVTEwpOwogICAgIHMtPmlu dGN0bCA9IGludGN0bDsKIAogICAgIHNsYXZpb190aW1lcl9pb19tZW1vcnkgPSBjcHVfcmVnaXN0 ZXJfaW9fbWVtb3J5KDAsIHNsYXZpb190aW1lcl9tZW1fcmVhZCwKIAkJCQkJCSAgICBzbGF2aW9f dGltZXJfbWVtX3dyaXRlLCBzKTsKICAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KGFk ZHIsIFRJTUVSX01BWEFERFIsIHNsYXZpb190aW1lcl9pb19tZW1vcnkpOwotICAgIHJlZ2lzdGVy X3NhdmV2bSgic2xhdmlvX3RpbWVyIiwgYWRkciwgMSwgc2xhdmlvX3RpbWVyX3NhdmUsIHNsYXZp b190aW1lcl9sb2FkLCBzKTsKKyAgICByZWdpc3Rlcl9zYXZldm0oInNsYXZpb190aW1lciIsIGFk ZHIsIDIsIHNsYXZpb190aW1lcl9zYXZlLCBzbGF2aW9fdGltZXJfbG9hZCwgcyk7CiAgICAgcWVt dV9yZWdpc3Rlcl9yZXNldChzbGF2aW9fdGltZXJfcmVzZXQsIHMpOwogICAgIHNsYXZpb190aW1l cl9yZXNldChzKTsKIH0KSW5kZXg6IHFlbXUvaHcvcHRpbWVyLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVt dS5vcmlnL2h3L3B0aW1lci5jCTIwMDctMDUtMjMgMTg6NDQ6MjAuMDAwMDAwMDAwICswMDAwCisr KyBxZW11L2h3L3B0aW1lci5jCTIwMDctMDUtMjMgMTg6NDY6MTguMDAwMDAwMDAwICswMDAwCkBA IC0xMSw4ICsxMSw4IEBACiBzdHJ1Y3QgcHRpbWVyX3N0YXRlCiB7CiAgICAgaW50IGVuYWJsZWQ7 IC8qIDAgPSBkaXNhYmxlZCwgMSA9IHBlcmlvZGljLCAyID0gb25lc2hvdC4gICovCi0gICAgdWlu dDMyX3QgbGltaXQ7Ci0gICAgdWludDMyX3QgZGVsdGE7CisgICAgdWludDY0X3QgbGltaXQ7Cisg ICAgdWludDY0X3QgZGVsdGE7CiAgICAgdWludDMyX3QgcGVyaW9kX2ZyYWM7CiAgICAgaW50NjRf dCBwZXJpb2Q7CiAgICAgaW50NjRfdCBsYXN0X2V2ZW50OwpAQCAtNjEsMTAgKzYxLDEwIEBACiAg ICAgfQogfQogCi11aW50MzJfdCBwdGltZXJfZ2V0X2NvdW50KHB0aW1lcl9zdGF0ZSAqcykKK3Vp bnQ2NF90IHB0aW1lcl9nZXRfY291bnQocHRpbWVyX3N0YXRlICpzKQogewogICAgIGludDY0X3Qg bm93OwotICAgIHVpbnQzMl90IGNvdW50ZXI7CisgICAgdWludDY0X3QgY291bnRlcjsKIAogICAg IGlmIChzLT5lbmFibGVkKSB7CiAgICAgICAgIG5vdyA9IHFlbXVfZ2V0X2Nsb2NrKHZtX2Nsb2Nr KTsKQEAgLTg4LDcgKzg4LDcgQEAKICAgICByZXR1cm4gY291bnRlcjsKIH0KIAotdm9pZCBwdGlt ZXJfc2V0X2NvdW50KHB0aW1lcl9zdGF0ZSAqcywgdWludDMyX3QgY291bnQpCit2b2lkIHB0aW1l cl9zZXRfY291bnQocHRpbWVyX3N0YXRlICpzLCB1aW50NjRfdCBjb3VudCkKIHsKICAgICBzLT5k ZWx0YSA9IGNvdW50OwogICAgIGlmIChzLT5lbmFibGVkKSB7CkBAIC0xNDIsNyArMTQyLDcgQEAK IAogLyogU2V0IHRoZSBpbml0aWFsIGNvdW50ZG93biB2YWx1ZS4gIElmIHJlbG9hZCBpcyBub256 ZXJvIHRoZW4gYWxzbyBzZXQKICAgIGNvdW50ID0gbGltaXQuICAqLwotdm9pZCBwdGltZXJfc2V0 X2xpbWl0KHB0aW1lcl9zdGF0ZSAqcywgdWludDMyX3QgbGltaXQsIGludCByZWxvYWQpCit2b2lk IHB0aW1lcl9zZXRfbGltaXQocHRpbWVyX3N0YXRlICpzLCB1aW50NjRfdCBsaW1pdCwgaW50IHJl bG9hZCkKIHsKICAgICBpZiAocy0+ZW5hYmxlZCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwg IkZJWE1FOiBwdGltZXJfc2V0X2xpbWl0IHdpdGggcnVubmluZyB0aW1lciIpOwpJbmRleDogcWVt dS92bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy92bC5oCTIwMDctMDUtMjMgMTg6NDQ6MjAu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L3ZsLmgJMjAwNy0wNS0yMyAxODo0NjoxOC4wMDAwMDAw MDAgKzAwMDAKQEAgLTE1ODksOSArMTU4OSw5IEBACiBwdGltZXJfc3RhdGUgKnB0aW1lcl9pbml0 KFFFTVVCSCAqYmgpOwogdm9pZCBwdGltZXJfc2V0X3BlcmlvZChwdGltZXJfc3RhdGUgKnMsIGlu dDY0X3QgcGVyaW9kKTsKIHZvaWQgcHRpbWVyX3NldF9mcmVxKHB0aW1lcl9zdGF0ZSAqcywgdWlu dDMyX3QgZnJlcSk7Ci12b2lkIHB0aW1lcl9zZXRfbGltaXQocHRpbWVyX3N0YXRlICpzLCB1aW50 MzJfdCBsaW1pdCwgaW50IHJlbG9hZCk7Ci11aW50MzJfdCBwdGltZXJfZ2V0X2NvdW50KHB0aW1l cl9zdGF0ZSAqcyk7Ci12b2lkIHB0aW1lcl9zZXRfY291bnQocHRpbWVyX3N0YXRlICpzLCB1aW50 MzJfdCBjb3VudCk7Cit2b2lkIHB0aW1lcl9zZXRfbGltaXQocHRpbWVyX3N0YXRlICpzLCB1aW50 NjRfdCBsaW1pdCwgaW50IHJlbG9hZCk7Cit1aW50NjRfdCBwdGltZXJfZ2V0X2NvdW50KHB0aW1l cl9zdGF0ZSAqcyk7Cit2b2lkIHB0aW1lcl9zZXRfY291bnQocHRpbWVyX3N0YXRlICpzLCB1aW50 NjRfdCBjb3VudCk7CiB2b2lkIHB0aW1lcl9ydW4ocHRpbWVyX3N0YXRlICpzLCBpbnQgb25lc2hv dCk7CiB2b2lkIHB0aW1lcl9zdG9wKHB0aW1lcl9zdGF0ZSAqcyk7CiAKSW5kZXg6IHFlbXUvTWFr ZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtlZmlsZS50YXJnZXQJMjAw Ny0wNS0yMyAxODo0NDoyMC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvTWFrZWZpbGUudGFyZ2V0 CTIwMDctMDUtMjMgMTg6NDY6MTguMDAwMDAwMDAwICswMDAwCkBAIC00NDksNyArNDQ5LDcgQEAK IGVsc2UKIFZMX09CSlMrPSBzdW40bS5vIHRjeC5vIHBjbmV0Lm8gaW9tbXUubyBtNDh0NTkubyBz bGF2aW9faW50Y3RsLm8KIFZMX09CSlMrPSBzbGF2aW9fdGltZXIubyBzbGF2aW9fc2VyaWFsLm8g c2xhdmlvX21pc2MubyBmZGMubyBlc3AubyBzcGFyYzMyX2RtYS5vCi1WTF9PQkpTKz0gY3M0MjMx Lm8KK1ZMX09CSlMrPSBjczQyMzEubyBwdGltZXIubwogZW5kaWYKIGVuZGlmCiBpZmVxICgkKFRB UkdFVF9CQVNFX0FSQ0gpLCBhcm0pCg== ------=_Part_56749_22107700.1179948491805--