POSIX 1003.1b timer/clock patch for 2.3.11

Robert H. de Vries (rhdv@rhdv.cistron.nl)
Sun, 25 Jul 1999 16:48:55 +0200


--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

Hi,

Attached you will find a patch to add POSIX 1003.1b (aka POSIX.4) clocks and
timers.
The code is derived from a patch from the university of Kansas. However it has
been so much modified that hardly any of their code (except some of the
structure) is left.
The patch includes modifications for all architectures for the system call
numbers and some other stuff. The core facilities are architecture independent.

I have also made some minor modifications to the signal handling code for the
non RT signals. These signals now also carry the extra information from the RT
signals only it is not in the queue.

Test code is attached in the gzipped/tarred thing. Included there are also the
system call stubs for user land.

Any comments?

Robert

-- 
Robert de Vries
rhdv@rhdv.cistron.nl

--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD Content-Type: text/x-c; name="posix_timer.2.3.11.patch" Content-Transfer-Encoding: base64 Content-Description: POSIX 1003.1b clock/timer patch for 2.3.11 Content-Disposition: attachment; filename="posix_timer.2.3.11.patch"

ZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2FyY2gvYWxwaGEva2VybmVsL2VudHJ5LlMg bGludXgtMi4zLjExL2FyY2gvYWxwaGEva2VybmVsL2VudHJ5LlMKLS0tIGxpbnV4LTIuMy4xMS12 YW5pbGxhL2FyY2gvYWxwaGEva2VybmVsL2VudHJ5LlMJU3VuIEp1biAyMCAxMTo0MDoyNCAxOTk5 CisrKyBsaW51eC0yLjMuMTEvYXJjaC9hbHBoYS9rZXJuZWwvZW50cnkuUwlTYXQgSnVsIDI0IDE2 OjMxOjI3IDE5OTkKQEAgLTExNDMsMyArMTE0MywxMSBAQAogCS5xdWFkIHN5c19jYXBnZXQKIAku cXVhZCBzeXNfY2Fwc2V0CiAJLnF1YWQgc3lzX3NlbmRmaWxlCQkJLyogMzcwICovCisJLnF1YWQg c3lzX3RpbWVyX2NyZWF0ZQorCS5xdWFkIHN5c190aW1lcl9zZXR0aW1lCisJLnF1YWQgc3lzX3Rp bWVyX2dldHRpbWUKKwkucXVhZCBzeXNfdGltZXJfc2V0b3ZlcnJ1bgorCS5xdWFkIHN5c190aW1l cl9kZWxldGUJCQkvKiAzNzUgKi8KKwkucXVhZCBzeXNfY2xvY2tfZ2V0dGltZQorCS5xdWFkIHN5 c19jbG9ja19zZXR0aW1lCisJLnF1YWQgc3lzX2Nsb2NrX2dldHJlcwkJCS8qIDM3OCAqLwpkaWZm IC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvYXJjaC9hcm0va2VybmVsL2NhbGxzLlMgbGludXgt Mi4zLjExL2FyY2gvYXJtL2tlcm5lbC9jYWxscy5TCi0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9h cmNoL2FybS9rZXJuZWwvY2FsbHMuUwlTYXQgSnVsIDI0IDE2OjI2OjA1IDE5OTkKKysrIGxpbnV4 LTIuMy4xMS9hcmNoL2FybS9rZXJuZWwvY2FsbHMuUwlTYXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkK QEAgLTIwMCw4ICsyMDAsMTYgQEAKIAkJLmxvbmcJU1lNQk9MX05BTUUoc3lzX25pX3N5c2NhbGwp CiAJCS5sb25nCVNZTUJPTF9OQU1FKHN5c19uaV9zeXNjYWxsKQogLyogMTkwICovCS5sb25nCVNZ TUJPTF9OQU1FKHN5c192Zm9ya193cmFwcGVyKQorCQkubG9uZwlTWU1CT0xfTkFNRShzeXNfdGlt ZXJfY3JlYXRlKQorCQkubG9uZwlTWU1CT0xfTkFNRShzeXNfdGltZXJfc2V0dGltZSkKKwkJLmxv bmcJU1lNQk9MX05BTUUoc3lzX3RpbWVyX2dldHRpbWUpCisJCS5sb25nCVNZTUJPTF9OQU1FKHN5 c190aW1lcl9nZXRvdmVycnVuKQorLyogMTk1ICovCS5sb25nCVNZTUJPTF9OQU1FKHN5c190aW1l cl9kZWxldGUpCisJCS5sb25nCVNZTUJPTF9OQU1FKHN5c19jbG9ja19nZXR0aW1lKQorCQkubG9u ZwlTWU1CT0xfTkFNRShzeXNfY2xvY2tfc2V0dGltZSkKKwkJLmxvbmcJU1lNQk9MX05BTUUoc3lz X2Nsb2NrX2dldHJlcykKIAotCQkucmVwdAlOUl9zeXNjYWxscy0xODYKKwkJLnJlcHQJTlJfc3lz Y2FsbHMtMTk4CiAJCQkubG9uZwlTWU1CT0xfTkFNRShzeXNfbmlfc3lzY2FsbCkKIAkJLmVuZHIK ICNlbmRpZgpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvYXJjaC9pMzg2L2tlcm5lbC9l bnRyeS5TIGxpbnV4LTIuMy4xMS9hcmNoL2kzODYva2VybmVsL2VudHJ5LlMKLS0tIGxpbnV4LTIu My4xMS12YW5pbGxhL2FyY2gvaTM4Ni9rZXJuZWwvZW50cnkuUwlTYXQgSnVsIDI0IDE2OjI2OjA1 IDE5OTkKKysrIGxpbnV4LTIuMy4xMS9hcmNoL2kzODYva2VybmVsL2VudHJ5LlMJU2F0IEp1bCAy NCAxNjozMToyNyAxOTk5CkBAIC01NjAsNiArNTYwLDE0IEBACiAJLmxvbmcgU1lNQk9MX05BTUUo c3lzX25pX3N5c2NhbGwpCQkvKiBzdHJlYW1zMSAqLwogCS5sb25nIFNZTUJPTF9OQU1FKHN5c19u aV9zeXNjYWxsKQkJLyogc3RyZWFtczIgKi8KIAkubG9uZyBTWU1CT0xfTkFNRShzeXNfdmZvcmsp ICAgICAgICAgICAgLyogMTkwICovCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3RpbWVyX2NyZWF0 ZSkKKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfdGltZXJfc2V0dGltZSkKKwkubG9uZyBTWU1CT0xf TkFNRShzeXNfdGltZXJfZ2V0dGltZSkKKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfdGltZXJfZ2V0 b3ZlcnJ1bikKKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfdGltZXJfZGVsZXRlKQkvKiAxOTUgKi8K KwkubG9uZyBTWU1CT0xfTkFNRShzeXNfY2xvY2tfZ2V0dGltZSkKKwkubG9uZyBTWU1CT0xfTkFN RShzeXNfY2xvY2tfc2V0dGltZSkKKwkubG9uZyBTWU1CT0xfTkFNRShzeXNfY2xvY2tfZ2V0cmVz KQkvKiAxOTggKi8KIAogCS8qCiAJICogTk9URSEhIFRoaXMgZG9lc24ndCBoYXZlIHRvIGJlIGV4 YWN0IC0gd2UganVzdCBoYXZlCkBAIC01NjcsNiArNTc1LDYgQEAKIAkgKiBlbnRyaWVzLiBEb24n dCBwYW5pYyBpZiB5b3Ugbm90aWNlIHRoYXQgdGhpcyBoYXNuJ3QKIAkgKiBiZWVuIHNocnVuayBl dmVyeSB0aW1lIHdlIGFkZCBhIG5ldyBzeXN0ZW0gY2FsbC4KIAkgKi8KLQkucmVwdCBOUl9zeXNj YWxscy0xOTAKKwkucmVwdCBOUl9zeXNjYWxscy0xOTgKIAkJLmxvbmcgU1lNQk9MX05BTUUoc3lz X25pX3N5c2NhbGwpCiAJLmVuZHIKZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2FyY2gv bTY4ay9rZXJuZWwvZW50cnkuUyBsaW51eC0yLjMuMTEvYXJjaC9tNjhrL2tlcm5lbC9lbnRyeS5T Ci0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9hcmNoL202OGsva2VybmVsL2VudHJ5LlMJU3VuIEp1 biAyMCAxMTo0MDoyNiAxOTk5CisrKyBsaW51eC0yLjMuMTEvYXJjaC9tNjhrL2tlcm5lbC9lbnRy eS5TCVNhdCBKdWwgMjQgMTY6MzE6MjcgMTk5OQpAQCAtNjA5LDYgKzYwOSwxNCBAQAogCS5sb25n IFNZTUJPTF9OQU1FKHN5c19uaV9zeXNjYWxsKQkJLyogc3RyZWFtczEgKi8KIAkubG9uZyBTWU1C T0xfTkFNRShzeXNfbmlfc3lzY2FsbCkJCS8qIHN0cmVhbXMyICovCiAJLmxvbmcgU1lNQk9MX05B TUUoc3lzX3Zmb3JrKSAgICAgICAgICAgIC8qIDE5MCAqLworCS5sb25nIFNZTUJPTF9OQU1FKHN5 c190aW1lcl9jcmVhdGUpCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3RpbWVyX3NldHRpbWUpCisJ LmxvbmcgU1lNQk9MX05BTUUoc3lzX3RpbWVyX2dldHRpbWUpCisJLmxvbmcgU1lNQk9MX05BTUUo c3lzX3RpbWVyX2dldG92ZXJydW4pCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX3RpbWVyX2RlbGV0 ZSkJLyogMTk1ICovCisJLmxvbmcgU1lNQk9MX05BTUUoc3lzX2Nsb2NrX2dldHRpbWUpCisJLmxv bmcgU1lNQk9MX05BTUUoc3lzX2Nsb2NrX3NldHRpbWUpCisJLmxvbmcgU1lNQk9MX05BTUUoc3lz X2Nsb2NrX2dldHJlcykJLyogMTk4ICovCiAKIAkucmVwdCBOUl9zeXNjYWxscy0oLi1TWU1CT0xf TkFNRShzeXNfY2FsbF90YWJsZSkpLzQKIAkJLmxvbmcgU1lNQk9MX05BTUUoc3lzX25pX3N5c2Nh bGwpCmRpZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9hcmNoL21pcHMva2VybmVsL3N5c2Nh bGxzLmggbGludXgtMi4zLjExL2FyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMuaAotLS0gbGludXgt Mi4zLjExLXZhbmlsbGEvYXJjaC9taXBzL2tlcm5lbC9zeXNjYWxscy5oCVRodSBKdWwgIDEgMjA6 MzY6MTggMTk5OQorKysgbGludXgtMi4zLjExL2FyY2gvbWlwcy9rZXJuZWwvc3lzY2FsbHMuaAlT YXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkKQEAgLTIyNSwzICsyMjUsMTEgQEAKIFNZUyhzeXNfc2Vu ZGZpbGUsIDMpCiBTWVMoc3lzX25pX3N5c2NhbGwsIDApCiBTWVMoc3lzX25pX3N5c2NhbGwsIDAp CitTWVMoc3lzX3RpbWVyX2NyZWF0ZSwgMykJCQkvKiA0MjEwICovCitTWVMoc3lzX3RpbWVyX3Nl dHRpbWUsIDQpCitTWVMoc3lzX3RpbWVyX2dldHRpbWUsIDIpCitTWVMoc3lzX3RpbWVyX2dldG92 ZXJydW4sIDEpCitTWVMoc3lzX3RpbWVyX2RlbGV0ZSwgMSkKK1NZUyhzeXNfY2xvY2tfZ2V0dGlt ZSwgMikJCQkvKiA0MjE1ICovCitTWVMoc3lzX2Nsb2NrX3NldHRpbWUsIDIpCitTWVMoc3lzX2Ns b2NrX2dldHJlcywgMikKZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2FyY2gvcHBjL2tl cm5lbC9taXNjLlMgbGludXgtMi4zLjExL2FyY2gvcHBjL2tlcm5lbC9taXNjLlMKLS0tIGxpbnV4 LTIuMy4xMS12YW5pbGxhL2FyY2gvcHBjL2tlcm5lbC9taXNjLlMJVGh1IEp1bCAgMSAyMDozNjoy MCAxOTk5CisrKyBsaW51eC0yLjMuMTEvYXJjaC9wcGMva2VybmVsL21pc2MuUwlTYXQgSnVsIDI0 IDE2OjMxOjI3IDE5OTkKQEAgLTg5NCw0ICs4OTQsMTIgQEAKIAkubG9uZyBzeXNfbmlfc3lzY2Fs bAkJLyogc3RyZWFtczEgKi8KIAkubG9uZyBzeXNfbmlfc3lzY2FsbAkJLyogc3RyZWFtczIgKi8K IAkubG9uZyBzeXNfdmZvcmsKLQkuc3BhY2UgKE5SX3N5c2NhbGxzLTE4MykqNAorCS5sb25nIHN5 c190aW1lcl9jcmVhdGUJLyogMTkwICovCisJLmxvbmcgc3lzX3RpbWVyX3NldHRpbWUKKwkubG9u ZyBzeXNfdGltZXJfZ2V0dGltZQorCS5sb25nIHN5c190aW1lcl9nZXRvdmVycnVuCisJLmxvbmcg c3lzX3RpbWVyX2RlbGV0ZQorCS5sb25nIHN5c19jbG9ja19nZXR0aW1lCS8qIDE5NSAqLworCS5s b25nIHN5c19jbG9ja19zZXR0aW1lCisJLmxvbmcgc3lzX2Nsb2NrX2dldHJlcwkvKiAxOTcgKi8K Kwkuc3BhY2UgKE5SX3N5c2NhbGxzLTE5NykqNApkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmls bGEvYXJjaC9zcGFyYy9rZXJuZWwvc3lzdGJscy5TIGxpbnV4LTIuMy4xMS9hcmNoL3NwYXJjL2tl cm5lbC9zeXN0YmxzLlMKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2FyY2gvc3BhcmMva2VybmVs L3N5c3RibHMuUwlTdW4gSnVuIDIwIDExOjM5OjQ5IDE5OTkKKysrIGxpbnV4LTIuMy4xMS9hcmNo L3NwYXJjL2tlcm5lbC9zeXN0YmxzLlMJU2F0IEp1bCAyNCAxNjozMToyNyAxOTk5CkBAIC02OCw3 ICs2OCw4IEBACiAvKjI0MCovCS5sb25nIHN5c19tdW5sb2NrYWxsLCBzeXNfc2NoZWRfc2V0cGFy YW0sIHN5c19zY2hlZF9nZXRwYXJhbSwgc3lzX3NjaGVkX3NldHNjaGVkdWxlciwgc3lzX3NjaGVk X2dldHNjaGVkdWxlcgogLyoyNDUqLwkubG9uZyBzeXNfc2NoZWRfeWllbGQsIHN5c19zY2hlZF9n ZXRfcHJpb3JpdHlfbWF4LCBzeXNfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwgc3lzX3NjaGVkX3Jy X2dldF9pbnRlcnZhbCwgc3lzX25hbm9zbGVlcAogLyoyNTAqLwkubG9uZyBzeXNfbXJlbWFwLCBz eXNfc3lzY3RsLCBzeXNfZ2V0c2lkLCBzeXNfZmRhdGFzeW5jLCBzeXNfbmZzc2VydmN0bAotLyoy NTUqLwkubG9uZyBzeXNfYXBsaWIsIHN5c19uaXNfc3lzY2FsbAorLyoyNTUqLwkubG9uZyBzeXNf YXBsaWIsIHN5c190aW1lcl9jcmVhdGUsIHN5c190aW1lcl9zZXR0aW1lLCBzeXNfdGltZXJfZ2V0 dGltZSwgc3lzX3RpbWVyX2dldG92ZXJydW4KKy8qMjYwKi8gLmxvbmcgc3lzX3RpbWVyX2RlbGV0 ZSwgc3lzX2Nsb2NrX2dldHRpbWUsIHN5c19jbG9ja19zZXR0aW1lLCBzeXNfY2xvY2tfZ2V0cmVz CiAKIAkvKiBOb3cgdGhlIFN1bk9TIHN5c2NhbGwgdGFibGUuICovCiAKZGlmZiAtcnVOIGxpbnV4 LTIuMy4xMS12YW5pbGxhL2FyY2gvc3BhcmM2NC9rZXJuZWwvc3lzdGJscy5TIGxpbnV4LTIuMy4x MS9hcmNoL3NwYXJjNjQva2VybmVsL3N5c3RibHMuUwotLS0gbGludXgtMi4zLjExLXZhbmlsbGEv YXJjaC9zcGFyYzY0L2tlcm5lbC9zeXN0YmxzLlMJU3VuIEp1biAyMCAxMTo0MzowMCAxOTk5Cisr KyBsaW51eC0yLjMuMTEvYXJjaC9zcGFyYzY0L2tlcm5lbC9zeXN0YmxzLlMJU2F0IEp1bCAyNCAx NjozMToyNyAxOTk5CkBAIC02OCw3ICs2OCw4IEBACiAvKjI0MCovCS53b3JkIHN5c19tdW5sb2Nr YWxsLCBzeXNfc2NoZWRfc2V0cGFyYW0sIHN5c19zY2hlZF9nZXRwYXJhbSwgc3lzX3NjaGVkX3Nl dHNjaGVkdWxlciwgc3lzX3NjaGVkX2dldHNjaGVkdWxlcgogCS53b3JkIHN5c19zY2hlZF95aWVs ZCwgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9tYXgsIHN5c19zY2hlZF9nZXRfcHJpb3JpdHlfbWlu LCBzeXMzMl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwsIHN5czMyX25hbm9zbGVlcAogLyoyNTAqLwku d29yZCBzeXNfbXJlbWFwLCBzeXNfc3lzY3RsLCBzeXNfZ2V0c2lkLCBzeXNfZmRhdGFzeW5jLCBz eXMzMl9uZnNzZXJ2Y3RsCi0JLndvcmQgc3lzX2FwbGliCisvKjI1NSovCS53b3JkIHN5c19hcGxp Yiwgc3lzX3RpbWVyX2NyZWF0ZSwgc3lzX3RpbWVyX3NldHRpbWUsIHN5c190aW1lcl9nZXR0aW1l LCBzeXNfdGltZXJfZ2V0b3ZlcnJ1bgorLyoyNjAqLyAud29yZCBzeXNfdGltZXJfZGVsZXRlLCBz eXNfY2xvY2tfZ2V0dGltZSwgc3lzX2Nsb2NrX3NldHRpbWUsIHN5c19jbG9ja19nZXRyZXMKIAog CS8qIE5vdyB0aGUgNjQtYml0IG5hdGl2ZSBMaW51eCBzeXNjYWxsIHRhYmxlLiAqLwogCkBAIC0x MjcsNyArMTI4LDggQEAKIC8qMjQwKi8JLndvcmQgc3lzX211bmxvY2thbGwsIHN5c19zY2hlZF9z ZXRwYXJhbSwgc3lzX3NjaGVkX2dldHBhcmFtLCBzeXNfc2NoZWRfc2V0c2NoZWR1bGVyLCBzeXNf c2NoZWRfZ2V0c2NoZWR1bGVyCiAJLndvcmQgc3lzX3NjaGVkX3lpZWxkLCBzeXNfc2NoZWRfZ2V0 X3ByaW9yaXR5X21heCwgc3lzX3NjaGVkX2dldF9wcmlvcml0eV9taW4sIHN5c19zY2hlZF9ycl9n ZXRfaW50ZXJ2YWwsIHN5c19uYW5vc2xlZXAKIC8qMjUwKi8JLndvcmQgc3lzX21yZW1hcCwgc3lz X3N5c2N0bCwgc3lzX2dldHNpZCwgc3lzX2ZkYXRhc3luYywgc3lzX25mc3NlcnZjdGwKLQkud29y ZCBzeXNfYXBsaWIKKy8qMjU1Ki8JLndvcmQgc3lzX2FwbGliLCBzeXNfdGltZXJfY3JlYXRlLCBz eXNfdGltZXJfc2V0dGltZSwgc3lzX3RpbWVyX2dldHRpbWUsIHN5c190aW1lcl9nZXRvdmVycnVu CisvKjI2MCovIC53b3JkIHN5c190aW1lcl9kZWxldGUsIHN5c19jbG9ja19nZXR0aW1lLCBzeXNf Y2xvY2tfc2V0dGltZSwgc3lzX2Nsb2NrX2dldHJlcwogCiAJLyogTm93IHRoZSAzMi1iaXQgU3Vu T1Mgc3lzY2FsbCB0YWJsZS4gKi8KIApkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5j bHVkZS9hc20tYWxwaGEvc2lnaW5mby5oIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1hbHBoYS9z aWdpbmZvLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLWFscGhhL3NpZ2lu Zm8uaAlTdW4gSnVuIDIwIDExOjM5OjU5IDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2Fz bS1hbHBoYS9zaWdpbmZvLmgJU2F0IEp1bCAyNCAxNjozMToyNyAxOTk5CkBAIC02Nyw2ICs2Nyw4 IEBACiAgKi8KICNkZWZpbmUgc2lfcGlkCQlfc2lmaWVsZHMuX2tpbGwuX3BpZAogI2RlZmluZSBz aV91aWQJCV9zaWZpZWxkcy5fa2lsbC5fdWlkCisjZGVmaW5lIHNpX3RpbWVyMQlfc2lmaWVsZHMu X3RpbWVyLl90aW1lcjEKKyNkZWZpbmUgc2lfdGltZXIyCV9zaWZpZWxkcy5fdGltZXIuX3RpbWVy MgogI2RlZmluZSBzaV9zdGF0dXMJX3NpZmllbGRzLl9zaWdjaGxkLl9zdGF0dXMKICNkZWZpbmUg c2lfdXRpbWUJX3NpZmllbGRzLl9zaWdjaGxkLl91dGltZQogI2RlZmluZSBzaV9zdGltZQlfc2lm aWVsZHMuX3NpZ2NobGQuX3N0aW1lCmRpZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNs dWRlL2FzbS1hbHBoYS91bmlzdGQuaCBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20tYWxwaGEvdW5p c3RkLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLWFscGhhL3VuaXN0ZC5o CVRodSBKYW4gMjEgMjA6MjY6MzAgMTk5OQorKysgbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLWFs cGhhL3VuaXN0ZC5oCVNhdCBKdWwgMjQgMTY6MzE6MjcgMTk5OQpAQCAtMzA4LDYgKzMwOCwxNCBA QAogI2RlZmluZSBfX05SX2NhcGdldAkJCTM2OAogI2RlZmluZSBfX05SX2NhcHNldAkJCTM2OQog I2RlZmluZSBfX05SX3NlbmRmaWxlCQkJMzcwCisjZGVmaW5lIF9fTlJfdGltZXJfY3JlYXRlCQkz NzEKKyNkZWZpbmUgX19OUl90aW1lcl9zZXR0aW1lCQkzNzIKKyNkZWZpbmUgX19OUl90aW1lcl9n ZXR0aW1lCQkzNzMKKyNkZWZpbmUgX19OUl90aW1lcl9nZXRvdmVycnVuCQkzNzQKKyNkZWZpbmUg X19OUl90aW1lcl9kZWxldGUJCTM3NQorI2RlZmluZSBfX05SX2Nsb2NrX2dldHRpbWUJCTM3Ngor I2RlZmluZSBfX05SX2Nsb2NrX3NldHRpbWUJCTM3NworI2RlZmluZSBfX05SX2Nsb2NrX2dldHJl cwkJMzc4CiAKICNpZiBkZWZpbmVkKF9fTElCUkFSWV9fKSAmJiBkZWZpbmVkKF9fR05VQ19fKQog CmRpZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2FzbS1hcm0vc2lnaW5mby5o IGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1hcm0vc2lnaW5mby5oCi0tLSBsaW51eC0yLjMuMTEt dmFuaWxsYS9pbmNsdWRlL2FzbS1hcm0vc2lnaW5mby5oCVN1biBKdW4gMjAgMTE6Mzk6NTkgMTk5 OQorKysgbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLWFybS9zaWdpbmZvLmgJU2F0IEp1bCAyNCAx NjozMToyNyAxOTk5CkBAIC02Nyw2ICs2Nyw4IEBACiAgKi8KICNkZWZpbmUgc2lfcGlkCQlfc2lm aWVsZHMuX2tpbGwuX3BpZAogI2RlZmluZSBzaV91aWQJCV9zaWZpZWxkcy5fa2lsbC5fdWlkCisj ZGVmaW5lIHNpX3RpbWVyMQlfc2lmaWVsZHMuX3RpbWVyLl90aW1lcjEKKyNkZWZpbmUgc2lfdGlt ZXIyCV9zaWZpZWxkcy5fdGltZXIuX3RpbWVyMgogI2RlZmluZSBzaV9zdGF0dXMJX3NpZmllbGRz Ll9zaWdjaGxkLl9zdGF0dXMKICNkZWZpbmUgc2lfdXRpbWUJX3NpZmllbGRzLl9zaWdjaGxkLl91 dGltZQogI2RlZmluZSBzaV9zdGltZQlfc2lmaWVsZHMuX3NpZ2NobGQuX3N0aW1lCmRpZmYgLXJ1 TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2FzbS1hcm0vdW5pc3RkLmggbGludXgtMi4z LjExL2luY2x1ZGUvYXNtLWFybS91bmlzdGQuaAotLS0gbGludXgtMi4zLjExLXZhbmlsbGEvaW5j bHVkZS9hc20tYXJtL3VuaXN0ZC5oCU1vbiBKdW4gMjEgMjI6MzM6MzEgMTk5OQorKysgbGludXgt Mi4zLjExL2luY2x1ZGUvYXNtLWFybS91bmlzdGQuaAlTYXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkK QEAgLTE5OCw2ICsxOTgsMTQgQEAKIAkJCQkJLyogMTg4IHJlc2VydmVkICovCiAJCQkJCS8qIDE4 OSByZXNlcnZlZCAqLwogI2RlZmluZSBfX05SX3Zmb3JrCQkJKF9fTlJfU1lTQ0FMTF9CQVNFKzE5 MCkKKyNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUJCShfX05SX1NZU0NBTExfQkFTRSsxOTEpCisj ZGVmaW5lIF9fTlJfdGltZXJfc2V0dGltZQkJKF9fTlJfU1lTQ0FMTF9CQVNFKzE5MikKKyNkZWZp bmUgX19OUl90aW1lcl9nZXR0aW1lCQkoX19OUl9TWVNDQUxMX0JBU0UrMTkzKQorI2RlZmluZSBf X05SX3RpbWVyX2dldG92ZXJydW4JCShfX05SX1NZU0NBTExfQkFTRSsxOTQpCisjZGVmaW5lIF9f TlJfdGltZXJfZGVsZXRlCQkoX19OUl9TWVNDQUxMX0JBU0UrMTk1KQorI2RlZmluZSBfX05SX2Ns b2NrX2dldHRpbWUJCShfX05SX1NZU0NBTExfQkFTRSsxOTYpCisjZGVmaW5lIF9fTlJfY2xvY2tf c2V0dGltZQkJKF9fTlJfU1lTQ0FMTF9CQVNFKzE5NykKKyNkZWZpbmUgX19OUl9jbG9ja19nZXRy ZXMJCShfX05SX1NZU0NBTExfQkFTRSsxOTgpCiAKICNkZWZpbmUgX19zeXMyKHgpICN4CiAjZGVm aW5lIF9fc3lzMSh4KSBfX3N5czIoeCkKZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2lu Y2x1ZGUvYXNtLWkzODYvc2lnaW5mby5oIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1pMzg2L3Np Z2luZm8uaAotLS0gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20taTM4Ni9zaWdpbmZv LmgJU3VuIEp1biAyMCAxMTozOTo1OSAxOTk5CisrKyBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20t aTM4Ni9zaWdpbmZvLmgJU2F0IEp1bCAyNCAxNjozMToyNyAxOTk5CkBAIC0zMSwxMyArMzEsMTQg QEAKIAkJc3RydWN0IHsKIAkJCXVuc2lnbmVkIGludCBfdGltZXIxOwogCQkJdW5zaWduZWQgaW50 IF90aW1lcjI7CisJCQlzaWd2YWxfdCBfc2lndmFsMjsJLyogRklYTUU6IG11c3QgbWFwIHRvIF9z aWd2YWwgYmVsb3cgYmVjYXVzZSBpdCBpcyB0aGUgc2FtZSAqLwogCQl9IF90aW1lcjsKIAogCQkv KiBQT1NJWC4xYiBzaWduYWxzICovCiAJCXN0cnVjdCB7CiAJCQlwaWRfdCBfcGlkOwkJLyogc2Vu ZGVyJ3MgcGlkICovCiAJCQl1aWRfdCBfdWlkOwkJLyogc2VuZGVyJ3MgdWlkICovCi0JCQlzaWd2 YWxfdCBfc2lndmFsOworCQkJc2lndmFsX3QgX3NpZ3ZhbDsJLyogRklYTUU6IG1vdmUgb3V0IG9m IHVuaW9uIHRvZ2V0aGVyIHdpdGggX3NpZ3ZhbDIgKi8KIAkJfSBfcnQ7CiAKIAkJLyogU0lHQ0hM RCAqLwpAQCAtNjcsNiArNjgsOCBAQAogICovCiAjZGVmaW5lIHNpX3BpZAkJX3NpZmllbGRzLl9r aWxsLl9waWQKICNkZWZpbmUgc2lfdWlkCQlfc2lmaWVsZHMuX2tpbGwuX3VpZAorI2RlZmluZSBz aV90aW1lcjEJX3NpZmllbGRzLl90aW1lci5fdGltZXIxCisjZGVmaW5lIHNpX3RpbWVyMglfc2lm aWVsZHMuX3RpbWVyLl90aW1lcjIKICNkZWZpbmUgc2lfc3RhdHVzCV9zaWZpZWxkcy5fc2lnY2hs ZC5fc3RhdHVzCiAjZGVmaW5lIHNpX3V0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5fdXRpbWUKICNk ZWZpbmUgc2lfc3RpbWUJX3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQpkaWZmIC1ydU4gbGludXgt Mi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20taTM4Ni91bmlzdGQuaCBsaW51eC0yLjMuMTEvaW5j bHVkZS9hc20taTM4Ni91bmlzdGQuaAotLS0gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9h c20taTM4Ni91bmlzdGQuaAlXZWQgSmFuIDIwIDIwOjA2OjI0IDE5OTkKKysrIGxpbnV4LTIuMy4x MS9pbmNsdWRlL2FzbS1pMzg2L3VuaXN0ZC5oCVNhdCBKdWwgMjQgMTY6MzE6MjcgMTk5OQpAQCAt MTk1LDYgKzE5NSwxNCBAQAogI2RlZmluZSBfX05SX2dldHBtc2cJCTE4OAkvKiBzb21lIHBlb3Bs ZSBhY3R1YWxseSB3YW50IHN0cmVhbXMgKi8KICNkZWZpbmUgX19OUl9wdXRwbXNnCQkxODkJLyog c29tZSBwZW9wbGUgYWN0dWFsbHkgd2FudCBzdHJlYW1zICovCiAjZGVmaW5lIF9fTlJfdmZvcmsJ CTE5MAorI2RlZmluZSBfX05SX3RpbWVyX2NyZWF0ZQkxOTEKKyNkZWZpbmUgX19OUl90aW1lcl9z ZXR0aW1lCTE5MgorI2RlZmluZSBfX05SX3RpbWVyX2dldHRpbWUJMTkzCisjZGVmaW5lIF9fTlJf dGltZXJfZ2V0b3ZlcnJ1bgkxOTQKKyNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUJMTk1CisjZGVm aW5lIF9fTlJfY2xvY2tfZ2V0dGltZQkxOTYKKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lCTE5 NworI2RlZmluZSBfX05SX2Nsb2NrX2dldHJlcwkxOTgKIAogLyogdXNlci12aXNpYmxlIGVycm9y IG51bWJlcnMgYXJlIGluIHRoZSByYW5nZSAtMSAtIC0xMjI6IHNlZSA8YXNtLWkzODYvZXJybm8u aD4gKi8KIApkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20tbTY4ay9z aWdpbmZvLmggbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLW02OGsvc2lnaW5mby5oCi0tLSBsaW51 eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2FzbS1tNjhrL3NpZ2luZm8uaAlXZWQgQXVnIDE5IDIy OjI0OjQ0IDE5OTgKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1tNjhrL3NpZ2luZm8uaAlT YXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkKQEAgLTY3LDYgKzY3LDggQEAKICAqLwogI2RlZmluZSBz aV9waWQJCV9zaWZpZWxkcy5fa2lsbC5fcGlkCiAjZGVmaW5lIHNpX3VpZAkJX3NpZmllbGRzLl9r aWxsLl91aWQKKyNkZWZpbmUgc2lfdGltZXIxCV9zaWZpZWxkcy5fdGltZXIuX3RpbWVyMQorI2Rl ZmluZSBzaV90aW1lcjIJX3NpZmllbGRzLl90aW1lci5fdGltZXIyCiAjZGVmaW5lIHNpX3N0YXR1 cwlfc2lmaWVsZHMuX3NpZ2NobGQuX3N0YXR1cwogI2RlZmluZSBzaV91dGltZQlfc2lmaWVsZHMu X3NpZ2NobGQuX3V0aW1lCiAjZGVmaW5lIHNpX3N0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5fc3Rp bWUKZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLW02OGsvdW5pc3Rk LmggbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLW02OGsvdW5pc3RkLmgKLS0tIGxpbnV4LTIuMy4x MS12YW5pbGxhL2luY2x1ZGUvYXNtLW02OGsvdW5pc3RkLmgJVHVlIEphbiAxOSAxOTo1ODozNCAx OTk5CisrKyBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20tbTY4ay91bmlzdGQuaAlTYXQgSnVsIDI0 IDE2OjMxOjI3IDE5OTkKQEAgLTE5NCw2ICsxOTQsMTQgQEAKICNkZWZpbmUgX19OUl9nZXRwbXNn CQkxODgJLyogc29tZSBwZW9wbGUgYWN0dWFsbHkgd2FudCBzdHJlYW1zICovCiAjZGVmaW5lIF9f TlJfcHV0cG1zZwkJMTg5CS8qIHNvbWUgcGVvcGxlIGFjdHVhbGx5IHdhbnQgc3RyZWFtcyAqLwog I2RlZmluZSBfX05SX3Zmb3JrCQkxOTAKKyNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUJMTkxCisj ZGVmaW5lIF9fTlJfdGltZXJfc2V0dGltZQkxOTIKKyNkZWZpbmUgX19OUl90aW1lcl9nZXR0aW1l CTE5MworI2RlZmluZSBfX05SX3RpbWVyX2dldG92ZXJydW4JMTk0CisjZGVmaW5lIF9fTlJfdGlt ZXJfZGVsZXRlCTE5NQorI2RlZmluZSBfX05SX2Nsb2NrX2dldHRpbWUJMTk2CisjZGVmaW5lIF9f TlJfY2xvY2tfc2V0dGltZQkxOTcKKyNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMJMTk4CiAKIC8q IHVzZXItdmlzaWJsZSBlcnJvciBudW1iZXJzIGFyZSBpbiB0aGUgcmFuZ2UgLTEgLSAtMTIyOiBz ZWUKICAgIDxhc20tbTY4ay9lcnJuby5oPiAqLwpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmls bGEvaW5jbHVkZS9hc20tbWlwcy9zaWdpbmZvLmggbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLW1p cHMvc2lnaW5mby5oCi0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2FzbS1taXBzL3Np Z2luZm8uaAlTdW4gSnVuIDIwIDExOjM5OjU5IDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRl L2FzbS1taXBzL3NpZ2luZm8uaAlTYXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkKQEAgLTc1LDYgKzc1 LDggQEAKICAqLwogI2RlZmluZSBzaV9waWQJCV9zaWZpZWxkcy5fa2lsbC5fcGlkCiAjZGVmaW5l IHNpX3VpZAkJX3NpZmllbGRzLl9raWxsLl91aWQKKyNkZWZpbmUgc2lfdGltZXIxCV9zaWZpZWxk cy5fdGltZXIuX3RpbWVyMQorI2RlZmluZSBzaV90aW1lcjIJX3NpZmllbGRzLl90aW1lci5fdGlt ZXIyCiAjZGVmaW5lIHNpX3N0YXR1cwlfc2lmaWVsZHMuX3NpZ2NobGQuX3N0YXR1cwogI2RlZmlu ZSBzaV91dGltZQlfc2lmaWVsZHMuX3NpZ2NobGQuX3V0aW1lCiAjZGVmaW5lIHNpX3N0aW1lCV9z aWZpZWxkcy5fc2lnY2hsZC5fc3RpbWUKZGlmZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2lu Y2x1ZGUvYXNtLW1pcHMvdW5pc3RkLmggbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLW1pcHMvdW5p c3RkLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLW1pcHMvdW5pc3RkLmgJ VGh1IEp1bCAgMSAyMDozNjozMyAxOTk5CisrKyBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20tbWlw cy91bmlzdGQuaAlTYXQgSnVsIDI0IDE2OjMxOjI3IDE5OTkKQEAgLTExOTYsNiArMTE5NiwxNCBA QAogI2RlZmluZSBfX05SX3NlbmRmaWxlCQkJKF9fTlJfTGludXggKyAyMDcpCiAjZGVmaW5lIF9f TlJfZ2V0cG1zZwkJCShfX05SX0xpbnV4ICsgMjA4KQogI2RlZmluZSBfX05SX3B1dHBtc2cJCQko X19OUl9MaW51eCArIDIwOSkKKyNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUJCShfX05SX0xpbnV4 ICsgMjEwKQorI2RlZmluZSBfX05SX3RpbWVyX3NldHRpbWUJCShfX05SX0xpbnV4ICsgMjExKQor I2RlZmluZSBfX05SX3RpbWVyX2dldHRpbWUJCShfX05SX0xpbnV4ICsgMjEyKQorI2RlZmluZSBf X05SX3RpbWVyX2dldG92ZXJydW4JCShfX05SX0xpbnV4ICsgMjEzKQorI2RlZmluZSBfX05SX3Rp bWVyX2RlbGV0ZQkJKF9fTlJfTGludXggKyAyMTQpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0dGlt ZQkJKF9fTlJfTGludXggKyAyMTUpCisjZGVmaW5lIF9fTlJfY2xvY2tfc2V0dGltZQkJKF9fTlJf TGludXggKyAyMTYpCisjZGVmaW5lIF9fTlJfY2xvY2tfZ2V0cmVzCQkoX19OUl9MaW51eCArIDIx NykKIAogLyoKICAqIE9mZnNldCBvZiB0aGUgbGFzdCBMaW51eCBmbGF2b3VyZWQgc3lzY2FsbApk aWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20tcHBjL3NpZ2luZm8uaCBs aW51eC0yLjMuMTEvaW5jbHVkZS9hc20tcHBjL3NpZ2luZm8uaAotLS0gbGludXgtMi4zLjExLXZh bmlsbGEvaW5jbHVkZS9hc20tcHBjL3NpZ2luZm8uaAlTdW4gSnVuIDIwIDExOjM5OjU5IDE5OTkK KysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1wcGMvc2lnaW5mby5oCVNhdCBKdWwgMjQgMTY6 MzE6MjcgMTk5OQpAQCAtNjcsNiArNjcsOCBAQAogICovCiAjZGVmaW5lIHNpX3BpZAkJX3NpZmll bGRzLl9raWxsLl9waWQKICNkZWZpbmUgc2lfdWlkCQlfc2lmaWVsZHMuX2tpbGwuX3VpZAorI2Rl ZmluZSBzaV90aW1lcjEJX3NpZmllbGRzLl90aW1lci5fdGltZXIxCisjZGVmaW5lIHNpX3RpbWVy Mglfc2lmaWVsZHMuX3RpbWVyLl90aW1lcjIKICNkZWZpbmUgc2lfc3RhdHVzCV9zaWZpZWxkcy5f c2lnY2hsZC5fc3RhdHVzCiAjZGVmaW5lIHNpX3V0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5fdXRp bWUKICNkZWZpbmUgc2lfc3RpbWUJX3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQpAQCAtMTIyLDcg KzEyNCw3IEBACiAgKiBTSUdTRUdWIHNpX2NvZGVzCiAgKi8KICNkZWZpbmUgU0VHVl9NQVBFUlIJ MQkvKiBhZGRyZXNzIG5vdCBtYXBwZWQgdG8gb2JqZWN0ICovCi0jZGVmaW5lIFNSR1ZfQUNDRVJS CTIJLyogaW52YWxpZCBwZXJtaXNzaW9ucyBmb3IgbWFwcGVkIG9iamVjdCAqLworI2RlZmluZSBT RUdWX0FDQ0VSUgkyCS8qIGludmFsaWQgcGVybWlzc2lvbnMgZm9yIG1hcHBlZCBvYmplY3QgKi8K ICNkZWZpbmUgTlNJR1NFR1YJMgogCiAvKgpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEv aW5jbHVkZS9hc20tcHBjL3VuaXN0ZC5oIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1wcGMvdW5p c3RkLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLXBwYy91bmlzdGQuaAlU aHUgSnVsICAxIDIwOjM2OjM0IDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1wcGMv dW5pc3RkLmgJU2F0IEp1bCAyNCAxNjozMToyNyAxOTk5CkBAIC0xOTQsNiArMTk0LDE0IEBACiAj ZGVmaW5lIF9fTlJfZ2V0cG1zZwkJMTg3CS8qIHNvbWUgcGVvcGxlIGFjdHVhbGx5IHdhbnQgc3Ry ZWFtcyAqLwogI2RlZmluZSBfX05SX3B1dHBtc2cJCTE4OAkvKiBzb21lIHBlb3BsZSBhY3R1YWxs eSB3YW50IHN0cmVhbXMgKi8KICNkZWZpbmUgX19OUl92Zm9yawkJMTg5CisjZGVmaW5lIF9fTlJf dGltZXJfY3JlYXRlCTE5MAorI2RlZmluZSBfX05SX3RpbWVyX3NldHRpbWUJMTkxCisjZGVmaW5l IF9fTlJfdGltZXJfZ2V0dGltZQkxOTIKKyNkZWZpbmUgX19OUl90aW1lcl9nZXRvdmVycnVuCTE5 MworI2RlZmluZSBfX05SX3RpbWVyX2RlbGV0ZQkxOTQKKyNkZWZpbmUgX19OUl9jbG9ja19nZXR0 aW1lCTE5NQorI2RlZmluZSBfX05SX2Nsb2NrX3NldHRpbWUJMTk2CisjZGVmaW5lIF9fTlJfY2xv Y2tfZ2V0cmVzCTE5NwogCiAjZGVmaW5lIF9fTlIobikJI24KIApkaWZmIC1ydU4gbGludXgtMi4z LjExLXZhbmlsbGEvaW5jbHVkZS9hc20tc3BhcmMvc2lnaW5mby5oIGxpbnV4LTIuMy4xMS9pbmNs dWRlL2FzbS1zcGFyYy9zaWdpbmZvLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUv YXNtLXNwYXJjL3NpZ2luZm8uaAlTdW4gSnVuIDIwIDExOjQwOjQzIDE5OTkKKysrIGxpbnV4LTIu My4xMS9pbmNsdWRlL2FzbS1zcGFyYy9zaWdpbmZvLmgJU2F0IEp1bCAyNCAxNjozMToyOCAxOTk5 CkBAIC03MCw2ICs3MCw4IEBACiAgKi8KICNkZWZpbmUgc2lfcGlkCQlfc2lmaWVsZHMuX2tpbGwu X3BpZAogI2RlZmluZSBzaV91aWQJCV9zaWZpZWxkcy5fa2lsbC5fdWlkCisjZGVmaW5lIHNpX3Rp bWVyMQlfc2lmaWVsZHMuX3RpbWVyLl90aW1lcjEKKyNkZWZpbmUgc2lfdGltZXIyCV9zaWZpZWxk cy5fdGltZXIuX3RpbWVyMgogI2RlZmluZSBzaV9zdGF0dXMJX3NpZmllbGRzLl9zaWdjaGxkLl9z dGF0dXMKICNkZWZpbmUgc2lfdXRpbWUJX3NpZmllbGRzLl9zaWdjaGxkLl91dGltZQogI2RlZmlu ZSBzaV9zdGltZQlfc2lmaWVsZHMuX3NpZ2NobGQuX3N0aW1lCkBAIC0xMjYsNyArMTI4LDcgQEAK ICAqIFNJR1NFR1Ygc2lfY29kZXMKICAqLwogI2RlZmluZSBTRUdWX01BUEVSUgkxCS8qIGFkZHJl c3Mgbm90IG1hcHBlZCB0byBvYmplY3QgKi8KLSNkZWZpbmUgU1JHVl9BQ0NFUlIJMgkvKiBpbnZh bGlkIHBlcm1pc3Npb25zIGZvciBtYXBwZWQgb2JqZWN0ICovCisjZGVmaW5lIFNFR1ZfQUNDRVJS CTIJLyogaW52YWxpZCBwZXJtaXNzaW9ucyBmb3IgbWFwcGVkIG9iamVjdCAqLwogI2RlZmluZSBO U0lHU0VHVgkyCiAKIC8qCmRpZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2Fz bS1zcGFyYy91bmlzdGQuaCBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20tc3BhcmMvdW5pc3RkLmgK LS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvYXNtLXNwYXJjL3VuaXN0ZC5oCVN1biBK dW4gMjAgMTE6NDA6MDAgMTk5OQorKysgbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLXNwYXJjL3Vu aXN0ZC5oCVNhdCBKdWwgMjQgMTY6MzE6MjggMTk5OQpAQCAtMjcxLDYgKzI3MSwxNCBAQAogI2Rl ZmluZSBfX05SX2ZkYXRhc3luYyAgICAgICAgICAyNTMKICNkZWZpbmUgX19OUl9uZnNzZXJ2Y3Rs ICAgICAgICAgMjU0CiAjZGVmaW5lIF9fTlJfYXBsaWIgICAgICAgICAgICAgIDI1NQorI2RlZmlu ZSBfX05SX3RpbWVyX2NyZWF0ZQkyNTYKKyNkZWZpbmUgX19OUl90aW1lcl9zZXR0aW1lCTI1Nwor I2RlZmluZSBfX05SX3RpbWVyX2dldHRpbWUJMjU4CisjZGVmaW5lIF9fTlJfdGltZXJfZ2V0b3Zl cnJ1bgkyNTkKKyNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUJMjYwCisjZGVmaW5lIF9fTlJfY2xv Y2tfZ2V0dGltZQkyNjEKKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lCTI2MgorI2RlZmluZSBf X05SX2Nsb2NrX2dldHJlcwkyNjMKIAogI2RlZmluZSBfc3lzY2FsbDAodHlwZSxuYW1lKSBcCiB0 eXBlIG5hbWUodm9pZCkgXApkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9h c20tc3BhcmM2NC9zaWdpbmZvLmggbGludXgtMi4zLjExL2luY2x1ZGUvYXNtLXNwYXJjNjQvc2ln aW5mby5oCi0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2FzbS1zcGFyYzY0L3NpZ2lu Zm8uaAlTdW4gSnVuIDIwIDExOjQwOjAwIDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2Fz bS1zcGFyYzY0L3NpZ2luZm8uaAlTYXQgSnVsIDI0IDE2OjMxOjI4IDE5OTkKQEAgLTEyOSw2ICsx MjksOCBAQAogICovCiAjZGVmaW5lIHNpX3BpZAkJX3NpZmllbGRzLl9raWxsLl9waWQKICNkZWZp bmUgc2lfdWlkCQlfc2lmaWVsZHMuX2tpbGwuX3VpZAorI2RlZmluZSBzaV90aW1lcjEJX3NpZmll bGRzLl90aW1lci5fdGltZXIxCisjZGVmaW5lIHNpX3RpbWVyMglfc2lmaWVsZHMuX3RpbWVyLl90 aW1lcjIKICNkZWZpbmUgc2lfc3RhdHVzCV9zaWZpZWxkcy5fc2lnY2hsZC5fc3RhdHVzCiAjZGVm aW5lIHNpX3V0aW1lCV9zaWZpZWxkcy5fc2lnY2hsZC5fdXRpbWUKICNkZWZpbmUgc2lfc3RpbWUJ X3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQpAQCAtMTg1LDcgKzE4Nyw3IEBACiAgKiBTSUdTRUdW IHNpX2NvZGVzCiAgKi8KICNkZWZpbmUgU0VHVl9NQVBFUlIJMQkvKiBhZGRyZXNzIG5vdCBtYXBw ZWQgdG8gb2JqZWN0ICovCi0jZGVmaW5lIFNSR1ZfQUNDRVJSCTIJLyogaW52YWxpZCBwZXJtaXNz aW9ucyBmb3IgbWFwcGVkIG9iamVjdCAqLworI2RlZmluZSBTRUdWX0FDQ0VSUgkyCS8qIGludmFs aWQgcGVybWlzc2lvbnMgZm9yIG1hcHBlZCBvYmplY3QgKi8KICNkZWZpbmUgTlNJR1NFR1YJMgog CiAvKgpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20tc3BhcmM2NC91 bmlzdGQuaCBsaW51eC0yLjMuMTEvaW5jbHVkZS9hc20tc3BhcmM2NC91bmlzdGQuaAotLS0gbGlu dXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9hc20tc3BhcmM2NC91bmlzdGQuaAlTdW4gSnVuIDIw IDExOjQwOjAwIDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2FzbS1zcGFyYzY0L3VuaXN0 ZC5oCVNhdCBKdWwgMjQgMTY6MzE6MjggMTk5OQpAQCAtMjcxLDYgKzI3MSwxNCBAQAogI2RlZmlu ZSBfX05SX2ZkYXRhc3luYyAgICAgICAgICAyNTMKICNkZWZpbmUgX19OUl9uZnNzZXJ2Y3RsICAg ICAgICAgMjU0CiAjZGVmaW5lIF9fTlJfYXBsaWIgICAgICAgICAgICAgIDI1NQorI2RlZmluZSBf X05SX3RpbWVyX2NyZWF0ZQkyNTYKKyNkZWZpbmUgX19OUl90aW1lcl9zZXR0aW1lCTI1NworI2Rl ZmluZSBfX05SX3RpbWVyX2dldHRpbWUJMjU4CisjZGVmaW5lIF9fTlJfdGltZXJfZ2V0b3ZlcnJ1 bgkyNTkKKyNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUJMjYwCisjZGVmaW5lIF9fTlJfY2xvY2tf Z2V0dGltZQkyNjEKKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lCTI2MgorI2RlZmluZSBfX05S X2Nsb2NrX2dldHJlcwkyNjMKIAogI2RlZmluZSBfc3lzY2FsbDAodHlwZSxuYW1lKSBcCiB0eXBl IG5hbWUodm9pZCkgXApkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEvaW5jbHVkZS9saW51 eC9saW1pdHMuaCBsaW51eC0yLjMuMTEvaW5jbHVkZS9saW51eC9saW1pdHMuaAotLS0gbGludXgt Mi4zLjExLXZhbmlsbGEvaW5jbHVkZS9saW51eC9saW1pdHMuaAlUdWUgRGVjICAyIDIyOjQ0OjQw IDE5OTcKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2xpbnV4L2xpbWl0cy5oCVNhdCBKdWwgMjQg MTY6MzE6MjggMTk5OQpAQCAtMTQsNiArMTQsOCBAQAogI2RlZmluZSBQQVRIX01BWCAgICAgICAg NDA5NQkvKiAjIGNoYXJzIGluIGEgcGF0aCBuYW1lICovCiAjZGVmaW5lIFBJUEVfQlVGICAgICAg ICA0MDk2CS8qICMgYnl0ZXMgaW4gYXRvbWljIHdyaXRlIHRvIGEgcGlwZSAqLwogCisjZGVmaW5l IE1BWF9JVElNRVJTICAgICAgIDMyICAgIC8qICMgUE9TSVguMWIgaXRpbWVycyBwZXIgcHJvY2Vz cyAqLworCiAjZGVmaW5lIFJUU0lHX01BWAkgIDMyCiAKICNlbmRpZgpkaWZmIC1ydU4gbGludXgt Mi4zLjExLXZhbmlsbGEvaW5jbHVkZS9saW51eC9zY2hlZC5oIGxpbnV4LTIuMy4xMS9pbmNsdWRl L2xpbnV4L3NjaGVkLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1ZGUvbGludXgvc2No ZWQuaAlTYXQgSnVsIDI0IDE2OjI2OjEzIDE5OTkKKysrIGxpbnV4LTIuMy4xMS9pbmNsdWRlL2xp bnV4L3NjaGVkLmgJU2F0IEp1bCAyNCAxNjo0Njo1NiAxOTk5CkBAIC0zNSw2ICszNSw3IEBACiAj ZGVmaW5lIENMT05FX1BJRAkweDAwMDAxMDAwCS8qIHNldCBpZiBwaWQgc2hhcmVkICovCiAjZGVm aW5lIENMT05FX1BUUkFDRQkweDAwMDAyMDAwCS8qIHNldCBpZiB3ZSB3YW50IHRvIGxldCB0cmFj aW5nIGNvbnRpbnVlIG9uIHRoZSBjaGlsZCB0b28gKi8KICNkZWZpbmUgQ0xPTkVfVkZPUksJMHgw MDAwNDAwMAkvKiBzZXQgaWYgdGhlIHBhcmVudCB3YW50cyB0aGUgY2hpbGQgdG8gd2FrZSBpdCB1 cCBvbiBtbV9yZWxlYXNlICovCisjZGVmaW5lIENMT05FX0lUSU1FUlMgICAweDAwMDA4MDAwICAg ICAgLyogc2V0IGlmIFBPU0lYLjFiIGl0aW1lcnMgYXJlIHNoYXJlZCAqLwogCiAvKgogICogVGhl c2UgYXJlIHRoZSBjb25zdGFudCB1c2VkIHRvIGZha2UgdGhlIGZpeGVkLXBvaW50IGxvYWQtYXZl cmFnZQpAQCAtMjIzLDYgKzIyNCwyNiBAQAogICovCiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Q7CiAKKy8q IFBPU0lYLjFiIGludGVydmFsIHRpbWVyIHN0cnVjdHVyZS4gKi8KK3N0cnVjdCBrX2l0aW1lciB7 CisJc3BpbmxvY2tfdCBpdF9sb2NrOworCWNsb2NraWRfdCBpdF9jbG9jazsJCS8qIHdoaWNoIHRp bWVyIHR5cGUgKi8KKwl0aW1lcl90IGl0X2lkOwkJCS8qIHRpbWVyIGlkICovCisJaW50IGl0X292 ZXJydW47CQkJLyogbnVtYmVyIG9mIHNpZ25hbHMgb3ZlcnJ1biAqLworCXN0cnVjdCBzaWdldmVu dCBpdF9zaWduYWw7CS8qIHNpZ25hbCB0byBiZSBkZWxpdmVyZWQgKi8KKwlzdHJ1Y3QgdGltZXNw ZWMgaXRfaW50ZXJ2YWw7CS8qIGludGVydmFsIChyb3VuZGVkIHRvIGppZmZpZXMpICovCisJaW50 IGl0X2luY3I7CQkJLyogaW50ZXJ2YWwgc3BlY2lmaWVkIGluIGppZmZpZXMgKi8KKwlzdHJ1Y3Qg dGFza19zdHJ1Y3QgKml0X3Byb2Nlc3M7CS8qIHByb2Nlc3MgdG8gc2VuZCBzaWduYWwgdG8gKi8K KwlzdHJ1Y3QgdGltZXJfbGlzdCBpdF90aW1lcjsKK307CisKKy8qIFN0cnVjdHVyZSB0byBtYWlu dGFpbiB0aGUgZHluYW1pY2FsbHkgY3JlYXRlZCBQT1NJWC4xYiBpbnRlcnZhbCB0aW1lcnMuICov CitzdHJ1Y3QgaXRpbWVyX3N0cnVjdCB7CisJYXRvbWljX3QgY291bnQ7CisJc3BpbmxvY2tfdCBp dHNfbG9jazsKKwlzdHJ1Y3Qga19pdGltZXIgKml0aW1lcltNQVhfSVRJTUVSU107CQorfTsKKwog c3RydWN0IHRhc2tfc3RydWN0IHsKIC8qIHRoZXNlIGFyZSBoYXJkY29kZWQgLSBkb24ndCB0b3Vj aCAqLwogCXZvbGF0aWxlIGxvbmcgc3RhdGU7CS8qIC0xIHVucnVubmFibGUsIDAgcnVubmFibGUs ID4wIHN0b3BwZWQgKi8KQEAgLTI3OCw2ICsyOTksNyBAQAogCXVuc2lnbmVkIGxvbmcgaXRfcmVh bF92YWx1ZSwgaXRfcHJvZl92YWx1ZSwgaXRfdmlydF92YWx1ZTsKIAl1bnNpZ25lZCBsb25nIGl0 X3JlYWxfaW5jciwgaXRfcHJvZl9pbmNyLCBpdF92aXJ0X2luY3I7CiAJc3RydWN0IHRpbWVyX2xp c3QgcmVhbF90aW1lcjsKKwlzdHJ1Y3QgaXRpbWVyX3N0cnVjdCAqcG9zaXhfdGltZXJzOyAvKiBQ T1NJWC4xYiBJbnRlcnZhbCBUaW1lcnMgKi8KIAlzdHJ1Y3QgdG1zIHRpbWVzOwogCXVuc2lnbmVk IGxvbmcgc3RhcnRfdGltZTsKIAlsb25nIHBlcl9jcHVfdXRpbWVbTlJfQ1BVU10sIHBlcl9jcHVf c3RpbWVbTlJfQ1BVU107CkBAIC0zMTUsNiArMzM3LDcgQEAKIAlzcGlubG9ja190IHNpZ21hc2tf bG9jazsJLyogUHJvdGVjdHMgc2lnbmFsIGFuZCBibG9ja2VkICovCiAJc3RydWN0IHNpZ25hbF9z dHJ1Y3QgKnNpZzsKIAlzaWdzZXRfdCBzaWduYWwsIGJsb2NrZWQ7CisJc2lnaW5mb190IG5ydF9p bmZvW1NJR1JUTUlOXTsJLyogc2lnaW5mbyBmb3Igbm9uIFJUIHNpZ25hbHMgKi8KIAlzdHJ1Y3Qg c2lnbmFsX3F1ZXVlICpzaWdxdWV1ZSwgKipzaWdxdWV1ZV90YWlsOwogCXVuc2lnbmVkIGxvbmcg c2FzX3NzX3NwOwogCXNpemVfdCBzYXNfc3Nfc2l6ZTsKQEAgLTM2NCw2ICszODcsNyBAQAogLyog Y2hsZCB3YWl0ICovCV9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJQUxJWkVSKG5hbWUud2FpdF9jaGxk ZXhpdCksIE5VTEwsIFwKIC8qIHRpbWVvdXQgKi8JU0NIRURfT1RIRVIsMCwwLDAsMCwwLDAsMCwg XAogLyogdGltZXIgKi8JeyBOVUxMLCBOVUxMLCAwLCAwLCBpdF9yZWFsX2ZuIH0sIFwKKy8qIFBP U0lYLjFiIHRpbWVyICovIE5VTEwsIFwKIC8qIHV0aW1lICovCXswLDAsMCwwfSwwLCBcCiAvKiBw ZXIgQ1BVIHRpbWVzICovIHswLCB9LCB7MCwgfSwgXAogLyogZmx0ICovCTAsMCwwLDAsMCwwLCBc CkBAIC0zODIsNyArNDA2LDcgQEAKIC8qIGZzICovCSZpbml0X2ZzLCBcCiAvKiBmaWxlcyAqLwkm aW5pdF9maWxlcywgXAogLyogbW0gKi8JTlVMTCwgJmluaXRfbW0sIFwKLS8qIHNpZ25hbHMgKi8J U1BJTl9MT0NLX1VOTE9DS0VELCAmaW5pdF9zaWduYWxzLCB7ezB9fSwge3swfX0sIE5VTEwsICZp bml0X3Rhc2suc2lncXVldWUsIDAsIDAsIFwKKy8qIHNpZ25hbHMgKi8JU1BJTl9MT0NLX1VOTE9D S0VELCAmaW5pdF9zaWduYWxzLCB7ezB9fSwge3swfX0sIHt7MCx9LH0sIE5VTEwsICZpbml0X3Rh c2suc2lncXVldWUsIDAsIDAsIFwKIH0KIAogI2lmbmRlZiBJTklUX1RBU0tfU0laRQpAQCAtNjE0 LDYgKzYzOCw3IEBACiBleHRlcm4gdm9pZCBleGl0X2ZzKHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK IGV4dGVybiB2b2lkIGV4aXRfZmlsZXMoc3RydWN0IHRhc2tfc3RydWN0ICopOwogZXh0ZXJuIHZv aWQgZXhpdF9zaWdoYW5kKHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsKK2V4dGVybiB2b2lkIGV4aXRf aXRpbWVycyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CiAKIGV4dGVybiBpbnQgZG9fZXhlY3ZlKGNo YXIgKiwgY2hhciAqKiwgY2hhciAqKiwgc3RydWN0IHB0X3JlZ3MgKik7CiBleHRlcm4gaW50IGRv X2ZvcmsodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgc3RydWN0IHB0X3JlZ3MgKik7CmRp ZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9pbmNsdWRlL2xpbnV4L3RpbWUuaCBsaW51eC0y LjMuMTEvaW5jbHVkZS9saW51eC90aW1lLmgKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2luY2x1 ZGUvbGludXgvdGltZS5oCU1vbiBEZWMgMjggMDc6MTg6MjggMTk5OAorKysgbGludXgtMi4zLjEx L2luY2x1ZGUvbGludXgvdGltZS5oCVNhdCBKdWwgMjQgMTY6MzE6MjggMTk5OQpAQCAtMjYsNiAr MjYsMTkgQEAKICAqLwogI2RlZmluZSBNQVhfSklGRllfT0ZGU0VUICgofjBVTCA+PiAxKS0xKQog CisvKiBQYXJhbWV0ZXJzIHVzZWQgdG8gY29udmVydCB0aGUgdGltZXNwZWMgdmFsdWVzICovCisj aWZuZGVmIFVTRUNfUEVSX1NFQworI2RlZmluZSBVU0VDX1BFUl9TRUMgKDEwMDAwMDBMKQorI2Vu ZGlmCisKKyNpZm5kZWYgTlNFQ19QRVJfU0VDCisjZGVmaW5lIE5TRUNfUEVSX1NFQyAoMTAwMDAw MDAwMEwpCisjZW5kaWYKKworI2lmbmRlZiBOU0VDX1BFUl9VU0VDCisjZGVmaW5lIE5TRUNfUEVS X1VTRUMgKDEwMDBMKQorI2VuZGlmCisKIHN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcK IHRpbWVzcGVjX3RvX2ppZmZpZXMoc3RydWN0IHRpbWVzcGVjICp2YWx1ZSkKIHsKQEAgLTM0LDE1 ICs0NywxNSBAQAogCiAJaWYgKHNlYyA+PSAoTUFYX0pJRkZZX09GRlNFVCAvIEhaKSkKIAkJcmV0 dXJuIE1BWF9KSUZGWV9PRkZTRVQ7Ci0JbnNlYyArPSAxMDAwMDAwMDAwTCAvIEhaIC0gMTsKLQlu c2VjIC89IDEwMDAwMDAwMDBMIC8gSFo7CisJbnNlYyArPSBOU0VDX1BFUl9TRUMgLyBIWiAtIDE7 CisJbnNlYyAvPSBOU0VDX1BFUl9TRUMgLyBIWjsKIAlyZXR1cm4gSFogKiBzZWMgKyBuc2VjOwog fQogCiBzdGF0aWMgX19pbmxpbmVfXyB2b2lkCiBqaWZmaWVzX3RvX3RpbWVzcGVjKHVuc2lnbmVk IGxvbmcgamlmZmllcywgc3RydWN0IHRpbWVzcGVjICp2YWx1ZSkKIHsKLQl2YWx1ZS0+dHZfbnNl YyA9IChqaWZmaWVzICUgSFopICogKDEwMDAwMDAwMDBMIC8gSFopOworCXZhbHVlLT50dl9uc2Vj ID0gKGppZmZpZXMgJSBIWikgKiAoTlNFQ19QRVJfU0VDIC8gSFopOwogCXZhbHVlLT50dl9zZWMg PSBqaWZmaWVzIC8gSFo7CiB9CiAgCkBAIC04OCw1ICsxMDEsMjQgQEAKIAlzdHJ1Y3QJdGltZXZh bCBpdF9pbnRlcnZhbDsJLyogdGltZXIgaW50ZXJ2YWwgKi8KIAlzdHJ1Y3QJdGltZXZhbCBpdF92 YWx1ZTsJLyogY3VycmVudCB2YWx1ZSAqLwogfTsKKworCisvKiAKKyAqIERhdGEgdHlwZXMgZm9y IFBPU0lYLjFiIGludGVydmFsIHRpbWVycy4KKyAqLwordHlwZWRlZiBpbnQgY2xvY2tpZF90Owor dHlwZWRlZiBpbnQgdGltZXJfdDsKKworLyoKKyAqIFRoZSBJRHMgb2YgdGhlIHZhcmlvdXMgc3lz dGVtIGNsb2NrcyAoZm9yIFBPU0lYLjFiIGludGVydmFsIHRpbWVycykuCisgKi8KKyNkZWZpbmUg Q0xPQ0tfUkVBTFRJTUUgMAorCisvKgorICogVGhlIHZhcmlvdXMgZmxhZ3MgZm9yIHNldHRpbmcg UE9TSVguMWIgaW50ZXJ2YWwgdGltZXJzLgorICovCisKKyNkZWZpbmUgVElNRVJfQUJTVElNRSAw eDAxCisKIAogI2VuZGlmCmRpZmYgLXJ1TiBsaW51eC0yLjMuMTEtdmFuaWxsYS9rZXJuZWwvZXhp dC5jIGxpbnV4LTIuMy4xMS9rZXJuZWwvZXhpdC5jCi0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9r ZXJuZWwvZXhpdC5jCVNhdCBKdWwgMjQgMTY6MjY6MTMgMTk5OQorKysgbGludXgtMi4zLjExL2tl cm5lbC9leGl0LmMJU2F0IEp1bCAyNCAxNjozNzowNSAxOTk5CkBAIC0yMjksNiArMjI5LDM0IEBA CiAJX19leGl0X3NpZ2hhbmQodHNrKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIF9fZXhpdF9p dGltZXJzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoreworCXN0cnVjdCBpdGltZXJfc3RydWN0 ICp0aW1lcnMgPSB0c2stPnBvc2l4X3RpbWVyczsKKwlzdHJ1Y3Qga19pdGltZXIgKnRpbXI7CisJ aW50IGk7CisKKwlpZiAodGltZXJzID09IE5VTEwpIHJldHVybjsKKwkKKwlpZiAoYXRvbWljX2Rl Y19hbmRfdGVzdCgmdGltZXJzLT5jb3VudCkpIHsKKwkJdHNrLT5wb3NpeF90aW1lcnMgPSBOVUxM OworCQlmb3IgKGkgPSAwOyBpIDwgTUFYX0lUSU1FUlM7IGkrKykgeworCQkJdGltciA9IHRpbWVy cy0+aXRpbWVyW2ldOworCQkJaWYgKHRpbXIpIHsKKwkJCQlzdGFydF9iaF9hdG9taWMoKTsKKwkJ CQlkZWxfdGltZXIoJnRpbXItPml0X3RpbWVyKTsKKwkJCQllbmRfYmhfYXRvbWljKCk7CisJCQkJ a2ZyZWUodGltcik7CisJCQl9CisJCX0KKwkJa2ZyZWUodGltZXJzKTsKKwl9Cit9CisKK3ZvaWQg ZXhpdF9pdGltZXJzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQoreworCV9fZXhpdF9pdGltZXJz KHRzayk7Cit9CisKIC8qCiAgKiBUdXJuIHVzIGludG8gYSBsYXp5IFRMQiBwcm9jZXNzIGlmIHdl CiAgKiBhcmVuJ3QgYWxyZWFkeS4uCkBAIC0zNTIsNiArMzgwLDcgQEAKIAlfX2V4aXRfZmlsZXMo dHNrKTsKIAlfX2V4aXRfZnModHNrKTsKIAlfX2V4aXRfc2lnaGFuZCh0c2spOworCV9fZXhpdF9p dGltZXJzKHRzayk7CiAJZXhpdF90aHJlYWQoKTsKIAl0c2stPnN0YXRlID0gVEFTS19aT01CSUU7 CiAJdHNrLT5leGl0X2NvZGUgPSBjb2RlOwpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEv a2VybmVsL2ZvcmsuYyBsaW51eC0yLjMuMTEva2VybmVsL2ZvcmsuYwotLS0gbGludXgtMi4zLjEx LXZhbmlsbGEva2VybmVsL2ZvcmsuYwlTYXQgSnVsIDI0IDE2OjI2OjE0IDE5OTkKKysrIGxpbnV4 LTIuMy4xMS9rZXJuZWwvZm9yay5jCVNhdCBKdWwgMjQgMTY6MzQ6MjcgMTk5OQpAQCAtNTUxLDYg KzU1MSwyNCBAQAogCXAtPmZsYWdzID0gbmV3X2ZsYWdzOwogfQogCisKK3N0YXRpYyBpbmxpbmUg aW50IGNvcHlfaXRpbWVycyh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzLCBzdHJ1Y3QgdGFza19z dHJ1Y3QgKiB0c2spCit7CisJaWYgKGNsb25lX2ZsYWdzICYgQ0xPTkVfSVRJTUVSUykgeworCQlh dG9taWNfaW5jKCZ0c2stPnBvc2l4X3RpbWVycy0+Y291bnQpOworCQlyZXR1cm4gMDsKKwl9CisK Kwl0c2stPnBvc2l4X3RpbWVycyA9IGttYWxsb2Moc2l6ZW9mKCp0c2stPnBvc2l4X3RpbWVycyks IEdGUF9LRVJORUwpOworCWlmICh0c2stPnBvc2l4X3RpbWVycyA9PSBOVUxMKSByZXR1cm4gLTE7 CisJc3Bpbl9sb2NrX2luaXQoJnRzay0+cG9zaXhfdGltZXJzLT5pdHNfbG9jayk7CisJYXRvbWlj X3NldCgmdHNrLT5wb3NpeF90aW1lcnMtPmNvdW50LCAxKTsKKwltZW1zZXQodHNrLT5wb3NpeF90 aW1lcnMtPml0aW1lciwgMCwgc2l6ZW9mKHRzay0+cG9zaXhfdGltZXJzLT5pdGltZXIpKTsKKwor CXJldHVybiAwOworfQorCisKIC8qCiAgKiAgT2ssIHRoaXMgaXMgdGhlIG1haW4gZm9yay1yb3V0 aW5lLiBJdCBjb3BpZXMgdGhlIHN5c3RlbSBwcm9jZXNzCiAgKiBpbmZvcm1hdGlvbiAodGFza1tu cl0pIGFuZCBzZXRzIHVwIHRoZSBuZWNlc3NhcnkgcmVnaXN0ZXJzLiBJdApAQCAtNjQ5LDYgKzY2 Nyw4IEBACiAJCWdvdG8gYmFkX2ZvcmtfY2xlYW51cF9maWxlczsKIAlpZiAoY29weV9zaWdoYW5k KGNsb25lX2ZsYWdzLCBwKSkKIAkJZ290byBiYWRfZm9ya19jbGVhbnVwX2ZzOworCWlmIChjb3B5 X2l0aW1lcnMoY2xvbmVfZmxhZ3MsIHApKQorCQlnb3RvIGJhZF9mb3JrX2NsZWFudXBfaXRpbWVy czsKIAlpZiAoY29weV9tbShjbG9uZV9mbGFncywgcCkpCiAJCWdvdG8gYmFkX2ZvcmtfY2xlYW51 cF9zaWdoYW5kOwogCXJldHZhbCA9IGNvcHlfdGhyZWFkKDAsIGNsb25lX2ZsYWdzLCB1c3AsIHAs IHJlZ3MpOwpAQCAtNjkzLDYgKzcxMyw4IEBACiAJCWRvd24oJnNlbSk7CiAJcmV0dXJuIHJldHZh bDsKIAorYmFkX2ZvcmtfY2xlYW51cF9pdGltZXJzOgorCWV4aXRfaXRpbWVycyhwKTsKIGJhZF9m b3JrX2NsZWFudXBfc2lnaGFuZDoKIAlleGl0X3NpZ2hhbmQocCk7CiBiYWRfZm9ya19jbGVhbnVw X2ZzOgpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEva2VybmVsL2l0aW1lci5jIGxpbnV4 LTIuMy4xMS9rZXJuZWwvaXRpbWVyLmMKLS0tIGxpbnV4LTIuMy4xMS12YW5pbGxhL2tlcm5lbC9p dGltZXIuYwlUdWUgTm92IDI0IDIyOjUxOjQ0IDE5OTgKKysrIGxpbnV4LTIuMy4xMS9rZXJuZWwv aXRpbWVyLmMJU2F0IEp1bCAyNCAxNjozMToyOCAxOTk5CkBAIC05LDE0ICs5LDE2IEBACiAjaW5j bHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21hbGxvYy5oPgorI2luY2x1ZGUg PGxpbnV4L3RpbWUuaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKIC8qCi0gKiBjaGFu Z2UgdGltZXZhbCB0byBqaWZmaWVzLCB0cnlpbmcgdG8gYXZvaWQgdGhlIAorICogY2hhbmdlIHRp bWV2YWwgdG8gamlmZmllcywgdHJ5aW5nIHRvIGF2b2lkIHRoZQogICogbW9zdCBvYnZpb3VzIG92 ZXJmbG93cy4uCiAgKgotICogVGhlIHR2XypzZWMgdmFsdWVzIGFyZSBzaWduZWQsIGJ1dCBub3Ro aW5nIHNlZW1zIHRvIAorICogVGhlIHR2XypzZWMgdmFsdWVzIGFyZSBzaWduZWQsIGJ1dCBub3Ro aW5nIHNlZW1zIHRvCiAgKiBpbmRpY2F0ZSB3aGV0aGVyIHdlIHJlYWxseSBzaG91bGQgdXNlIHRo ZW0gYXMgc2lnbmVkIHZhbHVlcwogICogd2hlbiBkb2luZyBpdGltZXJzLiBQT1NJWCBkb2Vzbid0 IG1lbnRpb24gdGhpcyAoYnV0IGlmCiAgKiBhbGFybSgpIHVzZXMgaXRpbWVycyB3aXRob3V0IGNo ZWNraW5nLCB3ZSBoYXZlIHRvIHVzZSB1bnNpZ25lZApAQCAtMTY4LDYgKzE3MCwzODkgQEAKIAkJ cmV0dXJuIGVycm9yOwogCiAJaWYgKGNvcHlfdG9fdXNlcihvdmFsdWUsICZnZXRfYnVmZmVyLCBz aXplb2YoZ2V0X2J1ZmZlcikpKQotCQlyZXR1cm4gLUVGQVVMVDsgCisJCXJldHVybiAtRUZBVUxU OworCXJldHVybiAwOworfQorCisvKiBQUkVDT05ESVRJT046CisgKiB0aW1yLT5pdF9sb2NrIG11 c3QgYmUgbG9ja2VkCisgKi8KK3N0YXRpYyB2b2lkIHRpbWVyX25vdGlmeV90YXNrKHN0cnVjdCBr X2l0aW1lciAqdGltcikKK3sKKwlzdHJ1Y3Qgc2lnaW5mbyBpbmZvOworCWludCByZXQ7CisKKwlp ZiAodGltci0+aXRfc2lnbmFsLnNpZ2V2X25vdGlmeSA9PSBTSUdFVl9TSUdOQUwpIHsKKworCQkv KiBTZW5kIHNpZ25hbCB0byB0aGUgcHJvY2VzcyB0aGF0IG93bnMgdGhpcyB0aW1lci4gKi8KKwkJ aW5mby5zaV9zaWdubyA9IHRpbXItPml0X3NpZ25hbC5zaWdldl9zaWdubzsKKwkJaW5mby5zaV9l cnJubyA9IDA7CisJCWluZm8uc2lfY29kZSA9IFNJX1RJTUVSOworCQkvKiBUT0RPOiBpZiBzb21l b25lIGhhcyBiZXR0ZXIgaWRlYXMgd2hhdCB0byBwdXQgaW4gCisJCSAqIHRoZSBuZXh0IHR3byBm aWVsZHMuLi4KKwkJICogc2lfdGltZXIxIGlzIGN1cnJlbnRseSB1c2VkIGluIHNpZ25hbC5jIHRv IGNoZWNrCisJCSAqIHdoZXRoZXIgYSBzaWduYWwgZnJvbSB0aGlzIHRpbWVyIGlzIGFscmVhZHkg aW4gdGhlIHNpZ25hbAorCQkgKiBxdWV1ZS4KKwkJICovCisJCWluZm8uc2lfdGltZXIxID0gdGlt ci0+aXRfaWQ7CisJCWluZm8uc2lfdGltZXIyID0gMDsKKwkJaW5mby5zaV92YWx1ZSA9IHRpbXIt Pml0X3NpZ25hbC5zaWdldl92YWx1ZTsKKwkJcmV0ID0gc2VuZF9zaWdfaW5mbyhpbmZvLnNpX3Np Z25vLCAmaW5mbywgdGltci0+aXRfcHJvY2Vzcyk7CisJCXN3aXRjaCAocmV0KSB7CisJCWNhc2Ug MDoJCS8qIGFsbCdzIHdlbGwgKi8KKwkJCXRpbXItPml0X292ZXJydW4gPSAwOworCQkJYnJlYWs7 CisJCWNhc2UgMToJLyogc2lnbmFsIGZyb20gdGhpcyB0aW1lciB3YXMgYWxyZWFkeSBpbiB0aGUg cXVldWUgKi8KKwkJCXRpbXItPml0X292ZXJydW4rKzsKKwkJCWJyZWFrOworCQlkZWZhdWx0Ogor CQkJcHJpbnRrKEtFUk5fV0FSTklORyAic2VuZGluZyBzaWduYWwgZmFpbGVkOiAlZFxuIiwgcmV0 KTsKKwkJCWJyZWFrOworCQl9CisJfQorfQorCisvKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVk IHdoZW4gYSBQT1NJWC4xYiBpbnRlcnZhbCB0aW1lciBleHBpcmVzLiAqLworc3RhdGljIHZvaWQg cG9zaXhfdGltZXJfZm4odW5zaWduZWQgbG9uZyBfX2RhdGEpCit7ICAKKwlzdHJ1Y3Qga19pdGlt ZXIgKnRpbXIgPSAoc3RydWN0IGtfaXRpbWVyICopX19kYXRhOworCXVuc2lnbmVkIGxvbmcgaW50 ZXJ2YWw7CisKKwlzcGluX2xvY2soJnRpbXItPml0X2xvY2spOworCQorCXRpbWVyX25vdGlmeV90 YXNrKHRpbXIpOworCisJLyogU2V0IHVwIHRoZSB0aW1lciBmb3IgdGhlIG5leHQgaW50ZXJ2YWwg KGlmIHRoZXJlIGlzIG9uZSkgKi8KKwlpZiAoKGludGVydmFsID0gdGltci0+aXRfaW5jcikgPT0g MCkgZ290byBvdXQ7CisJCQorCWlmIChpbnRlcnZhbCA+ICh1bnNpZ25lZCBsb25nKSBMT05HX01B WCkKKwkJaW50ZXJ2YWwgPSBMT05HX01BWDsKKwl0aW1yLT5pdF90aW1lci5leHBpcmVzID0gamlm ZmllcyArIGludGVydmFsOworCWFkZF90aW1lcigmdGltci0+aXRfdGltZXIpOworb3V0OgorCXNw aW5fdW5sb2NrKCZ0aW1yLT5pdF9sb2NrKTsKK30KKworLyogRmluZCB0aGUgZmlyc3QgYXZhaWxh YmxlIHNsb3QgZm9yIHRoZSBuZXcgdGltZXIuICovCitzdGF0aWMgaW50IHRpbWVyX2ZpbmRfc2xv dChzdHJ1Y3QgaXRpbWVyX3N0cnVjdCAqdGltZXJzKQoreworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IE1BWF9JVElNRVJTOyBpKyspIHsKKwkJaWYgKHRpbWVycy0+aXRpbWVyW2ldID09IE5V TEwpIHJldHVybiBpOworCX0KKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQgZ29vZF9zaWdl dmVudChjb25zdCBzdHJ1Y3Qgc2lnZXZlbnQgKnNpZ2V2KQoreworCXN3aXRjaCAoc2lnZXYtPnNp Z2V2X25vdGlmeSkgeworCWNhc2UgU0lHRVZfTk9ORToKKwkJYnJlYWs7CisJY2FzZSBTSUdFVl9T SUdOQUw6CisJCWlmICgoc2lnZXYtPnNpZ2V2X3NpZ25vIDw9IDApIHx8CisJCSAgICAoc2lnZXYt PnNpZ2V2X3NpZ25vID4gU0lHUlRNQVgpKQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCWRlZmF1 bHQ6CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworLyogQ3JlYXRlIGEgUE9TSVgu MWIgaW50ZXJ2YWwgdGltZXIuICovCisKK2FzbWxpbmthZ2UgaW50IHN5c190aW1lcl9jcmVhdGUo Y2xvY2tpZF90IHdoaWNoX2Nsb2NrLAorCQkJCXN0cnVjdCBzaWdldmVudCAqdGltZXJfZXZlbnRf c3BlYywKKwkJCQl0aW1lcl90ICpjcmVhdGVkX3RpbWVyX2lkKQoreworCWludCBlcnJvciA9IDA7 CisJc3RydWN0IGtfaXRpbWVyICpuZXdfdGltZXIgPSBOVUxMOworCXN0cnVjdCBpdGltZXJfc3Ry dWN0ICp0aW1lcnMgPSBjdXJyZW50LT5wb3NpeF90aW1lcnM7CisJaW50IG5ld190aW1lcl9pZDsK KyAKKwkvKiBSaWdodCBub3csIHdlIG9ubHkgc3VwcG9ydCBDTE9DS19SRUFMVElNRSBmb3IgdGlt ZXJzLiAqLworCWlmICh3aGljaF9jbG9jayAhPSBDTE9DS19SRUFMVElNRSkgcmV0dXJuIC1FSU5W QUw7CisKKwluZXdfdGltZXIgPSAoc3RydWN0IGtfaXRpbWVyICopa21hbGxvYyhzaXplb2YoKm5l d190aW1lciksIEdGUF9LRVJORUwpOworCWlmIChuZXdfdGltZXIgPT0gTlVMTCkgcmV0dXJuIC1F QUdBSU47CisKKwlzcGluX2xvY2tfaW5pdCgmbmV3X3RpbWVyLT5pdF9sb2NrKTsKKwluZXdfdGlt ZXItPml0X2Nsb2NrID0gd2hpY2hfY2xvY2s7CisJbmV3X3RpbWVyLT5pdF9pbmNyID0gMDsKKwlu ZXdfdGltZXItPml0X292ZXJydW4gPSAwOworCisJaWYgKHRpbWVyX2V2ZW50X3NwZWMpIHsKKwkJ aWYgKGNvcHlfZnJvbV91c2VyKCZuZXdfdGltZXItPml0X3NpZ25hbCwgdGltZXJfZXZlbnRfc3Bl YywKKwkJCQkgICBzaXplb2YobmV3X3RpbWVyLT5pdF9zaWduYWwpKSkgeworCQkJZXJyb3IgPSAt RUZBVUxUOworCQkJZ290byBvdXQ7CisJCX0KKwkJaWYgKCFnb29kX3NpZ2V2ZW50KCZuZXdfdGlt ZXItPml0X3NpZ25hbCkpIHsKKwkJCWVycm9yID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0OworCQl9 CisJfQorCWVsc2UgeworCQluZXdfdGltZXItPml0X3NpZ25hbC5zaWdldl9ub3RpZnkgPSBTSUdF Vl9TSUdOQUw7CisJCW5ld190aW1lci0+aXRfc2lnbmFsLnNpZ2V2X3NpZ25vID0gU0lHQUxSTTsK Kwl9CisKKwluZXdfdGltZXItPml0X2ludGVydmFsLnR2X3NlYyA9IDA7CisJbmV3X3RpbWVyLT5p dF9pbnRlcnZhbC50dl9uc2VjID0gMDsKKwluZXdfdGltZXItPml0X3Byb2Nlc3MgPSBjdXJyZW50 OworCW5ld190aW1lci0+aXRfdGltZXIubmV4dCA9IE5VTEw7CisJbmV3X3RpbWVyLT5pdF90aW1l ci5wcmV2ID0gTlVMTDsKKwluZXdfdGltZXItPml0X3RpbWVyLmV4cGlyZXMgPSAwOworCW5ld190 aW1lci0+aXRfdGltZXIuZGF0YSA9ICh1bnNpZ25lZCBsb25nKW5ld190aW1lcjsKKwluZXdfdGlt ZXItPml0X3RpbWVyLmZ1bmN0aW9uID0gcG9zaXhfdGltZXJfZm47CisKKwlzcGluX2xvY2soJnRp bWVycy0+aXRzX2xvY2spOworCisJbmV3X3RpbWVyX2lkID0gdGltZXJfZmluZF9zbG90KHRpbWVy cyk7CisJaWYgKG5ld190aW1lcl9pZCA9PSAtMSkgeworCQllcnJvciA9IC1FQUdBSU47CisJCWdv dG8gb3V0OworCX0KKwluZXdfdGltZXItPml0X2lkID0gbmV3X3RpbWVyX2lkOworCXRpbWVycy0+ aXRpbWVyW25ld190aW1lcl9pZF0gPSBuZXdfdGltZXI7CisJaWYgKHRpbWVyX2V2ZW50X3NwZWMg PT0gTlVMTCkgeworCQluZXdfdGltZXItPml0X3NpZ25hbC5zaWdldl92YWx1ZS5zaXZhbF9pbnQg PSBuZXdfdGltZXJfaWQ7CisJfQorCisJaWYgKGNvcHlfdG9fdXNlcihjcmVhdGVkX3RpbWVyX2lk LCAmbmV3X3RpbWVyX2lkLCBzaXplb2YobmV3X3RpbWVyX2lkKSkpIHsKKwkJZXJyb3IgPSAtRUZB VUxUOworCQl0aW1lcnMtPml0aW1lcltuZXdfdGltZXJfaWRdID0gTlVMTDsKKwl9CisKKwlzcGlu X3VubG9jaygmdGltZXJzLT5pdHNfbG9jayk7CitvdXQ6CisJaWYgKGVycm9yKSB7CisJCWtmcmVl KG5ld190aW1lcik7CisJfQorCXJldHVybiBlcnJvcjsKK30KKworCisvKiBnb29kX3RpbWVzcGVj CisgKgorICogVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhlIGVsZW1lbnRzIG9mIGEgdGltZXNwZWMg c3RydWN0dXJlLgorICoKKyAqIEFyZ3VtZW50czoKKyAqIHRzICAgICAgIDogUG9pbnRlciB0byB0 aGUgdGltZXNwZWMgc3RydWN0dXJlIHRvIGNoZWNrCisgKgorICogUmV0dXJuIHZhbHVlOgorICog SWYgYSBOVUxMIHBvaW50ZXIgd2FzIHBhc3NlZCBpbiwgb3IgdGhlIHR2X25zZWMgZmllbGQgd2Fz IGxlc3MgdGhhbiAwIG9yCisgKiBncmVhdGVyIHRoYW4gTlNFQ19QRVJfU0VDLCBvciB0aGUgdHZf c2VjIGZpZWxkIHdhcyBsZXNzIHRoYW4gMCwgdGhpcworICogZnVuY3Rpb24gcmV0dXJucyAwLiBP dGhlcndpc2UgaXQgcmV0dXJucyAxLgorICovCisKK3N0YXRpYyBpbnQgZ29vZF90aW1lc3BlYyhj b25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQoreworCWlmICh0cyA9PSBOVUxMKSByZXR1cm4gMDsK KwlpZiAodHMtPnR2X3NlYyA8IDApIHJldHVybiAwOworCWlmICgodHMtPnR2X25zZWMgPCAwKSB8 fCAodHMtPnR2X25zZWMgPj0gTlNFQ19QRVJfU0VDKSkgcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9 CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGtfaXRpbWVyKiBsb2NrX3RpbWVyKHN0cnVjdCB0YXNr X3N0cnVjdCAqdHNrLCB0aW1lcl90IHRpbWVyX2lkKQoreworCXN0cnVjdCBrX2l0aW1lciAqdGlt cjsKKworCWlmICgodGltZXJfaWQgPCAwKSB8fCAodGltZXJfaWQgPj0gTUFYX0lUSU1FUlMpKSBy ZXR1cm4gTlVMTDsKKwlzcGluX2xvY2soJnRzay0+cG9zaXhfdGltZXJzLT5pdHNfbG9jayk7CisJ dGltciA9IHRzay0+cG9zaXhfdGltZXJzLT5pdGltZXJbdGltZXJfaWRdOworCWlmICh0aW1yKSBz cGluX2xvY2soJnRpbXItPml0X2xvY2spOworCXNwaW5fdW5sb2NrKCZ0c2stPnBvc2l4X3RpbWVy cy0+aXRzX2xvY2spOworCXJldHVybiB0aW1yOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdW5s b2NrX3RpbWVyKHN0cnVjdCBrX2l0aW1lciAqdGltcikKK3sKKwlzcGluX3VubG9jaygmdGltci0+ aXRfbG9jayk7Cit9CisKKy8qIEdldCB0aGUgdGltZSByZW1haW5pbmcgb24gYSBQT1NJWC4xYiBp bnRlcnZhbCB0aW1lci4gKi8KK3N0YXRpYyB2b2lkIGRvX3RpbWVyX2dldHRpbWUoc3RydWN0IGtf aXRpbWVyICp0aW1yLAorCQkJICAgICBzdHJ1Y3QgaXRpbWVyc3BlYyAqY3VyX3NldHRpbmcpCit7 CisJdW5zaWduZWQgbG9uZyBleHBpcmVzID0gdGltci0+aXRfdGltZXIuZXhwaXJlczsKKworCWlm IChleHBpcmVzKSBleHBpcmVzIC09IGppZmZpZXM7CisJCisJamlmZmllc190b190aW1lc3BlYyhl eHBpcmVzLCAmY3VyX3NldHRpbmctPml0X3ZhbHVlKTsKKwljdXJfc2V0dGluZy0+aXRfaW50ZXJ2 YWwgPSB0aW1yLT5pdF9pbnRlcnZhbDsKK30KKworLyogR2V0IHRoZSB0aW1lIHJlbWFpbmluZyBv biBhIFBPU0lYLjFiIGludGVydmFsIHRpbWVyLiAqLworYXNtbGlua2FnZSBpbnQgc3lzX3RpbWVy X2dldHRpbWUodGltZXJfdCB0aW1lcl9pZCwgc3RydWN0IGl0aW1lcnNwZWMgKnNldHRpbmcpCit7 CisJc3RydWN0IGtfaXRpbWVyICp0aW1yOworCXN0cnVjdCBpdGltZXJzcGVjIGN1cl9zZXR0aW5n OworCisJdGltciA9IGxvY2tfdGltZXIoY3VycmVudCwgdGltZXJfaWQpOworCWlmICghdGltcikg cmV0dXJuIC1FSU5WQUw7CisKKwlkb190aW1lcl9nZXR0aW1lKHRpbXIsICZjdXJfc2V0dGluZyk7 CisKKwl1bmxvY2tfdGltZXIodGltcik7CisJCisJY29weV90b191c2VyX3JldChzZXR0aW5nLCAm Y3VyX3NldHRpbmcsIHNpemVvZihjdXJfc2V0dGluZyksIC1FRkFVTFQpOworCisJcmV0dXJuIDA7 Cit9CisKKy8qIEdldCB0aGUgbnVtYmVyIG9mIG92ZXJydW5zIG9mIGEgUE9TSVguMWIgaW50ZXJ2 YWwgdGltZXIgKi8KK2FzbWxpbmthZ2UgaW50IHN5c190aW1lcl9nZXRvdmVycnVuKHRpbWVyX3Qg dGltZXJfaWQpCit7CisJc3RydWN0IGtfaXRpbWVyICp0aW1yOworCWludCBvdmVycnVuOworCisJ dGltciA9IGxvY2tfdGltZXIoY3VycmVudCwgdGltZXJfaWQpOworCWlmICghdGltcikgcmV0dXJu IC1FSU5WQUw7CisKKwlvdmVycnVuID0gdGltci0+aXRfb3ZlcnJ1bjsKKwkKKwl1bmxvY2tfdGlt ZXIodGltcik7CisKKwlyZXR1cm4gb3ZlcnJ1bjsKK30KKworc3RhdGljIHZvaWQgdGltZXJfdmFs dWVfYWJzX3RvX3JlbChzdHJ1Y3QgdGltZXNwZWMgKnZhbCkKK3sKKwlzdHJ1Y3QgdGltZXZhbCB0 djsKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisKKwlkb19nZXR0aW1lb2ZkYXkoJnR2KTsKKwl0cy50 dl9zZWMgPSB0di50dl9zZWM7CisJdHMudHZfbnNlYyA9IHR2LnR2X3VzZWMgKiBOU0VDX1BFUl9V U0VDOworCisJLyogY2hlY2sgd2hldGhlciB0aGUgdGltZSBsaWVzIGluIHRoZSBwYXN0ICovCisJ aWYgKCh2YWwtPnR2X3NlYyA8IHRzLnR2X3NlYykgfHwgCisJICAgICgodmFsLT50dl9zZWMgPT0g dHMudHZfc2VjKSAmJgorCSAgICAgKHZhbC0+dHZfbnNlYyA8PSB0cy50dl9uc2VjKSkpIHsKKwkJ LyogZXhwaXJlIGltbWVkaWF0ZWx5ICovCisJCXZhbC0+dHZfc2VjID0gMDsKKwkJdmFsLT50dl9u c2VjID0gMDsKKwl9CisJZWxzZSB7CisJCXZhbC0+dHZfc2VjIC09IHRzLnR2X3NlYzsKKwkJdmFs LT50dl9uc2VjIC09IHRzLnR2X25zZWM7CisJCWlmICh2YWwtPnR2X25zZWMgPCAwKSB7CisJCQl2 YWwtPnR2X25zZWMgKz0gTlNFQ19QRVJfU0VDOworCQkJdmFsLT50dl9zZWMtLTsKKwkJfQorCX0K K30KKworLyogU2V0IGEgUE9TSVguMWIgaW50ZXJ2YWwgdGltZXIuICovCitzdGF0aWMgdm9pZCBk b190aW1lcl9zZXR0aW1lKHN0cnVjdCBrX2l0aW1lciAqdGltciwgaW50IGZsYWdzLAorCQkJICAg ICBzdHJ1Y3QgaXRpbWVyc3BlYyAqbmV3X3NldHRpbmcsCisJCQkgICAgIHN0cnVjdCBpdGltZXJz cGVjICpvbGRfc2V0dGluZykKK3sKKwkvKiBkaXNhYmxlIHRoZSB0aW1lciAqLworCXN0YXJ0X2Jo X2F0b21pYygpOworCWRlbF90aW1lcigmdGltci0+aXRfdGltZXIpOworCWVuZF9iaF9hdG9taWMo KTsKKworCWlmIChvbGRfc2V0dGluZykgeworCQlkb190aW1lcl9nZXR0aW1lKHRpbXIsIG9sZF9z ZXR0aW5nKTsKKwl9CisKKwkvKiBzd2l0Y2ggb2ZmIHRoZSB0aW1lciB3aGVuIGl0X3ZhbHVlIGlz IHplcm8gKi8KKwlpZiAoKG5ld19zZXR0aW5nLT5pdF92YWx1ZS50dl9zZWMgPT0gMCkgJiYKKwkg ICAgKG5ld19zZXR0aW5nLT5pdF92YWx1ZS50dl9uc2VjID09IDApKSB7CisJCXRpbXItPml0X2lu Y3IgPSAwOworCQl0aW1yLT5pdF90aW1lci5leHBpcmVzID0gMDsKKwkJdGltci0+aXRfaW50ZXJ2 YWwudHZfc2VjID0gMDsKKwkJdGltci0+aXRfaW50ZXJ2YWwudHZfbnNlYyA9IDA7CisJCXJldHVy bjsKKwl9CisKKwl0aW1yLT5pdF9pbmNyID0gdGltZXNwZWNfdG9famlmZmllcygmbmV3X3NldHRp bmctPml0X2ludGVydmFsKTsKKwkvKiBzYXZlIHRoZSBpbnRlcnZhbCByb3VuZGVkIHRvIGppZmZp ZXMgKi8KKwlqaWZmaWVzX3RvX3RpbWVzcGVjKHRpbXItPml0X2luY3IsICZ0aW1yLT5pdF9pbnRl cnZhbCk7CisKKwlpZiAoZmxhZ3MgJiBUSU1FUl9BQlNUSU1FKSB7CisJCXRpbWVyX3ZhbHVlX2Fi c190b19yZWwoJm5ld19zZXR0aW5nLT5pdF92YWx1ZSk7CisJfQorCisJdGltci0+aXRfdGltZXIu ZXhwaXJlcyA9IHRpbWVzcGVjX3RvX2ppZmZpZXMoJm5ld19zZXR0aW5nLT5pdF92YWx1ZSkgKyBq aWZmaWVzOworCisJLyoKKwkgKiBGb3Igc29tZSByZWFzb24gdGhlIHRpbWVyIGRvZXMgbm90IGZp cmUgaW1tZWRpYXRlbHkgaWYgZXhwaXJlcyBpcworCSAqIGVxdWFsIHRvIGppZmZpZXMsIHNvIHRo ZSB0aW1lciBjYWxsYmFjayBmdW5jdGlvbiBpcyBjYWxsZWQgZGlyZWN0bHkuCisJICovCisJaWYg KHRpbXItPml0X3RpbWVyLmV4cGlyZXMgPT0gamlmZmllcykgeworCQlwb3NpeF90aW1lcl9mbigo dW5zaWduZWQgbG9uZyl0aW1yKTsKKwl9CisJZWxzZSB7CisJCWFkZF90aW1lcigmdGltci0+aXRf dGltZXIpOworCX0KK30KKworCisvKiBTZXQgYSBQT1NJWC4xYiBpbnRlcnZhbCB0aW1lciAqLwor YXNtbGlua2FnZSBpbnQgc3lzX3RpbWVyX3NldHRpbWUodGltZXJfdCB0aW1lcl9pZCwgaW50IGZs YWdzLAorCQkJCSBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyAqbmV3X3NldHRpbmcsCisJCQkJIHN0 cnVjdCBpdGltZXJzcGVjICpvbGRfc2V0dGluZykKK3sKKwlzdHJ1Y3Qga19pdGltZXIgKnRpbXI7 CisJc3RydWN0IGl0aW1lcnNwZWMgbmV3X3NwZWMsIG9sZF9zcGVjOworCWludCBlcnJvciA9IDA7 CisKKwl0aW1yID0gbG9ja190aW1lcihjdXJyZW50LCB0aW1lcl9pZCk7CisJaWYgKCF0aW1yKSBy ZXR1cm4gLUVJTlZBTDsKKworCWlmIChuZXdfc2V0dGluZyA9PSBOVUxMKSB7CisJCWVycm9yID0g LUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGNvcHlfZnJvbV91c2VyKCZuZXdfc3Bl YywgbmV3X3NldHRpbmcsIHNpemVvZihuZXdfc3BlYykpKSB7CisJCWVycm9yID0gLUVGQVVMVDsK KwkJZ290byBvdXQ7CisJfQorCisJaWYgKCghZ29vZF90aW1lc3BlYygmbmV3X3NwZWMuaXRfaW50 ZXJ2YWwpKSB8fAorCSAgICAoIWdvb2RfdGltZXNwZWMoJm5ld19zcGVjLml0X3ZhbHVlKSkpIHsK KwkJZXJyb3IgPSAtRUlOVkFMOworCQlnb3RvIG91dDsKKwl9CisKKwlkb190aW1lcl9zZXR0aW1l KHRpbXIsIGZsYWdzLCAmbmV3X3NwZWMsCisJCQkgb2xkX3NldHRpbmcgPyAmb2xkX3NwZWMgOiBO VUxMKTsKKworCWlmIChvbGRfc2V0dGluZykgeworCQlpZiAoY29weV90b191c2VyKG9sZF9zZXR0 aW5nLCAmb2xkX3NwZWMsIHNpemVvZihvbGRfc3BlYykpKSB7CisJCQllcnJvciA9IC1FRkFVTFQ7 CisJCX0KKwl9CisKK291dDoKKwl1bmxvY2tfdGltZXIodGltcik7CisJcmV0dXJuIGVycm9yOwor fQorCisKKy8qIERlbGV0ZSBhIFBPU0lYLjFiIGludGVydmFsIHRpbWVyLiAqLworYXNtbGlua2Fn ZSBpbnQgc3lzX3RpbWVyX2RlbGV0ZSh0aW1lcl90IHRpbWVyX2lkKQoreworCXN0cnVjdCBrX2l0 aW1lciAqdGltcjsKKworCXRpbXIgPSBsb2NrX3RpbWVyKGN1cnJlbnQsIHRpbWVyX2lkKTsKKwlp ZiAoIXRpbXIpIHJldHVybiAtRUlOVkFMOworCisJc3RhcnRfYmhfYXRvbWljKCk7CisJZGVsX3Rp bWVyKCZ0aW1yLT5pdF90aW1lcik7CisJZW5kX2JoX2F0b21pYygpOworCisJc3Bpbl9sb2NrKCZj dXJyZW50LT5wb3NpeF90aW1lcnMtPml0c19sb2NrKTsKKworCWtmcmVlKHRpbXIpOworCWN1cnJl bnQtPnBvc2l4X3RpbWVycy0+aXRpbWVyW3RpbWVyX2lkXSA9IE5VTEw7CisKKwlzcGluX3VubG9j aygmY3VycmVudC0+cG9zaXhfdGltZXJzLT5pdHNfbG9jayk7CisKIAlyZXR1cm4gMDsKIH0KZGlm ZiAtcnVOIGxpbnV4LTIuMy4xMS12YW5pbGxhL2tlcm5lbC9zaWduYWwuYyBsaW51eC0yLjMuMTEv a2VybmVsL3NpZ25hbC5jCi0tLSBsaW51eC0yLjMuMTEtdmFuaWxsYS9rZXJuZWwvc2lnbmFsLmMJ U2F0IEp1bCAxMCAxNjozMDo1MCAxOTk5CisrKyBsaW51eC0yLjMuMTEva2VybmVsL3NpZ25hbC5j CVNhdCBKdWwgMjQgMTY6MzE6MjggMTk5OQpAQCAtMTMyLDE3ICsxMzIsNyBAQAogCiAJCS8qIENv bGxlY3QgdGhlIHNpZ2luZm8gYXBwcm9wcmlhdGUgdG8gdGhpcyBzaWduYWwuICAqLwogCQlpZiAo c2lnIDwgU0lHUlRNSU4pIHsKLQkJCS8qIFhYWDogQXMgYW4gZXh0ZW5zaW9uLCBzdXBwb3J0IHF1 ZXVlaW5nIGV4YWN0bHkKLQkJCSAgIG9uZSBub24tcnQgc2lnbmFsIGlmIFNBX1NJR0lORk8gaXMg c2V0LCBzbyB0aGF0Ci0JCQkgICB3ZSBjYW4gZ2V0IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24g YWJvdXQgdGhlCi0JCQkgICBjYXVzZSBvZiB0aGUgc2lnbmFsLiAgKi8KLQkJCS8qIERlY2lkaW5n IG5vdCB0byBpbml0IHRoZXNlIGNvdXBsZSBvZiBmaWVsZHMgaXMKLQkJCSAgIG1vcmUgZXhwZW5z aXZlIHRoYXQganVzdCBpbml0aWFsaXppbmcgdGhlbS4gICovCi0JCQlpbmZvLT5zaV9zaWdubyA9 IHNpZzsKLQkJCWluZm8tPnNpX2Vycm5vID0gMDsKLQkJCWluZm8tPnNpX2NvZGUgPSAwOwotCQkJ aW5mby0+c2lfcGlkID0gMDsKLQkJCWluZm8tPnNpX3VpZCA9IDA7CisJCQkqaW5mbyA9IGN1cnJl bnQtPm5ydF9pbmZvW3NpZ107CiAJCX0gZWxzZSB7CiAJCQlzdHJ1Y3Qgc2lnbmFsX3F1ZXVlICpx LCAqKnBwOwogCQkJcHAgPSAmY3VycmVudC0+c2lncXVldWU7CkBAIC0xODUsOCArMTc1LDYgQEAK IAkJCXNpZ2RlbHNldCgmY3VycmVudC0+c2lnbmFsLCBzaWcpOwogCQlyZWNhbGNfc2lncGVuZGlu ZyhjdXJyZW50KTsKIAotCQkvKiBYWFg6IE9uY2UgUE9TSVguMWIgdGltZXJzIGFyZSBpbiwgaWYg c2lfY29kZSA9PSBTSV9USU1FUiwKLQkJICAgd2UgbmVlZCB0byB4Y2hnIG91dCB0aGUgdGltZXIg b3ZlcnJ1biB2YWx1ZXMuICAqLwogCX0gZWxzZSB7CiAJCS8qIFhYWDogT25jZSBDTE9ORV9QSUQg aXMgaW4gdG8gam9pbiB0aG9zZSAidGhyZWFkcyIgdGhhdCBhcmUKIAkJICAgcGFydCBvZiB0aGUg c2FtZSAicHJvY2VzcyIsIGxvb2sgZm9yIHNpZ25hbHMgc2VudCB0byB0aGUKQEAgLTI0Nyw2ICsy MzUsMjkgQEAKIAlyZXR1cm4gMTsKIH0KIAorc3RhdGljIHZvaWQgc2V0X3NpZ2luZm8oc2lnaW5m b190ICpkc3QsIGNvbnN0IHNpZ2luZm9fdCAqc3JjLCBpbnQgc2lnKQoreworCXN3aXRjaCAoKHVu c2lnbmVkIGxvbmcpc3JjKSB7CisJY2FzZSAwOgorCQlkc3QtPnNpX3NpZ25vID0gc2lnOworCQlk c3QtPnNpX2Vycm5vID0gMDsKKwkJZHN0LT5zaV9jb2RlID0gU0lfVVNFUjsKKwkJZHN0LT5zaV9w aWQgPSBjdXJyZW50LT5waWQ7CisJCWRzdC0+c2lfdWlkID0gY3VycmVudC0+dWlkOworCQlicmVh azsKKwljYXNlIDE6CisJCWRzdC0+c2lfc2lnbm8gPSBzaWc7CisJCWRzdC0+c2lfZXJybm8gPSAw OworCQlkc3QtPnNpX2NvZGUgPSBTSV9LRVJORUw7CisJCWRzdC0+c2lfcGlkID0gMDsKKwkJZHN0 LT5zaV91aWQgPSAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkqZHN0ID0gKnNyYzsKKwkJYnJl YWs7CisJfQorfQorCiBpbnQKIHNlbmRfc2lnX2luZm8oaW50IHNpZywgc3RydWN0IHNpZ2luZm8g KmluZm8sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKIHsKQEAgLTMwNiwxMiArMzE3LDEwIEBACiAK IAlpZiAoc2lnIDwgU0lHUlRNSU4pIHsKIAkJLyogTm9uLXJlYWwtdGltZSBzaWduYWxzIGFyZSBu b3QgcXVldWVkLiAgKi8KLQkJLyogWFhYOiBBcyBhbiBleHRlbnNpb24sIHN1cHBvcnQgcXVldWVp bmcgZXhhY3RseSBvbmUKLQkJICAgbm9uLXJ0IHNpZ25hbCBpZiBTQV9TSUdJTkZPIGlzIHNldCwg c28gdGhhdCB3ZSBjYW4KLQkJICAgZ2V0IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQg dGhlIGNhdXNlIG9mCi0JCSAgIHRoZSBzaWduYWwuICAqLwogCQlpZiAoc2lnaXNtZW1iZXIoJnQt PnNpZ25hbCwgc2lnKSkKIAkJCWdvdG8gb3V0OworCQlzZXRfc2lnaW5mbygmdC0+bnJ0X2luZm9b c2lnXSwgaW5mbywgc2lnKTsKKwogCX0gZWxzZSB7CiAJCS8qIFJlYWwtdGltZSBzaWduYWxzIG11 c3QgYmUgcXVldWVkIGlmIHNlbnQgYnkgc2lncXVldWUsIG9yCiAJCSAgIHNvbWUgb3RoZXIgcmVh bC10aW1lIG1lY2hhbmlzbS4gIEl0IGlzIGltcGxlbWVudGF0aW9uCkBAIC0zMjMsNiArMzMyLDIx IEBACiAKIAkJc3RydWN0IHNpZ25hbF9xdWV1ZSAqcSA9IDA7CiAKKwkJLyogSW4gY2FzZSBvZiBh IFBPU0lYIHRpbWVyIGdlbmVyYXRlZCBzaWduYWwgeW91IG11c3QgY2hlY2sgCisJCSAgIGlmIGEg c2lnbmFsIGZyb20gdGhpcyB0aW1lciBpcyBhbHJlYWR5IGluIHRoZSBxdWV1ZSAqLworCQlpZiAo aW5mbyAmJiAoaW5mby0+c2lfY29kZSA9PSBTSV9USU1FUikpIHsKKwkJCWZvciAocSA9IHQtPnNp Z3F1ZXVlOyBxOyBxID0gcS0+bmV4dCkgeworCQkJCWlmICgocS0+aW5mby5zaV9jb2RlID09IFNJ X1RJTUVSKSAmJgorCQkJCSAgICAocS0+aW5mby5zaV90aW1lcjEgPT0gaW5mby0+c2lfdGltZXIx KSkgeworCQkJCQkvKiB0aGlzIHNwZWNpYWwgdmFsdWUgKDEpIGlzIHJlY29nbml6ZWQKKwkJCQkJ ICAgb25seSBieSBwb3NpeF90aW1lcl9mbigpIGluCisJCQkJCSAgIGl0aW1lci5jICovCisJCQkJ CXJldCA9IDE7CisJCQkJCWdvdG8gb3V0OworCQkJCX0KKwkJCX0KKwkJfQorCiAJCWlmIChhdG9t aWNfcmVhZCgmbnJfcXVldWVkX3NpZ25hbHMpIDwgbWF4X3F1ZXVlZF9zaWduYWxzKSB7CiAJCQlx ID0gKHN0cnVjdCBzaWduYWxfcXVldWUgKikKIAkJCSAgICBrbWVtX2NhY2hlX2FsbG9jKHNpZ25h bF9xdWV1ZV9jYWNoZXAsIEdGUF9BVE9NSUMpOwpAQCAtMzMzLDI1ICszNTcsNyBAQAogCQkJcS0+ bmV4dCA9IE5VTEw7CiAJCQkqdC0+c2lncXVldWVfdGFpbCA9IHE7CiAJCQl0LT5zaWdxdWV1ZV90 YWlsID0gJnEtPm5leHQ7Ci0JCQlzd2l0Y2ggKCh1bnNpZ25lZCBsb25nKSBpbmZvKSB7Ci0JCQlj YXNlIDA6Ci0JCQkJcS0+aW5mby5zaV9zaWdubyA9IHNpZzsKLQkJCQlxLT5pbmZvLnNpX2Vycm5v ID0gMDsKLQkJCQlxLT5pbmZvLnNpX2NvZGUgPSBTSV9VU0VSOwotCQkJCXEtPmluZm8uc2lfcGlk ID0gY3VycmVudC0+cGlkOwotCQkJCXEtPmluZm8uc2lfdWlkID0gY3VycmVudC0+dWlkOwotCQkJ CWJyZWFrOwotCQkJY2FzZSAxOgotCQkJCXEtPmluZm8uc2lfc2lnbm8gPSBzaWc7Ci0JCQkJcS0+ aW5mby5zaV9lcnJubyA9IDA7Ci0JCQkJcS0+aW5mby5zaV9jb2RlID0gU0lfS0VSTkVMOwotCQkJ CXEtPmluZm8uc2lfcGlkID0gMDsKLQkJCQlxLT5pbmZvLnNpX3VpZCA9IDA7Ci0JCQkJYnJlYWs7 Ci0JCQlkZWZhdWx0OgotCQkJCXEtPmluZm8gPSAqaW5mbzsKLQkJCQlicmVhazsKLQkJCX0KKwkJ CXNldF9zaWdpbmZvKCZxLT5pbmZvLCBpbmZvLCBzaWcpOwogCQl9IGVsc2UgewogCQkJLyogSWYg dGhpcyB3YXMgc2VudCBieSBhIHJ0IG1lY2hhbmlzbSwgdHJ5IGFnYWluLiAgKi8KIAkJCWlmIChp bmZvLT5zaV9jb2RlIDwgMCkgewpkaWZmIC1ydU4gbGludXgtMi4zLjExLXZhbmlsbGEva2VybmVs L3RpbWUuYyBsaW51eC0yLjMuMTEva2VybmVsL3RpbWUuYwotLS0gbGludXgtMi4zLjExLXZhbmls bGEva2VybmVsL3RpbWUuYwlTdW4gSnVuIDIwIDExOjQyOjM3IDE5OTkKKysrIGxpbnV4LTIuMy4x MS9rZXJuZWwvdGltZS5jCVNhdCBKdWwgMjQgMTY6MzE6MjggMTk5OQpAQCAtNDE0LDMgKzQxNCw1 NyBAQAogCXJldCA9IGRvX2FkanRpbWV4KCZ0eGMpOwogCXJldHVybiBjb3B5X3RvX3VzZXIodHhj X3AsICZ0eGMsIHNpemVvZihzdHJ1Y3QgdGltZXgpKSA/IC1FRkFVTFQgOiByZXQ7CiB9CisKKwor LyogUE9TSVguMWIgY2xvY2sgZnVuY3Rpb25zICovCisKK2FzbWxpbmthZ2UgaW50IHN5c19jbG9j a19nZXR0aW1lKGNsb2NraWRfdCBjbG9ja19pZCwgc3RydWN0IHRpbWVzcGVjICp0cykKK3sKKwlz dHJ1Y3QgdGltZXNwZWMga3RzOworCXN0cnVjdCB0aW1ldmFsIGt0djsKKworCWlmIChjbG9ja19p ZCAhPSBDTE9DS19SRUFMVElNRSkJcmV0dXJuIC1FSU5WQUw7CisJCisJaWYgKHRzID09IE5VTEwp IHJldHVybiAwOworCQkKKwlkb19nZXR0aW1lb2ZkYXkoJmt0dik7CisJa3RzLnR2X3NlYyA9IGt0 di50dl9zZWM7CisJa3RzLnR2X25zZWMgPSBrdHYudHZfdXNlYyAqIE5TRUNfUEVSX1VTRUM7CisJ aWYgKGNvcHlfdG9fdXNlcih0cywgJmt0cywgc2l6ZW9mKGt0cykpKSByZXR1cm4gLUVGQVVMVDsK KworCXJldHVybiAwOworfQorCisKK2FzbWxpbmthZ2UgaW50IHN5c19jbG9ja19zZXR0aW1lKGNs b2NraWRfdCBjbG9ja19pZCwKKwkJCQkgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0cykKK3sKKwlz dHJ1Y3QgdGltZXNwZWMgbmV3X3RzOworCXN0cnVjdCB0aW1ldmFsIHR2OworCisJaWYgKGNsb2Nr X2lkICE9IENMT0NLX1JFQUxUSU1FKQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICh0cyA9PSBOVUxM KSByZXR1cm4gMDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmbmV3X3RzLCB0cywgc2l6ZW9mKCp0 cykpKSByZXR1cm4gLUVGQVVMVDsKKwl0di50dl9zZWMgPSBuZXdfdHMudHZfc2VjOworCXR2LnR2 X3VzZWMgPSBuZXdfdHMudHZfbnNlYyAvIE5TRUNfUEVSX1VTRUM7CisJcmV0dXJuIGRvX3N5c19z ZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKK30KKworCithc21saW5rYWdlIGludCBzeXNfY2xvY2tf Z2V0cmVzKGNsb2NraWRfdCBjbG9ja19pZCwKKwkJCQlzdHJ1Y3QgdGltZXNwZWMgKnJlcykKK3sK KwlzdHJ1Y3QgdGltZXNwZWMga3JlczsKKworCWlmIChjbG9ja19pZCAhPSBDTE9DS19SRUFMVElN RSkgcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAocmVzID09IE5VTEwpIHJldHVybiAwOworCisJa3Jl cy50dl9zZWMgPSAwOworCWtyZXMudHZfbnNlYyA9IE5TRUNfUEVSX1NFQyAvIEhaOworCWlmIChj b3B5X3RvX3VzZXIocmVzLCAma3Jlcywgc2l6ZW9mKGtyZXMpKSkgcmV0dXJuIC1FRkFVTFQ7CisK KwlyZXR1cm4gMDsKK30K

--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD Content-Type: application/x-gzip; name="posix_timer_test.tar.gz" Content-Transfer-Encoding: base64 Content-Description: Test code and system call library Content-Disposition: attachment; filename="posix_timer_test.tar.gz"

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

--Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/