Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jan 2016 13:58:27 +0200
From:      Boris Astardzhiev <boris.astardzhiev@gmail.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        Jilles Tjoelker <jilles@stack.nl>, net@freebsd.org, threads@freebsd.org
Subject:   Re: Does FreeBSD have sendmmsg or recvmmsg system calls?
Message-ID:  <CAP=KkTzLCOnJVqt5F3ZuuZUiwkmWcne2Ynpi6-daE2jTzSBtfw@mail.gmail.com>
In-Reply-To: <20160118140811.GW3942@kib.kiev.ua>
References:  <20160108204606.G2420@besplex.bde.org> <CAJ-Vmom26mukSv3JmsmNiAONvpc6f1bQ%2BujO25qefGHY=5przA@mail.gmail.com> <CAP=KkTwG0SVUmrBuWm33EC-tG4tMTdF5rLZQ_u6G1=-ujnfjkA@mail.gmail.com> <20160113080349.GC72455@kib.kiev.ua> <CAP=KkTxVaqZvigg78Dg%2Bv8kuTCaZyky8x15NHqD9uabuRKRkMw@mail.gmail.com> <20160116195657.GJ3942@kib.kiev.ua> <20160116202534.GK3942@kib.kiev.ua> <20160117211853.GA37847@stack.nl> <20160118044826.GS3942@kib.kiev.ua> <CAP=KkTy3J=k7hokGhohcGXv%2BWLnaxJmiAPxqmX9FHt7k0=Dp7Q@mail.gmail.com> <20160118140811.GW3942@kib.kiev.ua>

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

Hello,

I removed the pthread_testcancel() calls and cut the interposing
stuff from my patch as suggested. I extended the send/recv(2) manpages
regarding
the mm calls. Comments and suggestions?

Best regards,
Boris Astardzhiev


On Mon, Jan 18, 2016 at 4:08 PM, Konstantin Belousov <kostikbel@gmail.com>
wrote:

> On Mon, Jan 18, 2016 at 12:37:01PM +0200, Boris Astardzhiev wrote:
> > Hello,
> >
> > Sorry for the delay of my reply. As far as I understand
> pthread_testcancel()
> > is not necessary in the recvmmsg syscall since cancellation is not quite
> > common
> > among apps. But if there is cancellation attempts as long as I use
> > __sys_recvmsg() instead
> > of the interposing approach on a cancel attempt recvmmsg() will return
> > EINTR which will get
> > me out?
> Yes.
>
> The corner case is the cancellation attempt (SIGCANCEL == SIGTHR) coming
> while the thread is executing code around the syscall.
>
> >
> > Secondly, I guess it's better to use __sys_sendmmsg() similarly instead
> of
> > the
> > insterposing table regarding sendmmsg().
> Sure, sendmmsg and recvmmsg are same.
>
> >
> > Lastly, regarding the manpage - should I extend send/recv(2) for the new
> > calls or
> > create new manpage files?
> IMO it is more logical to extend the existing page than write a new one.
>

--001a114b3ebc6c912e0529ae96fb
Content-Type: text/plain; charset=US-ASCII; name="sendrecvmmsg-libconly3.diff"
Content-Disposition: attachment; filename="sendrecvmmsg-libconly3.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ijlch3460

ZGlmZiAtLWdpdCBhL2xpYi9saWJjL2luY2x1ZGUvbmFtZXNwYWNlLmggYi9saWIvbGliYy9pbmNs
dWRlL25hbWVzcGFjZS5oCmluZGV4IDczOWQ3YjEuLmM5NTgyOWUgMTAwNjQ0Ci0tLSBhL2xpYi9s
aWJjL2luY2x1ZGUvbmFtZXNwYWNlLmgKKysrIGIvbGliL2xpYmMvaW5jbHVkZS9uYW1lc3BhY2Uu
aApAQCAtMjA4LDYgKzIwOCw3IEBACiAjZGVmaW5lCQlyZWFkdgkJCQlfcmVhZHYKICNkZWZpbmUJ
CXJlY3Zmcm9tCQkJX3JlY3Zmcm9tCiAjZGVmaW5lCQlyZWN2bXNnCQkJCV9yZWN2bXNnCisjZGVm
aW5lCQlyZWN2bW1zZwkJCV9yZWN2bW1zZwogI2RlZmluZQkJc2VsZWN0CQkJCV9zZWxlY3QKICNk
ZWZpbmUJCXNlbV9jbG9zZQkJCV9zZW1fY2xvc2UKICNkZWZpbmUJCXNlbV9kZXN0cm95CQkJX3Nl
bV9kZXN0cm95CkBAIC0yMjAsNiArMjIxLDcgQEAKICNkZWZpbmUJCXNlbV91bmxpbmsJCQlfc2Vt
X3VubGluawogI2RlZmluZQkJc2VtX3dhaXQJCQlfc2VtX3dhaXQKICNkZWZpbmUJCXNlbmRtc2cJ
CQkJX3NlbmRtc2cKKyNkZWZpbmUJCXNlbmRtbXNnCQkJX3NlbmRtbXNnCiAjZGVmaW5lCQlzZW5k
dG8JCQkJX3NlbmR0bwogI2RlZmluZQkJc2V0c29ja29wdAkJCV9zZXRzb2Nrb3B0CiAvKiNkZWZp
bmUJCXNpZ2FjdGlvbgkJCV9zaWdhY3Rpb24qLwpkaWZmIC0tZ2l0IGEvbGliL2xpYmMvaW5jbHVk
ZS91bi1uYW1lc3BhY2UuaCBiL2xpYi9saWJjL2luY2x1ZGUvdW4tbmFtZXNwYWNlLmgKaW5kZXgg
ZjMxZmE3YS4uMDIzMzM0OCAxMDA2NDQKLS0tIGEvbGliL2xpYmMvaW5jbHVkZS91bi1uYW1lc3Bh
Y2UuaAorKysgYi9saWIvbGliYy9pbmNsdWRlL3VuLW5hbWVzcGFjZS5oCkBAIC0xODksNiArMTg5
LDcgQEAKICN1bmRlZgkJcmVhZHYKICN1bmRlZgkJcmVjdmZyb20KICN1bmRlZgkJcmVjdm1zZwor
I3VuZGVmCQlyZWN2bW1zZwogI3VuZGVmCQlzZWxlY3QKICN1bmRlZgkJc2VtX2Nsb3NlCiAjdW5k
ZWYJCXNlbV9kZXN0cm95CkBAIC0yMDEsNiArMjAyLDcgQEAKICN1bmRlZgkJc2VtX3VubGluawog
I3VuZGVmCQlzZW1fd2FpdAogI3VuZGVmCQlzZW5kbXNnCisjdW5kZWYJCXNlbmRtbXNnCiAjdW5k
ZWYJCXNlbmR0bwogI3VuZGVmCQlzZXRzb2Nrb3B0CiAjdW5kZWYJCXNpZ2FjdGlvbgpkaWZmIC0t
Z2l0IGEvbGliL2xpYmMvc3lzL01ha2VmaWxlLmluYyBiL2xpYi9saWJjL3N5cy9NYWtlZmlsZS5p
bmMKaW5kZXggZTRmZTFiMi4uNWY4YjY5OSAxMDA2NDQKLS0tIGEvbGliL2xpYmMvc3lzL01ha2Vm
aWxlLmluYworKysgYi9saWIvbGliYy9zeXMvTWFrZWZpbGUuaW5jCkBAIC0yOCw2ICsyOCw4IEBA
IFNSQ1MrPSBmdXRpbWVucy5jIHV0aW1lbnNhdC5jCiBOT0FTTSs9IGZ1dGltZW5zLm8gdXRpbWVu
c2F0Lm8KIFBTRVVETys9IF9mdXRpbWVucy5vIF91dGltZW5zYXQubwogCitTUkNTKz0gcmVjdm1t
c2cuYyBzZW5kbW1zZy5jCisKIElOVEVSUE9TRUQgPSBcCiAJYWNjZXB0IFwKIAlhY2NlcHQ0IFwK
ZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N5cy9TeW1ib2wubWFwIGIvbGliL2xpYmMvc3lzL1N5bWJv
bC5tYXAKaW5kZXggN2IzMjU3Yy4uNzI0ZTFiNCAxMDA2NDQKLS0tIGEvbGliL2xpYmMvc3lzL1N5
bWJvbC5tYXAKKysrIGIvbGliL2xpYmMvc3lzL1N5bWJvbC5tYXAKQEAgLTM5OSw2ICszOTksOCBA
QCBGQlNEXzEuNCB7CiAJdXRpbWVuc2F0OwogCW51bWFfc2V0YWZmaW5pdHk7CiAJbnVtYV9nZXRh
ZmZpbml0eTsKKwlzZW5kbW1zZzsKKwlyZWN2bW1zZzsKIH07CiAKIEZCU0Rwcml2YXRlXzEuMCB7
CkBAIC0xMDUxLDQgKzEwNTMsNiBAQCBGQlNEcHJpdmF0ZV8xLjAgewogCWdzc2Rfc3lzY2FsbDsK
IAlfX2xpYmNfaW50ZXJwb3Npbmdfc2xvdDsKIAlfX2xpYmNfc2lnd2FpdDsKKwlfc2VuZG1tc2c7
CisJX3JlY3ZtbXNnOwogfTsKZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N5cy9yZWN2LjIgYi9saWIv
bGliYy9zeXMvcmVjdi4yCmluZGV4IDMyNmU3ZmYuLjgxYTAyMDEgMTAwNjQ0Ci0tLSBhL2xpYi9s
aWJjL3N5cy9yZWN2LjIKKysrIGIvbGliL2xpYmMvc3lzL3JlY3YuMgpAQCAtMzQsOCArMzQsOSBA
QAogLlNoIE5BTUUKIC5ObSByZWN2ICwKIC5ObSByZWN2ZnJvbSAsCi0uTm0gcmVjdm1zZwotLk5k
IHJlY2VpdmUgYSBtZXNzYWdlIGZyb20gYSBzb2NrZXQKKy5ObSByZWN2bXNnICwKKy5ObSByZWN2
bW1zZworLk5kIHJlY2VpdmUgbWVzc2FnZShzKSBmcm9tIGEgc29ja2V0CiAuU2ggTElCUkFSWQog
LkxiIGxpYmMKIC5TaCBTWU5PUFNJUwpAQCAtNDcsMTEgKzQ4LDE1IEBACiAuRm4gcmVjdmZyb20g
ImludCBzIiAidm9pZCAqYnVmIiAic2l6ZV90IGxlbiIgImludCBmbGFncyIgInN0cnVjdCBzb2Nr
YWRkciAqIHJlc3RyaWN0IGZyb20iICJzb2NrbGVuX3QgKiByZXN0cmljdCBmcm9tbGVuIgogLkZ0
IHNzaXplX3QKIC5GbiByZWN2bXNnICJpbnQgcyIgInN0cnVjdCBtc2doZHIgKm1zZyIgImludCBm
bGFncyIKKy5GdCBpbnQKKy5GbiByZWN2bW1zZyAiaW50IHMiICJzdHJ1Y3QgbW1zZ2hkciAqbXNn
dmVjIiAiaW50IHZsZW4iICJpbnQgZmxhZ3MiCiAuU2ggREVTQ1JJUFRJT04KIFRoZQogLkZuIHJl
Y3Zmcm9tCiBhbmQKIC5GbiByZWN2bXNnCithbmQKKy5GbiByZWN2bW1zZwogc3lzdGVtIGNhbGxz
CiBhcmUgdXNlZCB0byByZWNlaXZlIG1lc3NhZ2VzIGZyb20gYSBzb2NrZXQsCiBhbmQgbWF5IGJl
IHVzZWQgdG8gcmVjZWl2ZSBkYXRhIG9uIGEgc29ja2V0IHdoZXRoZXIgb3Igbm90CkBAIC04NCw4
ICs4OSwyNSBAQCBudWxsIHBvaW50ZXIgcGFzc2VkIGFzIGl0cwogLkZhIGZyb20KIGFyZ3VtZW50
LgogLlBwCi1BbGwgdGhyZWUgcm91dGluZXMgcmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIG1lc3Nh
Z2Ugb24gc3VjY2Vzc2Z1bAotY29tcGxldGlvbi4KK1RoZQorLkZuIHJlY3ZtbXNnCitmdW5jdGlv
biBpcyB1c2VkIHRvIHJlY2VpdmUgbXVsdGlwbGUKK21lc3NhZ2VzIGF0IGEgY2FsbC4KK1RoZWly
IG51bWJlcgoraXMgc3VwcGxpZWQgYnkKKy5GYSB2bGVuCisobGltaXRlZCB0byAxMDI0KS4KK1Ro
ZSBtZXNzYWdlcyBhcmUgcGxhY2VkIGluIHRoZQorLkZhIG1zZ3ZlYwordmVjdG9yIGFmdGVyIHJl
Y2VwdGlvbi4KK1RoZSBzaXplIG9mIGVhY2ggcmVjZWl2ZWQgbWVzc2FnZSBpcyBwbGFjZWQgaW4g
dGhlCisuRmEgbXNnX2xlbgorZmllbGQgb2YgZWFjaCBlbGVtZW50IG9mIHRoZSB2ZWN0b3IuCisu
UHAKK1RoZSBmaXJzdCB0aHJlZSByb3V0aW5lcyByZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgbWVz
c2FnZSBvbiBzdWNjZXNzZnVsCitjb21wbGV0aW9uIHdoZXJlYXMKKy5GbiByZWN2bW1zZworcmV0
dXJucyB0aGUgbnVtYmVyIG9mIHJlY2VpdmVkIG1lc3NhZ2VzLgogSWYgYSBtZXNzYWdlIGlzIHRv
byBsb25nIHRvIGZpdCBpbiB0aGUgc3VwcGxpZWQgYnVmZmVyLAogZXhjZXNzIGJ5dGVzIG1heSBi
ZSBkaXNjYXJkZWQgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHNvY2tldAogdGhlIG1lc3NhZ2Ug
aXMgcmVjZWl2ZWQgZnJvbSAoc2VlCkBAIC0xMDAsNyArMTIyLDkgQEAgaW4gd2hpY2ggY2FzZSB0
aGUgdmFsdWUKIC5WYSBlcnJubwogaXMgc2V0IHRvCiAuRXIgRUFHQUlOIC4KLVRoZSByZWNlaXZl
IGNhbGxzIG5vcm1hbGx5IHJldHVybiBhbnkgZGF0YSBhdmFpbGFibGUsCitUaGUgcmVjZWl2ZSBj
YWxscyBleGNlcHQKKy5GbiByZWN2bW1zZworbm9ybWFsbHkgcmV0dXJuIGFueSBkYXRhIGF2YWls
YWJsZSwKIHVwIHRvIHRoZSByZXF1ZXN0ZWQgYW1vdW50LAogcmF0aGVyIHRoYW4gd2FpdGluZyBm
b3IgcmVjZWlwdCBvZiB0aGUgZnVsbCBhbW91bnQgcmVxdWVzdGVkOwogdGhpcyBiZWhhdmlvciBp
cyBhZmZlY3RlZCBieSB0aGUgc29ja2V0LWxldmVsIG9wdGlvbnMKQEAgLTI5MCw5ICszMTQsMzQg
QEAgY29udHJvbCBkYXRhIHdlcmUgZGlzY2FyZGVkIGR1ZSB0byBsYWNrIG9mIHNwYWNlIGluIHRo
ZSBidWZmZXIKIGZvciBhbmNpbGxhcnkgZGF0YS4KIC5EdiBNU0dfT09CCiBpcyByZXR1cm5lZCB0
byBpbmRpY2F0ZSB0aGF0IGV4cGVkaXRlZCBvciBvdXQtb2YtYmFuZCBkYXRhIHdlcmUgcmVjZWl2
ZWQuCisuUHAKK1RoZQorLkZuIHJlY3ZtbXNnCitzeXN0ZW0gY2FsbCB1c2VzIHRoZQorLkZhIG1t
c2doZHIKK3N0cnVjdHVyZS4gSXRzIGZvcm0gaXMgYXMgZm9sbG93cywgYXMgZGVmaW5lZCBpbgor
LkluIHN5cy9zb2NrZXQuaCA6CisuQmQgLWxpdGVyYWwKK3N0cnVjdCBtbXNnaGRyIHsKKwlzdHJ1
Y3QgbXNnaGRyCSBtc2dfaGRyOwkvKiBtZXNzYWdlIGhlYWRlciAqLworCXVuc2lnbmVkIGludAkg
bXNnX2xlbjsJLyogbWVzc2FnZSBsZW5ndGggKi8KK307CisuRWQKKy5QcAorRm9yCisuRmEgbXNn
X2hkcgorc2VlIGFib3ZlLiBPbiBkYXRhIHJlY2VwdGlvbiB0aGUKKy5GYSBtc2dfbGVuCitmaWVs
ZCBpcyB1cGRhdGVkIHRvIHRoZSBsZW5ndGggb2YgdGhlIHJlY2VpdmVkIG1lc3NhZ2UuIE9uCitk
YXRhIHRyYW5zbWlzc2lvbiBpdCBpcyB1cGRhdGVkIHRvIHRoZSBudW1iZXIgb2YKK2NoYXJhY3Rl
cnMgc2VudC4KIC5TaCBSRVRVUk4gVkFMVUVTCi1UaGVzZSBjYWxscyByZXR1cm4gdGhlIG51bWJl
ciBvZiBieXRlcyByZWNlaXZlZCwgb3IgLTEKLWlmIGFuIGVycm9yIG9jY3VycmVkLgorVGhlc2Ug
Y2FsbHMgZXhjZXB0CisuRm4gcmVjdm1tc2cKK3JldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJl
Y2VpdmVkLgorLkZuIHJlY3ZtbXNnCityZXR1cm5zIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVj
ZWl2ZWQuCitBIHZhbHVlIG9mIC0xIGlzIHJldHVybmVkIGlmIGFuIGVycm9yIG9jY3VycmVkLgog
LlNoIEVSUk9SUwogVGhlIGNhbGxzIGZhaWwgaWY6CiAuQmwgLXRhZyAtd2lkdGggRXIKZGlmZiAt
LWdpdCBhL2xpYi9saWJjL3N5cy9yZWN2bW1zZy5jIGIvbGliL2xpYmMvc3lzL3JlY3ZtbXNnLmMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI1MTU4YQotLS0gL2Rldi9udWxs
CisrKyBiL2xpYi9saWJjL3N5cy9yZWN2bW1zZy5jCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTYgQm9yaXMgQXN0YXJkemhpZXYsIFNtYXJ0Y29tLUJ1bGdhcmlhIEFE
CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZShzKSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBhcworICogICAgdGhlIGZp
cnN0IGxpbmVzIG9mIHRoaXMgZmlsZSB1bm1vZGlmaWVkIG90aGVyIHRoYW4gdGhlIHBvc3NpYmxl
CisgKiAgICBhZGRpdGlvbiBvZiBvbmUgb3IgbW9yZSBjb3B5cmlnaHQgbm90aWNlcy4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UocyksIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
KFMpIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIoUykgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IKKyAqIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLAorICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UKKyAqIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsCisgKiBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxz
eXMvY2RlZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKworI2luY2x1ZGUgPGVycm5vLmg+
CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpbmNs
dWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgImxpYmNf
cHJpdmF0ZS5oIgorCisjZGVmaW5lIFZMRU5fTUFYIDEwMjQKKworaW50CityZWN2bW1zZyhpbnQg
cywgc3RydWN0IG1tc2doZHIgKm1zZ3ZlYywgdW5zaWduZWQgaW50IHZsZW4sIGludCBmbGFncykK
K3sKKwlpbnQgaSwgcmV0LCByY3ZkOworCisJaWYgKHZsZW4gPiBWTEVOX01BWCkKKwkJdmxlbiA9
IFZMRU5fTUFYOworCisJcmN2ZCA9IDA7CisJZm9yIChpID0gMDsgaSA8IHZsZW47IGkrKykgewor
CQllcnJubyA9IDA7CisJCXJldCA9IF9fc3lzX3JlY3Ztc2cocywgJm1zZ3ZlY1tpXS5tc2dfaGRy
LCBmbGFncyk7CisJCWlmIChyZXQgPCAwIHx8IGVycm5vICE9IDApIHsKKwkJCWlmIChyY3ZkICE9
IDApIHsKKwkJCQkvKiBXZSd2ZSByZWNlaXZlZCBtZXNzYWdlcy4gTGV0IGNhbGxlciBrbm93LiAq
LworCQkJCWVycm5vID0gMDsKKwkJCQlyZXR1cm4gKHJjdmQpOworCQkJfQorCQkJcmV0dXJuICgt
MSk7CisJCX0KKworCQkvKiBTYXZlIHJlY2VpdmVkIGJ5dGVzICovCisJCW1zZ3ZlY1tpXS5tc2df
bGVuID0gcmV0OworCisJCXJjdmQrKzsKKwl9CisKKwlyZXR1cm4gKHJjdmQpOworfQorCisjdW5k
ZWYgVkxFTl9NQVgKZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N5cy9zZW5kLjIgYi9saWIvbGliYy9z
eXMvc2VuZC4yCmluZGV4IDhmYTJjNjQuLjZjMTRhNjAgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL3N5
cy9zZW5kLjIKKysrIGIvbGliL2xpYmMvc3lzL3NlbmQuMgpAQCAtMzQsOCArMzQsOSBAQAogLlNo
IE5BTUUKIC5ObSBzZW5kICwKIC5ObSBzZW5kdG8gLAotLk5tIHNlbmRtc2cKLS5OZCBzZW5kIGEg
bWVzc2FnZSBmcm9tIGEgc29ja2V0CisuTm0gc2VuZG1zZyAsCisuTm0gc2VuZG1tc2cKKy5OZCBz
ZW5kIG1lc3NhZ2UocykgZnJvbSBhIHNvY2tldAogLlNoIExJQlJBUlkKIC5MYiBsaWJjCiAuU2gg
U1lOT1BTSVMKQEAgLTQ3LDYgKzQ4LDggQEAKIC5GbiBzZW5kdG8gImludCBzIiAiY29uc3Qgdm9p
ZCAqbXNnIiAic2l6ZV90IGxlbiIgImludCBmbGFncyIgImNvbnN0IHN0cnVjdCBzb2NrYWRkciAq
dG8iICJzb2NrbGVuX3QgdG9sZW4iCiAuRnQgc3NpemVfdAogLkZuIHNlbmRtc2cgImludCBzIiAi
Y29uc3Qgc3RydWN0IG1zZ2hkciAqbXNnIiAiaW50IGZsYWdzIgorLkZ0IGludAorLkZuIHNlbmRt
bXNnICJpbnQgcyIgInN0cnVjdCBtbXNnaGRyICptc2d2ZWMiICJpbnQgdmxlbiIgImludCBmbGFn
cyIKIC5TaCBERVNDUklQVElPTgogVGhlCiAuRm4gc2VuZApAQCAtNTUsOCArNTgsMTAgQEAgYW5k
CiAuRm4gc2VuZHRvCiBhbmQKIC5GbiBzZW5kbXNnCithbmQKKy5GbiBzZW5kbW1zZwogc3lzdGVt
IGNhbGxzCi1hcmUgdXNlZCB0byB0cmFuc21pdCBhIG1lc3NhZ2UgdG8gYW5vdGhlciBzb2NrZXQu
CithcmUgdXNlZCB0byB0cmFuc21pdCBvbmUgb3IgbXVsdGlwbGUgbWVzc2FnZXMgKHdpdGggdGhl
IGxhdHRlciBjYWxsKSB0byBhbm90aGVyIHNvY2tldC4KIFRoZQogLkZuIHNlbmQKIGZ1bmN0aW9u
CkBAIC02Niw2ICs3MSw4IEBAIHN0YXRlLCB3aGlsZQogLkZuIHNlbmR0bwogYW5kCiAuRm4gc2Vu
ZG1zZworYW5kCisuRm4gc2VuZG1tc2cKIG1heSBiZSB1c2VkIGF0IGFueSB0aW1lLgogLlBwCiBU
aGUgYWRkcmVzcyBvZiB0aGUgdGFyZ2V0IGlzIGdpdmVuIGJ5CkBAIC04MSw2ICs4OCwxOCBAQCB1
bmRlcmx5aW5nIHByb3RvY29sLCB0aGUgZXJyb3IKIGlzIHJldHVybmVkLCBhbmQKIHRoZSBtZXNz
YWdlIGlzIG5vdCB0cmFuc21pdHRlZC4KIC5QcAorVGhlCisuRm4gc2VuZG1tc2cKK2Z1bmN0aW9u
IHNlbmRzIG11bHRpcGxlIG1lc3NhZ2VzIGF0IGEgY2FsbC4KK1RoZXkgYXJlIGdpdmVuIGJ5IHRo
ZQorLkZhIG1zZ3ZlYwordmVjdG9yIGFsb25nIHdpdGgKKy5GYSB2bGVuCitzcGVjaWZ5aW5nIGl0
cyBzaXplIChsaW1pdGVkIHRvIDEwMjQpLiBUaGUgbnVtYmVyIG9mCitjaGFyYWN0ZXJzIHNlbnQg
cGVyIGVhY2ggbWVzc2FnZSBpcyBwbGFjZWQgaW4gdGhlCisuRmEgbXNnX2xlbgorZmllbGQgb2Yg
ZWFjaCBlbGVtZW50IG9mIHRoZSB2ZWN0b3IgYWZ0ZXIgdHJhbnNtaXNzaW9uLgorLlBwCiBObyBp
bmRpY2F0aW9uIG9mIGZhaWx1cmUgdG8gZGVsaXZlciBpcyBpbXBsaWNpdCBpbiBhCiAuRm4gc2Vu
ZCAuCiBMb2NhbGx5IGRldGVjdGVkIGVycm9ycyBhcmUgaW5kaWNhdGVkIGJ5IGEgcmV0dXJuIHZh
bHVlIG9mIC0xLgpAQCAtMTM4LDEwICsxNTcsMTYgQEAgU2VlCiAuWHIgcmVjdiAyCiBmb3IgYSBk
ZXNjcmlwdGlvbiBvZiB0aGUKIC5GYSBtc2doZHIKK3N0cnVjdHVyZSBhbmQgdGhlCisuRmEgbW1z
Z2hkcgogc3RydWN0dXJlLgogLlNoIFJFVFVSTiBWQUxVRVMKLVRoZSBjYWxsIHJldHVybnMgdGhl
IG51bWJlciBvZiBjaGFyYWN0ZXJzIHNlbnQsIG9yIC0xCi1pZiBhbiBlcnJvciBvY2N1cnJlZC4K
K0FsbCBjYWxscyBleGNlcHQKKy5GbiBzZW5kbW1zZworcmV0dXJuIHRoZSBudW1iZXIgb2YgY2hh
cmFjdGVycyBzZW50LiBUaGUKKy5GbiBzZW5kbW1zZworY2FsbCByZXR1cm5zIHRoZSBudW1iZXIg
b2YgbWVzc2FnZXMgc2VudC4KK0lmIGFuIGVycm9yIG9jY3VycmVkIGEgdmFsdWUgb2YgLTEgaXMg
cmV0dXJuZWQuCiAuU2ggRVJST1JTCiBUaGUKIC5GbiBzZW5kCkBAIC0xNDksNiArMTc0LDggQEAg
ZnVuY3Rpb24gYW5kCiAuRm4gc2VuZHRvCiBhbmQKIC5GbiBzZW5kbXNnCithbmQKKy5GbiBzZW5k
bW1zZwogc3lzdGVtIGNhbGxzCiBmYWlsIGlmOgogLkJsIC10YWcgLXdpZHRoIEVyCmRpZmYgLS1n
aXQgYS9saWIvbGliYy9zeXMvc2VuZG1tc2cuYyBiL2xpYi9saWJjL3N5cy9zZW5kbW1zZy5jCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiOTBiOTAKLS0tIC9kZXYvbnVsbAor
KysgYi9saWIvbGliYy9zeXMvc2VuZG1tc2cuYwpAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDE2IEJvcmlzIEFzdGFyZHpoaWV2LCBTbWFydGNvbS1CdWxnYXJpYSBBRAor
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UocyksIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgYXMKKyAqICAgIHRoZSBmaXJz
dCBsaW5lcyBvZiB0aGlzIGZpbGUgdW5tb2RpZmllZCBvdGhlciB0aGFuIHRoZSBwb3NzaWJsZQor
ICogICAgYWRkaXRpb24gb2Ygb25lIG9yIG1vcmUgY29weXJpZ2h0IG5vdGljZXMuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlKHMpLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUihT
KSBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
KFMpIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisgKiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFCisgKiBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLAorICogRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8c3lz
L2NkZWZzLmg+CitfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CisKKyNpbmNsdWRlIDxlcnJuby5oPgor
I2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisjaW5jbHVk
ZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlICJsaWJjX3By
aXZhdGUuaCIKKworI2RlZmluZSBWTEVOX01BWCAxMDI0CisKK2ludAorc2VuZG1tc2coaW50IHMs
IHN0cnVjdCBtbXNnaGRyICptc2d2ZWMsIHVuc2lnbmVkIGludCB2bGVuLCBpbnQgZmxhZ3MpCit7
CisJaW50IGksIHJldCwgc2VudDsKKworCWlmICh2bGVuID4gVkxFTl9NQVgpCisJCXZsZW4gPSBW
TEVOX01BWDsKKworCXNlbnQgPSAwOworCWZvciAoaSA9IDA7IGkgPCB2bGVuOyBpKyspIHsKKwkJ
ZXJybm8gPSAwOworCQlyZXQgPSBfX3N5c19zZW5kbXNnKHMsICZtc2d2ZWNbaV0ubXNnX2hkciwg
ZmxhZ3MpOworCQlpZiAocmV0IDwgMCB8fCBlcnJubyAhPSAwKSB7CisJCQlpZiAoc2VudCAhPSAw
KSB7CisJCQkJLyogV2UgaGF2ZSBzZW50IG1lc3NhZ2VzLiBMZXQgY2FsbGVyIGtub3cuICovCisJ
CQkJZXJybm8gPSAwOworCQkJCXJldHVybiAoc2VudCk7CisJCQl9CisJCQlyZXR1cm4gKC0xKTsK
KwkJfQorCisJCS8qIFNhdmUgc2VudCBieXRlcyAqLworCQltc2d2ZWNbaV0ubXNnX2xlbiA9IHJl
dDsKKworCQlzZW50Kys7CisJfQorCisJcmV0dXJuIChzZW50KTsKK30KKworI3VuZGVmIFZMRU5f
TUFYCmRpZmYgLS1naXQgYS9zeXMvc3lzL3NvY2tldC5oIGIvc3lzL3N5cy9zb2NrZXQuaAppbmRl
eCAxOGUyZGUxLi5mNzBkY2VkIDEwMDY0NAotLS0gYS9zeXMvc3lzL3NvY2tldC5oCisrKyBiL3N5
cy9zeXMvc29ja2V0LmgKQEAgLTU5NSw2ICs1OTUsMTggQEAgc3RydWN0IHNmX2hkdHIgewogI2Vu
ZGlmIC8qIF9LRVJORUwgKi8KICNlbmRpZiAvKiBfX0JTRF9WSVNJQkxFICovCiAKKyNpZm5kZWYg
X0tFUk5FTAorI2lmZGVmIF9fQlNEX1ZJU0lCTEUKKy8qCisgKiBTZW5kL3JlY3ZtbXNnIHNwZWNp
ZmljIHN0cnVjdHVyZShzKQorICovCitzdHJ1Y3QgbW1zZ2hkciB7CisJc3RydWN0IG1zZ2hkcglt
c2dfaGRyOwkJLyogbWVzc2FnZSBoZWFkZXIgKi8KKwl1bnNpZ25lZCBpbnQJbXNnX2xlbjsJCS8q
IG1lc3NhZ2UgbGVuZ3RoICovCit9OworI2VuZGlmIC8qIF9fQlNEX1ZJU0lCTEUgKi8KKyNlbmRp
ZiAvKiAhX0tFUk5FTCAqLworCiAjaWZuZGVmCV9LRVJORUwKIAogI2luY2x1ZGUgPHN5cy9jZGVm
cy5oPgpAQCAtNjE1LDExICs2MjcsMTcgQEAgaW50CWxpc3RlbihpbnQsIGludCk7CiBzc2l6ZV90
CXJlY3YoaW50LCB2b2lkICosIHNpemVfdCwgaW50KTsKIHNzaXplX3QJcmVjdmZyb20oaW50LCB2
b2lkICosIHNpemVfdCwgaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiBfX3Jlc3RyaWN0LCBzb2NrbGVu
X3QgKiBfX3Jlc3RyaWN0KTsKIHNzaXplX3QJcmVjdm1zZyhpbnQsIHN0cnVjdCBtc2doZHIgKiwg
aW50KTsKKyNpZiBfX0JTRF9WSVNJQkxFCitpbnQJcmVjdm1tc2coaW50LCBzdHJ1Y3QgbW1zZ2hk
ciAqLCB1bnNpZ25lZCBpbnQsIGludCk7CisjZW5kaWYKIHNzaXplX3QJc2VuZChpbnQsIGNvbnN0
IHZvaWQgKiwgc2l6ZV90LCBpbnQpOwogc3NpemVfdAlzZW5kdG8oaW50LCBjb25zdCB2b2lkICos
CiAJICAgIHNpemVfdCwgaW50LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90KTsK
IHNzaXplX3QJc2VuZG1zZyhpbnQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgaW50KTsKICNpZiBf
X0JTRF9WSVNJQkxFCitpbnQJc2VuZG1tc2coaW50LCBzdHJ1Y3QgbW1zZ2hkciAqLCB1bnNpZ25l
ZCBpbnQsIGludCk7CisjZW5kaWYKKyNpZiBfX0JTRF9WSVNJQkxFCiBpbnQJc2VuZGZpbGUoaW50
LCBpbnQsIG9mZl90LCBzaXplX3QsIHN0cnVjdCBzZl9oZHRyICosIG9mZl90ICosIGludCk7CiBp
bnQJc2V0ZmliKGludCk7CiAjZW5kaWYK
--001a114b3ebc6c912e0529ae96fb--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAP=KkTzLCOnJVqt5F3ZuuZUiwkmWcne2Ynpi6-daE2jTzSBtfw>