From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from [10.157.41.19] (unknown [105.199.60.18]) by passt.top (Postfix) with ESMTP id C8D385A0269 for ; Fri, 16 Oct 2026 22:56:16 +0200 (CEST) X-FEAS-Client-IP: 10.157.41.19 Received: by Ammars-Air.localdomain (Postfix, from userid 501) id EF6E41564EF2; Fri, 16 Oct 2026 23:49:40 +0300 (EEST) From: aerosouund To: aerosound161@gmail.com, passt-dev@passt.top Subject: [PATCH v2 2/7] conf: Add context fields, epoll types and --vhost-kernel flag to pasta Date: Fri, 16 Oct 2026 23:49:35 +0300 Message-Id: <20261016204940.33190-3-aerosound161@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20261016204940.33190-1-aerosound161@gmail.com> References: <20261016204940.33190-1-aerosound161@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-ID-Hash: LE3PXBOC37ER5MQZVBTRERPOYVKS2Z6C X-Message-ID-Hash: LE3PXBOC37ER5MQZVBTRERPOYVKS2Z6C X-MailFrom: ammaryasser@Ammars-Air.localdomain X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: RnJvbTogQW1tYXIgWWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KDQotLXZob3N0LWtl cm5lbCBjb250cm9scyB3aGV0aGVyIHRvIHVzZSB2aG9zdC1uZXQgYWNjZWxlcmF0aW9uIGZvciBw YXN0YS4NCkl0IHRha2VzIG9uZSBvZiB0aHJlZSBtb2RlczogIm9uIiByZXF1aXJlcyBhY2NlbGVy YXRpb24gYW5kIGZhaWxzIGlmIGl0DQppc24ndCBhdmFpbGFibGUsICJvZmYiIG5ldmVyIHVzZXMg aXQsIGFuZCAiYXV0byIgdXNlcyBpdCBpZiBpdCdzDQphdmFpbGFibGUgYW5kIGZhbGxzIGJhY2sg dG8gcGxhaW4gdGFwIG9wZXJhdGlvbiBvdGhlcndpc2UuICJhdXRvIiBpcyB0aGUNCmRlZmF1bHQs IHNvIGFuIHVubW9kaWZpZWQgaW52b2NhdGlvbiBwaWNrcyB1cCBhY2NlbGVyYXRpb24gd2hlcmV2 ZXIgdGhlDQprZXJuZWwgb2ZmZXJzIGl0LCBhbmQgYmVoYXZlcyBhcyBiZWZvcmUgd2hlcmUgaXQg ZG9lc24ndC4NCg0KRVBPTExfVFlQRV9WSE9TVF9DQUxMIG1lYW5zIHRoZSBrZXJuZWwgd2FudHMg dG8gbm90aWZ5IHVzIGFib3V0IGRhdGEgaXQNCmhhcyB3cml0dGVuLiBFUE9MTF9UWVBFX1ZIT1NU X0VSUk9SIG1lYW5zIHRoZSBrZXJuZWwgZW5jb3VudGVyZWQgYW4NCmludGVybmFsIGVycm9yIG9u IHZob3N0IGFuZCB3YW50cyB0byB0ZWxsIHVzIHNvbWV0aGluZyB3ZW50IHdyb25nLg0KDQpDb2xs ZWN0IHRoZSB2aG9zdCBzdGF0ZSBpbiBhIHNpbmdsZSBzdHJ1Y3Qgdmhvc3RfY3R4IHdpdGggdGhl IGZvbGxvd2luZw0KZmllbGRzOg0KDQogIC0gbW9kZTogICAgIHdoaWNoIG9mIHRoZSB0aHJlZSBt b2RlcyBhYm92ZSB3YXMgcmVxdWVzdGVkDQogIC0gZmQ6ICAgICAgIGZpbGUgZGVzY3JpcHRvciBm b3IgL2Rldi92aG9zdC1uZXQsIHdoaWNoIGRvdWJsZXMgYXMgb3VyDQogICAgICAgICAgICAgIGlu ZGljYXRpb24gdGhhdCBzZXR1cCBzdWNjZWVkZWQNCiAgLSBmZWF0dXJlczogdmlydGlvIGZlYXR1 cmUgYml0cyBuZWdvdGlhdGVkIHdpdGggdmhvc3QtbmV0DQogIC0gdnFbXTogICAgIGtpY2ssIGNh bGwgYW5kIGVyciBldmVudGZkcyBmb3IgYm90aCBxdWV1ZXMNCg0KTW9kaWZ5IHRhcF9oZHJfaW92 IHRvIGNyZWF0ZSBhbiBpb3Ygd2l0aCB0aGUgc2l6ZSBvZiBhDQp2aXJ0aW9fbmV0X21yZ19yeGJ1 ZiBpZiB2aG9zdCBpbml0aWFsaXphdGlvbiBoYXMgYmVlbiBzdWNjZXNzZnVsICh3ZSBhcmUNCmlu IG1vZGUgJ29uJyBvciAnYXV0bycgYW5kIHdlIGRpZG4ndCBuZWVkIHRoZSB0YXAgZmFsbGJhY2sp DQoNCk1vdmUgdGhlIEwyX01BWF9MRU5fWFggY29uc3RhbnRzIGZyb20gdGFwLmggdG8gcGFzc3Qu aCB0byBhdm9pZCB0aGUNCmNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbiBib3RoIGZpbGVzLiBW SE9TVF9ERVNDX0JZVEVTIGlzIGRlZmluZWQgYXMNCnRoZSBtYXhpbXVtIGwyIGZyYW1lIHNpemUg KyB0aGUgc2l6ZSBvZiB0aGUgdmlydGlvIG5ldCBoZWFkZXIsIGlmIHRoZQ0KbGVuZ3RoIGNvbnN0 YW50IHJlbWFpbnMgaW4gdGFwLmggcGFzc3QuaCB3b3VsZCBuZWVkIHRvIGluY2x1ZGUgaXQsIGJ1 dA0KdGFwLmggbmVlZHMgdG8gaW5jbHVkZSBwYXNzdC5oIHRvIGdldCB0aGUgZGVmaW5pdGlvbiBv ZiBgc3RydWN0IGN0eGAuDQpNb3ZpbmcgdGhlIGxlbmd0aCBjb25zdGFudHMgdG8gcGFzc3QuaCBt YWtlcyBpdCBmcmVlIG9mIGRlcGVuZGVuY3kgb24NCnRhcC5oDQoNClNpZ25lZC1vZmYtYnk6IEV1 Z2VuaW8gUMOpcmV6IDxlcGVyZXptYUByZWRoYXQuY29tPg0KU2lnbmVkLW9mZi1ieTogQW1tYXIg WWFzc2VyIDxhZXJvc291bmQxNjFAZ21haWwuY29tPg0KLS0tDQogY29uZi5jICAgICAgIHwgMTkg KysrKysrKysrKysrKw0KIGVwb2xsX3R5cGUuaCB8ICA0ICsrKw0KIHBhc3N0LmMgICAgICB8ICAz ICsrDQogcGFzc3QuaCAgICAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQ0KIHRhcC5oICAgICAgICB8IDM2ICsrKysrKy0tLS0tLS0tLS0t LS0tLS0tLQ0KIDUgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvY29uZi5jIGIvY29uZi5jDQppbmRleCAxNDlhNGM3Li5mZTU3 OGZjIDEwMDY0NA0KLS0tIGEvY29uZi5jDQorKysgYi9jb25mLmMNCkBAIC03MzYsNiArNzM2LDkg QEAgcGFzdGFfb3B0czoNCiAJCSIgICAgZGVmYXVsdDogYXV0b1xuIg0KIAkJIiAgLS1ob3N0LWxv LXRvLW5zLWxvCVRyYW5zbGF0ZSBob3N0LWxvb3BiYWNrIGZvcndhcmRzIHRvXG4iDQogCQkiCQkJ bmFtZXNwYWNlIGxvb3BiYWNrXG4iDQorCQkiICAtLXZob3N0LWtlcm5lbFs9TU9ERV0JVXNlIHZo b3N0LWtlcm5lbCBhY2NlbGVyYXRpb25cbiINCisJCSIgICAgTU9ERSBpcyBcIm9uXCIsIFwib2Zm XCIgb3IgXCJhdXRvXCJcbiINCisJCSIgICAgZGVmYXVsdDogYXV0b1xuIg0KIAkJIiAgLS11c2Vy bnMgTlNQQVRIIAlUYXJnZXQgdXNlciBuYW1lc3BhY2UgdG8gam9pblxuIg0KIAkJIiAgLS1uZXRu cyBQQVRIfE5BTUUJVGFyZ2V0IG5ldHdvcmsgbmFtZXNwYWNlIHRvIGpvaW5cbiINCiAJCSIgIC0t bmV0bnMtb25seQkJRG9uJ3Qgam9pbiBleGlzdGluZyB1c2VyIG5hbWVzcGFjZVxuIg0KQEAgLTc2 Nyw2ICs3NzAsNyBAQCBlbnVtIHBhc3N0X21vZGVzIGNvbmZfbW9kZShpbnQgYXJnYywgY2hhciAq YXJndltdKQ0KIAlpbnQgdmhvc3RfdXNlciA9IDA7DQogCWNvbnN0IHN0cnVjdCBvcHRpb24gb3B0 dnVbXSA9IHsNCiAJCXsidmhvc3QtdXNlciIsCW5vX2FyZ3VtZW50LAkJJnZob3N0X3VzZXIsCTEg fSwNCisJCXsidmhvc3Qta2VybmVsIiwgb3B0aW9uYWxfYXJndW1lbnQsCU5VTEwsCQkwIH0sDQog CQl7IDAgfSwNCiAJfTsNCiAJY2hhciBhcmd2MFtQQVRIX01BWF0sICpiYXNlYXJnMDsNCkBAIC0x MzE3LDYgKzEzMjEsNyBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQ0KIAkJeyJjb25mLXBhdGgiLAlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJCSdjJyB9 LA0KIAkJeyJjaHJvb3QtZmFsbGJhY2siLCBub19hcmd1bWVudCwJTlVMTCwgCQkzMiB9LA0KIAkJ eyJuby1waWRucyIsCW5vX2FyZ3VtZW50LAkJTlVMTCwJCTMzIH0sDQorCQl7InZob3N0LWtlcm5l bCIsIG9wdGlvbmFsX2FyZ3VtZW50LAlOVUxMLAkJMzQgfSwNCiAJCXsgMCB9LA0KIAl9Ow0KIAlj b25zdCBjaGFyICpvcHRzdHJpbmcgPSAiK2RxZmVsOmhzOmM6RjpJOnA6UDptOmE6bjpNOmc6aTpv OkQ6UzpIOjQ2MXQ6dTpUOlU6IjsNCkBAIC0xNTY2LDYgKzE1NzEsMjAgQEAgdm9pZCBjb25mKHN0 cnVjdCBjdHggKmMsIGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJCQkJZGllKCItLW5vLXBpZG5z IGlzIGZvciBwYXN0YSBtb2RlIG9ubHkiKTsNCg0KIAkJCWMtPm5vX3BpZG5zID0gdHJ1ZTsNCisJ CQlicmVhazsNCisJCWNhc2UgMzQ6DQorCQkJaWYgKGMtPm1vZGUgIT0gTU9ERV9QQVNUQSkNCisJ CQkJZGllKCItLXZob3N0LWtlcm5lbCBpcyBmb3IgcGFzdGEgbW9kZSBvbmx5Iik7DQorDQorCQkJ aWYgKCFvcHRhcmcgfHwgIXN0cmNtcChvcHRhcmcsICJhdXRvIikpDQorCQkJCWMtPnZob3N0Lm1v ZGUgPSBWSE9TVF9NT0RFX0FVVE87DQorCQkJZWxzZSBpZiAoIXN0cmNtcChvcHRhcmcsICJvbiIp KQ0KKwkJCQljLT52aG9zdC5tb2RlID0gVkhPU1RfTU9ERV9PTjsNCisJCQllbHNlIGlmICghc3Ry Y21wKG9wdGFyZywgIm9mZiIpKQ0KKwkJCQljLT52aG9zdC5tb2RlID0gVkhPU1RfTU9ERV9PRkY7 DQorCQkJZWxzZQ0KKwkJCQlkaWUoIkludmFsaWQgdmhvc3Qta2VybmVsIG1vZGU6ICVzIiwgb3B0 YXJnKTsNCisNCiAJCQlicmVhazsNCiAJCWNhc2UgJ2QnOg0KIAkJCWMtPmRlYnVnID0gMTsNCmRp ZmYgLS1naXQgYS9lcG9sbF90eXBlLmggYi9lcG9sbF90eXBlLmgNCmluZGV4IDA2MTMyNWEuLmUz MjA2ZDEgMTAwNjQ0DQotLS0gYS9lcG9sbF90eXBlLmgNCisrKyBiL2Vwb2xsX3R5cGUuaA0KQEAg LTUwLDYgKzUwLDEwIEBAIGVudW0gZXBvbGxfdHlwZSB7DQogCUVQT0xMX1RZUEVfQ09ORl9MSVNU RU4sDQogCS8qIENvbmZpZ3VyYXRpb24gc29ja2V0ICovDQogCUVQT0xMX1RZUEVfQ09ORiwNCisJ Lyogdmhvc3Qta2VybmVsIGNhbGwgc29ja2V0ICovDQorCUVQT0xMX1RZUEVfVkhPU1RfQ0FMTCwN CisJLyogdmhvc3Qta2VybmVsIGVycm9yIHNvY2tldCAqLw0KKwlFUE9MTF9UWVBFX1ZIT1NUX0VS Uk9SLA0KDQogCUVQT0xMX05VTV9UWVBFUywNCiB9Ow0KZGlmZiAtLWdpdCBhL3Bhc3N0LmMgYi9w YXNzdC5jDQppbmRleCA1MDU0NTUxLi42MDAyMjMxIDEwMDY0NA0KLS0tIGEvcGFzc3QuYw0KKysr IGIvcGFzc3QuYw0KQEAgLTY1LDYgKzY1LDcgQEAgY2hhciBwa3RfYnVmW1BLVF9CVUZfQllURVNd CV9fYXR0cmlidXRlX18gKChhbGlnbmVkKFBBR0VfU0laRSkpKTsNCiBzdHJ1Y3QgY3R4IHBhc3N0 X2N0eCA9IHsNCiAJLnBpZGZpbGVfZmQJCT0gLTEsDQogCS5mZF90YXAJCQk9IC0xLA0KKwkudmhv c3QJCQk9IHsgLmZkID0gLTEgfSwNCiAJLmZkX3RhcF9saXN0ZW4JCT0gLTEsDQogCS5mZF9jb250 cm9sX2xpc3Rlbgk9IC0xLA0KIAkuZmRfcmVwYWlyX2xpc3Rlbgk9IC0xLA0KQEAgLTkyLDYgKzkz LDggQEAgY2hhciAqZXBvbGxfdHlwZV9zdHJbXSA9IHsNCiAJW0VQT0xMX1RZUEVfTkxfTkVJR0hd CQk9ICJuZXRsaW5rIG5laWdoYm91ciBub3RpZmllciBzb2NrZXQiLA0KIAlbRVBPTExfVFlQRV9D T05GX0xJU1RFTl0JPSAiY29uZmlndXJhdGlvbiBsaXN0ZW5pbmcgc29ja2V0IiwNCiAJW0VQT0xM X1RZUEVfQ09ORl0JCT0gImNvbmZpZ3VyYXRpb24gc29ja2V0IiwNCisJW0VQT0xMX1RZUEVfVkhP U1RfQ0FMTF0JCT0gInZob3N0LWtlcm5lbCBjYWxsIHNvY2tldCIsDQorCVtFUE9MTF9UWVBFX1ZI T1NUX0VSUk9SXQk9ICJ2aG9zdC1rZXJuZWwgZXJyb3Igc29ja2V0IiwNCiB9Ow0KIHN0YXRpY19h c3NlcnQoQVJSQVlfU0laRShlcG9sbF90eXBlX3N0cikgPT0gRVBPTExfTlVNX1RZUEVTLA0KIAkg ICAgICAiZXBvbGxfdHlwZV9zdHJbXSBkb2Vzbid0IG1hdGNoIGVudW0gZXBvbGxfdHlwZSIpOw0K ZGlmZiAtLWdpdCBhL3Bhc3N0LmggYi9wYXNzdC5oDQppbmRleCBhZmQ4ZTlmLi5iZTY4MDAyIDEw MDY0NA0KLS0tIGEvcGFzc3QuaA0KKysrIGIvcGFzc3QuaA0KQEAgLTEzLDggKzEzLDExIEBAIHVu aW9uIGVwb2xsX3JlZjsNCg0KICNpbmNsdWRlIDxzdGRib29sLmg+DQogI2luY2x1ZGUgPGFzc2Vy dC5oPg0KKyNpbmNsdWRlIDxsaW1pdHMuaD4NCiAjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+DQoNCisj aW5jbHVkZSA8bGludXgvdmlydGlvX25ldC5oPg0KKw0KICNpbmNsdWRlICJwaWYuaCINCiAjaW5j bHVkZSAicGFja2V0LmgiDQogI2luY2x1ZGUgInNpcGhhc2guaCINCkBAIC0zNSw4ICszOCw0MyBA QCB1bmlvbiBlcG9sbF9yZWY7DQogI2RlZmluZSBNQUNfT1VSX0xBQQlcDQogCSgodWludDhfdCBb RVRIX0FMRU5dKXsweDlhLCAweDU1LCAweDlhLCAweDU1LCAweDlhLCAweDU1fSkNCg0KLS8qIExh cmdlIGVub3VnaCBmb3IgfjEyOCBtYXhpbXVtIHNpemUgZnJhbWVzICovDQotI2RlZmluZSBQS1Rf QlVGX0JZVEVTCQkoOFVMIDw8IDIwKQ0KKw0KKy8qKiBMMl9NQVhfTEVOX1BBU1RBIC0gTWF4aW11 bSBmcmFtZSBsZW5ndGggZm9yIHBhc3RhIG1vZGUgKHdpdGggTDIgaGVhZGVyKQ0KKyAqDQorICog VGhlIGtlcm5lbCB0dW50YXAgZGV2aWNlIGltcG9zZXMgYSBtYXhpbXVtIGZyYW1lIHNpemUgb2Yg NjU1MzUgaW5jbHVkaW5nDQorICogJ2hhcmRfaGVhZGVyX2xlbicgKDE0IGJ5dGVzIGZvciBMMiBF dGhlcm5ldCBpbiB0aGUgY2FzZSBvZiAidGFwIiBtb2RlKS4NCisgKi8NCisjZGVmaW5lIEwyX01B WF9MRU5fUEFTVEEJVVNIUlRfTUFYDQorDQorLyoqIEwyX01BWF9MRU5fUEFTU1QgLSBNYXhpbXVt IGZyYW1lIGxlbmd0aCBmb3IgcGFzc3QgbW9kZSAod2l0aCBMMiBoZWFkZXIpDQorICoNCisgKiBU aGUgb25seSBzdHJ1Y3R1cmFsIGxpbWl0IHRoZSBRRU1VIHNvY2tldCBwcm90b2NvbCBpbXBvc2Vz IG9uIGZyYW1lcyBpcw0KKyAqICgyXjMyLTEpIGJ5dGVzLCBidXQgdGhhdCB3b3VsZCBiZSBsdWRp Y3JvdXNseSBsb25nIGluIHByYWN0aWNlLiAgRm9yIG5vdywNCisgKiBsaW1pdCBpdCBzb21ld2hh dCBhcmJpdHJhcmlseSB0byA2NTUzNSBieXRlcy4gIEZJWE1FOiBXb3JrIG91dCBhbiBhcHByb3By aWF0ZQ0KKyAqIGxpbWl0IHdpdGggbW9yZSBwcmVjaXNpb24uDQorICovDQorI2RlZmluZSBMMl9N QVhfTEVOX1BBU1NUCVVTSFJUX01BWA0KKw0KKy8qKiBMMl9NQVhfTEVOX1ZVIC0gTWF4aW11bSBm cmFtZSBsZW5ndGggZm9yIHZob3N0LXVzZXIgbW9kZSAod2l0aCBMMiBoZWFkZXIpDQorICoNCisg KiB2aG9zdC11c2VyIGFsbG93cyBtdWx0aXBsZSBidWZmZXJzIHBlciBmcmFtZSwgZWFjaCBvZiB3 aGljaCBjYW4gYmUgcXVpdGUNCisgKiBsYXJnZSwgc28gdGhlIGluaGVyZW50IGZyYW1lIHNpemUg bGltaXQgaXMgcmF0aGVyIGxhcmdlLiAgTXVjaCBsYXJnZXIgdGhhbiBpcw0KKyAqIGFjdHVhbGx5 IHVzZWZ1bCBmb3IgSVAuICBGb3Igbm93IGxpbWl0IGFyYml0cmFyaWx5IHRvIDY1NTM1IGJ5dGVz LiBGSVhNRToNCisgKiBXb3JrIG91dCBhbiBhcHByb3ByaWF0ZSBsaW1pdCB3aXRoIG1vcmUgcHJl Y2lzaW9uLg0KKyAqLw0KKyNkZWZpbmUgTDJfTUFYX0xFTl9WVQkJVVNIUlRfTUFYDQorDQorLyog TnVtYmVyIG9mIGRlc2NyaXB0b3JzIGluIGVhY2ggdmhvc3QtbmV0IHZpcnRxdWV1ZSAqLw0KKyNk ZWZpbmUgVkhPU1RfTkRFU0NTCQkxMjgNCisNCisvKiBCeXRlcyBvZiBwa3RfYnVmIGJhY2tpbmcg b25lIGZyb20tZ3Vlc3QgZGVzY3JpcHRvcjogYSBtYXhpbXVtIHNpemUgZnJhbWUNCisgKiBwbHVz IHRoZSB2aXJ0aW8tbmV0IGhlYWRlciB0aGUga2VybmVsIHdyaXRlcyBpbiBmcm9udCBvZiBpdA0K KyAqLw0KKyNkZWZpbmUgVkhPU1RfREVTQ19CWVRFUwkoTDJfTUFYX0xFTl9QQVNUQSArCQkJXA0K KwkJCQkgc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkcl9tcmdfcnhidWYpKQ0KKw0KKy8qIE9u ZSBtYXhpbXVtIHNpemUgZnJhbWUgcGVyIHZob3N0LW5ldCBkZXNjcmlwdG9yICovDQorI2RlZmlu ZSBQS1RfQlVGX0JZVEVTCQkoVkhPU1RfTkRFU0NTICogVkhPU1RfREVTQ19CWVRFUykNCg0KIGV4 dGVybiBjaGFyIHBrdF9idWYJCVtQS1RfQlVGX0JZVEVTXTsNCg0KQEAgLTE1Niw2ICsxOTQsNDAg QEAgc3RydWN0IGlwNl9jdHggew0KDQogI2luY2x1ZGUgPG5ldGluZXQvaWZfZXRoZXIuaD4NCg0K Ky8qKg0KKyAqIGVudW0gdmhvc3RfbW9kZSAtIFdoZXRoZXIgdG8gdXNlIHZob3N0LWtlcm5lbCBh Y2NlbGVyYXRpb24NCisgKiBAVkhPU1RfTU9ERV9BVVRPOglVc2UgaXQgaWYgaXQncyBhdmFpbGFi bGUsIGZhbGwgYmFjayB0byBwbGFpbiB0YXAgaWYgbm90DQorICogQFZIT1NUX01PREVfT046CVJl cXVpcmUgaXQsIGZhaWwgaWYgaXQncyBub3QgYXZhaWxhYmxlDQorICogQFZIT1NUX01PREVfT0ZG OglOZXZlciB1c2UgaXQNCisgKi8NCitlbnVtIHZob3N0X21vZGUgew0KKwlWSE9TVF9NT0RFX0FV VE8gPSAwLA0KKwlWSE9TVF9NT0RFX09OLA0KKwlWSE9TVF9NT0RFX09GRiwNCit9Ow0KKw0KKy8q Kg0KKyAqIHN0cnVjdCB2aG9zdF9jdHggLSBFeGVjdXRpb24gY29udGV4dCBmb3Igdmhvc3Qta2Vy bmVsIGFjY2VsZXJhdGlvbg0KKyAqIEBtb2RlOglXaGV0aGVyIHRvIHVzZSBhY2NlbGVyYXRpb24g YXQgYWxsLCBzZWUgZW51bSB2aG9zdF9tb2RlDQorICogQGZkOgkJRmlsZSBkZXNjcmlwdG9yIGZv ciAvZGV2L3Zob3N0LW5ldCwgLTEgaWYgbm90IHNldCB1cA0KKyAqIEBmZWF0dXJlczoJdmlydGlv IGZlYXR1cmUgYml0cyBuZWdvdGlhdGVkIHdpdGggdmhvc3QtbmV0DQorICogQHZxOgkJUGVyLXZp cnRxdWV1ZSBldmVudGZkcyAoWzBdIGlzIGZyb20tZ3Vlc3QsIFsxXSBpcyB0by1ndWVzdCkNCisg KiBAdnEua2lja19mZDoJV3JpdHRlbiBieSB1cywgdG8gdGVsbCB0aGUga2VybmVsIHdlIHF1ZXVl ZCBzb21ldGhpbmcNCisgKiBAdnEuY2FsbF9mZDoJV3JpdHRlbiBieSB0aGUga2VybmVsLCB0byB0 ZWxsIHVzIGl0IHF1ZXVlZCBzb21ldGhpbmcNCisgKiBAdnEuZXJyX2ZkOglXcml0dGVuIGJ5IHRo ZSBrZXJuZWwgb24gYW4gaW50ZXJuYWwgdmhvc3QgZXJyb3INCisgKi8NCitzdHJ1Y3Qgdmhvc3Rf Y3R4IHsNCisJZW51bSB2aG9zdF9tb2RlIG1vZGU7DQorCWludCBmZDsNCisJdWludDY0X3QgZmVh dHVyZXM7DQorDQorCXN0cnVjdCB7DQorCQlpbnQga2lja19mZDsNCisJCWludCBjYWxsX2ZkOw0K KwkJaW50IGVycl9mZDsNCisJfSB2cVsyXTsNCit9Ow0KKw0KIC8qKg0KICAqIHN0cnVjdCBjdHgg LSBFeGVjdXRpb24gY29udGV4dA0KICAqIEBtb2RlOgkJT3BlcmF0aW9uIG1vZGUsIHFlbXUvVU5J WCBkb21haW4gc29ja2V0IG9yIG5hbWVzcGFjZS90YXANCkBAIC0xODUsNiArMjU3LDcgQEAgc3Ry dWN0IGlwNl9jdHggew0KICAqIEBvdXJfdGFwX21hYzoJUGFzdGEvcGFzc3QncyBNQUMgb24gdGhl IHRhcCBsaW5rDQogICogQGd1ZXN0X21hYzoJCU1BQyBhZGRyZXNzIG9mIGd1ZXN0IG9yIG5hbWVz cGFjZSwgc2VlbiBvciBjb25maWd1cmVkDQogICogQGhhc2hfc2VjcmV0OgkxMjgtYml0IHNlY3Jl dCBmb3Igc2lwaGFzaCBmdW5jdGlvbnMNCisgKiBAdmhvc3Q6CQl2aG9zdC1rZXJuZWwgYWNjZWxl cmF0aW9uIGNvbnRleHQsIHBhc3RhIG1vZGUgb25seQ0KICAqIEBpZmk0OgkJVGVtcGxhdGUgaW50 ZXJmYWNlIGZvciBJUHY0LCAtMTogbm9uZSwgMDogSVB2NCBkaXNhYmxlZA0KICAqIEBpcDQ6CQlJ UHY0IGNvbmZpZ3VyYXRpb24NCiAgKiBAZG5zX3NlYXJjaDoJCUROUyBzZWFyY2ggbGlzdA0KQEAg LTI2NSw2ICszMzgsOCBAQCBzdHJ1Y3QgY3R4IHsNCg0KIAl1aW50NjRfdCBoYXNoX3NlY3JldFsy XTsNCg0KKwlzdHJ1Y3Qgdmhvc3RfY3R4IHZob3N0Ow0KKw0KIAlpbnQgaWZpNDsNCiAJc3RydWN0 IGlwNF9jdHggaXA0Ow0KDQpkaWZmIC0tZ2l0IGEvdGFwLmggYi90YXAuaA0KaW5kZXggMTYyNTk3 NS4uZjhjMzBlMiAxMDA2NDQNCi0tLSBhL3RhcC5oDQorKysgYi90YXAuaA0KQEAgLTEyLDMxICsx Miw2IEBADQogI2luY2x1ZGUgInBhc3N0LmgiDQogI2luY2x1ZGUgInRhcF9oZHIuaCINCg0KLS8q KiBMMl9NQVhfTEVOX1BBU1RBIC0gTWF4aW11bSBmcmFtZSBsZW5ndGggZm9yIHBhc3RhIG1vZGUg KHdpdGggTDIgaGVhZGVyKQ0KLSAqDQotICogVGhlIGtlcm5lbCB0dW50YXAgZGV2aWNlIGltcG9z ZXMgYSBtYXhpbXVtIGZyYW1lIHNpemUgb2YgNjU1MzUgaW5jbHVkaW5nDQotICogJ2hhcmRfaGVh ZGVyX2xlbicgKDE0IGJ5dGVzIGZvciBMMiBFdGhlcm5ldCBpbiB0aGUgY2FzZSBvZiAidGFwIiBt b2RlKS4NCi0gKi8NCi0jZGVmaW5lIEwyX01BWF9MRU5fUEFTVEEJVVNIUlRfTUFYDQotDQotLyoq IEwyX01BWF9MRU5fUEFTU1QgLSBNYXhpbXVtIGZyYW1lIGxlbmd0aCBmb3IgcGFzc3QgbW9kZSAo d2l0aCBMMiBoZWFkZXIpDQotICoNCi0gKiBUaGUgb25seSBzdHJ1Y3R1cmFsIGxpbWl0IHRoZSBR RU1VIHNvY2tldCBwcm90b2NvbCBpbXBvc2VzIG9uIGZyYW1lcyBpcw0KLSAqICgyXjMyLTEpIGJ5 dGVzLCBidXQgdGhhdCB3b3VsZCBiZSBsdWRpY3JvdXNseSBsb25nIGluIHByYWN0aWNlLiAgRm9y IG5vdywNCi0gKiBsaW1pdCBpdCBzb21ld2hhdCBhcmJpdHJhcmlseSB0byA2NTUzNSBieXRlcy4g IEZJWE1FOiBXb3JrIG91dCBhbiBhcHByb3ByaWF0ZQ0KLSAqIGxpbWl0IHdpdGggbW9yZSBwcmVj aXNpb24uDQotICovDQotI2RlZmluZSBMMl9NQVhfTEVOX1BBU1NUCVVTSFJUX01BWA0KLQ0KLS8q KiBMMl9NQVhfTEVOX1ZVIC0gTWF4aW11bSBmcmFtZSBsZW5ndGggZm9yIHZob3N0LXVzZXIgbW9k ZSAod2l0aCBMMiBoZWFkZXIpDQotICoNCi0gKiB2aG9zdC11c2VyIGFsbG93cyBtdWx0aXBsZSBi dWZmZXJzIHBlciBmcmFtZSwgZWFjaCBvZiB3aGljaCBjYW4gYmUgcXVpdGUNCi0gKiBsYXJnZSwg c28gdGhlIGluaGVyZW50IGZyYW1lIHNpemUgbGltaXQgaXMgcmF0aGVyIGxhcmdlLiAgTXVjaCBs YXJnZXIgdGhhbiBpcw0KLSAqIGFjdHVhbGx5IHVzZWZ1bCBmb3IgSVAuICBGb3Igbm93IGxpbWl0 IGFyYml0cmFyaWx5IHRvIDY1NTM1IGJ5dGVzLiBGSVhNRToNCi0gKiBXb3JrIG91dCBhbiBhcHBy b3ByaWF0ZSBsaW1pdCB3aXRoIG1vcmUgcHJlY2lzaW9uLg0KLSAqLw0KLSNkZWZpbmUgTDJfTUFY X0xFTl9WVQkJVVNIUlRfTUFYDQotDQogc3RydWN0IHVkcGhkcjsNCg0KIC8qKg0KQEAgLTUwLDEw ICsyNSwxNyBAQCBzdHJ1Y3QgdWRwaGRyOw0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlvdmVjIHRh cF9oZHJfaW92KGNvbnN0IHN0cnVjdCBjdHggKmMsDQogCQkJCSAgICAgICBzdHJ1Y3QgdGFwX2hk ciAqdGhkcikNCiB7DQotCXJldHVybiAoc3RydWN0IGlvdmVjKXsNCisJc3RydWN0IGlvdmVjIHJl dCA9IHsNCiAJCS5pb3ZfYmFzZSA9IHRoZHIsDQotCQkuaW92X2xlbiA9IGMtPm1vZGUgPT0gTU9E RV9QQVNTVCA/IHNpemVvZigqdGhkcikgOiAwLA0KIAl9Ow0KKw0KKwlpZiAoYy0+dmhvc3QuZmQg IT0gLTEpIHsNCisJCXJldC5pb3ZfbGVuID0gc2l6ZW9mKHN0cnVjdCB2aXJ0aW9fbmV0X2hkcl9t cmdfcnhidWYpOw0KKwl9IGVsc2Ugew0KKwkJcmV0Lmlvdl9sZW4gPSBjLT5tb2RlID09IE1PREVf UEFTU1QgPyBzaXplb2YodGhkci0+dm5ldF9sZW4pIDogMDsNCisJfQ0KKw0KKwlyZXR1cm4gcmV0 Ow0KIH0NCg0KIC8qKg0KLS0NCjIuMzkuNSAoQXBwbGUgR2l0LTE1NCkNCg0KDQo=