Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 2016 11:22:13 +0200
From:      Boris Astardzhiev <boris.astardzhiev@gmail.com>
To:        gljennjohn@gmail.com
Cc:        Konstantin Belousov <kostikbel@gmail.com>, threads@freebsd.org,  Bruce Evans <brde@optusnet.com.au>, net@freebsd.org
Subject:   Re: Does FreeBSD have sendmmsg or recvmmsg system calls?
Message-ID:  <CAP=KkTyHG9Rb%2BnrDC1TDxzjUQFca9NkVp8Suo1c_-C00RUtkuQ@mail.gmail.com>
In-Reply-To: <20160124100747.551f8e3f@ernst.home>
References:  <20160117211853.GA37847@stack.nl> <20160118044826.GS3942@kib.kiev.ua> <CAP=KkTy3J=k7hokGhohcGXv%2BWLnaxJmiAPxqmX9FHt7k0=Dp7Q@mail.gmail.com> <20160118140811.GW3942@kib.kiev.ua> <CAP=KkTzLCOnJVqt5F3ZuuZUiwkmWcne2Ynpi6-daE2jTzSBtfw@mail.gmail.com> <20160120073154.GB3942@kib.kiev.ua> <CAP=KkTx3dAUuSBrJiwNAAe%2BhHSG4j5Qp7sAcgtOgmVi8a12k1A@mail.gmail.com> <20160121093509.GK3942@kib.kiev.ua> <20160121233040.E1864@besplex.bde.org> <CAP=KkTw=ML=oPo2OgFfmor_nsL3om6HvmTQjKNMrOiU_dmWc2g@mail.gmail.com> <20160124050634.GS3942@kib.kiev.ua> <20160124100747.551f8e3f@ernst.home>

next in thread | previous in thread | raw e-mail | index | archive | help
--047d7bfcf874b8bfce052a251a15
Content-Type: text/plain; charset=UTF-8

kb>You defer to ppoll() and pselect() due to the struct timespec type of
kb>the argument, am I right ?
Yes.

kb>BTW, just noted, I think the functions should live in libc/gen.
Okay. Moving them.

kb>Put each sentence on new line
Done.

kb>The CMTR define is only used once.  I do not see why not inline it, and
kb>get rid of the staircase of backslashes.
Initially I wrote two CMTRs - one using pselect and the other using ppoll.
I left it this way to easily switch between these and that's why I have
this macro. I'll inline the code as suggested.

kb>Also, it seems that the next unused bit is 0x80000.
I noticed that as well and fixed it.

kb>Still int for msg_len ?
I'll convert it to ssize_t.

kb>It probably makes sense to mark pointers with __restrict.
Done.

gj>This seems wrong.  rcvd is initialized to 1 so that the check for
gj>rcvd != 0 can never be false.  We already successfully called
gj>__sys_recvmsg() just above the loop, so why not simplify the
gj>code by doing
gj>
gj>        if (ret == -1)
gj>                return (rcvd);

Fixed.

On Sun, Jan 24, 2016 at 11:07 AM, Gary Jennejohn <gljennjohn@gmail.com>
wrote:

> On Sun, 24 Jan 2016 07:06:34 +0200
> Konstantin Belousov <kostikbel@gmail.com> wrote:
>
> [delete irrelevant parts of the patch]
>
> > > +   rcvd = 1;
> > > +   for (i = rcvd; i < vlen; i++) {
> > i = rcvd = 1; ... i++, rcvd++ ?
> >
> > > +           ret = __sys_recvmsg(s, &msgvec[i].msg_hdr, flags);
> > > +           if (ret == -1) {
> > > +                   if (rcvd != 0) {
> > > +                           /* We've received messages. Let caller
> know. */
>
> > > +                           return (rcvd);
> > > +                   }
> > > +                   return (ret);
> > > +           }
> > > +
>
> This seems wrong.  rcvd is initialized to 1 so that the check for
> rcvd != 0 can never be false.  We already successfully called
> __sys_recvmsg() just above the loop, so why not simplify the
> code by doing
>
>         if (ret == -1)
>                 return (rcvd);
>
> --
> Gary Jennejohn (gj@)
>

--047d7bfcf874b8bfce052a251a15
Content-Type: text/plain; charset=US-ASCII; name="sendrecvmmsg-libconly5.diff"
Content-Disposition: attachment; filename="sendrecvmmsg-libconly5.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ijtrkzeo0

ZGlmZiAtLWdpdCBhL2xpYi9saWJjL2dlbi9NYWtlZmlsZS5pbmMgYi9saWIvbGliYy9nZW4vTWFr
ZWZpbGUuaW5jCmluZGV4IGI0NDg0NjEuLmY5ZDJmOGEgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL2dl
bi9NYWtlZmlsZS5pbmMKKysrIGIvbGliL2xpYmMvZ2VuL01ha2VmaWxlLmluYwpAQCAtOTksMTEg
Kzk5LDEzIEBAIFNSQ1MrPQlfX2dldG9zcmVsZGF0ZS5jIFwKIAlyYWlzZS5jIFwKIAlyZWFkZGly
LmMgXAogCXJlYWRwYXNzcGhyYXNlLmMgXAorCXJlY3ZtbXNnLmMgXAogCXJld2luZGRpci5jIFwK
IAlzY2FuZGlyLmMgXAogCXNlZWQ0OC5jIFwKIAlzZWVrZGlyLmMgXAogCXNlbWN0bC5jIFwKKwlz
ZW5kbW1zZy5jIFwKIAlzZXRkb21haW5uYW1lLmMgXAogCXNldGhvc3RuYW1lLmMgXAogCXNldGpt
cGVyci5jIFwKZGlmZiAtLWdpdCBhL2xpYi9saWJjL2dlbi9yZWN2bW1zZy5jIGIvbGliL2xpYmMv
Z2VuL3JlY3ZtbXNnLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg4MzVi
YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYi9saWJjL2dlbi9yZWN2bW1zZy5jCkBAIC0wLDAgKzEs
ODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQm9yaXMgQXN0YXJkemhpZXYsIFNtYXJ0
Y29tLUJ1bGdhcmlhIEFECisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZShz
KSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBh
cworICogICAgdGhlIGZpcnN0IGxpbmVzIG9mIHRoaXMgZmlsZSB1bm1vZGlmaWVkIG90aGVyIHRo
YW4gdGhlIHBvc3NpYmxlCisgKiAgICBhZGRpdGlvbiBvZiBvbmUgb3IgbW9yZSBjb3B5cmlnaHQg
bm90aWNlcy4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UocyksIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAqICAgIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAg
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSKFMpIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIoUykgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IKKyAqIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UKKyAqIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsCisg
KiBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKworI2lu
Y2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N5
c2NhbGwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3NlbGVjdC5o
PgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlICJsaWJjX3ByaXZhdGUuaCIKKworc3Np
emVfdAorcmVjdm1tc2coaW50IHMsIHN0cnVjdCBtbXNnaGRyICpfX3Jlc3RyaWN0IG1zZ3ZlYywg
c2l6ZV90IHZsZW4sIGludCBmbGFncywKKyAgICBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVz
dHJpY3QgdGltZW91dCkKK3sKKwlzaXplX3QgaSwgcmN2ZDsKKwlzc2l6ZV90IHJldDsKKworCWlm
ICh0aW1lb3V0ICE9IE5VTEwpIHsKKwkJZmRfc2V0IGZkczsKKwkJaW50IHJlczsKKworCQlGRF9a
RVJPKCZmZHMpOworCQlGRF9TRVQocywgJmZkcyk7CisJCXJlcyA9IF9fc3lzX3BzZWxlY3QocyAr
IDEsICZmZHMsIE5VTEwsIE5VTEwsIHRpbWVvdXQsIE5VTEwpOworCQlpZiAocmVzID09IC0xIHx8
IHJlcyA9PSAwKQorCQkJcmV0dXJuIChyZXMpOworCQlpZiAoIUZEX0lTU0VUKHMsICZmZHMpKQor
CQkJcmV0dXJuICgtMSk7CisJfQorCisJcmV0ID0gX19zeXNfcmVjdm1zZyhzLCAmbXNndmVjWzBd
Lm1zZ19oZHIsIGZsYWdzKTsKKwlpZiAocmV0ID09IC0xKQorCQlyZXR1cm4gKHJldCk7CisKKwkv
KiBDaGVjayBpbml0aWFsbHkgZm9yIHRoZSBwcmVzZW5jZSBvZiBNU0dfV0FJVEZPUk9ORS4KKwkg
KiBUdXJuIG9uIE1TR19ET05UV0FJVCBpZiBzZXQuICovCisJaWYgKGZsYWdzICYgTVNHX1dBSVRG
T1JPTkUpIHsKKwkJZmxhZ3MgfD0gTVNHX0RPTlRXQUlUOworCQkvKiBUaGUga2VybmVsIGRvZXNu
J3QgbmVlZCB0byBrbm93IGFib3V0IHRoaXMgZmxhZy4gKi8KKwkJZmxhZ3MgJj0gfk1TR19XQUlU
Rk9ST05FOworCX0KKworCXJjdmQgPSAxOworCWZvciAoaSA9IHJjdmQ7IGkgPCB2bGVuOyBpKyss
IHJjdmQrKykgeworCQlyZXQgPSBfX3N5c19yZWN2bXNnKHMsICZtc2d2ZWNbaV0ubXNnX2hkciwg
ZmxhZ3MpOworCQlpZiAocmV0ID09IC0xKSB7CisJCQkvKiBXZSBoYXZlIHJlY2VpdmVkIG1lc3Nh
Z2VzLiBMZXQgY2FsbGVyIGtub3cuICovCisJCQlyZXR1cm4gKHJjdmQpOworCQl9CisKKwkJLyog
U2F2ZSByZWNlaXZlZCBieXRlcyAqLworCQltc2d2ZWNbaV0ubXNnX2xlbiA9IHJldDsKKwl9CisK
KwlyZXR1cm4gKHJjdmQpOworfQpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvZ2VuL3NlbmRtbXNnLmMg
Yi9saWIvbGliYy9nZW4vc2VuZG1tc2cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5lNGU2MmE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliL2xpYmMvZ2VuL3NlbmRtbXNnLmMK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBCb3JpcyBBc3RhcmR6
aGlldiwgU21hcnRjb20tQnVsZ2FyaWEgQUQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlKHMpLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGFzCisgKiAgICB0aGUgZmlyc3QgbGluZXMgb2YgdGhpcyBmaWxlIHVubW9kaWZp
ZWQgb3RoZXIgdGhhbiB0aGUgcG9zc2libGUKKyAqICAgIGFkZGl0aW9uIG9mIG9uZSBvciBtb3Jl
IGNvcHlyaWdodCBub3RpY2VzLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZShzKSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgorICog
ICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIoUykgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBCRQorICogTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRQorICog
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwKKyAqIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNE
JCIpOworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNs
dWRlIDxzeXMvc3lzY2FsbC5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxw
dGhyZWFkLmg+CisjaW5jbHVkZSAibGliY19wcml2YXRlLmgiCisKK3NzaXplX3QKK3NlbmRtbXNn
KGludCBzLCBzdHJ1Y3QgbW1zZ2hkciAqX19yZXN0cmljdCBtc2d2ZWMsIHNpemVfdCB2bGVuLCBp
bnQgZmxhZ3MpCit7CisJc2l6ZV90IGksIHNlbnQ7CisJc3NpemVfdCByZXQ7CisKKwlzZW50ID0g
MDsKKwlmb3IgKGkgPSAwOyBpIDwgdmxlbjsgaSsrLCBzZW50KyspIHsKKwkJcmV0ID0gX19zeXNf
c2VuZG1zZyhzLCAmbXNndmVjW2ldLm1zZ19oZHIsIGZsYWdzKTsKKwkJaWYgKHJldCA9PSAtMSkg
eworCQkJaWYgKHNlbnQgIT0gMCkgeworCQkJCS8qIFdlIGhhdmUgc2VudCBtZXNzYWdlcy4gTGV0
IGNhbGxlciBrbm93LiAqLworCQkJCXJldHVybiAoc2VudCk7CisJCQl9CisJCQlyZXR1cm4gKHJl
dCk7CisJCX0KKworCQkvKiBTYXZlIHNlbnQgYnl0ZXMgKi8KKwkJbXNndmVjW2ldLm1zZ19sZW4g
PSByZXQ7CisJfQorCisJcmV0dXJuIChzZW50KTsKK30KZGlmZiAtLWdpdCBhL2xpYi9saWJjL2lu
Y2x1ZGUvbmFtZXNwYWNlLmggYi9saWIvbGliYy9pbmNsdWRlL25hbWVzcGFjZS5oCmluZGV4IDcz
OWQ3YjEuLmM5NTgyOWUgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL2luY2x1ZGUvbmFtZXNwYWNlLmgK
KysrIGIvbGliL2xpYmMvaW5jbHVkZS9uYW1lc3BhY2UuaApAQCAtMjA4LDYgKzIwOCw3IEBACiAj
ZGVmaW5lCQlyZWFkdgkJCQlfcmVhZHYKICNkZWZpbmUJCXJlY3Zmcm9tCQkJX3JlY3Zmcm9tCiAj
ZGVmaW5lCQlyZWN2bXNnCQkJCV9yZWN2bXNnCisjZGVmaW5lCQlyZWN2bW1zZwkJCV9yZWN2bW1z
ZwogI2RlZmluZQkJc2VsZWN0CQkJCV9zZWxlY3QKICNkZWZpbmUJCXNlbV9jbG9zZQkJCV9zZW1f
Y2xvc2UKICNkZWZpbmUJCXNlbV9kZXN0cm95CQkJX3NlbV9kZXN0cm95CkBAIC0yMjAsNiArMjIx
LDcgQEAKICNkZWZpbmUJCXNlbV91bmxpbmsJCQlfc2VtX3VubGluawogI2RlZmluZQkJc2VtX3dh
aXQJCQlfc2VtX3dhaXQKICNkZWZpbmUJCXNlbmRtc2cJCQkJX3NlbmRtc2cKKyNkZWZpbmUJCXNl
bmRtbXNnCQkJX3NlbmRtbXNnCiAjZGVmaW5lCQlzZW5kdG8JCQkJX3NlbmR0bwogI2RlZmluZQkJ
c2V0c29ja29wdAkJCV9zZXRzb2Nrb3B0CiAvKiNkZWZpbmUJCXNpZ2FjdGlvbgkJCV9zaWdhY3Rp
b24qLwpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvaW5jbHVkZS91bi1uYW1lc3BhY2UuaCBiL2xpYi9s
aWJjL2luY2x1ZGUvdW4tbmFtZXNwYWNlLmgKaW5kZXggZjMxZmE3YS4uMDIzMzM0OCAxMDA2NDQK
LS0tIGEvbGliL2xpYmMvaW5jbHVkZS91bi1uYW1lc3BhY2UuaAorKysgYi9saWIvbGliYy9pbmNs
dWRlL3VuLW5hbWVzcGFjZS5oCkBAIC0xODksNiArMTg5LDcgQEAKICN1bmRlZgkJcmVhZHYKICN1
bmRlZgkJcmVjdmZyb20KICN1bmRlZgkJcmVjdm1zZworI3VuZGVmCQlyZWN2bW1zZwogI3VuZGVm
CQlzZWxlY3QKICN1bmRlZgkJc2VtX2Nsb3NlCiAjdW5kZWYJCXNlbV9kZXN0cm95CkBAIC0yMDEs
NiArMjAyLDcgQEAKICN1bmRlZgkJc2VtX3VubGluawogI3VuZGVmCQlzZW1fd2FpdAogI3VuZGVm
CQlzZW5kbXNnCisjdW5kZWYJCXNlbmRtbXNnCiAjdW5kZWYJCXNlbmR0bwogI3VuZGVmCQlzZXRz
b2Nrb3B0CiAjdW5kZWYJCXNpZ2FjdGlvbgpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvc3lzL1N5bWJv
bC5tYXAgYi9saWIvbGliYy9zeXMvU3ltYm9sLm1hcAppbmRleCA3YjMyNTdjLi5kYzJlZDBlIDEw
MDY0NAotLS0gYS9saWIvbGliYy9zeXMvU3ltYm9sLm1hcAorKysgYi9saWIvbGliYy9zeXMvU3lt
Ym9sLm1hcApAQCAtMzk5LDYgKzM5OSw4IEBAIEZCU0RfMS40IHsKIAl1dGltZW5zYXQ7CiAJbnVt
YV9zZXRhZmZpbml0eTsKIAludW1hX2dldGFmZmluaXR5OworCXNlbmRtbXNnOworCXJlY3ZtbXNn
OwogfTsKIAogRkJTRHByaXZhdGVfMS4wIHsKZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N5cy9yZWN2
LjIgYi9saWIvbGliYy9zeXMvcmVjdi4yCmluZGV4IDMyNmU3ZmYuLmU5NDAzNjQgMTAwNjQ0Ci0t
LSBhL2xpYi9saWJjL3N5cy9yZWN2LjIKKysrIGIvbGliL2xpYmMvc3lzL3JlY3YuMgpAQCAtMzQs
OCArMzQsOSBAQAogLlNoIE5BTUUKIC5ObSByZWN2ICwKIC5ObSByZWN2ZnJvbSAsCi0uTm0gcmVj
dm1zZwotLk5kIHJlY2VpdmUgYSBtZXNzYWdlIGZyb20gYSBzb2NrZXQKKy5ObSByZWN2bXNnICwK
Ky5ObSByZWN2bW1zZworLk5kIHJlY2VpdmUgbWVzc2FnZShzKSBmcm9tIGEgc29ja2V0CiAuU2gg
TElCUkFSWQogLkxiIGxpYmMKIC5TaCBTWU5PUFNJUwpAQCAtNDcsMTEgKzQ4LDE1IEBACiAuRm4g
cmVjdmZyb20gImludCBzIiAidm9pZCAqYnVmIiAic2l6ZV90IGxlbiIgImludCBmbGFncyIgInN0
cnVjdCBzb2NrYWRkciAqIHJlc3RyaWN0IGZyb20iICJzb2NrbGVuX3QgKiByZXN0cmljdCBmcm9t
bGVuIgogLkZ0IHNzaXplX3QKIC5GbiByZWN2bXNnICJpbnQgcyIgInN0cnVjdCBtc2doZHIgKm1z
ZyIgImludCBmbGFncyIKKy5GdCBzc2l6ZV90CisuRm4gcmVjdm1tc2cgImludCBzIiAic3RydWN0
IG1tc2doZHIgKiByZXN0cmljdCBtc2d2ZWMiICJzaXplX3QgdmxlbiIgImludCBmbGFncyIgImNv
bnN0IHN0cnVjdCB0aW1lc3BlYyAqIHJlc3RyaWN0IHRpbWVvdXQiCiAuU2ggREVTQ1JJUFRJT04K
IFRoZQogLkZuIHJlY3Zmcm9tCiBhbmQKIC5GbiByZWN2bXNnCithbmQKKy5GbiByZWN2bW1zZwog
c3lzdGVtIGNhbGxzCiBhcmUgdXNlZCB0byByZWNlaXZlIG1lc3NhZ2VzIGZyb20gYSBzb2NrZXQs
CiBhbmQgbWF5IGJlIHVzZWQgdG8gcmVjZWl2ZSBkYXRhIG9uIGEgc29ja2V0IHdoZXRoZXIgb3Ig
bm90CkBAIC04NCw4ICs4OSwyOSBAQCBudWxsIHBvaW50ZXIgcGFzc2VkIGFzIGl0cwogLkZhIGZy
b20KIGFyZ3VtZW50LgogLlBwCi1BbGwgdGhyZWUgcm91dGluZXMgcmV0dXJuIHRoZSBsZW5ndGgg
b2YgdGhlIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bAotY29tcGxldGlvbi4KK1RoZQorLkZuIHJlY3Zt
bXNnCitmdW5jdGlvbiBpcyB1c2VkIHRvIHJlY2VpdmUgbXVsdGlwbGUKK21lc3NhZ2VzIGF0IGEg
Y2FsbC4KK1RoZWlyIG51bWJlciBpcyBzdXBwbGllZCBieQorLkZhIHZsZW4gLgorVGhlIG1lc3Nh
Z2VzIGFyZSBwbGFjZWQgaW4gdGhlCisuRmEgbXNndmVjCit2ZWN0b3IgYWZ0ZXIgcmVjZXB0aW9u
LgorVGhlIHNpemUgb2YgZWFjaCByZWNlaXZlZCBtZXNzYWdlIGlzIHBsYWNlZCBpbiB0aGUKKy5G
YSBtc2dfbGVuCitmaWVsZCBvZiBlYWNoIGVsZW1lbnQgb2YgdGhlIHZlY3Rvci4KK0lmCisuRmEg
dGltZW91dAoraXMgTlVMTCB0aGUgY2FsbCB3aWxsIG5vcm1hbGx5IGJsb2NrLgorT3RoZXJ3aXNl
IGl0IHdpbGwgd2FpdCBmb3IgZGF0YSBmb3IgdGhlIHNwZWNpZmllZCBhbW91bnQgb2YgdGltZS4K
K0lmIHRoZSB0aW1lb3V0IGV4cGlyZXMgYW5kIHRoZXJlIGlzIG5vIGRhdGEgcmVjZWl2ZWQgYSB2
YWx1ZSBvZiAwIGlzIHJldHVybmVkLgorcHNlbGVjdCgyKSBpcyB1c2VkIGZvciB0aGUgaW1wbGVt
ZW50YXRpb24gb2YgdGhlIHRpbWVvdXQgbWVjaGFuaXNtLgorLlBwCitUaGUgZmlyc3QgdGhyZWUg
cm91dGluZXMgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIG1lc3NhZ2Ugb24gc3VjY2Vzc2Z1bAor
Y29tcGxldGlvbiB3aGVyZWFzCisuRm4gcmVjdm1tc2cKK3JldHVybnMgdGhlIG51bWJlciBvZiBy
ZWNlaXZlZCBtZXNzYWdlcy4KIElmIGEgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBmaXQgaW4gdGhl
IHN1cHBsaWVkIGJ1ZmZlciwKIGV4Y2VzcyBieXRlcyBtYXkgYmUgZGlzY2FyZGVkIGRlcGVuZGlu
ZyBvbiB0aGUgdHlwZSBvZiBzb2NrZXQKIHRoZSBtZXNzYWdlIGlzIHJlY2VpdmVkIGZyb20gKHNl
ZQpAQCAtMTAwLDcgKzEyNiw5IEBAIGluIHdoaWNoIGNhc2UgdGhlIHZhbHVlCiAuVmEgZXJybm8K
IGlzIHNldCB0bwogLkVyIEVBR0FJTiAuCi1UaGUgcmVjZWl2ZSBjYWxscyBub3JtYWxseSByZXR1
cm4gYW55IGRhdGEgYXZhaWxhYmxlLAorVGhlIHJlY2VpdmUgY2FsbHMgZXhjZXB0CisuRm4gcmVj
dm1tc2cKK25vcm1hbGx5IHJldHVybiBhbnkgZGF0YSBhdmFpbGFibGUsCiB1cCB0byB0aGUgcmVx
dWVzdGVkIGFtb3VudCwKIHJhdGhlciB0aGFuIHdhaXRpbmcgZm9yIHJlY2VpcHQgb2YgdGhlIGZ1
bGwgYW1vdW50IHJlcXVlc3RlZDsKIHRoaXMgYmVoYXZpb3IgaXMgYWZmZWN0ZWQgYnkgdGhlIHNv
Y2tldC1sZXZlbCBvcHRpb25zCkBAIC0xMjcsNiArMTU1LDkgQEAgb25lIG9yIG1vcmUgb2YgdGhl
IHZhbHVlczoKIC5JdCBEdiBNU0dfV0FJVEFMTCBUYSB3YWl0IGZvciBmdWxsIHJlcXVlc3Qgb3Ig
ZXJyb3IKIC5JdCBEdiBNU0dfRE9OVFdBSVQgVGEgZG8gbm90IGJsb2NrCiAuSXQgRHYgTVNHX0NN
U0dfQ0xPRVhFQyBUYSBzZXQgcmVjZWl2ZWQgZmRzIGNsb3NlLW9uLWV4ZWMKKy5JdCBEdiBNU0df
V0FJVEZPUk9ORSBUYSBkbyBub3QgYmxvY2sgYWZ0ZXIgcmVjZWl2aW5nIHRoZSBmaXJzdCBtZXNz
YWdlCisocmVsZXZhbnQgb25seSBmb3IKKy5GbiByZWN2bW1zZyApCiAuRWwKIC5QcAogVGhlCkBA
IC0xNTgsNiArMTg5LDExIEBAIGlzIHNldCB0bwogVGhpcyBmbGFnIGlzIG5vdCBhdmFpbGFibGUg
aW4gc3RyaWN0CiAuVG4gQU5TSQogb3IgQzk5IGNvbXBpbGF0aW9uIG1vZGUuCitUaGUKKy5EdiBN
U0dfV0FJVEZPUk9ORQorZmxhZyBzZXRzIE1TR19ET05UV0FJVCBhZnRlciB0aGUgZmlyc3QgbWVz
c2FnZSBoYXMgYmVlbiByZWNlaXZlZC4KK1RoaXMgZmxhZyBpcyBvbmx5IHJlbGV2YW50IGZvcgor
LkZuIHJlY3ZtbXNnIC4KIC5QcAogVGhlCiAuRm4gcmVjdm1zZwpAQCAtMjkwLDkgKzMyNiwzMyBA
QCBjb250cm9sIGRhdGEgd2VyZSBkaXNjYXJkZWQgZHVlIHRvIGxhY2sgb2Ygc3BhY2UgaW4gdGhl
IGJ1ZmZlcgogZm9yIGFuY2lsbGFyeSBkYXRhLgogLkR2IE1TR19PT0IKIGlzIHJldHVybmVkIHRv
IGluZGljYXRlIHRoYXQgZXhwZWRpdGVkIG9yIG91dC1vZi1iYW5kIGRhdGEgd2VyZSByZWNlaXZl
ZC4KKy5QcAorVGhlCisuRm4gcmVjdm1tc2cKK3N5c3RlbSBjYWxsIHVzZXMgdGhlCisuRmEgbW1z
Z2hkcgorc3RydWN0dXJlLiBJdHMgZm9ybSBpcyBhcyBmb2xsb3dzLCBhcyBkZWZpbmVkIGluCisu
SW4gc3lzL3NvY2tldC5oIDoKKy5CZCAtbGl0ZXJhbAorc3RydWN0IG1tc2doZHIgeworCXN0cnVj
dCBtc2doZHIJIG1zZ19oZHI7CS8qIG1lc3NhZ2UgaGVhZGVyICovCisJc3NpemVfdAkJIG1zZ19s
ZW47CS8qIG1lc3NhZ2UgbGVuZ3RoICovCit9OworLkVkCisuUHAKK0ZvcgorLkZhIG1zZ19oZHIK
K3NlZSBhYm92ZS4gT24gZGF0YSByZWNlcHRpb24gdGhlCisuRmEgbXNnX2xlbgorZmllbGQgaXMg
dXBkYXRlZCB0byB0aGUgbGVuZ3RoIG9mIHRoZSByZWNlaXZlZCBtZXNzYWdlLgorT24gZGF0YSB0
cmFuc21pc3Npb24gaXQgaXMgdXBkYXRlZCB0byB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgc2Vu
dC4KIC5TaCBSRVRVUk4gVkFMVUVTCi1UaGVzZSBjYWxscyByZXR1cm4gdGhlIG51bWJlciBvZiBi
eXRlcyByZWNlaXZlZCwgb3IgLTEKLWlmIGFuIGVycm9yIG9jY3VycmVkLgorVGhlc2UgY2FsbHMg
ZXhjZXB0CisuRm4gcmVjdm1tc2cKK3JldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlY2VpdmVk
LgorLkZuIHJlY3ZtbXNnCityZXR1cm5zIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVjZWl2ZWQu
CitBIHZhbHVlIG9mIC0xIGlzIHJldHVybmVkIGlmIGFuIGVycm9yIG9jY3VycmVkLgogLlNoIEVS
Uk9SUwogVGhlIGNhbGxzIGZhaWwgaWY6CiAuQmwgLXRhZyAtd2lkdGggRXIKZGlmZiAtLWdpdCBh
L2xpYi9saWJjL3N5cy9zZW5kLjIgYi9saWIvbGliYy9zeXMvc2VuZC4yCmluZGV4IDhmYTJjNjQu
Ljk4MTBhY2UgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL3N5cy9zZW5kLjIKKysrIGIvbGliL2xpYmMv
c3lzL3NlbmQuMgpAQCAtMzQsOCArMzQsOSBAQAogLlNoIE5BTUUKIC5ObSBzZW5kICwKIC5ObSBz
ZW5kdG8gLAotLk5tIHNlbmRtc2cKLS5OZCBzZW5kIGEgbWVzc2FnZSBmcm9tIGEgc29ja2V0Cisu
Tm0gc2VuZG1zZyAsCisuTm0gc2VuZG1tc2cKKy5OZCBzZW5kIG1lc3NhZ2UocykgZnJvbSBhIHNv
Y2tldAogLlNoIExJQlJBUlkKIC5MYiBsaWJjCiAuU2ggU1lOT1BTSVMKQEAgLTQ3LDYgKzQ4LDgg
QEAKIC5GbiBzZW5kdG8gImludCBzIiAiY29uc3Qgdm9pZCAqbXNnIiAic2l6ZV90IGxlbiIgImlu
dCBmbGFncyIgImNvbnN0IHN0cnVjdCBzb2NrYWRkciAqdG8iICJzb2NrbGVuX3QgdG9sZW4iCiAu
RnQgc3NpemVfdAogLkZuIHNlbmRtc2cgImludCBzIiAiY29uc3Qgc3RydWN0IG1zZ2hkciAqbXNn
IiAiaW50IGZsYWdzIgorLkZ0IHNzaXplX3QKKy5GbiBzZW5kbW1zZyAiaW50IHMiICJzdHJ1Y3Qg
bW1zZ2hkciAqIHJlc3RyaWN0IG1zZ3ZlYyIgInNpemVfdCB2bGVuIiAiaW50IGZsYWdzIgogLlNo
IERFU0NSSVBUSU9OCiBUaGUKIC5GbiBzZW5kCkBAIC01NSw4ICs1OCwxMSBAQCBhbmQKIC5GbiBz
ZW5kdG8KIGFuZAogLkZuIHNlbmRtc2cKK2FuZAorLkZuIHNlbmRtbXNnCiBzeXN0ZW0gY2FsbHMK
LWFyZSB1c2VkIHRvIHRyYW5zbWl0IGEgbWVzc2FnZSB0byBhbm90aGVyIHNvY2tldC4KK2FyZSB1
c2VkIHRvIHRyYW5zbWl0IG9uZSBvciBtdWx0aXBsZSBtZXNzYWdlcyAod2l0aCB0aGUgbGF0dGVy
IGNhbGwpIHRvCithbm90aGVyIHNvY2tldC4KIFRoZQogLkZuIHNlbmQKIGZ1bmN0aW9uCkBAIC02
Niw2ICs3Miw4IEBAIHN0YXRlLCB3aGlsZQogLkZuIHNlbmR0bwogYW5kCiAuRm4gc2VuZG1zZwor
YW5kCisuRm4gc2VuZG1tc2cKIG1heSBiZSB1c2VkIGF0IGFueSB0aW1lLgogLlBwCiBUaGUgYWRk
cmVzcyBvZiB0aGUgdGFyZ2V0IGlzIGdpdmVuIGJ5CkBAIC04MSw2ICs4OSwxOCBAQCB1bmRlcmx5
aW5nIHByb3RvY29sLCB0aGUgZXJyb3IKIGlzIHJldHVybmVkLCBhbmQKIHRoZSBtZXNzYWdlIGlz
IG5vdCB0cmFuc21pdHRlZC4KIC5QcAorVGhlCisuRm4gc2VuZG1tc2cKK2Z1bmN0aW9uIHNlbmRz
IG11bHRpcGxlIG1lc3NhZ2VzIGF0IGEgY2FsbC4KK1RoZXkgYXJlIGdpdmVuIGJ5IHRoZQorLkZh
IG1zZ3ZlYwordmVjdG9yIGFsb25nIHdpdGgKKy5GYSB2bGVuCitzcGVjaWZ5aW5nIGl0cyBzaXpl
LgorVGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHNlbnQgcGVyIGVhY2ggbWVzc2FnZSBpcyBwbGFj
ZWQgaW4gdGhlCisuRmEgbXNnX2xlbgorZmllbGQgb2YgZWFjaCBlbGVtZW50IG9mIHRoZSB2ZWN0
b3IgYWZ0ZXIgdHJhbnNtaXNzaW9uLgorLlBwCiBObyBpbmRpY2F0aW9uIG9mIGZhaWx1cmUgdG8g
ZGVsaXZlciBpcyBpbXBsaWNpdCBpbiBhCiAuRm4gc2VuZCAuCiBMb2NhbGx5IGRldGVjdGVkIGVy
cm9ycyBhcmUgaW5kaWNhdGVkIGJ5IGEgcmV0dXJuIHZhbHVlIG9mIC0xLgpAQCAtMTM4LDEwICsx
NTgsMTYgQEAgU2VlCiAuWHIgcmVjdiAyCiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKIC5GYSBt
c2doZHIKK3N0cnVjdHVyZSBhbmQgdGhlCisuRmEgbW1zZ2hkcgogc3RydWN0dXJlLgogLlNoIFJF
VFVSTiBWQUxVRVMKLVRoZSBjYWxsIHJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHNl
bnQsIG9yIC0xCi1pZiBhbiBlcnJvciBvY2N1cnJlZC4KK0FsbCBjYWxscyBleGNlcHQKKy5GbiBz
ZW5kbW1zZworcmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBzZW50LiBUaGUKKy5GbiBz
ZW5kbW1zZworY2FsbCByZXR1cm5zIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgc2VudC4KK0lmIGFu
IGVycm9yIG9jY3VycmVkIGEgdmFsdWUgb2YgLTEgaXMgcmV0dXJuZWQuCiAuU2ggRVJST1JTCiBU
aGUKIC5GbiBzZW5kCkBAIC0xNDksNiArMTc1LDggQEAgZnVuY3Rpb24gYW5kCiAuRm4gc2VuZHRv
CiBhbmQKIC5GbiBzZW5kbXNnCithbmQKKy5GbiBzZW5kbW1zZwogc3lzdGVtIGNhbGxzCiBmYWls
IGlmOgogLkJsIC10YWcgLXdpZHRoIEVyCmRpZmYgLS1naXQgYS9zeXMvc3lzL3NvY2tldC5oIGIv
c3lzL3N5cy9zb2NrZXQuaAppbmRleCAxOGUyZGUxLi5jN2EyMWNjIDEwMDY0NAotLS0gYS9zeXMv
c3lzL3NvY2tldC5oCisrKyBiL3N5cy9zeXMvc29ja2V0LmgKQEAgLTQzMSw2ICs0MzEsOSBAQCBz
dHJ1Y3QgbXNnaGRyIHsKICNkZWZpbmUJTVNHX05CSU8JMHg0MDAwCQkvKiBGSU9OQklPIG1vZGUs
IHVzZWQgYnkgZmlmb2ZzICovCiAjZGVmaW5lCU1TR19DT01QQVQgICAgICAweDgwMDAJCS8qIHVz
ZWQgaW4gc2VuZGl0KCkgKi8KICNkZWZpbmUJTVNHX0NNU0dfQ0xPRVhFQyAweDQwMDAwCS8qIG1h
a2UgcmVjZWl2ZWQgZmRzIGNsb3NlLW9uLWV4ZWMgKi8KKyNpZm5kZWYgX0tFUk5FTAorI2RlZmlu
ZSBNU0dfV0FJVEZPUk9ORQkweDgwMDAwCQkvKiBmb3IgcmVjdm1tc2coKSAqLworI2VuZGlmIC8q
ICFfS0VSTkVMICovCiAjZW5kaWYKICNpZmRlZiBfS0VSTkVMCiAjZGVmaW5lCU1TR19TT0NBTExC
Q0sgICAweDEwMDAwCQkvKiBmb3IgdXNlIGJ5IHNvY2tldCBjYWxsYmFja3MgLSBzb3JlY2VpdmUg
KFRDUCkgKi8KQEAgLTU5NSw2ICs1OTgsMTggQEAgc3RydWN0IHNmX2hkdHIgewogI2VuZGlmIC8q
IF9LRVJORUwgKi8KICNlbmRpZiAvKiBfX0JTRF9WSVNJQkxFICovCiAKKyNpZm5kZWYgX0tFUk5F
TAorI2lmZGVmIF9fQlNEX1ZJU0lCTEUKKy8qCisgKiBTZW5kL3JlY3ZtbXNnIHNwZWNpZmljIHN0
cnVjdHVyZShzKQorICovCitzdHJ1Y3QgbW1zZ2hkciB7CisJc3RydWN0IG1zZ2hkcgltc2dfaGRy
OwkJLyogbWVzc2FnZSBoZWFkZXIgKi8KKwlzc2l6ZV90CQltc2dfbGVuOwkJLyogbWVzc2FnZSBs
ZW5ndGggKi8KK307CisjZW5kaWYgLyogX19CU0RfVklTSUJMRSAqLworI2VuZGlmIC8qICFfS0VS
TkVMICovCisKICNpZm5kZWYJX0tFUk5FTAogCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CkBAIC02
MTUsMTEgKzYzMCwxOSBAQCBpbnQJbGlzdGVuKGludCwgaW50KTsKIHNzaXplX3QJcmVjdihpbnQs
IHZvaWQgKiwgc2l6ZV90LCBpbnQpOwogc3NpemVfdAlyZWN2ZnJvbShpbnQsIHZvaWQgKiwgc2l6
ZV90LCBpbnQsIHN0cnVjdCBzb2NrYWRkciAqIF9fcmVzdHJpY3QsIHNvY2tsZW5fdCAqIF9fcmVz
dHJpY3QpOwogc3NpemVfdAlyZWN2bXNnKGludCwgc3RydWN0IG1zZ2hkciAqLCBpbnQpOworI2lm
IF9fQlNEX1ZJU0lCTEUKK3N0cnVjdCB0aW1lc3BlYzsKK3NzaXplX3QJcmVjdm1tc2coaW50LCBz
dHJ1Y3QgbW1zZ2hkciAqIF9fcmVzdHJpY3QsIHNpemVfdCwgaW50LAorICAgIGNvbnN0IHN0cnVj
dCB0aW1lc3BlYyAqIF9fcmVzdHJpY3QpOworI2VuZGlmCiBzc2l6ZV90CXNlbmQoaW50LCBjb25z
dCB2b2lkICosIHNpemVfdCwgaW50KTsKIHNzaXplX3QJc2VuZHRvKGludCwgY29uc3Qgdm9pZCAq
LAogCSAgICBzaXplX3QsIGludCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCk7
CiBzc2l6ZV90CXNlbmRtc2coaW50LCBjb25zdCBzdHJ1Y3QgbXNnaGRyICosIGludCk7CiAjaWYg
X19CU0RfVklTSUJMRQorc3NpemVfdAlzZW5kbW1zZyhpbnQsIHN0cnVjdCBtbXNnaGRyICogX19y
ZXN0cmljdCwgc2l6ZV90LCBpbnQpOworI2VuZGlmCisjaWYgX19CU0RfVklTSUJMRQogaW50CXNl
bmRmaWxlKGludCwgaW50LCBvZmZfdCwgc2l6ZV90LCBzdHJ1Y3Qgc2ZfaGR0ciAqLCBvZmZfdCAq
LCBpbnQpOwogaW50CXNldGZpYihpbnQpOwogI2VuZGlmCg==
--047d7bfcf874b8bfce052a251a15--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP=KkTyHG9Rb%2BnrDC1TDxzjUQFca9NkVp8Suo1c_-C00RUtkuQ>