NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/60700: Enhancement and man page for PCF8583
The following reply was made to PR kern/60700; it has been noted by GNATS.
From: Dave Tyson <dtyson%anduin.org.uk@localhost>
To: Julian Coleman <jdc%coris.org.uk@localhost>, gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: kern/60700: Enhancement and man page for PCF8583
Date: Tue, 29 Sep 2026 20:13:22 +0100
--=-88t/1wLz9f76B+tjY4kn
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
This is an updated patch which addresses points raised by Julian. The
device does not contain NVRAM and so does not retain info over power
down unless a battery is attached. The print lines now display the mode
on the attachment line. The new man page has some updates and
corrections.
Tested on a RPI Zero 2 under NetBSD current 11.99.8=C2=A0AARCH64
bsciic1 at simplebus1: Broadcom Serial Controller
bsciic1: interrupting on icu irq 53
iic1 at bsciic1: I2C bus
pcfrtc0 at iic1 addr 0x50: PCF8583 Mode 0: 32768 Hz tod clock
bsciic2 at simplebus1: Broadcom Serial Controller
bsciic2: interrupting on icu irq 53
iic2 at bsciic2: I2C bus
pcfrtc1 at iic2 addr 0x51: PCF8583 Mode 2: Counter
Unified patches against latest current available at
https://penkett.anduin.org.uk/~dtyson/pcf8583/diffs
or in attachment
--=-88t/1wLz9f76B+tjY4kn
Content-Disposition: attachment; filename="diffs"
Content-Transfer-Encoding: base64
Content-Type: text/x-patch; name="diffs"; charset="UTF-8"
LS0tIHBjZjg1ODMuYy5vcmlnCTIwMjUtMDktMDcgMjI6NDU6MTUuMDAwMDAwMDAwICswMTAwCisr
KyBwY2Y4NTgzLmMJMjAyNi0wOS0yOCAyMzoxNjowNC40MjM3OTE4NzMgKzAxMDAKQEAgLTQwLDYg
KzQwLDE1IEBACiAgKgogICogVGhpcyBkcml2ZXIgaXMgcGFydGlhbGx5IGRlcml2ZWQgZnJvbSBC
ZW4gSGFycmlzJ3MgUENGODU4MyBkcml2ZXIKICAqIGZvciBOZXRCU0QvYWNvcm4yNi4KKyAqCisg
KiBBZGRpdGlvbmFsIGNvZGUgd3JpdHRlbiBieSBEYXZlIFR5c29uIHRvIHN1cHBvcnQgZHVhbCBh
ZGRyZXNzaW5nIDB4NTAvMHg1MQorICogYW5kIHRvIHNlbGVjdCBjaGlwIG9wZXJhdGluZyBtb2Rl
IHVzaW5nIG9wdGlvbmFsIGZsYWcgaW4ga2VybmVsIGNvbmZpZy4KKyAqIERlZmF1bHQgd2l0aCBu
byBmbGFnIHNldCBvciBmbGFnIDAgaXMgZXhpc3RpbmcgdG9kIGNsb2NrIG1vZGUsIGZsYWcgMSBz
ZXRzCisgKiA1MGh6IGlucHV0ICh0b2QgY2xvY2spLCBmbGFnIDIgc2V0cyBjb3VudGVyIG1vZGUs
IGZsYWcgMyBzZXRzIHRlc3QgbW9kZS4KKyAqCisgKiBTZXR0aW5nIGNvdW50ZXIgbW9kZSBwcm92
aWRlcyBhbiBlbnZzeXMgdmFyaWFibGUgbWFwcGVkIHRvIHRoZSBjb3VudGVyIGFuZAorICogZXhw
b3NlcyBhIGh3IHN5Y3RsIHZhcmlhYmxlIHdoaWNoIGNhbiBzZXQgdG8gMSB0byB6ZXJvIHRoZSBj
b3VudGVyIHJlZ2lzdGVycworICogYWZ0ZXIgdGhlIG5leHQgZW52c3RhdCBjYWxsLiAKICAqLwog
CiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CkBAIC00OSw2ICs1OCw3IEBACiAjaW5jbHVkZSA8c3lz
L3N5c3RtLmg+CiAjaW5jbHVkZSA8c3lzL2RldmljZS5oPgogI2luY2x1ZGUgPHN5cy9rZXJuZWwu
aD4KKyNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+CiAjaW5jbHVkZSA8c3lzL2ZjbnRsLmg+CiAjaW5j
bHVkZSA8c3lzL3Vpby5oPgogI2luY2x1ZGUgPHN5cy9jb25mLmg+CkBAIC01OSw2ICs2OSw3IEBA
CiAjaW5jbHVkZSA8ZGV2L2kyYy9pMmN2YXIuaD4KICNpbmNsdWRlIDxkZXYvaTJjL3BjZjg1ODNy
ZWcuaD4KICNpbmNsdWRlIDxkZXYvaTJjL3BjZjg1ODN2YXIuaD4KKyNpbmNsdWRlIDxkZXYvc3lz
bW9uL3N5c21vbnZhci5oPgogCiAjaW5jbHVkZSAiaW9jb25mLmgiCiAKQEAgLTY4LDEwICs3OSwx
NSBAQAogCWludCBzY19hZGRyZXNzOwogCWludCBzY19vcGVuOwogCXN0cnVjdCB0b2RyX2NoaXBf
aGFuZGxlIHNjX3RvZHI7CisJc3RydWN0IHN5c21vbl9lbnZzeXMgKnNjX3NtZTsKKwllbnZzeXNf
ZGF0YV90IHNjX2NvdW50ZXI7CisJc3RydWN0IHN5c2N0bGxvZyAqc2NfcGNmcnRjbG9nOworCWlu
dCByZXNldF9jb3VudGVyOwogfTsKIAogc3RhdGljIGludCAgcGNmcnRjX21hdGNoKGRldmljZV90
LCBjZmRhdGFfdCwgdm9pZCAqKTsKIHN0YXRpYyB2b2lkIHBjZnJ0Y19hdHRhY2goZGV2aWNlX3Qs
IGRldmljZV90LCB2b2lkICopOworc3RhdGljIGludCBwY2ZydGNfc3lzY3RsX3NldHVwKHN0cnVj
dCBwY2ZydGNfc29mdGMgKnNjKTsKIAogQ0ZBVFRBQ0hfREVDTF9ORVcocGNmcnRjLCBzaXplb2Yo
c3RydWN0IHBjZnJ0Y19zb2Z0YyksCiAJcGNmcnRjX21hdGNoLCBwY2ZydGNfYXR0YWNoLCBOVUxM
LCBOVUxMKTsKQEAgLTEwMiwxMyArMTE4LDE2IEBACiAJCQkgICAgICB1aW50OF90KTsKIHN0YXRp
YyBpbnQgcGNmcnRjX2dldHRpbWUoc3RydWN0IHRvZHJfY2hpcF9oYW5kbGUgKiwgc3RydWN0IHRp
bWV2YWwgKik7CiBzdGF0aWMgaW50IHBjZnJ0Y19zZXR0aW1lKHN0cnVjdCB0b2RyX2NoaXBfaGFu
ZGxlICosIHN0cnVjdCB0aW1ldmFsICopOworc3RhdGljIHZvaWQgcGNmcnRjX3JlYWRjb3VudChz
dHJ1Y3Qgc3lzbW9uX2VudnN5cyAqLCBlbnZzeXNfZGF0YV90ICopIDsKK3N0YXRpYyBpbnQgcGNm
cnRjX3N5c2N0bF9jaGVjayhTWVNDVExGTl9BUkdTKTsKIAogaW50CiBwY2ZydGNfbWF0Y2goZGV2
aWNlX3QgcGFyZW50LCBjZmRhdGFfdCBjZiwgdm9pZCAqYXV4KQogewogCXN0cnVjdCBpMmNfYXR0
YWNoX2FyZ3MgKmlhID0gYXV4OwogCi0JaWYgKChpYS0+aWFfYWRkciAmIFBDRjg1ODNfQUREUk1B
U0spID09IFBDRjg1ODNfQUREUikKKwlpZiAoKGlhLT5pYV9hZGRyICYgUENGODU4M19BRERSTUFT
SykgPT0gUENGODU4M19BRERSIHx8CisJICAgIChpYS0+aWFfYWRkciAmIFBDRjg1ODNfQUREUk1B
U0spID09IFBDRjg1ODNfQUREUjIpCiAJCXJldHVybiAoSTJDX01BVENIX0FERFJFU1NfT05MWSk7
CiAKIAlyZXR1cm4gKDApOwpAQCAtMTE4LDUzICsxMzcsMTA0IEBACiBwY2ZydGNfYXR0YWNoKGRl
dmljZV90IHBhcmVudCwgZGV2aWNlX3Qgc2VsZiwgdm9pZCAqYXV4KQogewogCXN0cnVjdCBwY2Zy
dGNfc29mdGMgKnNjID0gZGV2aWNlX3ByaXZhdGUoc2VsZik7CisJc3RydWN0IGNmZGF0YSAqY2Yg
PSBkZXZpY2VfY2ZkYXRhKHNlbGYpOwogCXN0cnVjdCBpMmNfYXR0YWNoX2FyZ3MgKmlhID0gYXV4
OwotCXVpbnQ4X3QgY21kYnVmWzFdLCBjc3I7CisJdWludDhfdCBjbWRidWZbMV0sIGNzciwgbW9k
ZTsKKwlpbnQgZXJyb3I7CiAKIAlzYy0+c2NfdGFnID0gaWEtPmlhX3RhZzsKIAlzYy0+c2NfYWRk
cmVzcyA9IGlhLT5pYV9hZGRyOwogCXNjLT5zY19kZXYgPSBzZWxmOwogCi0JYXByaW50X25haXZl
KCI6IFJlYWwtdGltZSBDbG9jay9OVlJBTVxuIik7Ci0JYXByaW50X25vcm1hbCgiOiBQQ0Y4NTgz
IFJlYWwtdGltZSBDbG9jay9OVlJBTVxuIik7CisJLyogaWYgZmxhZ3Mgc2V0ICYgIXplcm8gdGhl
biBuZWVkIHRvIGNoYW5nZSBkZXZpY2UgbW9kZSAqLwogCisJaWYgKGNmLT5jZl9mbGFncyAhPSAw
KSB7CisJCW1vZGUgPSBjZi0+Y2ZfZmxhZ3MgPDwgNCAmIFBDRjg1ODNfQ1NSX0ZOX01BU0s7CisJ
CWNtZGJ1ZlswXSA9IFBDRjg1ODNfUkVHX0NTUjsKKwkJaWYgKGlpY19leGVjKHNjLT5zY190YWcs
IEkyQ19PUF9XUklURV9XSVRIX1NUT1AsIHNjLT5zY19hZGRyZXNzLAorCSAgICAJIGNtZGJ1Ziwg
MSwgJm1vZGUsIDEsIDApICE9IDApIHsKKwkJCWFwcmludF9lcnJvcl9kZXYoc2VsZiwgInVuYWJs
ZSB0byB3cml0ZSBDU1JcbiIpOworCQkJcmV0dXJuOworCQl9CisJfQorIAogCWNtZGJ1ZlswXSA9
IFBDRjg1ODNfUkVHX0NTUjsKIAlpZiAoaWljX2V4ZWMoc2MtPnNjX3RhZywgSTJDX09QX1JFQURf
V0lUSF9TVE9QLCBzYy0+c2NfYWRkcmVzcywKIAkgICAgY21kYnVmLCAxLCAmY3NyLCAxLCAwKSAh
PSAwKSB7CiAJCWFwcmludF9lcnJvcl9kZXYoc2VsZiwgInVuYWJsZSB0byByZWFkIENTUlxuIik7
CiAJCXJldHVybjsKIAl9Ci0JYXByaW50X25vcm1hbF9kZXYoc2MtPnNjX2RldiwgIiIpOworCiAJ
c3dpdGNoIChjc3IgJiBQQ0Y4NTgzX0NTUl9GTl9NQVNLKSB7CiAJY2FzZSBQQ0Y4NTgzX0NTUl9G
Tl8zMjc2OEhaOgotCQlhcHJpbnRfbm9ybWFsKCIgMzIuNzY4IGtIeiBjbG9jayIpOworCQlhcHJp
bnRfbmFpdmUoIjogTW9kZSAwOiAzMjc2OCBIeiB0b2QgQ2xvY2siKTsKKwkJYXByaW50X25vcm1h
bCgiOiBQQ0Y4NTgzIE1vZGUgMDogMzI3NjggSHogdG9kIENsb2NrIik7CiAJCWJyZWFrOwogCiAJ
Y2FzZSBQQ0Y4NTgzX0NTUl9GTl81MEhaOgotCQlhcHJpbnRfbm9ybWFsKCIgNTAgSHogY2xvY2si
KTsKKwkJYXByaW50X25haXZlKCI6IE1vZGUgMTogNTBIeiB0b2QgQ2xvY2siKTsKKwkJYXByaW50
X25vcm1hbCgiOiBQQ0Y4NTgzIE1vZGUgMTogNTBIeiB0b2QgQ2xvY2siKTsKIAkJYnJlYWs7CiAK
IAljYXNlIFBDRjg1ODNfQ1NSX0ZOX0VWRU5UOgotCQlhcHJpbnRfbm9ybWFsKCIgZXZlbnQgY291
bnRlciIpOworCQlhcHJpbnRfbmFpdmUoIjogTW9kZSAyOiBDb3VudGVyIik7CisJCWFwcmludF9u
b3JtYWwoIjogUENGODU4MyBNb2RlIDI6IENvdW50ZXIiKTsKIAkJYnJlYWs7CiAKIAljYXNlIFBD
Rjg1ODNfQ1NSX0ZOX1RFU1Q6Ci0JCWFwcmludF9ub3JtYWwoIiB0ZXN0IG1vZGUiKTsKKwkJYXBy
aW50X25haXZlKCI6IE1vZGUgMzogVGVzdCBtb2RlIik7CisJCWFwcmludF9ub3JtYWwoIjogUENG
ODU4MyBNb2RlIDM6IFRlc3QgbW9kZSIpOwogCQlicmVhazsKIAl9Ci0JaWYgKGNzciAmIFBDRjg1
ODNfQ1NSX1NUT1ApCi0JCWFwcmludF9ub3JtYWwoIiwgc3RvcHBlZCIpOwotCWlmIChjc3IgJiBQ
Q0Y4NTgzX0NTUl9BTEFSTUVOQUJMRSkKLQkJYXByaW50X25vcm1hbCgiLCBhbGFybSBlbmFibGVk
Iik7CiAJYXByaW50X25vcm1hbCgiXG4iKTsKIAogCXNjLT5zY19vcGVuID0gMDsKIAotCXNjLT5z
Y190b2RyLnRvZHJfZGV2ID0gc2VsZjsKLQlzYy0+c2NfdG9kci50b2RyX2dldHRpbWUgPSBwY2Zy
dGNfZ2V0dGltZTsKLQlzYy0+c2NfdG9kci50b2RyX3NldHRpbWUgPSBwY2ZydGNfc2V0dGltZTsK
Kwlzd2l0Y2ggKGNzciAmIFBDRjg1ODNfQ1NSX0ZOX01BU0spIHsKKworCWNhc2UgUENGODU4M19D
U1JfRk5fMzI3NjhIWjoKKwljYXNlIFBDRjg1ODNfQ1NSX0ZOXzUwSFo6CisJCXNjLT5zY190b2Ry
LnRvZHJfZGV2ID0gc2VsZjsKKwkJc2MtPnNjX3RvZHIudG9kcl9nZXR0aW1lID0gcGNmcnRjX2dl
dHRpbWU7CisJCXNjLT5zY190b2RyLnRvZHJfc2V0dGltZSA9IHBjZnJ0Y19zZXR0aW1lOworCisJ
CXRvZHJfYXR0YWNoKCZzYy0+c2NfdG9kcik7CisJCWJyZWFrOwogCi0JdG9kcl9hdHRhY2goJnNj
LT5zY190b2RyKTsKKwljYXNlIFBDRjg1ODNfQ1NSX0ZOX0VWRU5UOgorCQlpZiAoKHNjLT5zY19z
bWUgPSBzeXNtb25fZW52c3lzX2NyZWF0ZSgpKSA9PSBOVUxMKSB7CisJCQlhcHJpbnRfZXJyb3Jf
ZGV2KHNjLT5zY19kZXYsCisJCQkgICJ1bmFibGUgdG8gY3JlYXRlIHN5c21vbiBzdHJ1Y3R1cmUi
KTsKKwkJCXNjLT5zY19zbWUgPSBOVUxMOworCQkJcmV0dXJuIDsKKwkJfQorCQlzYy0+c2NfY291
bnRlci51bml0cz1FTlZTWVNfSU5URUdFUjsKKwkJc2MtPnNjX2NvdW50ZXIuc3RhdGU9RU5WU1lT
X1NJTlZBTElEOworCQlzdHJsY3B5KHNjLT5zY19jb3VudGVyLmRlc2MsICJjb3VudGVyIiwKKwkJ
IHNpemVvZihzYy0+c2NfY291bnRlci5kZXNjKSk7CisJCWlmIChzeXNtb25fZW52c3lzX3NlbnNv
cl9hdHRhY2goc2MtPnNjX3NtZSwgJnNjLT5zY19jb3VudGVyKSkgeworCQkJc3lzbW9uX2VudnN5
c19kZXN0cm95KHNjLT5zY19zbWUpOworCQkJcmV0dXJuOworCQl9CisJCQorCQlzYy0+c2Nfc21l
LT5zbWVfbmFtZSA9IGRldmljZV94bmFtZShzZWxmKSA7CisJCXNjLT5zY19zbWUtPnNtZV9yZWZy
ZXNoID0gcGNmcnRjX3JlYWRjb3VudDsKKwkJc2MtPnNjX3NtZS0+c21lX2Nvb2tpZSA9IHNjOwor
CisJCWlmIChzeXNtb25fZW52c3lzX3JlZ2lzdGVyKHNjLT5zY19zbWUpKSB7CisJCQlzeXNtb25f
ZW52c3lzX2Rlc3Ryb3koc2MtPnNjX3NtZSk7CisJCQlyZXR1cm47CisJCX0KKworCQkvKiBzZXR1
cCBzeXNjdGwgZm9yIHJlc2V0dGluZyBjb3VudGVyICovCisKKwkJaWYgKChlcnJvciA9IHBjZnJ0
Y19zeXNjdGxfc2V0dXAoc2MpKSAhPTApIHsKKwkJCWFwcmludF9lcnJvcl9kZXYoc2MtPnNjX2Rl
diwgImNhbm5vdCBzZXR1cCBzeXNjdGwgdHJlZSAoJWQpXG4iLCBlcnJvcik7CisJCQlzeXNtb25f
ZW52c3lzX2Rlc3Ryb3koc2MtPnNjX3NtZSk7CisJCX0KKwkJc2MtPnJlc2V0X2NvdW50ZXIgPSAw
OworCQlicmVhayA7CisJfQogfQogCiAvKkFSR1NVU0VEKi8KQEAgLTQ5OSwzICs1NjksOTYgQEAK
IAlpaWNfcmVsZWFzZV9idXModGFnLCAwKTsKIAlyZXR1cm4gKDApOwogfQorCitpbnQgcGNmcnRj
X3N5c2N0bF9jaGVjayhTWVNDVExGTl9BUkdTKQoreworCXN0cnVjdCBzeXNjdGxub2RlIG5vZGU7
CisJaW50IHQsIGVycm9yOworCisJdCA9ICooaW50ICopcm5vZGUtPnN5c2N0bF9kYXRhOworCisJ
bm9kZSA9ICpybm9kZTsKKwlub2RlLnN5c2N0bF9kYXRhID0gJnQ7CisJZXJyb3IgPSBzeXNjdGxf
bG9va3VwKFNZU0NUTEZOX0NBTEwoJm5vZGUpKTsKKwlpZiAoZXJyb3IgfHwgbmV3cCA9PSBOVUxM
KQorCQlyZXR1cm4gKGVycm9yKTsKKworCWlmICh0IDwgMCB8fCB0ID4gMSkKKwkJcmV0dXJuIChF
SU5WQUwpOworCisJKihpbnQgKilybm9kZS0+c3lzY3RsX2RhdGEgPSB0OworCXJldHVybiAwOwor
fQorCitzdGF0aWMgaW50IHBjZnJ0Y19zeXNjdGxfc2V0dXAoc3RydWN0IHBjZnJ0Y19zb2Z0YyAq
c2MpCit7CisJaW50IGVycm9yOworCWNvbnN0IHN0cnVjdCBzeXNjdGxub2RlICpjbm9kZTsKKwlp
bnQgc3lzY3Rscm9vdF9udW07CisKKwlpZiAoKGVycm9yID0gc3lzY3RsX2NyZWF0ZXYoJnNjLT5z
Y19wY2ZydGNsb2csIDAsIE5VTEwsICZjbm9kZSwKKwkJMCwgQ1RMVFlQRV9OT0RFLCBkZXZpY2Vf
eG5hbWUoc2MtPnNjX2RldiksCisJCVNZU0NUTF9ERVNDUigicGNmcnRjIGNvdW50ZXIgcmVzZXQi
KSwgTlVMTCwgMCwgTlVMTCwgMCwKKwkJQ1RMX0hXLCBDVExfQ1JFQVRFLCBDVExfRU9MKSkgIT0g
MCkKKwkJcmV0dXJuIGVycm9yOworCXN5c2N0bHJvb3RfbnVtID0gY25vZGUtPnN5c2N0bF9udW07
CisKKwlpZiAoKGVycm9yID0gc3lzY3RsX2NyZWF0ZXYoJnNjLT5zY19wY2ZydGNsb2csIDAsIE5V
TEwsICZjbm9kZSwKKwkJQ1RMRkxBR19SRUFEV1JJVEUsIENUTFRZUEVfSU5ULCAiY291bnRlcl9y
ZXNldCIsCisJCVNZU0NUTF9ERVNDUigiY291bnRlciByZXNldCIpLCBwY2ZydGNfc3lzY3RsX2No
ZWNrLCAwLAorCQkmc2MtPnJlc2V0X2NvdW50ZXIsIDAsIENUTF9IVywKKwkJc3lzY3Rscm9vdF9u
dW0sIENUTF9DUkVBVEUsIENUTF9FT0wpKSAhPSAwKQorCQlyZXR1cm4gZXJyb3I7CisJcmV0dXJu
IDA7Cit9CisKK3N0YXRpYyB2b2lkIHBjZnJ0Y19yZWFkY291bnQoc3RydWN0IHN5c21vbl9lbnZz
eXMgKnNtZSwgZW52c3lzX2RhdGFfdCAqZWRhdGEpCit7CisJc3RydWN0IHBjZnJ0Y19zb2Z0YyAq
c2MgPSBzbWUtPnNtZV9jb29raWU7CisJaW50IGVyciwgaTsKKwl1aW50OF90IGJjZFszXSxjbWRi
dWZbMV07CisJdWludDhfdCB6ZXJvPTA7CisgCisJaWYgKChlcnIgPSBpaWNfYWNxdWlyZV9idXMo
c2MtPnNjX3RhZywgMCkpKSB7CisJCWFwcmludF9lcnJvcl9kZXYoc2MtPnNjX2RldiwKKwkJICAg
ICJwY2ZydGNfcmVhZGNvdW50OiBmYWlsZWQgdG8gYWNxdWlyZSBJMkMgYnVzXG4iKTsKKwkJcmV0
dXJuOworCX0KKworCWZvciAoaSA9IFBDRjg1ODNfQ09VTlRFUjA7IGkgPD0gUENGODU4M19DT1VO
VEVSMjsgaSsrKSB7CisgICAgICAgICAgICAgICAgY21kYnVmWzBdID0gaTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBpZiAoKGVyciA9IGlpY19leGVjKHNjLT5zY190YWcsIEky
Q19PUF9SRUFEX1dJVEhfU1RPUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MtPnNj
X2FkZHJlc3MsIGNtZGJ1ZiwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJjZFtp
LTFdLCAxLCAwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlpY19yZWxlYXNlX2J1cyhz
Yy0+c2NfdGFnLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwcmludF9lcnJvcl9kZXYo
c2MtPnNjX2RldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGNmcnRjX3JlYWRjb3Vu
dDogZmFpbGVkIHRvIHJlYWQgcmVnaXN0ZXIgYXQgJXhcbiIsIGkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorIAorCisJZWRh
dGEtPnZhbHVlX2N1ciA9IGJjZHRvYmluKGJjZFswXSkgKyBiY2R0b2JpbihiY2RbMV0pKjEwMCAr
IGJjZHRvYmluKGJjZFsyXSkqMTAwMDAgOworCWVkYXRhLT5zdGF0ZSA9IEVOVlNZU19TVkFMSUQg
OworCQorCS8qIGlmIHJlc2V0X2NvdW50ZXIgPSAxIHRoZW4gY2xlYXIgdG90YWxzICovCisKKwlp
ZiAoc2MtPnJlc2V0X2NvdW50ZXIgIT0gMCkgeworCQlmb3IgKGkgPSBQQ0Y4NTgzX0NPVU5URVIw
OyBpIDw9IFBDRjg1ODNfQ09VTlRFUjI7IGkrKykgeworICAgICAgICAgICAgICAgIAljbWRidWZb
MF0gPSBpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAlpZiAoKGVyciA9IGlp
Y19leGVjKHNjLT5zY190YWcsIEkyQ19PUF9XUklURV9XSVRIX1NUT1AsCisJCQkJCXNjLT5zY19h
ZGRyZXNzLCBjbWRidWYsIDEsICZ6ZXJvLCAxLCAwKSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAlpaWNfcmVsZWFzZV9idXMoc2MtPnNjX3RhZywgMCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAJYXByaW50X2Vycm9yX2RldihzYy0+c2NfZGV2LAorCQkJCQkicGNmcnRjX3JlYWRjb3Vu
dDogZmFpbGVkIHRvIHdyaXRlIHJlZ2lzdGVyIGF0ICV4XG4iLCBpKTsKKwkJCQlyZXR1cm47Cisg
ICAgICAgICAgICAgICAgCX0KKyAgICAgICAgCX0KKyAKKwkJc2MtPnJlc2V0X2NvdW50ZXIgPSAw
IDsKKwl9CisKKwlpaWNfcmVsZWFzZV9idXMoc2MtPnNjX3RhZywgMCk7Cit9CgotLS0gcGNmODU4
M3JlZy5oLm9yaWcJMjAxMy0wOC0wNyAyMDozODo0NS4wMDAwMDAwMDAgKzAxMDAKKysrIHBjZjg1
ODNyZWcuaAkyMDI2LTA5LTI4IDE0OjQzOjU4LjczMDY5NDQyMiArMDEwMApAQCAtMjIsNiArMjIs
NyBAQAogICovCiAjZGVmaW5lIFBDRjg1ODNfQUREUk1BU0sJMHgzZmYKICNkZWZpbmUgUENGODU4
M19BRERSCQkweDUwCisjZGVmaW5lIFBDRjg1ODNfQUREUjIJCTB4NTEKIAogI2RlZmluZSBQQ0Y4
NTgzX1JFR19DU1IJCTB4MDAKICNkZWZpbmUgUENGODU4M19SRUdfQ0VOVEkJMHgwMQpAQCAtODYs
NCArODcsNyBAQAogI2RlZmluZSBQQ0Y4NTgzX0FMTUNUTF9USU1FUkFMTQkJMHg0MAogI2RlZmlu
ZSBQQ0Y4NTgzX0FMTUNUTF9BTE1JTlQJCTB4ODAKIAorI2RlZmluZSBQQ0Y4NTgzX0NPVU5URVIw
CQkweDAxCisjZGVmaW5lIFBDRjg1ODNfQ09VTlRFUjEJCTB4MDIKKyNkZWZpbmUgUENGODU4M19D
T1VOVEVSMgkJMHgwMwogI2VuZGlmCS8qIF9QQ0Y4NTgzUkVHX0ggKi8KCi0tLSAvZGV2L251bGwJ
MjAyNi0wOS0yOSAxODo0MzoxMS41NjIwODk0MTIgKzAxMDAKKysrIHBjZjg1ODMuNAkyMDI2LTA5
LTI4IDIzOjExOjQ5Ljk4MzU0MjY0NiArMDEwMApAQCAtMCwwICsxLDc5IEBACisuXCIKKy5cIiBD
b3B5cmlnaHQgKGMpIDIwMjYgRGF2ZSBUeXNvbiA8ZHR5c29uQGFuZHVpbi5vcmcudWs+CisuXCIK
Ky5cIiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlz
IHNvZnR3YXJlIGZvciBhbnkKKy5cIiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVy
ZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCisuXCIgY29weXJpZ2h0IG5vdGlj
ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKy5cIgor
LlwiIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NM
QUlNUyBBTEwgV0FSUkFOVElFUworLlwiIFdJVEggUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5D
TFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKy5cIiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUgorLlwi
IEFOWSBTUEVDSUFMLCBESVJFQ1QsIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
T1IgQU5ZIERBTUFHRVMKKy5cIiBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MgT0YgVVNF
LCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4KKy5cIiBBQ1RJT04gT0YgQ09OVFJBQ1Qs
IE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRgorLlwi
IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SIFBFUkZPUk1BTkNFIE9GIFRISVMgU09G
VFdBUkUuCisuXCIKKy5EZCBPY3RvYmVyIDEsIDIwMjYKKy5EdCBQQ0Y4NTgzCisuT3MKKy5TaCBO
QU1FCisuTm0gcGNmODU4MworLk5kIERyaXZlciBmb3IgTlBYIFBDRjg1ODMgQ2xvY2sgYW5kIENh
bGVuZGFyL0NvdW50ZXIvMjQwIHggOGJpdCBSQU0KK3ZpYSBJMkMgYnVzCisuU2ggU1lOT1BTSVMK
Ky5DZCAicGNmcnRjKiBhdCBpaWM/IGFkZHIgMHg1MCIKKy5DZCAicGNmcnRjKiBhdCBpaWM/IGFk
ZHIgMHg1MCBmbGFncyB4IgorLkNkICJwY2ZydGMqIGF0IGlpYz8gYWRkciAweDUxIgorLkNkICJw
Y2ZydGMqIGF0IGlpYz8gYWRkciAweDUxIGZsYWdzIHgiCisuU2ggREVTQ1JJUFRJT04KK1RoZQor
Lk5tCitkcml2ZXIgc3VwcG9ydHMgdGhlIFBDRjg1ODMgbXVsdGlmdW5jdGlvbiBjaGlwIHdoaWNo
IGNhbiBvcGVyYXRlIGluIG9uZSBvZiBmb3VyIG1vZGVzCitkZXBlbmRpbmcgb24gdGhlIHZhbHVl
IG9mIHRoZSBmbGFnIFtpZiBzcGVjaWZpZWRdOgorLkJsIC10YWcKKy5JdCBtb2RlIDAgLSBDbG9j
ayAmIENhbGVuZGFyIHVzaW5nIGEgMzI3NjggaHogY3J5c3RhbC4KK1RoaXMgaXMgdGhlIGRlZmF1
bHQgbW9kZSBpbiB0aGUgYWJzZW5jZSBvZiBhIGZsYWdzIGZpZWxkIGFuZCBpcyB0aGUgc3RhdGUg
d2hlbiBhCitwb3dlci1vbiByZXNldCBvY2N1cnMuCisuSXQgbW9kZSAxIC0gQ2xvY2sgJiBDYWxl
bmRhciB1c2luZyBleHRlcm5hbCA1MCBIeiBjbG9jay4KK1NpbWlsYXIgdG8gbW9kZSAwLCBidXQg
cmVsaWVzIG9uIGFuIGV4dGVybmFsIGNsb2NrIHNvdXJjZSByYXRoZXIgdGhhbiBhIGNyeXN0YWwu
CisuSXQgbW9kZSAyIC0gQ291bnRlciBmb3IgZXh0ZXJuYWwgaW5wdXRzLgorVGhlIGNsb2NrICYg
Y2FsZW5kYXIgYXJlIGRpc2FibGVkIGFuZCB0aGUgZGV2aWNlIGNvdW50cyBleHRlcm5hbCBldmVu
dHMgdXNpbmcgYSAzIGJ5dGUKK2JjZCBjb3VudGVyIFswLTk5OTk5OV0uCisuSXQgbW9kZSAzIC0g
VGVzdCBtb2RlLgorVGhpcyBpcyB1bmRvY3VtZW50ZWQgYW5kIHVubGlrZWx5IHRvIGJlIHVzZWZ1
bC4gCisuRWwKKy5QcAorVGhlCisuTm0KK2RyaXZlciBpcyBjb21tb25seSB1c2VkIHRvIHN1cHBv
cnQgYSBSZWFsIFRpbWUgQ2xvY2sgdXNpbmcgYSAzMjc2OCBoeiBjcnlzdGFsIGFuZCBhIGJhY2t1
cCBiYXR0ZXJ5LiBJdCBhbHNvIHByb3ZpZGVzIGEgc21hbGwgYW1vdW50IG9mIGJhdHRlcnkgYmFj
a2VkIFJBTSB3aGljaCBpcyB1c2VkLCBmb3IgZXhhbXBsZSwgZm9yIGJvb3RzdHJhcHBpbmcgYWNv
cm4zMiBzeXN0ZW0uIEl0IGlzIHBvc3NpYmxlIHRvIHVzZSBhbiBleHRlcm5hbCA1MGh6IGNsb2Nr
IGJ5IHN3aXRjaGluZyB0byBtb2RlIDEgLSB0aGlzIG1pZ2h0IGJlIHVzZWZ1bCB3aXRoIGEgRXVy
b3BlYW4gbWFpbnMgZGVyaXZlZCBzaWduYWwgYXMgdGhlIGxvbmcgdGVybSBkcmlmdCBpcyBsaWtl
bHkgdG8gYmUgbGVzcyB0aGFuIGFuIHVuc3RhYmlsaXNlZCBjcnlzdGFsLiBBY2Nlc3MgbWV0aG9k
cyB0byByZXRyaWV2ZSBhbmQgc2V0IGRhdGUgYW5kIHRpbWUgYXJlIHByb3ZpZGVkIHRocm91Z2gg
dGhlCisuRW0gVE9EUgoraW50ZXJmYWNlIGRlZmluZWQgaW4KKy5YciB0b2RyIDkgLgorLlBwCitT
d2l0Y2hpbmcgdG8gbW9kZSAyIHByb3ZpZGVzIGFjY2VzcyB0byBhIDYgZGlnaXQgQkNEIGNvdW50
ZXIgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY291bnQgYXJiaXRhcnkgZXh0ZXJuYWwgZXZlbnRzLiBU
aGUgZHJpdmVyIG1hcHMgdGhpcyBjb3VudGVyIHRvIGFuIGludGVnZXIgZW52c3RhdCB2YXJpYWJs
ZSB3aGljaCBjYW4gYmUgcmVhZCB2aWEgdGhlIG5vcm1hbCBlbnZzdGF0IHN1YnN5c3RlbSBhbmQg
YWxzbyBleHBvc2VzIGEgc3lzY3RsIHZhcmlhYmxlIHRvIGFsbG93IHRoZSBjb3VudGVyIHRvIGJl
IHJlc2V0LgorLlNoIFNZU0NUTCBWQVJJQUJMRVMKK0luIG1vZGUgMiB0aGUgZm9sbG93aW5nCisu
WHIgc3lzY3RsIDMKK3ZhcmlhYmxlcyBhcmUgcHJvdmlkZWQ6CisuQmwgLXRhZyAtd2lkdGggaW5k
ZW50CisuSXQgTGkgaHcucGNmcnRjMS5jb3VudGVyX3Jlc2V0CitJZiB0aGlzIGlzIHNldCB0byAx
IHRoZW4gdGhlIG5leHQgcmVhZCBvZiB0aGUgZW52c3RhdCBjb3VudGVyIGNhdXNlcyB0aGUgQkNE
IGNvdW50ZXIgdG8gYmUgemVyb2VkIGFuZCByZXNldHMgdGhlIHN5c2N0bCB2YXJpYWJsZSBiYWNr
IHRvIHplcm8uCisuU2ggU0VFIEFMU08KKy5YciB0b2RyIDkgLCAKKy5YciBlbnZzdGF0IDggLCAK
Ky5YciBzeXNjdGwgOAorLlNoIEhJU1RPUlkKK1RoZQorLk5tCitkcml2ZXIgZmlyc3QgYXBwZWFy
ZWQgaW4KKy5OeCAxLjAgLgorLlNoIEJVR1MKK1RoZSBkcml2ZXIgZG9lcyBub3Qgc3VwcG9ydCB0
aGUgY2hpcCdzIGFsYXJtIGFuZCB0aW1lciBmZWF0dXJlcy4KKy5TaCBBVVRIT1JTCitUaGUKKy5O
bQorZHJpdmVyIHdhcyB3cml0dGVuIGJ5IFN0ZXZlIEMuIFdvb2Rmb3JkIGFuZCBKYXNvbiBSLiBU
aG9ycGUgZm9yIFdhc2FiaSBTeXN0ZW1zLCBJbmMuIGJhc2VkIG9uIEJlbiBIYXJyaXMncyBQQ0Y4
NTgzIGRyaXZlciBmb3IgTmV0QlNEL2Fjb3JuMjYuCisuUHAKK1N1YnNlcXVlbnQgbW9kaWZpY2F0
aW9ucyB0byBzdXBwb3J0IG90aGVyIG1vZGVzIGJ5CisuQW4gRGF2ZSBUeXNvbiBBcSBNdCBkdHlz
b25AYW5kdWluLm9yZy51aworIAo=
--=-88t/1wLz9f76B+tjY4kn--
Home |
Main Index |
Thread Index |
Old Index