Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Feb 2005 06:06:37 +0900
From:      Takeharu KATO <takeharu1219@ybb.ne.jp>
To:        freebsd-current@freebsd.org, freebsd-amd64@FreeBSD.org
Cc:        nork@FreeBSD.org
Subject:   AMD64 Local APIC Timer
Message-ID:  <421A4D5D.6040205@ybb.ne.jp>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------030802060005060601090600
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi

I ported the local APIC timer tick feature to AMD64.
Please take a look on this patch.

Regards,
-- 
Takeharu KATO

--------------030802060005060601090600
Content-Type: text/plain;
 name="amd64-lapic-timer.patch"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="amd64-lapic-timer.patch"

SW5kZXg6IGFtZDY0L2FtZDY0L2FwaWNfdmVjdG9yLlMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2hvbWUva2F0by9jdnMva2F0by1zeXMvYW1kNjQvYW1kNjQvYXBpY192ZWN0b3IuUyx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpk
aWZmIC11IC1yMS4xLjEuMSAtcjEuMgotLS0gYW1kNjQvYW1kNjQvYXBpY192ZWN0b3IuUwkx
OCBGZWIgMjAwNSAxNDowNTo1NSAtMDAwMAkxLjEuMS4xCisrKyBhbWQ2NC9hbWQ2NC9hcGlj
X3ZlY3Rvci5TCTIwIEZlYiAyMDA1IDE4OjE1OjI5IC0wMDAwCTEuMgpAQCAtMTM3LDYgKzEz
NywyNiBAQAogCUlTUl9WRUMoNiwgYXBpY19pc3I2KQogCUlTUl9WRUMoNywgYXBpY19pc3I3
KQogCisvKgorICogTG9jYWwgQVBJQyBwZXJpb2RpYyB0aW1lciBoYW5kbGVyLgorICovCisJ
LnRleHQKKwlTVVBFUkFMSUdOX1RFWFQKK0lEVFZFQyh0aW1lcmludCkKKwlQVVNIX0ZSQU1F
CisKKwltb3ZxCWxhcGljLCAlcmR4CisJbW92bAkkMCwgTEFfRU9JKCVyZHgpCS8qIEVuZCBP
ZiBJbnRlcnJ1cHQgdG8gQVBJQyAqLworCQorCUZBS0VfTUNPVU5UKFRGX1JJUCglcnNwKSkK
KworCisJcHVzaHEJJDAJCS8qIFhYWCBjb252ZXJ0IHRyYXBmcmFtZSB0byBjbG9ja2ZyYW1l
ICovCisJY2FsbAlsYXBpY19oYW5kbGVfdGltZXIKKwlhZGRxCSQ4LCAlcnNwCS8qIFhYWCBj
b252ZXJ0IGNsb2NrZnJhbWUgdG8gdHJhcGZyYW1lICovCisJTUVYSVRDT1VOVAorCWptcAlk
b3JldGkKKwogI2lmZGVmIFNNUAogLyoKICAqIEdsb2JhbCBhZGRyZXNzIHNwYWNlIFRMQiBz
aG9vdGRvd24uCkluZGV4OiBhbWQ2NC9hbWQ2NC9sb2NhbF9hcGljLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2hvbWUva2F0by9jdnMva2F0by1zeXMvYW1kNjQvYW1kNjQvbG9jYWxf
YXBpYy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCmRpZmYgLXUgLXIxLjEuMS4x
IGxvY2FsX2FwaWMuYwotLS0gYW1kNjQvYW1kNjQvbG9jYWxfYXBpYy5jCTE4IEZlYiAyMDA1
IDE0OjA1OjU1IC0wMDAwCTEuMS4xLjEKKysrIGFtZDY0L2FtZDY0L2xvY2FsX2FwaWMuYwky
MCBGZWIgMjAwNSAxOTo0MzowNiAtMDAwMApAQCAtMSw0ICsxLDYgQEAKIC8qLQorICogQ29w
eXJpZ2h0IChjKSAyMDA1IFRha2VoYXJ1IEtBVE88dGFrZWhhcnUxMjE5QHliYi5uZS5qcD4K
KyAqICAgICAgICAgICAgICAgICAgICAoQWRkIExBUElDIHRpbWVyIHN1cHBvcnQpLgogICog
Q29weXJpZ2h0IChjKSAyMDAzIEpvaG4gQmFsZHdpbiA8amhiQEZyZWVCU0Qub3JnPgogICog
Q29weXJpZ2h0IChjKSAxOTk2LCBieSBTdGV2ZSBQYXNzZQogICogQWxsIHJpZ2h0cyByZXNl
cnZlZC4KQEAgLTY2LDYgKzY4LDkgQEAKIENUQVNTRVJUKEFQSUNfTE9DQUxfSU5UUyA9PSAy
NDApOwogQ1RBU1NFUlQoSVBJX1NUT1AgPCBBUElDX1NQVVJJT1VTX0lOVCk7CiAKKyNkZWZp
bmUJTEFQSUNfVElNRVJfU1RBVEhaCTEyOAorI2RlZmluZQlMQVBJQ19USU1FUl9QUk9GSFoJ
MTAyNAorCiAvKgogICogU3VwcG9ydCBmb3IgbG9jYWwgQVBJQ3MuICBMb2NhbCBBUElDcyBt
YW5hZ2UgaW50ZXJydXB0cyBvbiBlYWNoCiAgKiBpbmRpdmlkdWFsIHByb2Nlc3NvciBhcyBv
cHBvc2VkIHRvIEkvTyBBUElDcyB3aGljaCByZWNlaXZlIGludGVycnVwdHMKQEAgLTkwLDYg
Kzk1LDkgQEAKIAl1X2ludCBsYV9jbHVzdGVyOjQ7CiAJdV9pbnQgbGFfY2x1c3Rlcl9pZDoy
OwogCXVfaW50IGxhX3ByZXNlbnQ6MTsKKwl1X2xvbmcgKmxhX3RpbWVyX2NvdW50OworCXVf
bG9uZyBsYV9zdGF0X3RpY2tzOworCXVfbG9uZyBsYV9wcm9mX3RpY2tzOwogfSBzdGF0aWMg
bGFwaWNzW01BWF9BUElDSURdOwogCiAvKiBYWFg6IHNob3VsZCB0aGVybWFsIGJlIGFuIE5N
ST8gKi8KQEAgLTExNSw5ICsxMjMsMjMgQEAKIAlJRFRWRUMoYXBpY19pc3I3KSwJLyogMjI0
IC0gMjU1ICovCiB9OwogCitzdGF0aWMgdV9pbnQzMl90IGxhcGljX3RpbWVyX2Rpdmlzb3Jz
W10gPSB7IAorCUFQSUNfVERDUl8xLCBBUElDX1REQ1JfMiwgQVBJQ19URENSXzQsIEFQSUNf
VERDUl84LCBBUElDX1REQ1JfMTYsCisJQVBJQ19URENSXzMyLCBBUElDX1REQ1JfNjQsIEFQ
SUNfVERDUl8xMjgKK307CisKKwogdm9sYXRpbGUgbGFwaWNfdCAqbGFwaWM7CitzdGF0aWMg
dV9sb25nIGxhcGljX3RpbWVyX2Rpdmlzb3IsIGxhcGljX3RpbWVyX3BlcmlvZDsKK3N0YXRp
YyB1X2xvbmcgKmxhcGljX3ZpcnR1YWxfaGFyZGNsb2NrLCAqbGFwaWNfdmlydHVhbF9zdGF0
Y2xvY2ssCisJKmxhcGljX3ZpcnR1YWxfcHJvZmNsb2NrOwogCiBzdGF0aWMgdm9pZAlsYXBp
Y19lbmFibGUodm9pZCk7CitzdGF0aWMgdm9pZAlsYXBpY190aW1lcl9lbmFibGVfaW50cih2
b2lkKTsKK3N0YXRpYyB1X2xvbmcgICBjYWxjdWxhdGVfbGFwaWNfdGltZXJfcGVyaW9kKHZv
aWQpOworc3RhdGljIHZvaWQJbGFwaWNfdGltZXJfb25lc2hvdCh1X2ludCBjb3VudCk7Citz
dGF0aWMgdm9pZAlsYXBpY190aW1lcl9wZXJpb2RpYyh1X2ludCBjb3VudCk7CitzdGF0aWMg
dm9pZAlsYXBpY190aW1lcl9zZXRfZGl2aXNvcih1X2ludCBkaXZpc29yKTsKIHN0YXRpYyB1
aW50MzJfdAlsdnRfbW9kZShzdHJ1Y3QgbGFwaWMgKmxhLCB1X2ludCBwaW4sIHVpbnQzMl90
IHZhbHVlKTsKIAogc3RhdGljIHVpbnQzMl90CkBAIC0xODEsNiArMjAzLDcgQEAKIAlQQ1BV
X1NFVChhcGljX2lkLCBsYXBpY19pZCgpKTsKIAogCS8qIFhYWDogdGltZXIvZXJyb3IvdGhl
cm1hbCBpbnRlcnJ1cHRzICovCisJc2V0aWR0KEFQSUNfVElNRVJfSU5ULCBJRFRWRUModGlt
ZXJpbnQpLCBTRFRfU1lTSUdULCBTRUxfS1BMLDApOwogfQogCiAvKgpAQCAtMjQ0LDEzICsy
NjcsNTYgQEAKIAkgICAgKCJObyBJU1IgaGFuZGxlciBmb3IgSVJRICV1IiwgaXJxKSk7CiAJ
c2V0aWR0KHZlY3RvciwgaW9pbnRfaGFuZGxlcnNbdmVjdG9yIC8gMzJdLCBTRFRfU1lTSUdU
LCBTRUxfS1BMLCAgMCk7CiB9CitzdGF0aWMgdV9sb25nCitjYWxjdWxhdGVfbGFwaWNfdGlt
ZXJfcGVyaW9kKHZvaWQpCit7CisJdV9sb25nIHBlcmlvZCx2YWx1ZTsKKworCS8qIFN0YXJ0
IG9mZiB3aXRoIGEgZGl2aXNvciBvZiAyIChwb3dlciBvbiByZXNldCBkZWZhdWx0KS4gKi8K
KwlsYXBpY190aW1lcl9kaXZpc29yID0gODsKKworCS8qIFRyeSB0byBjYWxpYnJhdGUgdGhl
IGxvY2FsIEFQSUMgdGltZXIuICovCisJZG8geworCQlwcmludGYoImxhcGljIHRpbWVyIGRp
dmlzb3I6JWx1XG4iLGxhcGljX3RpbWVyX2Rpdmlzb3IpOworCQlsYXBpY190aW1lcl9zZXRf
ZGl2aXNvcihsYXBpY190aW1lcl9kaXZpc29yKTsKKwkJbGFwaWNfdGltZXJfb25lc2hvdChB
UElDX1RJTUVSX01BWF9DT1VOVCk7CisJCURFTEFZKDIwMDAwMDApOworCQl2YWx1ZSA9IEFQ
SUNfVElNRVJfTUFYX0NPVU5UIC0gbGFwaWMtPmNjcl90aW1lcjsKKwkJcHJpbnRmKCJ2YWx1
ZTolbHUoY2NyOiV1KVxuIix2YWx1ZSxsYXBpYy0+Y2NyX3RpbWVyKTsKKwkJaWYgKHZhbHVl
ICE9IEFQSUNfVElNRVJfTUFYX0NPVU5UKQorCQkJYnJlYWs7CisJCWxhcGljX3RpbWVyX2Rp
dmlzb3IgPDw9IDE7CisJfSB3aGlsZSAobGFwaWNfdGltZXJfZGl2aXNvciA8PSAxMjgpOwor
CWlmIChsYXBpY190aW1lcl9kaXZpc29yID4gMTI4KQorCQlwYW5pYygibGFwaWM6IERpdmlz
b3IgdG9vIGJpZyIpOworCXZhbHVlIC89IDI7CisJcHJpbnRmKCJsYXBpYzogRnJlcXVlbmN5
ICVsdSBoelxuIiwgdmFsdWUpOwogCisJLyoKKwkgKiBXZSB3aWxsIGRyaXZlIHRoZSB0aW1l
ciB2aWEgaHouICBSZXF1aXJlIGh6IHRvIGJlIGdyZWF0ZXIgdGhhbgorCSAqIHN0YXRoeiwg
YnV0IGlmIGh6IGlzIGxlc3MgdGhhbiB0aGUgZGVmYXVsdCBwcm9maHosIGNhcCBwcm9maHoK
KwkgKiBhdCBoei4KKwkgKi8KKwlzdGF0aHogPSBMQVBJQ19USU1FUl9TVEFUSFo7CisJaWYg
KGh6IDwgc3RhdGh6KSB7CisJCXByaW50ZigibGFwaWM6IEFkanVzdGluZyBoeiBmcm9tICVk
IHRvICVkXG4iLCBoeiwgc3RhdGh6KTsKKwkJaHogPSBzdGF0aHo7CisJfQorCXBlcmlvZD12
YWx1ZSAvIGh6OworCUtBU1NFUlQocGVyaW9kIT0wLCAoIkNQVTolZCBsYXBpYyV1OiB6ZXJv
IGRpdmlzb3IiLFBDUFVfR0VUKGNwdWlkKSxsYXBpY19pZCgpKSk7CisjaWYgMCAgLyogIFBs
ZWFzZSBlbmFibGUgZm9sbG93aW5nIGxpbmVzIGlmIHlvdSB3YW50IHRvIHNob3cgcGVyaW9k
L2Rpdmlzb3IgKi8KKwlwcmludGYoIlNldHVwIENQVTolZCBwZXJpb2Q6JWx1IHZhbD0lbHVc
biIsUENQVV9HRVQoY3B1aWQpLGxhcGljX3RpbWVyX3BlcmlvZCx2YWx1ZSk7CisJcHJpbnRm
KCJTZXR1cCBDUFU6JWQgZGl2PSVsdVxuIixQQ1BVX0dFVChjcHVpZCksbGFwaWNfdGltZXJf
ZGl2aXNvcik7CisjZW5kaWYKKwlyZXR1cm4gIHBlcmlvZDsKK30KIHZvaWQKIGxhcGljX3Nl
dHVwKHZvaWQpCiB7CiAJc3RydWN0IGxhcGljICpsYTsKIAl1X2ludDMyX3QgdmFsdWUsIG1h
eGx2dDsKIAlyZWdpc3Rlcl90IGVmbGFnczsKKwljaGFyIGJ1ZltNQVhDT01MRU4gKyAxXTsK
IAogCWxhID0gJmxhcGljc1tsYXBpY19pZCgpXTsKIAlLQVNTRVJUKGxhLT5sYV9wcmVzZW50
LCAoIm1pc3NpbmcgQVBJQyBzdHJ1Y3R1cmUiKSk7CkBAIC0yODEsOSArMzQ3LDQ3IEBACiAJ
bGFwaWMtPmx2dF9saW50MSA9IGx2dF9tb2RlKGxhLCBMVlRfTElOVDEsIGxhcGljLT5sdnRf
bGludDEpOwogCiAJLyogWFhYOiBtb3JlIExWVCBlbnRyaWVzICovCisJLyogUHJvZ3JhbSB0
aW1lciBMVlQgYW5kIHNldHVwIGhhbmRsZXIuICovCisJbGFwaWMtPmx2dF90aW1lciA9IGx2
dF9tb2RlKGxhLCBMVlRfVElNRVIsIGxhcGljLT5sdnRfdGltZXIpOworCXNucHJpbnRmKGJ1
Ziwgc2l6ZW9mKGJ1ZiksICJsYXBpYyVkOiB0aW1lciIsIGxhcGljX2lkKCkpOworCWludHJj
bnRfYWRkKGJ1ZiwgJmxhLT5sYV90aW1lcl9jb3VudCk7CisJaWYgKFBDUFVfR0VUKGNwdWlk
KSAhPSAwKSB7CisJCWxhcGljX3RpbWVyX3BlcmlvZD1jYWxjdWxhdGVfbGFwaWNfdGltZXJf
cGVyaW9kKCk7CisJCWxhcGljX3RpbWVyX3NldF9kaXZpc29yKGxhcGljX3RpbWVyX2Rpdmlz
b3IpOworCQlsYXBpY190aW1lcl9wZXJpb2RpYyhsYXBpY190aW1lcl9wZXJpb2QpOworCQls
YXBpY190aW1lcl9lbmFibGVfaW50cigpOworCX0KIAogCWludHJfcmVzdG9yZShlZmxhZ3Mp
OwogfQorLyoKKyAqIENhbGxlZCBieSBjcHVfaW5pdGNsb2NrcygpIG9uIHRoZSBCU1AgdG8g
c2V0dXAgdGhlIGxvY2FsIEFQSUMgdGltZXIgc28KKyAqIHRoYXQgaXQgY2FuIGRyaXZlIGhh
cmRjbG9jaywgc3RhdGNsb2NrLCBhbmQgcHJvZmNsb2NrLiAgVGhpcyBmdW5jdGlvbgorICog
cmV0dXJucyB0cnVlIGlmIGl0IGlzIGFibGUgdG8gdXNlIHRoZSBsb2NhbCBBUElDIHRpbWVy
IHRvIGRyaXZlIHRoZQorICogY2xvY2tzIGFuZCBmYWxzZSBpZiBpdCBpcyBub3QgYWJsZS4K
KyAqLworaW50CitsYXBpY19zZXR1cF9jbG9jayh2b2lkKQoreworCS8qIENhbid0IGRyaXZl
IHRoZSB0aW1lciB3aXRob3V0IGEgbG9jYWwgQVBJQy4gKi8KKwlpZiAobGFwaWMgPT0gTlVM
TCkKKwkJcmV0dXJuICgwKTsKKworCWxhcGljX3RpbWVyX3BlcmlvZCA9IGNhbGN1bGF0ZV9s
YXBpY190aW1lcl9wZXJpb2QoKTsKKwlwcm9maHogPSBpbWluKGh6LCBMQVBJQ19USU1FUl9Q
Uk9GSFopOworCWludHJjbnRfYWRkKCJsYXBpYzogaGFyZGNsb2NrIiwgJmxhcGljX3ZpcnR1
YWxfaGFyZGNsb2NrKTsKKwlpbnRyY250X2FkZCgibGFwaWM6IHN0YXRjbG9jayIsICZsYXBp
Y192aXJ0dWFsX3N0YXRjbG9jayk7CisJaW50cmNudF9hZGQoImxhcGljOiBwcm9mY2xvY2si
LCAmbGFwaWNfdmlydHVhbF9wcm9mY2xvY2spOworCisJLyoKKwkgKiBTdGFydCB1cCB0aGUg
dGltZXIgb24gdGhlIEJTUC4gIFRoZSBBUHMgd2lsbCBraWNrIG9mZiB0aGVpcgorCSAqIHRp
bWVyIGR1cmluZyBsYXBpY19zZXR1cCgpLgorCSAqLworCWxhcGljX3RpbWVyX3BlcmlvZGlj
KGxhcGljX3RpbWVyX3BlcmlvZCk7CisJbGFwaWNfdGltZXJfZW5hYmxlX2ludHIoKTsKKwly
ZXR1cm4gKDEpOworfQorCiAKIHZvaWQKIGxhcGljX2Rpc2FibGUodm9pZCkKQEAgLTUxNSw2
ICs2MTksODcgQEAKIAlpc3JjID0gaW50cl9sb29rdXBfc291cmNlKGFwaWNfaWR0X3RvX2ly
cSh2ZWMpKTsKIAlpbnRyX2V4ZWN1dGVfaGFuZGxlcnMoaXNyYywgJmZyYW1lKTsKIH0KK3Zv
aWQKK2xhcGljX2hhbmRsZV90aW1lcihzdHJ1Y3QgY2xvY2tmcmFtZSBmcmFtZSkKK3sKKwlz
dHJ1Y3QgbGFwaWMgKmxhOworCisJbGEgPSAmbGFwaWNzW1BDUFVfR0VUKGFwaWNfaWQpXTsK
KwkoKmxhLT5sYV90aW1lcl9jb3VudCkrKzsKKwljcml0aWNhbF9lbnRlcigpOworCisJLyog
SGFyZGNsb2NrIGZpcmVzIG9uIGV2ZXJ5IGludGVycnVwdCBzaW5jZSB3ZSBpbnRlcnJ1cHQg
YXQgaHouICovCisJaWYgKFBDUFVfR0VUKGNwdWlkKSA9PSAwKSB7CisJCSgqbGFwaWNfdmly
dHVhbF9oYXJkY2xvY2spKys7CisJCWhhcmRjbG9jaygmZnJhbWUpOworCX0gZWxzZQorCQlo
YXJkY2xvY2tfcHJvY2VzcygmZnJhbWUpOworCisJLyogVXNlIGEgcG9vciBtYW4ncyBhbGdv
cml0aG0gdG8gZmlyZSBzdGF0Y2xvY2sgYXQgc3RhdGh6LiAqLworCWxhLT5sYV9zdGF0X3Rp
Y2tzICs9IHN0YXRoejsKKwlpZiAobGEtPmxhX3N0YXRfdGlja3MgPj0gaHopIHsKKwkJbGEt
PmxhX3N0YXRfdGlja3MgLT0gaHo7CisJCWlmIChQQ1BVX0dFVChjcHVpZCkgPT0gMCkKKwkJ
CSgqbGFwaWNfdmlydHVhbF9zdGF0Y2xvY2spKys7CisJCXN0YXRjbG9jaygmZnJhbWUpOwor
CX0KKworCS8qIFVzZSB0aGUgc2FtZSB0cmljayBmb3IgcHJvZmh6LiAqLworCWxhLT5sYV9w
cm9mX3RpY2tzICs9IHByb2ZoejsKKwlpZiAobGEtPmxhX3Byb2ZfdGlja3MgPj0gaHopIHsK
KwkJbGEtPmxhX3Byb2ZfdGlja3MgLT0gaHo7CisJCWlmIChQQ1BVX0dFVChjcHVpZCkgPT0g
MCkKKwkJCSgqbGFwaWNfdmlydHVhbF9wcm9mY2xvY2spKys7CisJCWlmIChwcm9mcHJvY3Mg
IT0gMCkKKwkJCXByb2ZjbG9jaygmZnJhbWUpOworCX0KKwljcml0aWNhbF9leGl0KCk7Cit9
CisKK3N0YXRpYyB2b2lkCitsYXBpY190aW1lcl9zZXRfZGl2aXNvcih1X2ludCBkaXZpc29y
KQoreworCisJS0FTU0VSVChwb3dlcm9mMihkaXZpc29yKSwgKCJsYXBpYzogaW52YWxpZCBk
aXZpc29yICV1IiwgZGl2aXNvcikpOworCUtBU1NFUlQoZmZzKGRpdmlzb3IpIDw9IHNpemVv
ZihsYXBpY190aW1lcl9kaXZpc29ycykgLworCSAgICBzaXplb2YodV9pbnQzMl90KSwgKCJs
YXBpYzogaW52YWxpZCBkaXZpc29yICV1IiwgZGl2aXNvcikpOworCWxhcGljLT5kY3JfdGlt
ZXIgPSBsYXBpY190aW1lcl9kaXZpc29yc1tmZnMoZGl2aXNvcikgLSAxXTsKK30KKworc3Rh
dGljIHZvaWQKK2xhcGljX3RpbWVyX29uZXNob3QodV9pbnQgY291bnQpCit7CisJdV9pbnQz
Ml90IHZhbHVlOworCisJdmFsdWUgPSBsYXBpYy0+bHZ0X3RpbWVyOworCXZhbHVlICY9IH5B
UElDX0xWVFRfVE07CisJdmFsdWUgfD0gQVBJQ19MVlRUX1RNX09ORV9TSE9UOworCWxhcGlj
LT5sdnRfdGltZXIgPSB2YWx1ZTsKKwlsYXBpYy0+aWNyX3RpbWVyID0gY291bnQ7Cit9CisK
K3N0YXRpYyB2b2lkCitsYXBpY190aW1lcl9wZXJpb2RpYyh1X2ludCBjb3VudCkKK3sKKwl1
X2ludDMyX3QgdmFsdWU7CisKKwl2YWx1ZSA9IGxhcGljLT5sdnRfdGltZXI7CisJdmFsdWUg
Jj0gfkFQSUNfTFZUVF9UTTsKKwl2YWx1ZSB8PSBBUElDX0xWVFRfVE1fUEVSSU9ESUM7CisJ
bGFwaWMtPmx2dF90aW1lciA9IHZhbHVlOworCWxhcGljLT5pY3JfdGltZXIgPSBjb3VudDsK
K30KKworc3RhdGljIHZvaWQKK2xhcGljX3RpbWVyX2VuYWJsZV9pbnRyKHZvaWQpCit7CisJ
dV9pbnQzMl90IHZhbHVlOworCisJdmFsdWUgPSBsYXBpYy0+bHZ0X3RpbWVyOworCXZhbHVl
ICY9IH5BUElDX0xWVF9NOworCWxhcGljLT5sdnRfdGltZXIgPSB2YWx1ZTsKK30KKwogCiAv
KiBUcmFuc2xhdGUgYmV0d2VlbiBJRFQgdmVjdG9ycyBhbmQgSVJRIHZlY3RvcnMuICovCiB1
X2ludApJbmRleDogYW1kNjQvYW1kNjQvbXBfbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9ob21lL2thdG8vY3ZzL2thdG8tc3lzL2FtZDY0L2FtZDY0L21wX21hY2hkZXAu
Yyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MgpkaWZmIC11IC1yMS4xLjEuMSAtcjEuMgotLS0gYW1kNjQvYW1kNjQvbXBfbWFjaGRlcC5j
CTE4IEZlYiAyMDA1IDE0OjA1OjU1IC0wMDAwCTEuMS4xLjEKKysrIGFtZDY0L2FtZDY0L21w
X21hY2hkZXAuYwkyMCBGZWIgMjAwNSAxODoxNToyOSAtMDAwMAkxLjIKQEAgLTg3MSw3ICs4
NzEsNyBAQAogCQlzbXBfdGFyZ2V0ZWRfdGxiX3Nob290ZG93bihtYXNrLCBJUElfSU5WTFJO
RywgYWRkcjEsIGFkZHIyKTsKIH0KIAotCisjaWYgMAogLyoKICAqIEZvciBzdGF0Y2xvY2ss
IHdlIHNlbmQgYW4gSVBJIHRvIGFsbCBDUFUncyB0byBoYXZlIHRoZW0gY2FsbCB0aGlzCiAg
KiBmdW5jdGlvbi4KQEAgLTkxNCwxNiArOTE0LDE2IEBACiAJaWYgKG1hcCAhPSAwKQogCQlp
cGlfc2VsZWN0ZWQobWFwLCBJUElfSEFSRENMT0NLKTsKIH0KLQorI2VuZGlmIAogdm9pZAog
aXBpX2JpdG1hcF9oYW5kbGVyKHN0cnVjdCBjbG9ja2ZyYW1lIGZyYW1lKQogewogCWludCBj
cHUgPSBQQ1BVX0dFVChjcHVpZCk7CiAJdV9pbnQgaXBpX2JpdG1hcDsKLQlzdHJ1Y3QgdGhy
ZWFkICp0ZDsKIAotCWlwaV9iaXRtYXAgPSBhdG9taWNfcmVhZGFuZGNsZWFyX2ludCgmY3B1
X2lwaV9wZW5kaW5nW2NwdV0pOwogCisJaXBpX2JpdG1hcCA9IGF0b21pY19yZWFkYW5kY2xl
YXJfaW50KCZjcHVfaXBpX3BlbmRpbmdbY3B1XSk7CisjaWYgMAogCWNyaXRpY2FsX2VudGVy
KCk7CiAKIAkvKiBOb3RoaW5nIHRvIGRvIGZvciBBU1QgKi8KQEAgLTk0OCw2ICs5NDgsNyBA
QAogCX0KIAogCWNyaXRpY2FsX2V4aXQoKTsKKyNlbmRpZgogfQogCiAvKgpJbmRleDogYW1k
NjQvY29uZi9DVVJSRU5ULU1BUlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUva2F0
by9jdnMva2F0by1zeXMvYW1kNjQvY29uZi9DVVJSRU5ULU1BUlMsdgpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuMS4xLjEKcmV0cmlldmluZyByZXZpc2lvbiAxLjIKZGlmZiAtdSAtcjEuMS4x
LjEgLXIxLjIKSW5kZXg6IGFtZDY0L2luY2x1ZGUvYXBpY3Zhci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9ob21lL2thdG8vY3ZzL2thdG8tc3lzL2FtZDY0L2luY2x1ZGUvYXBpY3Zh
ci5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEuMS4xCnJldHJpZXZpbmcgcmV2aXNpb24g
MS4yCmRpZmYgLXUgLXIxLjEuMS4xIC1yMS4yCi0tLSBhbWQ2NC9pbmNsdWRlL2FwaWN2YXIu
aAkxOCBGZWIgMjAwNSAxNDowNTo1NSAtMDAwMAkxLjEuMS4xCisrKyBhbWQ2NC9pbmNsdWRl
L2FwaWN2YXIuaAkyMCBGZWIgMjAwNSAxODoxNTozMyAtMDAwMAkxLjIKQEAgLTEyMyw5ICsx
MjMsMTIgQEAKIAogLyogSVBJcyBoYW5kbGVkIGJ5IElQSV9CSVRNQVBFRF9WRUNUT1IgIChY
WFggdXBzIGlzIHRoZXJlIGEgYmV0dGVyIHBsYWNlPykgKi8KICNkZWZpbmUJSVBJX0FTVAkJ
MCAJLyogR2VuZXJhdGUgc29mdHdhcmUgdHJhcC4gKi8KKyNpZiAwCiAjZGVmaW5lCUlQSV9I
QVJEQ0xPQ0sJMQkvKiBJbnRlci1DUFUgY2xvY2sgaGFuZGxpbmcuICovCiAjZGVmaW5lCUlQ
SV9TVEFUQ0xPQ0sJMgogI2RlZmluZSBJUElfQklUTUFQX0xBU1QgSVBJX1NUQVRDTE9DSwor
I2VuZGlmCisjZGVmaW5lIElQSV9CSVRNQVBfTEFTVCBJUElfQVNUCiAjZGVmaW5lIElQSV9J
U19CSVRNQVBFRCh4KSAoKHgpIDw9IElQSV9CSVRNQVBfTEFTVCkKIAogI2RlZmluZQlJUElf
U1RPUAkoQVBJQ19JUElfSU5UUyArIDYpCS8qIFN0b3AgQ1BVIHVudGlsIHJlc3RhcnRlZC4g
Ki8KQEAgLTE3Miw3ICsxNzUsNyBAQAogaW50aGFuZF90CiAJSURUVkVDKGFwaWNfaXNyMSks
IElEVFZFQyhhcGljX2lzcjIpLCBJRFRWRUMoYXBpY19pc3IzKSwKIAlJRFRWRUMoYXBpY19p
c3I0KSwgSURUVkVDKGFwaWNfaXNyNSksIElEVFZFQyhhcGljX2lzcjYpLAotCUlEVFZFQyhh
cGljX2lzcjcpLCBJRFRWRUMoc3B1cmlvdXNpbnQpOworCUlEVFZFQyhhcGljX2lzcjcpLCBJ
RFRWRUMoc3B1cmlvdXNpbnQpLElEVFZFQyh0aW1lcmludCk7CiAKIHVfaW50CWFwaWNfaXJx
X3RvX2lkdCh1X2ludCBpcnEpOwogdV9pbnQJYXBpY19pZHRfdG9faXJxKHVfaW50IHZlY3Rv
cik7CkBAIC0yMDMsNiArMjA2LDcgQEAKIHZvaWQJbGFwaWNfaXBpX3ZlY3RvcmVkKHVfaW50
IHZlY3RvciwgaW50IGRlc3QpOwogaW50CWxhcGljX2lwaV93YWl0KGludCBkZWxheSk7CiB2
b2lkCWxhcGljX2hhbmRsZV9pbnRyKHZvaWQgKmNvb2tpZSwgc3RydWN0IGludHJmcmFtZSBm
cmFtZSk7Cit2b2lkCWxhcGljX2hhbmRsZV90aW1lcihzdHJ1Y3QgY2xvY2tmcmFtZSBmcmFt
ZSk7CiB2b2lkCWxhcGljX3NldF9sb2dpY2FsX2lkKHVfaW50IGFwaWNfaWQsIHVfaW50IGNs
dXN0ZXIsIHVfaW50IGNsdXN0ZXJfaWQpOwogaW50CWxhcGljX3NldF9sdnRfbWFzayh1X2lu
dCBhcGljX2lkLCB1X2ludCBsdnQsIHVfY2hhciBtYXNrZWQpOwogaW50CWxhcGljX3NldF9s
dnRfbW9kZSh1X2ludCBhcGljX2lkLCB1X2ludCBsdnQsIHVfaW50MzJfdCBtb2RlKTsKQEAg
LTIxMiw2ICsyMTYsNyBAQAogCSAgICBlbnVtIGludHJfdHJpZ2dlciB0cmlnZ2VyKTsKIHZv
aWQJbGFwaWNfc2V0X3Rwcih1X2ludCB2ZWN0b3IpOwogdm9pZAlsYXBpY19zZXR1cCh2b2lk
KTsKK2ludAlsYXBpY19zZXR1cF9jbG9jayh2b2lkKTsKIAogI2VuZGlmIC8qICFMT0NPUkUg
Ki8KICNlbmRpZiAvKiBfTUFDSElORV9BUElDVkFSX0hfICovCkluZGV4OiBhbWQ2NC9pc2Ev
Y2xvY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9rYXRvL2N2cy9rYXRvLXN5
cy9hbWQ2NC9pc2EvY2xvY2suYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xLjEuMQpkaWZm
IC11IC1yMS4xLjEuMSBjbG9jay5jCi0tLSBhbWQ2NC9pc2EvY2xvY2suYwkxOCBGZWIgMjAw
NSAxNDowNTo1NSAtMDAwMAkxLjEuMS4xCisrKyBhbWQ2NC9pc2EvY2xvY2suYwkyMCBGZWIg
MjAwNSAxODoyNTo1MCAtMDAwMApAQCAtNjQsMTMgKzY0LDE0IEBACiAjaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgogI2luY2x1ZGUgPHN5cy9jb25zLmg+CiAjaW5jbHVkZSA8c3lzL3Bvd2Vy
Lmg+Ci0KKyNkZWZpbmUgTEFQSUNfVElNRVIKICNpbmNsdWRlIDxtYWNoaW5lL2Nsb2NrLmg+
CiAjaW5jbHVkZSA8bWFjaGluZS9mcmFtZS5oPgogI2luY2x1ZGUgPG1hY2hpbmUvaW50cl9t
YWNoZGVwLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9tZF92YXIuaD4KICNpbmNsdWRlIDxtYWNo
aW5lL3BzbC5oPgotI2lmZGVmIFNNUAorI2lmZGVmIExBUElDX1RJTUVSCisjaW5jbHVkZSA8
bWFjaGluZS9hcGljdmFyLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9zbXAuaD4KICNlbmRpZgog
I2luY2x1ZGUgPG1hY2hpbmUvc3BlY2lhbHJlZy5oPgpAQCAtMTEzLDYgKzExNCw3IEBACiBz
dGF0aWMJdV9pbnQzMl90IGk4MjU0X29mZnNldDsKIHN0YXRpYwlpbnQJKCppODI1NF9wZW5k
aW5nKShzdHJ1Y3QgaW50c3JjICopOwogc3RhdGljCWludAlpODI1NF90aWNrZWQ7CitzdGF0
aWMJaW50CXVzaW5nX2xhcGljX3RpbWVyOwogc3RhdGljCXVfY2hhcglydGNfc3RhdHVzYSA9
IFJUQ1NBX0RJVklERVIgfCBSVENTQV9OT1BST0Y7CiBzdGF0aWMJdV9jaGFyCXJ0Y19zdGF0
dXNiID0gUlRDU0JfMjRIUiB8IFJUQ1NCX1BJTlRSOwogCkBAIC0xMzksNyArMTQxLDYgQEAK
IHN0YXRpYyB2b2lkCiBjbGtpbnRyKHN0cnVjdCBjbG9ja2ZyYW1lICpmcmFtZSkKIHsKLQog
CWlmICh0aW1lY291bnRlci0+dGNfZ2V0X3RpbWVjb3VudCA9PSBpODI1NF9nZXRfdGltZWNv
dW50KSB7CiAJCW10eF9sb2NrX3NwaW4oJmNsb2NrX2xvY2spOwogCQlpZiAoaTgyNTRfdGlj
a2VkKQpAQCAtMTUxLDEwICsxNTIsOCBAQAogCQljbGtpbnRyX3BlbmRpbmcgPSAwOwogCQlt
dHhfdW5sb2NrX3NwaW4oJmNsb2NrX2xvY2spOwogCX0KLQloYXJkY2xvY2soZnJhbWUpOwot
I2lmZGVmIFNNUAotCWZvcndhcmRfaGFyZGNsb2NrKCk7Ci0jZW5kaWYKKwlpZiAoIXVzaW5n
X2xhcGljX3RpbWVyKQkKKwkJaGFyZGNsb2NrKGZyYW1lKTsKIH0KIAogaW50CkBAIC0yMjEs
OSArMjIwLDYgQEAKIAkJfQogCQlpZiAocHNjbnQgPT0gcHNkaXYpCiAJCQlzdGF0Y2xvY2so
ZnJhbWUpOwotI2lmZGVmIFNNUAotCQlmb3J3YXJkX3N0YXRjbG9jaygpOwotI2VuZGlmCiAJ
fQogfQogCkBAIC03MzEsNiArNzI3LDkgQEAKIAlpbnQgZGlhZzsKIAogCWlmIChzdGF0Y2xv
Y2tfZGlzYWJsZSkgeworI2lmZGVmIExBUElDX1RJTUVSCisJdXNpbmdfbGFwaWNfdGltZXIg
PSBsYXBpY19zZXR1cF9jbG9jaygpOworI2VuZGlmCiAJCS8qCiAJCSAqIFRoZSBzdGF0IGlu
dGVycnVwdCBtYXNrIGlzIGRpZmZlcmVudCB3aXRob3V0IHRoZQogCQkgKiBzdGF0aXN0aWNz
IGNsb2NrLiAgQWxzbywgZG9uJ3Qgc2V0IHRoZSBpbnRlcnJ1cHQKQEAgLTc1Niw3ICs3NTUs
NyBAQAogCXdyaXRlcnRjKFJUQ19TVEFUVVNCLCBSVENTQl8yNEhSKTsKIAogCS8qIERvbid0
IGJvdGhlciBlbmFibGluZyB0aGUgc3RhdGlzdGljcyBjbG9jay4gKi8KLQlpZiAoIXN0YXRj
bG9ja19kaXNhYmxlKSB7CisJaWYgKCFzdGF0Y2xvY2tfZGlzYWJsZSAmJiAhdXNpbmdfbGFw
aWNfdGltZXIpIHsKIAkJZGlhZyA9IHJ0Y2luKFJUQ19ESUFHKTsKIAkJaWYgKGRpYWcgIT0g
MCkKIAkJCXByaW50ZigiUlRDIEJJT1MgZGlhZ25vc3RpYyBlcnJvciAlYlxuIiwgZGlhZywg
UlRDREdfQklUUyk7CkBAIC03NzQsNyArNzczLDggQEAKIHZvaWQKIGNwdV9zdGFydHByb2Zj
bG9jayh2b2lkKQogewotCisJaWYgKHVzaW5nX2xhcGljX3RpbWVyKQorCQlyZXR1cm47CiAJ
cnRjX3N0YXR1c2EgPSBSVENTQV9ESVZJREVSIHwgUlRDU0FfUFJPRjsKIAl3cml0ZXJ0YyhS
VENfU1RBVFVTQSwgcnRjX3N0YXR1c2EpOwogCXBzZGl2ID0gcHNjbnQgPSBwc3JhdGlvOwpA
QCAtNzgzLDcgKzc4Myw4IEBACiB2b2lkCiBjcHVfc3RvcHByb2ZjbG9jayh2b2lkKQogewot
CisJaWYgKHVzaW5nX2xhcGljX3RpbWVyKQorCQlyZXR1cm47CiAJcnRjX3N0YXR1c2EgPSBS
VENTQV9ESVZJREVSIHwgUlRDU0FfTk9QUk9GOwogCXdyaXRlcnRjKFJUQ19TVEFUVVNBLCBy
dGNfc3RhdHVzYSk7CiAJcHNkaXYgPSBwc2NudCA9IDE7Cg==
--------------030802060005060601090600--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?421A4D5D.6040205>