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>