Date: Wed, 15 Apr 2009 13:59:34 -0700 From: Maksim Yevmenkin <maksim.yevmenkin@gmail.com> To: Iain Hibbert <plunky@rya-online.net>, "freebsd-bluetooth@freebsd.org" <freebsd-bluetooth@freebsd.org> Subject: Re: libhci update Message-ID: <bb4a86c70904151359y3dcf9627u6f30528f07c7252c@mail.gmail.com> In-Reply-To: <bb4a86c70904091537x1c6ec085r877d847268b38d3e@mail.gmail.com> References: <49D92E26.2030508@incunabulum.net> <bb4a86c70904061358l3983ed51m11265859a833f202@mail.gmail.com> <49DD40E2.5030403@incunabulum.net> <1239264003.862926.638.nullmailer@galant.ukfsn.org> <bb4a86c70904091013l2d7c2b77ic7f6988e6e7709f2@mail.gmail.com> <49DE4E2F.2000805@incunabulum.net> <bb4a86c70904091337x7061ab5uf57bbaff1d5f3197@mail.gmail.com> <49DE6D42.6000004@incunabulum.net> <bb4a86c70904091537x1c6ec085r877d847268b38d3e@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--00163630f1d78efeb804679e39d2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit dear freebsd-bluetoth@ users, please find attached patch that implements more compatibility shims. any comments are greatly appreciated. thanks max --00163630f1d78efeb804679e39d2 Content-Type: text/plain; charset=US-ASCII; name="bluetooth.hci.diff(2).txt" Content-Disposition: attachment; filename="bluetooth.hci.diff(2).txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ftki9mu21 SW5kZXg6IGhjaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGhjaS5jCShyZXZpc2lvbiAxOTA4NzApCisrKyBo Y2kuYwkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMwLDQyMSBAQAogICogJEZyZWVCU0QkCiAg Ki8KIAorI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGJsdWV0b290aC5oPgogI2luY2x1 ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAj aW5jbHVkZSA8dW5pc3RkLmg+CiAKK3N0YXRpYyBpbnQgICAgYnRfZGV2YW55X2NiKGludCBzLCBz dHJ1Y3QgYnRfZGV2aW5mbyBjb25zdCAqZGksIHZvaWQgKnhkZXZuYW1lKTsKIHN0YXRpYyBjaGFy ICogYnRfZGV2Mm5vZGUgKGNoYXIgY29uc3QgKmRldm5hbWUsIGNoYXIgKm5vZGVuYW1lLCBpbnQg bm5sZW4pOwogCiBpbnQKK2J0X2Rldm9wZW4oY2hhciBjb25zdCAqZGV2bmFtZSkKK3sKKwlzdHJ1 Y3Qgc29ja2FkZHJfaGNpCWhhOworCWJkYWRkcl90CQliYTsKKwlpbnQJCQlzOworCisJaWYgKGRl dm5hbWUgPT0gTlVMTCkgeworCQllcnJubyA9IEVJTlZBTDsKKwkJcmV0dXJuICgtMSk7CisJfQor CisJbWVtc2V0KCZoYSwgMCwgc2l6ZW9mKGhhKSk7CisJaGEuaGNpX2xlbiA9IHNpemVvZihoYSk7 CisJaGEuaGNpX2ZhbWlseSA9IEFGX0JMVUVUT09USDsKKworCWlmIChidF9hdG9uKGRldm5hbWUs ICZiYSkpIHsKKwkJaWYgKCFidF9kZXZuYW1lKGhhLmhjaV9ub2RlLCAmYmEpKQorCQkJcmV0dXJu ICgtMSk7CisJfSBlbHNlIGlmIChidF9kZXYybm9kZShkZXZuYW1lLCBoYS5oY2lfbm9kZSwKKwkJ CQkJc2l6ZW9mKGhhLmhjaV9ub2RlKSkgPT0gTlVMTCkgeworCQllcnJubyA9IEVOWElPOworCQly ZXR1cm4gKC0xKTsKKwl9CisKKwlzID0gc29ja2V0KFBGX0JMVUVUT09USCwgU09DS19SQVcsIEJM VUVUT09USF9QUk9UT19IQ0kpOworCWlmIChzIDwgMCkKKwkJcmV0dXJuICgtMSk7CisKKwlpZiAo YmluZChzLCAoc3RydWN0IHNvY2thZGRyICopICZoYSwgc2l6ZW9mKGhhKSkgPCAwIHx8CisJICAg IGNvbm5lY3QocywgKHN0cnVjdCBzb2NrYWRkciAqKSAmaGEsIHNpemVvZihoYSkpIDwgMCkgewor CQljbG9zZShzKTsKKwkJcmV0dXJuICgtMSk7CisJfQorCisJcmV0dXJuIChzKTsKK30KKworaW50 CitidF9kZXZjbG9zZShpbnQgcykKK3sKKwlyZXR1cm4gKGNsb3NlKHMpKTsKK30KKworaW50Citi dF9kZXZzZW5kKGludCBzLCB1aW50MTZfdCBvZ2YsIHVpbnQxNl90IG9jZiwgaW50IHBsZW4sIHZv aWQgKnBhcmFtKQoreworCW5nX2hjaV9jbWRfcGt0X3QJaDsKKwlzdHJ1Y3QgaW92ZWMJCWl2WzJd OworCWludAkJCWl2bjsKKworCWlmIChwbGVuIDwgMCB8fCAocGxlbiA+IDAgJiYgcGFyYW0gPT0g TlVMTCkpIHsgCisJCWVycm5vID0gRUlOVkFMOworCQlyZXR1cm4gKC0xKTsKKwl9CisKKwlpdlsw XS5pb3ZfYmFzZSA9ICZoOworCWl2WzBdLmlvdl9sZW4gPSBzaXplb2YoaCk7CisJaXZuID0gMTsK KworCWgudHlwZSA9IE5HX0hDSV9DTURfUEtUOworCWgub3Bjb2RlID0gaHRvbGUxNihOR19IQ0lf T1BDT0RFKG9nZiwgb2NmKSk7CisJaWYgKHBsZW4gPiAwKSB7CisJCWgubGVuZ3RoID0gcGxlbjsK KworCQlpdlsxXS5pb3ZfYmFzZSA9IHBhcmFtOworCQlpdlsxXS5pb3ZfbGVuID0gcGxlbjsKKwkJ aXZuID0gMjsKKwl9IGVsc2UKKwkJaC5sZW5ndGggPSAwOworCisJd2hpbGUgKHdyaXRldihzLCBp diwgaXZuKSA8IDApIHsKKwkJaWYgKGVycm5vID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikK KwkJCWNvbnRpbnVlOworCisJCXJldHVybiAoLTEpOworCX0KKworCXJldHVybiAoMCk7Cit9CisK K2ludAorYnRfZGV2cmVjdihpbnQgcywgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSwgdGltZV90IHRv KQoreworCWZkX3NldAkJcmZkOworCXN0cnVjdCB0aW1ldmFsCXR2OworCWludAkJbjsKKworCWlm IChidWYgPT0gTlVMTCB8fCBzaXplIDw9IDAgfHwgdG8gPCAwKSB7CisJCWVycm5vID0gRUlOVkFM OworCQlyZXR1cm4gKC0xKTsKKwl9CisKKwlGRF9aRVJPKCZyZmQpOworCUZEX1NFVChzLCAmcmZk KTsKKworCXR2LnR2X3NlYyA9IHRvOworCXR2LnR2X3VzZWMgPSAwOworCisJd2hpbGUgKChuID0g c2VsZWN0KHMgKyAxLCAmcmZkLCBOVUxMLCBOVUxMLCAmdHYpKSA8IDApIHsKKwkJaWYgKGVycm5v ID09IEVBR0FJTiB8fCBlcnJubyA9PSBFSU5UUikKKwkJCWNvbnRpbnVlOworCisJCXJldHVybiAo LTEpOworCX0KKworCWlmIChuID09IDApIHsKKwkJZXJybm8gPSBFVElNRURPVVQ7CisJCXJldHVy biAoLTEpOworCX0KKworCWFzc2VydChGRF9JU1NFVChzLCAmcmZkKSk7CisKKwl3aGlsZSAoKG4g PSByZWFkKHMsIGJ1Ziwgc2l6ZSkpIDwgMCkgeworCQlpZiAoZXJybm8gPT0gRUFHQUlOIHx8IGVy cm5vID09IEVJTlRSKQorCQkJY29udGludWU7CisKKwkJcmV0dXJuICgtMSk7CisJfQorCisJcmV0 dXJuIChuKTsKK30KKworaW50CitidF9kZXZyZXEoaW50IHMsIHN0cnVjdCBidF9kZXZyZXEgKnIs IHRpbWVfdCB0bykKK3sKKwl1aW50OF90CQkJCWJ1ZlszMjBdOyAvKiBtb3JlIHRoYW4gZW5vdWdo ICovCisJbmdfaGNpX2V2ZW50X3BrdF90CQkqZSA9IChuZ19oY2lfZXZlbnRfcGt0X3QgKikgYnVm OworCW5nX2hjaV9jb21tYW5kX2NvbXBsX2VwCQkqY2MgPSAobmdfaGNpX2NvbW1hbmRfY29tcGxf ZXAgKikoZSsxKTsKKwluZ19oY2lfY29tbWFuZF9zdGF0dXNfZXAJKmNzID0gKG5nX2hjaV9jb21t YW5kX3N0YXR1c19lcCopKGUrMSk7CisJdWludDE2X3QJCQlvcGNvZGU7CisJdGltZV90CQkJCXRf ZW5kOworCWludAkJCQluOworCisJaWYgKHMgPCAwIHx8IHIgPT0gTlVMTCB8fCB0byA8IDApIHsK KwkJZXJybm8gPSBFSU5WQUw7CisJCXJldHVybiAoLTEpOworCX0KKworCWlmIChyLT5ybGVuIDwg MCB8fCAoci0+cmxlbiA+IDAgJiYgci0+cnBhcmFtID09IE5VTEwpKSB7CisJCWVycm5vID0gRUlO VkFMOworCQlyZXR1cm4gKC0xKTsKKwl9CisKKwluID0gYnRfZGV2c2VuZChzLCByLT5vZ2YsIHIt Pm9jZiwgci0+Y2xlbiwgci0+Y3BhcmFtKTsKKwlpZiAobiA8IDApCisJCXJldHVybiAoLTEpOwor CisJb3Bjb2RlID0gaHRvbGUxNihOR19IQ0lfT1BDT0RFKHItPm9nZiwgci0+b2NmKSk7CisKKwl0 X2VuZCA9IHRpbWUoTlVMTCkgKyB0bzsKKworCWRvIHsKKwkJdG8gPSB0X2VuZCAtIHRpbWUoTlVM TCk7CisJCWlmICh0byA8IDApCisJCQl0byA9IDA7CisKKwkJbiA9IGJ0X2RldnJlY3YocywgYnVm LCBzaXplb2YoYnVmKSwgdG8pOworCQlpZiAobiA8IDApCisJCQlyZXR1cm4gKC0xKTsKKworCQlp ZiAobiA8IHNpemVvZigqZSkpIHsKKwkJCWVycm5vID0gRU1TR1NJWkU7CisJCQlyZXR1cm4gKC0x KTsKKwkJfQorCisJCWlmIChlLT50eXBlICE9IE5HX0hDSV9FVkVOVF9QS1QpIHsKKwkJCWVycm5v ID0gRUlPOworCQkJcmV0dXJuICgtMSk7CisJCX0KKworCQluIC09IHNpemVvZigqZSk7CisKKwkJ c3dpdGNoIChlLT5ldmVudCkgeworCQljYXNlIE5HX0hDSV9FVkVOVF9DT01NQU5EX0NPTVBMOgor CQkJaWYgKGNjLT5vcGNvZGUgPT0gb3Bjb2RlKSB7CisJCQkJbiAtPSBzaXplb2YoKmNjKTsKKwor CQkJCWlmIChyLT5ybGVuID49IG4pIHsKKwkJCQkJci0+cmxlbiA9IG47CisJCQkJCW1lbWNweShy LT5ycGFyYW0sIGNjICsgMSwgci0+cmxlbik7CisJCQkJfQorCisJCQkJcmV0dXJuICgwKTsKKwkJ CX0KKwkJCWJyZWFrOworCisJCWNhc2UgTkdfSENJX0VWRU5UX0NPTU1BTkRfU1RBVFVTOgorCQkJ aWYgKGNzLT5vcGNvZGUgPT0gb3Bjb2RlKSB7CisJCQkJaWYgKHItPmV2ZW50ICE9IE5HX0hDSV9F VkVOVF9DT01NQU5EX1NUQVRVUykgeworCQkJCQlpZiAoY3MtPnN0YXR1cyAhPSAwKSB7CisJCQkJ CQllcnJubyA9IEVJTzsKKwkJCQkJCXJldHVybiAoLTEpOworCQkJCQl9CisJCQkJfSBlbHNlIHsK KwkJCQkJaWYgKHItPnJsZW4gPj0gbikgeworCQkJCQkJci0+cmxlbiA9IG47CisJCQkJCQltZW1j cHkoci0+cnBhcmFtLCBjcywgci0+cmxlbik7CisJCQkJCX0KKworCQkJCQlyZXR1cm4gKDApOwor CQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlpZiAoZS0+ZXZlbnQgPT0g ci0+ZXZlbnQpIHsKKwkJCQlpZiAoci0+cmxlbiA+PSBuKSB7CisJCQkJCXItPnJsZW4gPSBuOwor CQkJCQltZW1jcHkoci0+cnBhcmFtLCBlICsgMSwgci0+cmxlbik7CisJCQkJfQorCisJCQkJcmV0 dXJuICgwKTsKKwkJCX0KKwkJCWJyZWFrOworCQl9CisJfSB3aGlsZSAodG8gPiAwKTsKKworCWVy cm5vID0gRVRJTUVET1VUOworCisJcmV0dXJuICgtMSk7Cit9CisKK2ludAorYnRfZGV2ZmlsdGVy KGludCBzLCBzdHJ1Y3QgYnRfZGV2ZmlsdGVyIGNvbnN0ICpuZXcsIHN0cnVjdCBidF9kZXZmaWx0 ZXIgKm9sZCkKK3sKKwlzdHJ1Y3QgbmdfYnRzb2NrZXRfaGNpX3Jhd19maWx0ZXIJZjsKKwlzb2Nr bGVuX3QJCQkJbGVuOworCWludAkJCQkJYml0OworCisJaWYgKG5ldyA9PSBOVUxMICYmIG9sZCA9 PSBOVUxMKSB7CisJCWVycm5vID0gRUlOVkFMOworCQlyZXR1cm4gKC0xKTsKKwl9CisKKwlpZiAo b2xkICE9IE5VTEwpIHsKKwkJbGVuID0gc2l6ZW9mKGYpOworCQlpZiAoZ2V0c29ja29wdChzLCBT T0xfSENJX1JBVywgU09fSENJX1JBV19GSUxURVIsICZmLCAmbGVuKSA8IDApCisJCQlyZXR1cm4g KC0xKTsKKworCQltZW1zZXQob2xkLCAwLCBzaXplb2YoKm9sZCkpOworCisJCWZvciAoYml0ID0g MDsgYml0IDwgTkdfSENJX0VWRU5UX1BLVDsgYml0ICsrKQorCQkJaWYgKGJpdF90ZXN0KGYucGFj a2V0X21hc2ssIGJpdCkpCisJCQkJb2xkLT5wYWNrZXRfbWFzayB8PSAoMSA8PCBiaXQpOworCisJ CWZvciAoYml0ID0gMDsgYml0IDwgTkdfSENJX0VWRU5UX01BU0tfU0laRSAqIDg7IGJpdCArKykK KwkJCWlmIChiaXRfdGVzdChmLmV2ZW50X21hc2ssIGJpdCkpCisJCQkJb2xkLT5ldmVudF9tYXNr IHw9ICgxIDw8IGJpdCk7CisJfQorCisJaWYgKG5ldyAhPSBOVUxMKSB7CisJCW1lbXNldCgmZiwg MCwgc2l6ZW9mKGYpKTsKKworCQlmb3IgKGJpdCA9IDA7IGJpdCA8IE5HX0hDSV9FVkVOVF9QS1Q7 IGJpdCArKykKKwkJCWlmIChuZXctPnBhY2tldF9tYXNrICYgKDEgPDwgYml0KSkKKwkJCQliaXRf c2V0KGYucGFja2V0X21hc2ssIGJpdCk7CisKKwkJZm9yIChiaXQgPSAwOyBiaXQgPCAoTkdfSENJ X0VWRU5UX01BU0tfU0laRSAqIDgpOyBiaXQgKyspCisJCQlpZiAobmV3LT5ldmVudF9tYXNrICYg KDEgPDwgYml0KSkKKwkJCQliaXRfc2V0KGYuZXZlbnRfbWFzaywgYml0KTsKKworCQlsZW4gPSBz aXplb2YoZik7CisJCWlmIChzZXRzb2Nrb3B0KHMsIFNPTF9IQ0lfUkFXLCBTT19IQ0lfUkFXX0ZJ TFRFUiwgJmYsIGxlbikgPCAwKQorCQkJcmV0dXJuICgtMSk7CisJfQorCisJcmV0dXJuICgwKTsK K30KKworaW50CitidF9kZXZpbnF1aXJ5KGNoYXIgY29uc3QgKmRldm5hbWUsIGludCBsZW5ndGgs IGludCBudW1fcnNwLAorCQl1aW50OF90IGNvbnN0ICpsYXAsIHN0cnVjdCBidF9kZXZpbnF1aXJ5 ICoqaWkpCit7CisJdWludDhfdAkJCQlidWZbMzIwXTsKKwljaGFyCQkJCV9kZXZuYW1lW0hDSV9E RVZOQU1FX1NJWkVdOworCXN0cnVjdCBidF9kZXZmaWx0ZXIJCWY7CisJbmdfaGNpX2lucXVpcnlf Y3AJCSpjcCA9IChuZ19oY2lfaW5xdWlyeV9jcCAqKSBidWY7CisJbmdfaGNpX2V2ZW50X3BrdF90 CQkqZSA9IChuZ19oY2lfZXZlbnRfcGt0X3QgKikgYnVmOworCW5nX2hjaV9pbnF1aXJ5X3Jlc3Vs dF9lcAkqZXAgPSAobmdfaGNpX2lucXVpcnlfcmVzdWx0X2VwICopKGUrMSk7CisJbmdfaGNpX2lu cXVpcnlfcmVzcG9uc2UJCSppcjsKKwlzdHJ1Y3QgYnRfZGV2aW5xdWlyeQkJKmk7CisJaW50CQkJ CXMsIG47CisJdGltZV90CQkJCXRvOworCisJaWYgKGlpID09IE5VTEwpIHsKKwkJZXJybm8gPSBF SU5WQUw7CisJCXJldHVybiAoLTEpOworCX0KKworCWlmIChkZXZuYW1lID09IE5VTEwpIHsKKwkJ bWVtc2V0KF9kZXZuYW1lLCAwLCBzaXplb2YoX2Rldm5hbWUpKTsKKwkJZGV2bmFtZSA9IF9kZXZu YW1lOworCisJCW4gPSBidF9kZXZlbnVtKGJ0X2RldmFueV9jYiwgX2Rldm5hbWUpOworCQlpZiAo biA8PSAwKSB7CisJCQlpZiAobiA9PSAwKQorCQkJCSppaSA9IE5VTEw7CisKKwkJCXJldHVybiAo bik7CisJCX0KKwl9CisKKwlzID0gYnRfZGV2b3BlbihkZXZuYW1lKTsKKwlpZiAocyA8IDApCisJ CXJldHVybiAoLTEpOworCisJaWYgKGJ0X2RldmZpbHRlcihzLCBOVUxMLCAmZikgPCAwKSB7CisJ CWJ0X2RldmNsb3NlKHMpOworCQlyZXR1cm4gKC0xKTsKKwl9CisKKwlmLmV2ZW50X21hc2sgfD0g KDEgPDwgKE5HX0hDSV9FVkVOVF9JTlFVSVJZX0NPTVBMIC0gMSkpOworCWYuZXZlbnRfbWFzayB8 PSAoMSA8PCAoTkdfSENJX0VWRU5UX0lOUVVJUllfUkVTVUxUIC0gMSkpOworCisJaWYgKGJ0X2Rl dmZpbHRlcihzLCAmZiwgTlVMTCkgPCAwKSB7CisJCWJ0X2RldmNsb3NlKHMpOworCQlyZXR1cm4g KC0xKTsKKwl9CisKKwlpZiAobGFwID09IE5VTEwpIHsKKwkJY3AtPmxhcFswXSA9IDB4MzM7CisJ CWNwLT5sYXBbMV0gPSAweDhiOworCQljcC0+bGFwWzJdID0gMHg5ZTsKKwl9IGVsc2UgeworCQlj cC0+bGFwWzBdID0gbGFwWzBdOworCQljcC0+bGFwWzFdID0gbGFwWzFdOworCQljcC0+bGFwWzJd ID0gbGFwWzJdOworCX0KKworCWlmIChsZW5ndGggPD0gMCB8fCBsZW5ndGggPiAyNTUpCisJCWxl bmd0aCA9IDQ7CS8qIDUuMTIgc2Vjb25kcyAqLworCWNwLT5pbnF1aXJ5X2xlbmd0aCA9ICh1aW50 OF90KSBsZW5ndGg7CisKKwl0byA9ICh0aW1lX3QpKChkb3VibGUpIGxlbmd0aCAqIDEuMjgpICsg MTsKKworCWlmIChudW1fcnNwIDw9IDAgfHwgbnVtX3JzcCA+IDI1NSkKKwkJbnVtX3JzcCA9IDg7 CisJY3AtPm51bV9yZXNwb25zZXMgPSAodWludDhfdCkgbnVtX3JzcDsKKworCWkgPSAqaWkgPSBj YWxsb2MobnVtX3JzcCwgc2l6ZW9mKHN0cnVjdCBidF9kZXZpbnF1aXJ5KSk7CisJaWYgKGkgPT0g TlVMTCkgeworCQlidF9kZXZjbG9zZShzKTsKKwkJZXJybm8gPSBFTk9NRU07CisJCXJldHVybiAo LTEpOworCX0KKworCWlmIChidF9kZXZzZW5kKHMsIE5HX0hDSV9PR0ZfTElOS19DT05UUk9MLCBO R19IQ0lfT0NGX0lOUVVJUlksCisJCQlzaXplb2YoKmNwKSwgY3ApIDwgMCkgeworCQlmcmVlKGkp OworCQlidF9kZXZjbG9zZShzKTsKKwkJcmV0dXJuICgtMSk7CisJfQorCit3YWl0X2Zvcl9tb3Jl OgorCisJbiA9IGJ0X2RldnJlY3YocywgYnVmLCBzaXplb2YoYnVmKSwgdG8pOworCWlmIChuIDwg MCkgeworCQlmcmVlKGkpOworCQlidF9kZXZjbG9zZShzKTsKKwkJcmV0dXJuICgtMSk7CisJfQor CisJaWYgKG4gPCBzaXplb2YobmdfaGNpX2V2ZW50X3BrdF90KSkgeworCQlmcmVlKGkpOworCQli dF9kZXZjbG9zZShzKTsKKwkJZXJybm8gPSBFSU87CisJCXJldHVybiAoLTEpOworCX0KKworCXN3 aXRjaCAoZS0+ZXZlbnQpIHsKKwljYXNlIE5HX0hDSV9FVkVOVF9JTlFVSVJZX0NPTVBMOgorCQli cmVhazsKKworCWNhc2UgTkdfSENJX0VWRU5UX0lOUVVJUllfUkVTVUxUOgorCQlpciA9IChuZ19o Y2lfaW5xdWlyeV9yZXNwb25zZSAqKShlcCArIDEpOworCisjdW5kZWYJTUlOCisjZGVmaW5lCU1J TihhLCBiKQkoKChhKSA8IChiKSk/IChhKSA6IChiKSkKKworCQlmb3IgKG4gPSAwOyBuIDwgTUlO KGVwLT5udW1fcmVzcG9uc2VzLCBudW1fcnNwKTsgbiArKykgeworCQkJYmRhZGRyX2NvcHkoJmkt PmJkYWRkciwgJmlyLT5iZGFkZHIpOworCQkJaS0+cHNjYW5fcmVwX21vZGUgPSBpci0+cGFnZV9z Y2FuX3JlcF9tb2RlOworCQkJaS0+cHNjYW5fcGVyaW9kX21vZGUgPSBpci0+cGFnZV9zY2FuX3Bl cmlvZF9tb2RlOworCQkJaS0+cHNjYW5fbW9kZSA9IGlyLT5wYWdlX3NjYW5fbW9kZTsKKwkJCW1l bWNweShpLT5kZXZfY2xhc3MsIGlyLT51Y2xhc3MsIHNpemVvZihpLT5kZXZfY2xhc3MpKTsKKwkJ CWktPmNsb2NrX29mZnNldCA9IGxlMTZ0b2goaXItPmNsb2NrX29mZnNldCk7CisKKwkJCWlyICsr OworCQkJaSArKzsKKwkJCW51bV9yc3AgLS07CisJCX0KKwkJLyogRkFMTFRIUk9VR0ggKi8KKwor CWRlZmF1bHQ6CisJCWdvdG8gd2FpdF9mb3JfbW9yZTsKKwkJLyogTk9UIFJFQUNIRUQgKi8KKwl9 CisKKwlidF9kZXZjbG9zZShzKTsKKwkJCisJcmV0dXJuIChpIC0gKmlpKTsKK30KKworaW50CiBi dF9kZXZpbmZvKHN0cnVjdCBidF9kZXZpbmZvICpkaSkKIHsKIAl1bmlvbiB7CkBAIC01Myw2ICs0 NTksNyBAQAogCQlzdHJ1Y3QgbmdfYnRzb2NrZXRfaGNpX3Jhd19ub2RlX2RlYnVnCQlyODsKIAl9 CQkJCQkJcnA7CiAJc3RydWN0IHNvY2thZGRyX2hjaQkJCQloYTsKKwlzb2NrbGVuX3QJCQkJCWhh bGVuOwogCWludAkJCQkJCXMsIHJ2YWw7CiAKIAlpZiAoZGkgPT0gTlVMTCkgewpAQCAtNjAsMjcg KzQ2NywxNCBAQAogCQlyZXR1cm4gKC0xKTsKIAl9CiAKLQltZW1zZXQoJmhhLCAwLCBzaXplb2Yo aGEpKTsKLQloYS5oY2lfbGVuID0gc2l6ZW9mKGhhKTsKLQloYS5oY2lfZmFtaWx5ID0gQUZfQkxV RVRPT1RIOwotCi0JaWYgKGJ0X2F0b24oZGktPmRldm5hbWUsICZycC5yMS5iZGFkZHIpKSB7Ci0J CWlmICghYnRfZGV2bmFtZShoYS5oY2lfbm9kZSwgJnJwLnIxLmJkYWRkcikpCi0JCQlyZXR1cm4g KC0xKTsKLQl9IGVsc2UgaWYgKGJ0X2RldjJub2RlKGRpLT5kZXZuYW1lLCBoYS5oY2lfbm9kZSwK LQkJCQkJc2l6ZW9mKGhhLmhjaV9ub2RlKSkgPT0gTlVMTCkgewotCQllcnJubyA9IEVOWElPOwot CQlyZXR1cm4gKC0xKTsKLQl9Ci0KLQlzID0gc29ja2V0KFBGX0JMVUVUT09USCwgU09DS19SQVcs IEJMVUVUT09USF9QUk9UT19IQ0kpOworCXMgPSBidF9kZXZvcGVuKGRpLT5kZXZuYW1lKTsKIAlp ZiAocyA8IDApCiAJCXJldHVybiAoLTEpOwogCiAJcnZhbCA9IC0xOwogCi0JaWYgKGJpbmQocywg KHN0cnVjdCBzb2NrYWRkciAqKSAmaGEsIHNpemVvZihoYSkpIDwgMCB8fAotCSAgICBjb25uZWN0 KHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmhhLCBzaXplb2YoaGEpKSA8IDApCisJaGFsZW4gPSBz aXplb2YoaGEpOworCWlmIChnZXRzb2NrbmFtZShzLCAoc3RydWN0IHNvY2thZGRyICopICZoYSwg JmhhbGVuKSA8IDApCiAJCWdvdG8gYmFkOwogCXN0cmxjcHkoZGktPmRldm5hbWUsIGhhLmhjaV9u b2RlLCBzaXplb2YoZGktPmRldm5hbWUpKTsKIApAQCAtMTM4LDcgKzUzMiw3IEBACiAKIAlydmFs ID0gMDsKIGJhZDoKLQljbG9zZShzKTsKKwlidF9kZXZjbG9zZShzKTsKIAogCXJldHVybiAocnZh bCk7CiB9CkBAIC0yMDUsNiArNTk5LDEzIEBACiAJcmV0dXJuIChjb3VudCk7CiB9CiAKK3N0YXRp YyBpbnQKK2J0X2RldmFueV9jYihpbnQgcywgc3RydWN0IGJ0X2RldmluZm8gY29uc3QgKmRpLCB2 b2lkICp4ZGV2bmFtZSkKK3sKKwlzdHJsY3B5KChjaGFyICopIHhkZXZuYW1lLCBkaS0+ZGV2bmFt ZSwgSENJX0RFVk5BTUVfU0laRSk7CisJcmV0dXJuICgxKTsKK30KKwogc3RhdGljIGNoYXIgKgog YnRfZGV2Mm5vZGUoY2hhciBjb25zdCAqZGV2bmFtZSwgY2hhciAqbm9kZW5hbWUsIGludCBubmxl bikKIHsKSW5kZXg6IGJsdWV0b290aC4zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJsdWV0b290aC4zCShyZXZp c2lvbiAxOTA4NzApCisrKyBibHVldG9vdGguMwkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUs NyBAQAogLlwiICRJZDogYmx1ZXRvb3RoLjMsdiAxLjUgMjAwMy8wNS8yMCAyMzowNDozMCBtYXgg RXhwICQKIC5cIiAkRnJlZUJTRCQKIC5cIgotLkRkIEZlYnJ1YXJ5IDEzLCAyMDA5CisuRGQgQXBy aWwgOSwgMjAwOQogLkR0IEJMVUVUT09USCAzCiAuT3MKIC5TaCBOQU1FCkBAIC00MSw2ICs0MSwx NyBAQAogLk5tIGJ0X2VuZHByb3RvZW50ICwKIC5ObSBidF9hdG9uICwKIC5ObSBidF9udG9hICwK Ky5ObSBidF9kZXZhZGRyICwKKy5ObSBidF9kZXZuYW1lICwKKy5ObSBidF9kZXZpbmZvICwKKy5O bSBidF9kZXZlbnVtICwKKy5ObSBidF9kZXZvcGVuICwKKy5ObSBidF9kZXZjbG9zZSAsCisuTm0g YnRfZGV2c2VuZCAsCisuTm0gYnRfZGV2cmVjdiAsCisuTm0gYnRfZGV2cmVxICwKKy5ObSBidF9k ZXZmaWx0ZXIgLAorLk5tIGJ0X2RldmlucXVpcnkgLAogLk5tIGJkYWRkcl9zYW1lICwKIC5ObSBi ZGFkZHJfYW55ICwKIC5ObSBiZGFkZHJfY29weQpAQCAtODQsNiArOTUsMjAgQEAKIC5GdCBpbnQK IC5GbiBidF9kZXZlbnVtICJidF9kZXZlbnVtX2NiX3QgKmNiIiAidm9pZCAqYXJnIgogLkZ0IGlu dAorLkZuIGJ0X2Rldm9wZW4gImNoYXIgY29uc3QgKmRldm5hbWUiCisuRnQgaW50CisuRm4gYnRf ZGV2Y2xvc2UgImludCBzIgorLkZ0IGludAorLkZuIGJ0X2RldnNlbmQgImludCBzIiAidWludDE2 X3Qgb2dmIiAidWludDE2X3Qgb2NmIiAiaW50IHBsZW4iICJ2b2lkICpwYXJhbSIKKy5GdCBpbnQK Ky5GbiBidF9kZXZyZWN2ICJpbnQgcyIgInVpbnQ4X3QgKmJ1ZiIgImludCBzaXplIiAidGltZV90 IHRvIgorLkZ0IGludAorLkZuIGJ0X2RldnJlcSAiaW50IHMiICJzdHJ1Y3QgYnRfZGV2cmVxICpy IiAidGltZV90IHRvIgorLkZ0IGludAorLkZuIGJ0X2RldmZpbHRlciAiaW50IHMiICJzdHJ1Y3Qg YnRfZGV2ZmlsdGVyIGNvbnN0ICpuZXciICJzdHJ1Y3QgYnRfZGV2ZmlsdGVyICpvbGQiCisuRnQg aW50CisuRm4gYnRfZGV2aW5xdWlyeSAiY2hhciBjb25zdCAqZGV2bmFtZSIgImludCBsZW5ndGgi ICJpbnQgbnVtX3JzcCIgInVpbnQ4X3QgY29uc3QgKmxhcCIgInN0cnVjdCBidF9kZXZpbnF1aXJ5 ICoqaWkiCisuRnQgaW50CiAuRm4gYmRhZGRyX3NhbWUgImNvbnN0IGJkYWRkcl90ICphIiAiY29u c3QgYmRhZGRyX3QgKmIiCiAuRnQgaW50CiAuRm4gYmRhZGRyX2FueSAiY29uc3QgYmRhZGRyX3Qg KmEiCkBAIC0zMTEsNiArMzM2LDIxOSBAQAogb3IgLTEgaWYgYW4gZXJyb3Igb2NjdXJyZWQuCiAu UHAKIFRoZQorLkZuIGJ0X2Rldm9wZW4KK2Z1bmN0aW9uIG9wZW5zIEJsdWV0b290aCBkZXZpY2Ug d2l0aCB0aGUgZ2l2ZW4KKy5GYSBkZXZuYW1lCithbmQgcmV0dXJucyBjb25uZWN0ZWQgYW5kIGJv dW5kCisuRHYgSENJCitzb2NrZXQuCitUaGUgZnVuY3Rpb24gcmV0dXJucyAtMSBpZiBhbiBlcnJv ciBoYXMgb2NjdXJyZWQuCisuUHAKK1RoZQorLkZuIGJ0X2RldmNsb3NlCitjbG9zZXMgcGFzc2Vk CisuRHYgSENJCitzb2NrZXQKKy5GYSBzICwKK3ByZXZpb3VzbHkgb2J0YWluZWQgd2l0aAorLlhy IGJ0X2Rldm9wZW4gMyAuCisuUHAKK1RoZQorLkZuIGJ0X2RldnNlbmQKK2Z1bmN0aW9uIHNlbmRz IEJsdWV0b290aAorLkR2IEhDSQorY29tbWFuZCB3aXRoIHRoZSBPcENvZGUgR3JvdXAgRmllbGQK Ky5GYSBvZ2YKK2FuZAorT3BDb2RlIENvbW1hbmQgRmllbGQKKy5GYSBvY2YKK3RvIHRoZSBwcm92 aWRlZCBzb2NrZXQKKy5GYSBzICwKK3ByZXZpb3VzbHkgb2J0YWluZWQgd2l0aAorLlhyIGJ0X2Rl dm9wZW4gMyAuCitUaGUKKy5GYSBwbGVuCithbmQKKy5GYSBwYXJhbQorcGFyYW1ldGVycyBzcGVj aWZ5IGNvbW1hbmQgcGFyYW1ldGVycy4KK1RoZSBmdW5jdGlvbiByZXR1cm5zIDAgb24gc3VjY2Vz cywKK29yIC0xIGlmIGFuIGVycm9yIG9jY3VycmVkLgorLlBwCitUaGUKKy5GbiBidF9kZXZyZWN2 CitmdW5jdGlvbiByZWNlaXZlcyBvbmUgQmx1ZXRvb3RoCisuRHYgSENJCitldmVudCBwYWNrZXQg ZnJvbSB0aGUgc29ja2V0CisuRmEgcyAsCitwcmV2aW91c2x5IG9idGFpbmVkIHdpdGgKKy5YciBi dF9kZXZvcGVuIDMgLgorVGhlIGV2ZW50IHBhY2tldCBpcyBwbGFjZWQgaW50byB0aGUgcHJvdmlk ZWQgYnVmZmVyCisuRmEgYnVmCitvZiBzaXplCisuRmEgc2l6ZSAuCitUaGUKKy5GYSB0bworcGFy YW1ldGVyIHNwZWNpZmllcyByZWNlaXZlIHRpbWVvdXQgaW4gc2Vjb25kcy4KK1RoZSBmdW5jdGlv biByZXR1cm5zIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWNldmllZCwKK29yIC0xIGlmIGFuIGVy cm9yIG9jY3VycmVkLgorLlBwCitUaGUKKy5GbiBidF9kZXZyZXEKK2Z1bmN0aW9uIG1ha2VzIEJs dWV0b290aAorLkR2IEhDSQorcmVxdWVzdCB0byB0aGUgc29ja2V0CisuRmEgcyAsCitwcmV2aW91 c2x5IG9idGFpbmVkIHdpdGgKKy5YciBidF9kZXZvcGVuIDMgLgorVGhlIGZ1bmN0aW9uIHdpbGwg c2VuZCB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgYW5kIHdpbGwgd2FpdCBmb3IgdGhlIHNwZWNpZmll ZAorZXZlbnQsCitvciB0aW1lb3V0CisuRmEgdG8KK3NlY29uZHMgdG8gb2NjdXIuCitUaGUKKy5W dCBidF9kZXZyZXEKK3N0cnVjdHVyZSBpcyBkZWZpbmVkIGFzIGZvbGxvd3MKKy5CZCAtbGl0ZXJh bCAtb2Zmc2V0IGluZGVudAorc3RydWN0IGJ0X2RldnJlcQoreworICAgICAgICB1aW50MTZfdCAg ICAgICAgb2dmOworICAgICAgICB1aW50MTZfdCAgICAgICAgb2NmOworICAgICAgICBpbnQgICAg ICAgICAgICAgZXZlbnQ7CisgICAgICAgIHZvaWQgICAgICAgICAgICAqY3BhcmFtOworICAgICAg ICBpbnQgICAgICAgICAgICAgY2xlbjsKKyAgICAgICAgdm9pZCAgICAgICAgICAgICpycGFyYW07 CisgICAgICAgIGludCAgICAgICAgICAgICBybGVuOworfTsKKy5FZAorLlBwCitUaGUKKy5GYSBv Z2YKK2FuZAorLkZhIG9jZgorZmllbGRzIHNwZWNpZnkgT3BDb2RlIEdyb3VwIGFuZCBDb21tYW5k IEZpZWxkIHJlc3BlY3RpdmVseS4KK1RoZQorLkZhIGNwYXJhbQorYW5kCisuRmEgY2xlbgorZmll bGRzIHNwZWNpZnkgY29tbWFuZCBwYXJhbWV0ZXJzIGRhdGEgYW5kIGNvbW1hbmQgcGFyYW1ldGVy cyBkYXRhIHNpemUKK3Jlc3BlY3RpdmVseS4KK1RoZQorLkZhIGV2ZW50CitmaWVsZCBzcGVjaWZp ZXMgd2hpY2ggQmx1ZXRvb3RoCisuRHYgSENJCitldmVudCBJRCB0aGUgZnVuY3Rpb24gc2hvdWxk IHdhaXQgZm9yLgorVGhlCisuRmEgcnBhcmFtCithbmQKKy5GYSBybGVuCitwYXJhbWV0ZXJzIHNw ZWNpZnkgYnVmZmVyIGFuZCBidWZmZXIgc2l6ZSByZXNwZWN0aXZlbHkgd2hlcmUgcmV0dXJuCitw YXJhbWV0ZXJzIHNob3VsZCBiZSBwbGFjZWQuCitUaGUgZnVuY3Rpb24gcmV0dXJucyAwIG9uIHN1 Y2Nlc3MsIG9yIC0xIGlmIGFuIGVycm9yIG9jY3VycmVkLgorLlBwCitUaGUKKy5GbiBidF9kZXZm aWx0ZXIKK2NvbnRyb2xzIHRoZSBsb2NhbAorLkR2IEhDSQorZmlsdGVyIGFzc29jaWF0ZWQgd2l0 aCB0aGUgc29ja2V0CisuRmEgcyAsCitwcmV2aW91c2x5IG9idGFpbmVkIHdpdGgKKy5YciBidF9k ZXZvcGVuIDMgLgorRmlsdGVyaW5nIGNhbiBiZSBkb25lIG9uIHBhY2tldCB0eXBlcywgaS5lLgor LkR2IEFDTCAsCisuRHYgU0NPIG9yCisuRHYgSENJCitldmVudCBwYWNrZXRzLCBhbmQsIGluIGFk ZGl0aW9uLCBvbgorLkR2IEhDSQorZXZlbnQgSURzLgorQmVmb3JlIGFwcGx5aW5nCisuRmEgbmV3 CitmaWx0ZXIgKGlmIHByb3ZpZGVkKSB0aGUgZnVuY3Rpb24gd2lsbCB0cnkgdG8gb2J0YWluIGN1 cnJlbnQgZmlsdGVyCitmcm9tIHRoZSBzb2NrZXQKKy5GYSBzCithbmQgcGxhY2UgaXQgaW50byB0 aGUKKy5GYSBvbGQKK3BhcmFtZXRlciAoaWYgcHJvdmlkZWQpLgorVGhlCisuVnQgYnRfZGV2Zmls dGVyCitzdHJ1Y3R1cmUgaXMgZGVmaW5lZCBhcyBmb2xsb3dzCisuQmQgLWxpdGVyYWwgLW9mZnNl dCBpbmRlbnQKK3N0cnVjdCBidF9kZXZmaWx0ZXIgeworICAgICAgICB1aW50NjRfdCAgICAgICAg ZXZlbnRfbWFzazsKKyAgICAgICAgdWludDhfdCAgICAgICAgIHBhY2tldF9tYXNrOworfTsKKy5F ZAorLlBwCitCb3RoCisuRmEgZXZlbnRfbWFzaworYW5kCisuRmEgcGFja2V0X21hc2sKK2ZpZWxk cyBhcmUgYml0IG1hc2tzLgorSWYgYSBiaXQKKy5GYSBOCitpcyBjbGVhcmVkIGluIHRoZQorLkZh IGV2ZW50X21hc2sKK3RoZW4gdGhlIGNvcnJlc3BvbmRpbmcgQmx1ZXRvb3RoCisuRHYgSENJCitl dmVudCBJRAorLkZhIE4KK2lzIGZpbHRlcmVkIG91dC4KK0lmIGEgYml0CisuRmEgTgoraXMgY2xl YXJlZCBpbiB0aGUKKy5GYSBwYWNrZXRfbWFzawordGhlbiBhbGwgdGhlIHBhY2tldHMgd2l0aCB0 aGUgY29ycmVzcG9uZGluZyBwYWNrZXQgaW5kaWNhdG9yIGFyZSBmaWx0ZXJlZCBvdXQuCitUaGUg ZnVuY3Rpb24gcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIC0xIGlmIGFuIGVycm9yIG9jY3VycmVk LgorLlBwCitUaGUKKy5GbiBidF9kZXZpbnF1aXJ5CitmdW5jdGlvbiBwZXJmb3JtcyBCbHVldG9v dGggaW5xdWlyeS4KK1RoZQorLkZhIGRldm5hbWUKK3BhcmFtZXRlciBzcGVjaWZpZXMgd2hpY2gg bG9jYWwgQmx1ZXRvb3RoIGRldmljZSBzaG91bGQgcGVyZm9ybSBhbiBpbnF1aXJ5LgorSWYgbm90 IHNlY2lmaWVkLCBpLmUuCisuRHYgTlVMTCAsCit0aGVuIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2Ug d2lsbCBiZSB1c2VkLgorVGhlCisuRmEgbGVuZ3RoCitwYXJhbWV0ZXJzIHNwZWNpZmllcyB0aGUg dG90YWwgbGVuZ3RoIG9mIGFuIGlucXVpcnkgaW4gMS4yOCBzZWNvbmQgdW5pdHMuCitJZiBub3Qg c3BlY2lmaWVkLCBpLmUuIDAsIGRlZmF1bHQgdmFsdWUgd2lsbCBiZSB1c2VkLgorVGhlCisuRmEg bnVtX3JzcAorcGFyYW1ldGVyIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHJlc3BvbnNlcyB0aGF0 IGNhbiBiZSByZWNlaXZlZCBiZWZvcmUKK3RoZSBpbnF1aXJ5IGlzIGhhbHRlZC4KK0lmIG5vdCBz cGVjaWZpZWQsIGkuZS4gMCwgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIHVzZWQuCitUaGUKKy5GYSBs YXAKK3BhcmFtZXRlciBjb250YWlucyB0aGUgTEFQIGZyb20gd2hpY2ggdGhlIGlucXVpcnkgYWNj ZXNzIGNvZGUgd2lsbCBiZQorYmUgZGVyaXZlZCB3aGVuIHRoZSBpbnF1aXJ5IHByb2NlZHVyZSBp cyBtYWRlLgorSWYgbm90IHNwZWNpZmllZCwgaS5lLgorLkR2IE5VTEwgLAordGhlbiBHSUFDIExB UCA5ZTo4YjozMyB3aWxsIGJlIHVzZWQuCitUaGUKKy5GYSBpaQorcGFyYW1ldGVyIHNwZWNpZmll cyB3aGVyZSB0byBwbGFjZSBpbnF1aXJ5IHJlc3VsdHMuCitPbiBzdWNjZXNzLCB0aGUgZnVuY3Rp b24gd2lsbCByZXR1cm4gdG90YWwgbnVtYmVyIG9mIGlucXVpcnkgcmVzdWx0cywKK3dpbGwgYWxs b2NhdGUgYnVmZmVyIHRvIHN0b3JlIGFsbCB0aGUgaW5xdWlyeSByZXN1bHRzIGFuZAord2lsbCBy ZXR1cm4gcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIGJ1ZmZlciBpbiB0aGUKKy5GYSBpaQorcGFy YW1ldGVyLgorSXQgaXMgdXAgdG8gdGhlIGNhbGxlciBvZiB0aGUgZnVuY3Rpb24gdG8gZGlzcG9z ZSBvZiB0aGUgYnVmZmVyLgorVGhlIGZ1bmN0aW9uIHJldHVybnMgLTEgaWYgYW4gZXJyb3IgaGFz IG9jY3VycmVkLgorVGhlCisuVnQgYnRfZGV2aW5xdWlyeQorc3RydWN0dXJlIGlzIGRlZmluZWQg YXMgZm9sbG93cworLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CitzdHJ1Y3QgYnRfZGV2aW5x dWlyeSB7CisgICAgICAgIGJkYWRkcl90ICAgICAgICBiZGFkZHI7CisgICAgICAgIHVpbnQ4X3Qg ICAgICAgICBwc2Nhbl9yZXBfbW9kZTsKKyAgICAgICAgdWludDhfdCAgICAgICAgIHBzY2FuX3Bl cmlvZF9tb2RlOworICAgICAgICB1aW50OF90ICAgICAgICAgcHNjYW5fbW9kZTsKKyAgICAgICAg dWludDhfdCAgICAgICAgIGRldl9jbGFzc1szXTsKKyAgICAgICAgdWludDE2X3QgICAgICAgIGNs b2NrX29mZnNldDsKK307CisuRWQKKy5QcAorVGhlCiAuRm4gYmRhZGRyX3NhbWUgLAogLkZuIGJk YWRkcl9hbnkKIGFuZApJbmRleDogYmx1ZXRvb3RoLmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmx1ZXRvb3Ro LmgJKHJldmlzaW9uIDE5MDg3MCkKKysrIGJsdWV0b290aC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z OSw2ICszOSw3IEBACiAjaW5jbHVkZSA8c3lzL2VuZGlhbi5oPgogI2luY2x1ZGUgPHN5cy9pb2N0 bC5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvdWlvLmg+CiAjaW5j bHVkZSA8c3lzL3VuLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxuZXRkYi5oPgpA QCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUgPG5ldGdyYXBoL2JsdWV0b290aC9pbmNsdWRlL25n X2hjaS5oPgogI2luY2x1ZGUgPG5ldGdyYXBoL2JsdWV0b290aC9pbmNsdWRlL25nX2wyY2FwLmg+ CiAjaW5jbHVkZSA8bmV0Z3JhcGgvYmx1ZXRvb3RoL2luY2x1ZGUvbmdfYnRzb2NrZXQuaD4KKyNp bmNsdWRlIDx0aW1lLmg+CiAKIF9fQkVHSU5fREVDTFMKIApAQCAtMTI5LDggKzEzMSw0MiBAQAog CXVpbnQ4X3QJCV9wYWRkaW5nWzIwXTsJLyogbGVhdmUgc3BhY2UgZm9yIGZ1dHVyZSBhZGRpdGlv bnMgKi8KIH07CiAKK3N0cnVjdCBidF9kZXZyZXEKK3sKKwl1aW50MTZfdAlvZ2Y7CisJdWludDE2 X3QJb2NmOworCWludAkJZXZlbnQ7CisJdm9pZAkJKmNwYXJhbTsKKwlpbnQJCWNsZW47CisJdm9p ZAkJKnJwYXJhbTsKKwlpbnQJCXJsZW47Cit9OworCitzdHJ1Y3QgYnRfZGV2ZmlsdGVyIHsKKwl1 aW50NjRfdAlldmVudF9tYXNrOworCXVpbnQ4X3QJCXBhY2tldF9tYXNrOworfTsKKworc3RydWN0 IGJ0X2RldmlucXVpcnkgeworCWJkYWRkcl90CWJkYWRkcjsKKwl1aW50OF90CQlwc2Nhbl9yZXBf bW9kZTsKKwl1aW50OF90CQlwc2Nhbl9wZXJpb2RfbW9kZTsKKwl1aW50OF90CQlwc2Nhbl9tb2Rl OworCXVpbnQ4X3QJCWRldl9jbGFzc1szXTsKKwl1aW50MTZfdAljbG9ja19vZmZzZXQ7Cit9Owor CiB0eXBlZGVmIGludAkoYnRfZGV2ZW51bV9jYl90KShpbnQsIHN0cnVjdCBidF9kZXZpbmZvIGNv bnN0ICosIHZvaWQgKik7CiAKK2ludAkJYnRfZGV2b3BlbiAoY2hhciBjb25zdCAqZGV2bmFtZSk7 CitpbnQJCWJ0X2RldmNsb3NlKGludCBzKTsKK2ludAkJYnRfZGV2c2VuZCAoaW50IHMsIHVpbnQx Nl90IG9nZiwgdWludDE2X3Qgb2NmLCBpbnQgcGxlbiwgdm9pZCAqcGFyYW0pOworaW50CQlidF9k ZXZyZWN2IChpbnQgcywgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSwgdGltZV90IHRvKTsKK2ludAkJ YnRfZGV2cmVxICAoaW50IHMsIHN0cnVjdCBidF9kZXZyZXEgKnIsIHRpbWVfdCB0byk7CitpbnQJ CWJ0X2RldmZpbHRlcihpbnQgcywgc3RydWN0IGJ0X2RldmZpbHRlciBjb25zdCAqbmV3LAorCQkJ ICAgICBzdHJ1Y3QgYnRfZGV2ZmlsdGVyICpvbGQpOworaW50CQlidF9kZXZpbnF1aXJ5KGNoYXIg Y29uc3QgKmRldm5hbWUsIGludCBsZW5ndGgsIGludCBudW1fcnNwLAorCQkJICAgICAgdWludDhf dCBjb25zdCAqbGFwLCBzdHJ1Y3QgYnRfZGV2aW5xdWlyeSAqKmlpKTsKIGludAkJYnRfZGV2aW5m byAoc3RydWN0IGJ0X2RldmluZm8gKmRpKTsKIGludAkJYnRfZGV2ZW51bSAoYnRfZGV2ZW51bV9j Yl90ICpjYiwgdm9pZCAqYXJnKTsKIApJbmRleDogTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTWFr ZWZpbGUJKHJldmlzaW9uIDE5MDg3MCkKKysrIE1ha2VmaWxlCSh3b3JraW5nIGNvcHkpCkBAIC0z Myw2ICszMywxMyBAQAogTUxJTktTKz0JYmx1ZXRvb3RoLjMgYnRfZGV2aW5mby4zCiBNTElOS1Mr PQlibHVldG9vdGguMyBidF9kZXZlbnVtLjMKIAorTUxJTktTKz0JYmx1ZXRvb3RoLjMgYnRfZGV2 b3Blbi4zCitNTElOS1MrPQlibHVldG9vdGguMyBidF9kZXZjbG9zZS4zCitNTElOS1MrPQlibHVl dG9vdGguMyBidF9kZXZzZW5kLjMKK01MSU5LUys9CWJsdWV0b290aC4zIGJ0X2RldnJlcS4zCitN TElOS1MrPQlibHVldG9vdGguMyBidF9kZXZmaWx0ZXIuMworTUxJTktTKz0JYmx1ZXRvb3RoLjMg YnRfZGV2aW5xdWlyeS4zCisKIE1MSU5LUys9CWJsdWV0b290aC4zIGJkYWRkcl9zYW1lLjMKIE1M SU5LUys9CWJsdWV0b290aC4zIGJkYWRkcl9hbnkuMwogTUxJTktTKz0JYmx1ZXRvb3RoLjMgYmRh ZGRyX2NvcHkuMwo= --00163630f1d78efeb804679e39d2--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70904151359y3dcf9627u6f30528f07c7252c>
