Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Apr 2018 16:44:51 +1200
From:      Thomas Munro <munro@ip9.org>
To:        freebsd-hackers@freebsd.org
Subject:   PROC_SET_PDEATHSIG to get a signal when your parent exits
Message-ID:  <CADLWmXWGReyZn9ZoM9q8gs=%2Bbqw7e4-Ti1HNEPxYoJJ=6gZHhA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--94eb2c194a123f6cef0569c7a6c0
Content-Type: text/plain; charset="UTF-8"

Hello,

In PostgreSQL we are planning to make use of Linux's
prctl(PR_SET_PDEATHSIG) facility which tells the kernel to signal you
when your parent process exits.  This will cut down on polling and
contention on a pipe in certain busy loops, where we need to be able
to exit quickly if something kills the main supervisor process but we
aren't waiting in kevent/epoll/poll-type primitive.  We considered
SIGIO but that'd require either one pipe per child process or a common
process group, neither of which works for us.  So I decided to try
adding a new command PROC_SET_PDEATHSIG to procctl() to work exactly
like Linux.

Please see attached early draft patch.  This is my first attempt at
writing a patch for FreeBSD, so I expect that it contains newbie
mistakes and style problems and I would be grateful for any feedback.
Is this design sane?  Is that the best syscall to use for this?  Did I
get the ptrace/orphan stuff right?  Should this somehow share
something with the Linux compat support for prctl(PR_SET_PDEATHSIG,
...)?  Would people want this?

Here's a quick and dirty userspace program I came up with while
developing the patch:

https://github.com/macdice/test-deathsig/blob/master/test-deathsig.c

That tests a few interesting cases I thought of, but note that I
haven't yet tested 32 bit support or the setuid/getuid logic.

Thanks for reading,

Thomas Munro

--94eb2c194a123f6cef0569c7a6c0
Content-Type: application/octet-stream; 
	name="0001-Support-PROC_SET_PDEATHSIG-as-a-command-to-procct-v1.patch"
Content-Disposition: attachment; 
	filename="0001-Support-PROC_SET_PDEATHSIG-as-a-command-to-procct-v1.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_jfyw92cz0

RnJvbSBiOWE2NzMwNjk3YmEwOWY3ZWUwZjgxMTI5ZjNmOTc2ZGY4MjZkMWNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPG11bnJvQGlwOS5vcmc+CkRhdGU6IEZy
aSwgMTMgQXByIDIwMTggMjM6NDE6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBTdXBwb3J0IFBS
T0NfU0VUX1BERUFUSFNJRyBhcyBhIGNvbW1hbmQgdG8gcHJvY2N0bC4KCkFsbG93IHByb2Nlc3Nl
cyB0byByZXF1ZXN0IHRoZSBkZWxpdmVyeSBvZiBhIHNpZ25hbCB1cG9uIGRlYXRoCm9mIHRoZWly
IHBhcmVudCBwcm9jZXNzLiAgVGhpcyBwcm92aWRlcyBhcHByb3hpbWF0ZWx5IHRoZSBzYW1lCmJl
aGF2aW91ciBhcyBwcmN0bChQUl9TRVRfUERFQVRIU0lHLCAuLi4pIG9uIExpbnV4LgoKVGhvbWFz
IE11bnJvIDxtdW5yb0BpcDkub3JnPgotLS0KIGxpYi9saWJjL3N5cy9wcm9jY3RsLjIgIHwgMjkg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHN5cy9rZXJuL2tlcm5fZXhlYy5jICAgIHwg
IDQgKysrKwogc3lzL2tlcm4va2Vybl9leGl0LmMgICAgfCAxMyArKysrKysrKysrKysrCiBzeXMv
a2Vybi9rZXJuX3Byb2NjdGwuYyB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
LQogc3lzL2tlcm4va2Vybl90aHJlYWQuYyAgfCAgNCArKy0tCiBzeXMvc3lzL3Byb2MuaCAgICAg
ICAgICB8ICAxICsKIHN5cy9zeXMvcHJvY2N0bC5oICAgICAgIHwgIDIgKysKIDcgZmlsZXMgY2hh
bmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv
bGliYy9zeXMvcHJvY2N0bC4yIGIvbGliL2xpYmMvc3lzL3Byb2NjdGwuMgppbmRleCBhZjk2YWU2
ZTA0Yy4uZTQ5ZWYzNjk5NWYgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL3N5cy9wcm9jY3RsLjIKKysr
IGIvbGliL2xpYmMvc3lzL3Byb2NjdGwuMgpAQCAtMzkxLDYgKzM5MSwyNCBAQCBvdGhlcndpc2Uu
CiBTZWUgdGhlIG5vdGUgYWJvdXQgc3lzY3RsCiAuRHYga2Vybi50cmFwX2Vub3RjYXAKIGFib3Zl
LCB3aGljaCBnaXZlcyBpbmRlcGVuZGVudCBnbG9iYWwgY29udHJvbCBvZiBzaWduYWwgZGVsaXZl
cnkuCisuSXQgRHYgUFJPQ19TRVRfUERFQVRIU0lHCitSZXF1ZXN0IHRoZSBkZWxpdmVyeSBvZiBh
IHNpZ25hbCB3aGVuIHRoZSBwYXJlbnQgb2YgdGhlIGNhbGxpbmcKK3Byb2Nlc3MgZXhpdHMuCitV
c2UgaWQgdHlwZSBQX1BJRCBhbmQgaWQgMC4KK1RoZSB2YWx1ZSBpcyBjbGVhcmVkIGZvciB0aGUg
Y2hpbGRyZW4KK29mIGZvcmsoKSBhbmQgd2hlbiBleGVjdXRpbmcgc2V0LXVzZXItSUQgb3Igc2V0
LWdyb3VwLUlEIGJpbmFyaWVzLgorLkZhIGFyZworbXVzdCBwb2ludCB0byBhIHZhbHVlIG9mIHR5
cGUgaW50IGluZGljYXRpbmcgdGhlIHNpZ25hbAordGhhdCBzaG91bGQgYmUgZGVsaXZlcmVkIHRv
IHRoZSBjYWxsZXIuICBVc2UgemVybyB0byBjYW5jZWwgdGhlCitkZWxpdmVyeSBvZiBzaWduYWxz
LgorLkl0IER2IFBST0NfR0VUX1BERUFUSFNJRworUXVlcnkgdGhlIGN1cnJlbnQgc2lnbmFsIG51
bWJlciB0aGF0IHdpbGwgYmUgZGVsaXZlcmVkIHdoZW4gdGhlIHBhcmVudAorb2YgdGhlIGNhbGxp
bmcgcHJvY2VzcyBleGl0cy4KK1VzZSBpZCB0eXBlIFBfUElEIGFuZCBpZCAwLgorLkZhIGFyZwor
bXVzdCBwb2ludCB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBob2xkIGEgdmFsdWUgb2Yg
dHlwZSBpbnQuCitJZiBzaWduYWwgZGVsaXZlcnkgaGFzIG5vdCBiZWVuIHJlcXVlc3RlZCwgaXQg
d2lsbCBjb250YWluIHplcm8KK29uIHJldHVybi4KIC5FbAogLlNoIE5PVEVTCiBEaXNhYmxpbmcg
dHJhY2luZyBvbiBhIHByb2Nlc3Mgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc2VjdXJpdHkK
QEAgLTQ4Nyw2ICs1MDUsMTIgQEAgcGFyYW1ldGVyIGZvciB0aGUKIG9yCiAuRHYgUFJPQ19UUkFQ
Q0FQX0NUTAogcmVxdWVzdCBpcyBpbnZhbGlkLgorLkl0IEJxIEVyIEVJTlZBTAorVGhlCisuRHYg
UFJPQ19TRVRfUERFQVRIU0lHCitvcgorLkR2IFBST0NfR0VUX1BERUFUSFNJRworcmVxdWVzdCBy
ZWZlcmVuY2VkIGFuIHVuc3VwcG9ydGVkIGlkLCBpZF90eXBlIG9yIGludmFsaWQgc2lnbmFsIG51
bWJlci4KIC5FbAogLlNoIFNFRSBBTFNPCiAuWHIgZHRyYWNlIDEgLApAQCAtNTA2LDMgKzUzMCw4
IEBAIGZ1bmN0aW9uIGFwcGVhcmVkIGluCiBUaGUgcmVhcGVyIGZhY2lsaXR5IGlzIGJhc2VkIG9u
IGEgc2ltaWxhciBmZWF0dXJlIG9mIExpbnV4IGFuZAogRHJhZ29uZmx5QlNELCBhbmQgZmlyc3Qg
YXBwZWFyZWQgaW4KIC5GeCAxMC4yIC4KK1RoZQorLkR2IFBST0NfU0VUX1BERUFUSFNJRworZmFj
aWxpdHkgaXMgYmFzZWQgb24gdGhlIHByY3RsKFBSX1NFVF9QREVBVEhTSUcsIC4uLikgZmVhdHVy
ZSBvZiBMaW51eCwKK2FuZCBmaXJzdCBhcHBlYXJlZCBpbgorLkZ4IDEyLjAgLgpkaWZmIC0tZ2l0
IGEvc3lzL2tlcm4va2Vybl9leGVjLmMgYi9zeXMva2Vybi9rZXJuX2V4ZWMuYwppbmRleCAyMWIy
NWUwMTQ4Yy4uNjc5OTE1YTZlNmUgMTAwNjQ0Ci0tLSBhL3N5cy9rZXJuL2tlcm5fZXhlYy5jCisr
KyBiL3N5cy9rZXJuL2tlcm5fZXhlYy5jCkBAIC01MjIsNiArNTIyLDEwIEBAIGRvX2V4ZWN2ZShz
dHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGltYWdlX2FyZ3MgKmFyZ3MsIHN0cnVjdCBtYWMgKm1h
Y19wKQogCWNyZWRlbnRpYWxfY2hhbmdpbmcgfD0gd2lsbF90cmFuc2l0aW9uOwogI2VuZGlmCiAK
KwkvKiBEb24ndCBpbmhlcml0IFBST0NfU0VUX1BERUFUSFNJRyB2YWx1ZSBpZiBzZXR1aWQvc2V0
Z2lkLiAqLworCWlmIChjcmVkZW50aWFsX2NoYW5naW5nKQorCQlpbWdwLT5wcm9jLT5wX3BkZWF0
aHNpZyA9IDA7CisKIAlpZiAoY3JlZGVudGlhbF9jaGFuZ2luZyAmJgogI2lmZGVmIENBUEFCSUxJ
VFlfTU9ERQogCSAgICAoKG9sZGNyZWQtPmNyX2ZsYWdzICYgQ1JFRF9GTEFHX0NBUE1PREUpID09
IDApICYmCmRpZmYgLS1naXQgYS9zeXMva2Vybi9rZXJuX2V4aXQuYyBiL3N5cy9rZXJuL2tlcm5f
ZXhpdC5jCmluZGV4IGY2NzJhMmM3MzU4Li41NWYwOGEwMDRlYiAxMDA2NDQKLS0tIGEvc3lzL2tl
cm4va2Vybl9leGl0LmMKKysrIGIvc3lzL2tlcm4va2Vybl9leGl0LmMKQEAgLTQ4MCw2ICs0ODAs
MTIgQEAgZXhpdDEoc3RydWN0IHRocmVhZCAqdGQsIGludCBydmFsLCBpbnQgc2lnbm8pCiAJCQkJ
UFJPQ19MT0NLKHEtPnBfcmVhcGVyKTsKIAkJCQlwa3NpZ25hbChxLT5wX3JlYXBlciwgU0lHQ0hM
RCwga3NpMSk7CiAJCQkJUFJPQ19VTkxPQ0socS0+cF9yZWFwZXIpOworCQkJfSBlbHNlIGlmIChx
LT5wX3BkZWF0aHNpZyA+IDApIHsKKwkJCQkvKgorCQkJCSAqIFRoZSBjaGlsZCBhc2tlZCB0byBy
ZWNlaXZlZCBhIHNpZ25hbAorCQkJCSAqIHdoZW4gd2UgZXhpdC4KKwkJCQkgKi8KKwkJCQlrZXJu
X3BzaWduYWwocSwgcS0+cF9wZGVhdGhzaWcpOwogCQkJfQogCQl9IGVsc2UgewogCQkJLyoKQEAg
LTUyMCw2ICs1MjYsMTMgQEAgZXhpdDEoc3RydWN0IHRocmVhZCAqdGQsIGludCBydmFsLCBpbnQg
c2lnbm8pCiAJICovCiAJd2hpbGUgKChxID0gTElTVF9GSVJTVCgmcC0+cF9vcnBoYW5zKSkgIT0g
TlVMTCkgewogCQlQUk9DX0xPQ0socSk7CisJCS8qCisJCSAqIElmIHdlIGFyZSB0aGUgcmVhbCBw
YXJlbnQgb2YgdGhpcyBwcm9jZXNzCisJCSAqIGJ1dCBpdCBoYXMgYmVlbiByZXBhcmVudGVkIHRv
IGEgZGVidWdnZXIsIHRoZW4KKwkJICogY2hlY2sgaWYgaXQgYXNrZWQgZm9yIGEgc2lnbmFsIHdo
ZW4gd2UgZXhpdC4KKwkJICovCisJCWlmIChxLT5wX3BkZWF0aHNpZyA+IDApCisJCQlrZXJuX3Bz
aWduYWwocSwgcS0+cF9wZGVhdGhzaWcpOwogCQlDVFIyKEtUUl9QVFJBQ0UsICJleGl0OiBwaWQg
JWQsIGNsZWFyaW5nIG9ycGhhbiAlZCIsIHAtPnBfcGlkLAogCQkgICAgcS0+cF9waWQpOwogCQlj
bGVhcl9vcnBoYW4ocSk7CmRpZmYgLS1naXQgYS9zeXMva2Vybi9rZXJuX3Byb2NjdGwuYyBiL3N5
cy9rZXJuL2tlcm5fcHJvY2N0bC5jCmluZGV4IGRkZGM2YjljMWQzLi5jMGFkZWVkNTcwZSAxMDA2
NDQKLS0tIGEvc3lzL2tlcm4va2Vybl9wcm9jY3RsLmMKKysrIGIvc3lzL2tlcm4va2Vybl9wcm9j
Y3RsLmMKQEAgLTQzMSw3ICs0MzEsNyBAQCBzeXNfcHJvY2N0bChzdHJ1Y3QgdGhyZWFkICp0ZCwg
c3RydWN0IHByb2NjdGxfYXJncyAqdWFwKQogCQlzdHJ1Y3QgcHJvY2N0bF9yZWFwZXJfcGlkcyBy
cDsKIAkJc3RydWN0IHByb2NjdGxfcmVhcGVyX2tpbGwgcms7CiAJfSB4OwotCWludCBlcnJvciwg
ZXJyb3IxLCBmbGFnczsKKwlpbnQgZXJyb3IsIGVycm9yMSwgZmxhZ3MsIHNpZ251bTsKIAogCXN3
aXRjaCAodWFwLT5jb20pIHsKIAljYXNlIFBST0NfU1BST1RFQ1Q6CkBAIC00NjcsNiArNDY3LDE1
IEBAIHN5c19wcm9jY3RsKHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1Y3QgcHJvY2N0bF9hcmdzICp1
YXApCiAJY2FzZSBQUk9DX1RSQVBDQVBfU1RBVFVTOgogCQlkYXRhID0gJmZsYWdzOwogCQlicmVh
azsKKwljYXNlIFBST0NfU0VUX1BERUFUSFNJRzoKKwkJZXJyb3IgPSBjb3B5aW4odWFwLT5kYXRh
LCAmc2lnbnVtLCBzaXplb2Yoc2lnbnVtKSk7CisJCWlmIChlcnJvciAhPSAwKQorCQkJcmV0dXJu
IChlcnJvcik7CisJCWRhdGEgPSAmc2lnbnVtOworCQlicmVhazsKKwljYXNlIFBST0NfR0VUX1BE
RUFUSFNJRzoKKwkJZGF0YSA9ICZzaWdudW07CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVy
biAoRUlOVkFMKTsKIAl9CkBAIC00ODYsNiArNDk1LDEwIEBAIHN5c19wcm9jY3RsKHN0cnVjdCB0
aHJlYWQgKnRkLCBzdHJ1Y3QgcHJvY2N0bF9hcmdzICp1YXApCiAJCWlmIChlcnJvciA9PSAwKQog
CQkJZXJyb3IgPSBjb3B5b3V0KCZmbGFncywgdWFwLT5kYXRhLCBzaXplb2YoZmxhZ3MpKTsKIAkJ
YnJlYWs7CisJY2FzZSBQUk9DX0dFVF9QREVBVEhTSUc6CisJCWlmIChlcnJvciA9PSAwKQorCQkJ
ZXJyb3IgPSBjb3B5b3V0KCZzaWdudW0sIHVhcC0+ZGF0YSwgc2l6ZW9mKHNpZ251bSkpOworCQli
cmVhazsKIAl9CiAJcmV0dXJuIChlcnJvcik7CiB9CkBAIC01MjcsNiArNTQwLDcgQEAga2Vybl9w
cm9jY3RsKHN0cnVjdCB0aHJlYWQgKnRkLCBpZHR5cGVfdCBpZHR5cGUsIGlkX3QgaWQsIGludCBj
b20sIHZvaWQgKmRhdGEpCiAJc3RydWN0IHBncnAgKnBnOwogCXN0cnVjdCBwcm9jICpwOwogCWlu
dCBlcnJvciwgZmlyc3RfZXJyb3IsIG9rOworCWludCBzaWdudW07CiAJYm9vbCB0cmVlX2xvY2tl
ZDsKIAogCXN3aXRjaCAoY29tKSB7CkBAIC01NjAsNiArNTc0LDIzIEBAIGtlcm5fcHJvY2N0bChz
dHJ1Y3QgdGhyZWFkICp0ZCwgaWR0eXBlX3QgaWR0eXBlLCBpZF90IGlkLCBpbnQgY29tLCB2b2lk
ICpkYXRhKQogCWNhc2UgUFJPQ19UUkFQQ0FQX1NUQVRVUzoKIAkJdHJlZV9sb2NrZWQgPSBmYWxz
ZTsKIAkJYnJlYWs7CisJY2FzZSBQUk9DX1NFVF9QREVBVEhTSUc6CisJCXNpZ251bSA9ICooaW50
ICopZGF0YTsKKwkJaWYgKGlkdHlwZSAhPSBQX1BJRCB8fCBpZCAhPSAwIHx8CisJCSAgICAoc2ln
bnVtICE9IDAgJiYgIV9TSUdfVkFMSUQoc2lnbnVtKSkpCisJCQlyZXR1cm4gKEVJTlZBTCk7CisJ
CVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7CisJCXRkLT50ZF9wcm9jLT5wX3BkZWF0aHNpZyA9IHNp
Z251bTsKKwkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOworCQlyZXR1cm4gKDApOworCWNhc2Ug
UFJPQ19HRVRfUERFQVRIU0lHOgorCQlpZiAoaWR0eXBlICE9IFBfUElEIHx8IGlkICE9IDApCisJ
CQlyZXR1cm4gKEVJTlZBTCk7CisJCVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7CisJCXNpZ251bSA9
IHRkLT50ZF9wcm9jLT5wX3BkZWF0aHNpZzsKKwkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOwor
CQkqKGludCAqKWRhdGEgPSBzaWdudW07CisJCXJldHVybiAoMCk7CiAJZGVmYXVsdDoKIAkJcmV0
dXJuIChFSU5WQUwpOwogCX0KZGlmZiAtLWdpdCBhL3N5cy9rZXJuL2tlcm5fdGhyZWFkLmMgYi9z
eXMva2Vybi9rZXJuX3RocmVhZC5jCmluZGV4IDRkMmYwMjAwNjNlLi5iMDFjZDk5ZTU5NyAxMDA2
NDQKLS0tIGEvc3lzL2tlcm4va2Vybl90aHJlYWQuYworKysgYi9zeXMva2Vybi9rZXJuX3RocmVh
ZC5jCkBAIC05MSw3ICs5MSw3IEBAIF9TdGF0aWNfYXNzZXJ0KG9mZnNldG9mKHN0cnVjdCBwcm9j
LCBwX3BpZCkgPT0gMHhiYywKICAgICAic3RydWN0IHByb2MgS0JJIHBfcGlkIik7CiBfU3RhdGlj
X2Fzc2VydChvZmZzZXRvZihzdHJ1Y3QgcHJvYywgcF9maWxlbW9uKSA9PSAweDNkMCwKICAgICAi
c3RydWN0IHByb2MgS0JJIHBfZmlsZW1vbiIpOwotX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3Ry
dWN0IHByb2MsIHBfY29tbSkgPT0gMHgzZTAsCitfU3RhdGljX2Fzc2VydChvZmZzZXRvZihzdHJ1
Y3QgcHJvYywgcF9jb21tKSA9PSAweDNlNCwKICAgICAic3RydWN0IHByb2MgS0JJIHBfY29tbSIp
OwogX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfZW11bGRhdGEpID09IDB4
NGI4LAogICAgICJzdHJ1Y3QgcHJvYyBLQkkgcF9lbXVsZGF0YSIpOwpAQCAtMTExLDcgKzExMSw3
IEBAIF9TdGF0aWNfYXNzZXJ0KG9mZnNldG9mKHN0cnVjdCBwcm9jLCBwX3BpZCkgPT0gMHg3NCwK
ICAgICAic3RydWN0IHByb2MgS0JJIHBfcGlkIik7CiBfU3RhdGljX2Fzc2VydChvZmZzZXRvZihz
dHJ1Y3QgcHJvYywgcF9maWxlbW9uKSA9PSAweDI3YywKICAgICAic3RydWN0IHByb2MgS0JJIHBf
ZmlsZW1vbiIpOwotX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfY29tbSkg
PT0gMHgyODgsCitfU3RhdGljX2Fzc2VydChvZmZzZXRvZihzdHJ1Y3QgcHJvYywgcF9jb21tKSA9
PSAweDI4YywKICAgICAic3RydWN0IHByb2MgS0JJIHBfY29tbSIpOwogX1N0YXRpY19hc3NlcnQo
b2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfZW11bGRhdGEpID09IDB4MzE0LAogICAgICJzdHJ1Y3Qg
cHJvYyBLQkkgcF9lbXVsZGF0YSIpOwpkaWZmIC0tZ2l0IGEvc3lzL3N5cy9wcm9jLmggYi9zeXMv
c3lzL3Byb2MuaAppbmRleCBkNjMzNjJkNzIzMi4uMTllOTk0MzkxODggMTAwNjQ0Ci0tLSBhL3N5
cy9zeXMvcHJvYy5oCisrKyBiL3N5cy9zeXMvcHJvYy5oCkBAIC02MjQsNiArNjI0LDcgQEAgc3Ry
dWN0IHByb2MgewogCXVfaW50CQlwX3RyZWVmbGFnOwkvKiAoZSkgUF9UUkVFIGZsYWdzICovCiAJ
aW50CQlwX3BlbmRpbmdleGl0czsgLyogKGMpIENvdW50IG9mIHBlbmRpbmcgdGhyZWFkIGV4aXRz
LiAqLwogCXN0cnVjdCBmaWxlbW9uCSpwX2ZpbGVtb247CS8qIChjKSBmaWxlbW9uLXNwZWNpZmlj
IGRhdGEuICovCisJaW50CQlwX3BkZWF0aHNpZzsJLyogKGMpIFNpZ25hbCBmcm9tIHBhcmVudCBv
biBleGl0LiAqLwogLyogRW5kIGFyZWEgdGhhdCBpcyB6ZXJvZWQgb24gY3JlYXRpb24uICovCiAj
ZGVmaW5lCXBfZW5kemVybwlwX21hZ2ljCiAKZGlmZiAtLWdpdCBhL3N5cy9zeXMvcHJvY2N0bC5o
IGIvc3lzL3N5cy9wcm9jY3RsLmgKaW5kZXggMTcxNDRlOWYwYzYuLmNmMGE2OTQ3NWU0IDEwMDY0
NAotLS0gYS9zeXMvc3lzL3Byb2NjdGwuaAorKysgYi9zeXMvc3lzL3Byb2NjdGwuaApAQCAtNTEs
NiArNTEsOCBAQAogI2RlZmluZQlQUk9DX1RSQUNFX1NUQVRVUwk4CS8qIHF1ZXJ5IHRyYWNpbmcg
c3RhdHVzICovCiAjZGVmaW5lCVBST0NfVFJBUENBUF9DVEwJOQkvKiB0cmFwIGNhcGFiaWxpdHkg
ZXJyb3JzICovCiAjZGVmaW5lCVBST0NfVFJBUENBUF9TVEFUVVMJMTAJLyogcXVlcnkgdHJhcCBj
YXBhYmlsaXR5IHN0YXR1cyAqLworI2RlZmluZSBQUk9DX1NFVF9QREVBVEhTSUcJMTEJLyogc2V0
IHBhcmVudCBkZWF0aCBzaWduYWwgKi8KKyNkZWZpbmUgUFJPQ19HRVRfUERFQVRIU0lHCTEyCS8q
IGdldCBwYXJlbnQgZGVhdGggc2lnbmFsICovCiAKIC8qIE9wZXJhdGlvbnMgZm9yIFBST0NfU1BS
T1RFQ1QgKHBhc3NlZCBpbiBpbnRlZ2VyIGFyZykuICovCiAjZGVmaW5lCVBQUk9UX09QKHgpCSgo
eCkgJiAweGYpCi0tIAoyLjE2LjIKCg==
--94eb2c194a123f6cef0569c7a6c0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADLWmXWGReyZn9ZoM9q8gs=%2Bbqw7e4-Ti1HNEPxYoJJ=6gZHhA>