Date: Sat, 17 Sep 2016 13:48:15 +0000 From: "jceel (Jakub Klama)" <phabric-noreply@FreeBSD.org> To: freebsd-virtualization@freebsd.org Subject: [Differential] D7185: Add virtio-console support to bhyve Message-ID: <cdb8b977c385734b9760c191c9ddc9cd@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org> References: <differential-rev-PHID-DREV-h346qsj6dfo524z3qnfy-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_cdb8b977c385734b9760c191c9ddc9cd Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 VGhpcyByZXZpc2lvbiB3YXMgYXV0b21hdGljYWxseSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGNv bW1pdHRlZCBjaGFuZ2VzLgpDbG9zZWQgYnkgY29tbWl0IHJTMzA1ODk4OiBBZGQgdmlydGlvLWNv bnNvbGUgc3VwcG9ydCB0byBiaHl2ZS4gKGF1dGhvcmVkIGJ5IGpjZWVsKS4KCkNIQU5HRUQgUFJJ T1IgVE8gQ09NTUlUCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q3MTg1P3ZzPTIwNDAx JmlkPTIwNDAyI3RvYwoKUkVQT1NJVE9SWQogIHJTIEZyZWVCU0Qgc3JjIHJlcG9zaXRvcnkKCkNI QU5HRVMgU0lOQ0UgTEFTVCBVUERBVEUKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDcx ODU/dnM9MjA0MDEmaWQ9MjA0MDIKClJFVklTSU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5m cmVlYnNkLm9yZy9ENzE4NQoKQUZGRUNURUQgRklMRVMKICBoZWFkL3Vzci5zYmluL2JoeXZlL01h a2VmaWxlCiAgaGVhZC91c3Iuc2Jpbi9iaHl2ZS9wY2lfdmlydGlvX2NvbnNvbGUuYwogIGhlYWQv dXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZp ZXdzLmZyZWVic2Qub3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogamNl ZWwsIGdyZWhhbiwgdHJhc3oKQ2M6IGltcCwgZnJlZWJzZC12aXJ0dWFsaXphdGlvbi1saXN0Cg== --b1_cdb8b977c385734b9760c191c9ddc9cd Content-Type: text/x-patch; charset=utf-8; name="D7185.20402.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D7185.20402.patch" ZGlmZiAtLWdpdCBhL2hlYWQvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmggYi9oZWFkL3Vzci5zYmlu L2JoeXZlL3ZpcnRpby5oCi0tLSBhL2hlYWQvdXNyLnNiaW4vYmh5dmUvdmlydGlvLmgKKysrIGIv aGVhZC91c3Iuc2Jpbi9iaHl2ZS92aXJ0aW8uaApAQCAtMjEwLDYgKzIxMCw3IEBACiAjZGVmaW5l CVZJUlRJT19ERVZfTkVUCQkweDEwMDAKICNkZWZpbmUJVklSVElPX0RFVl9CTE9DSwkweDEwMDEK ICNkZWZpbmUJVklSVElPX0RFVl9SQU5ET00JMHgxMDAyCisjZGVmaW5lCVZJUlRJT19ERVZfQ09O U09MRQkweDEwMDMKIAogLyoKICAqIFBDSSBjb25maWcgc3BhY2UgY29uc3RhbnRzLgpkaWZmIC0t Z2l0IGEvaGVhZC91c3Iuc2Jpbi9iaHl2ZS9wY2lfdmlydGlvX2NvbnNvbGUuYyBiL2hlYWQvdXNy LnNiaW4vYmh5dmUvcGNpX3ZpcnRpb19jb25zb2xlLmMKLS0tIGEvaGVhZC91c3Iuc2Jpbi9iaHl2 ZS9wY2lfdmlydGlvX2NvbnNvbGUuYworKysgYi9oZWFkL3Vzci5zYmluL2JoeXZlL3BjaV92aXJ0 aW9fY29uc29sZS5jCkBAIC0wLDAgKzEsNjMxIEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAx NiBpWHN5c3RlbXMgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIHNv ZnR3YXJlIHdhcyBkZXZlbG9wZWQgYnkgSmFrdWIgS2xhbWEgPGpjZWVsQEZyZWVCU0Qub3JnPgor ICogdW5kZXIgc3BvbnNvcnNoaXAgZnJvbSBpWHN5c3RlbXMgSW5jLgorICoKKyAqIFJlZGlzdHJp YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91 dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog ICAgaW4gdGhpcyBwb3NpdGlvbiBhbmQgdW5jaGFuZ2VkLgorICogMi4gUmVkaXN0cmlidXRpb25z IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICog QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJ TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAq IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ LCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExP U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisg KiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBV U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP RgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNE SUQoIiRGcmVlQlNEJCIpOworCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lz L2xpbmtlcl9zZXQuaD4KKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHN5cy91bi5oPgorCisjaW5j bHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+Cisj aW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0cmlu Zy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUg PHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxsaWJnZW4uaD4KKworI2luY2x1ZGUgImJoeXZlcnVuLmgi CisjaW5jbHVkZSAicGNpX2VtdWwuaCIKKyNpbmNsdWRlICJ2aXJ0aW8uaCIKKyNpbmNsdWRlICJt ZXZlbnQuaCIKKworI2RlZmluZQlWVENPTl9SSU5HU1oJNjQKKyNkZWZpbmUJVlRDT05fTUFYUE9S VFMJMTYKKyNkZWZpbmUJVlRDT05fTUFYUQkoVlRDT05fTUFYUE9SVFMgKiAyICsgMikKKworI2Rl ZmluZQlWVENPTl9ERVZJQ0VfUkVBRFkJMAorI2RlZmluZQlWVENPTl9ERVZJQ0VfQURECTEKKyNk ZWZpbmUJVlRDT05fREVWSUNFX1JFTU9WRQkyCisjZGVmaW5lCVZUQ09OX1BPUlRfUkVBRFkJMwor I2RlZmluZQlWVENPTl9DT05TT0xFX1BPUlQJNAorI2RlZmluZQlWVENPTl9DT05TT0xFX1JFU0la RQk1CisjZGVmaW5lCVZUQ09OX1BPUlRfT1BFTgkJNgorI2RlZmluZQlWVENPTl9QT1JUX05BTUUJ CTcKKworI2RlZmluZQlWVENPTl9GX1NJWkUJCTAKKyNkZWZpbmUJVlRDT05fRl9NVUxUSVBPUlQJ MQorI2RlZmluZQlWVENPTl9GX0VNRVJHX1dSSVRFCTIKKyNkZWZpbmUJVlRDT05fU19IT1NUQ0FQ UwlcCisgICAgKFZUQ09OX0ZfU0laRSB8IFZUQ09OX0ZfTVVMVElQT1JUIHwgVlRDT05fRl9FTUVS R19XUklURSkKKworc3RhdGljIGludCBwY2lfdnRjb25fZGVidWc7CisjZGVmaW5lIERQUklOVEYo cGFyYW1zKSBpZiAocGNpX3Z0Y29uX2RlYnVnKSBwcmludGYgcGFyYW1zCisjZGVmaW5lIFdQUklO VEYocGFyYW1zKSBwcmludGYgcGFyYW1zCisKK3N0cnVjdCBwY2lfdnRjb25fc29mdGM7CitzdHJ1 Y3QgcGNpX3Z0Y29uX3BvcnQ7CitzdHJ1Y3QgcGNpX3Z0Y29uX2NvbmZpZzsKK3R5cGVkZWYgdm9p ZCAocGNpX3Z0Y29uX2NiX3QpKHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqLCB2b2lkICosIHN0cnVj dCBpb3ZlYyAqLAorICAgIGludCk7CisKK3N0cnVjdCBwY2lfdnRjb25fcG9ydCB7CisJc3RydWN0 IHBjaV92dGNvbl9zb2Z0YyAqIHZzcF9zYzsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNw X2lkOworCWNvbnN0IGNoYXIgKiAgICAgICAgICAgICB2c3BfbmFtZTsKKwlib29sICAgICAgICAg ICAgICAgICAgICAgdnNwX2VuYWJsZWQ7CisJYm9vbCAgICAgICAgICAgICAgICAgICAgIHZzcF9j b25zb2xlOworCWJvb2wgICAgICAgICAgICAgICAgICAgICB2c3BfcnhfcmVhZHk7CisJaW50ICAg ICAgICAgICAgICAgICAgICAgIHZzcF9yeHE7CisJaW50ICAgICAgICAgICAgICAgICAgICAgIHZz cF90eHE7CisJdm9pZCAqICAgICAgICAgICAgICAgICAgIHZzcF9hcmc7CisJcGNpX3Z0Y29uX2Ni X3QgKiAgICAgICAgIHZzcF9jYjsKK307CisKK3N0cnVjdCBwY2lfdnRjb25fc29jaworeworCXN0 cnVjdCBwY2lfdnRjb25fcG9ydCAqICB2c3NfcG9ydDsKKwljb25zdCBjaGFyICogICAgICAgICAg ICAgdnNzX3BhdGg7CisJc3RydWN0IG1ldmVudCAqICAgICAgICAgIHZzc19zZXJ2ZXJfZXZwOwor CXN0cnVjdCBtZXZlbnQgKiAgICAgICAgICB2c3NfY29ubl9ldnA7CisJaW50ICAgICAgICAgICAg ICAgICAgICAgIHZzc19zZXJ2ZXJfZmQ7CisJaW50ICAgICAgICAgICAgICAgICAgICAgIHZzc19j b25uX2ZkOworCWJvb2wgICAgICAgICAgICAgICAgICAgICB2c3Nfb3BlbjsKK307CisKK3N0cnVj dCBwY2lfdnRjb25fc29mdGMgeworCXN0cnVjdCB2aXJ0aW9fc29mdGMgICAgICB2c2NfdnM7CisJ c3RydWN0IHZxdWV1ZV9pbmZvICAgICAgIHZzY19xdWV1ZXNbVlRDT05fTUFYUV07CisJcHRocmVh ZF9tdXRleF90ICAgICAgICAgIHZzY19tdHg7CisJdWludDY0X3QgICAgICAgICAgICAgICAgIHZz Y19jZmc7CisJdWludDY0X3QgICAgICAgICAgICAgICAgIHZzY19mZWF0dXJlczsKKwljaGFyICog ICAgICAgICAgICAgICAgICAgdnNjX3Jvb3RkaXI7CisJaW50ICAgICAgICAgICAgICAgICAgICAg IHZzY19rcTsKKwlpbnQgICAgICAgICAgICAgICAgICAgICAgdnNjX25wb3J0czsKKwlzdHJ1Y3Qg cGNpX3Z0Y29uX3BvcnQgICAgdnNjX2NvbnRyb2xfcG9ydDsKKyAJc3RydWN0IHBjaV92dGNvbl9w b3J0ICAgIHZzY19wb3J0c1tWVENPTl9NQVhQT1JUU107CisJc3RydWN0IHBjaV92dGNvbl9jb25m aWcgKnZzY19jb25maWc7Cit9OworCitzdHJ1Y3QgcGNpX3Z0Y29uX2NvbmZpZyB7CisJdWludDE2 X3QgY29sczsKKwl1aW50MTZfdCByb3dzOworCXVpbnQzMl90IG1heF9ucl9wb3J0czsKKwl1aW50 MzJfdCBlbWVyZ193cjsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0cnVjdCBwY2lf dnRjb25fY29udHJvbCB7CisJdWludDMyX3QgaWQ7CisJdWludDE2X3QgZXZlbnQ7CisJdWludDE2 X3QgdmFsdWU7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgcGNpX3Z0Y29u X2NvbnNvbGVfcmVzaXplIHsKKwl1aW50MTZfdCBjb2xzOworCXVpbnQxNl90IHJvd3M7Cit9IF9f YXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdGF0aWMgdm9pZCBwY2lfdnRjb25fcmVzZXQodm9p ZCAqKTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9ub3RpZnlfcngodm9pZCAqLCBzdHJ1Y3QgdnF1 ZXVlX2luZm8gKik7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25fbm90aWZ5X3R4KHZvaWQgKiwgc3Ry dWN0IHZxdWV1ZV9pbmZvICopOworc3RhdGljIGludCBwY2lfdnRjb25fY2ZncmVhZCh2b2lkICos IGludCwgaW50LCB1aW50MzJfdCAqKTsKK3N0YXRpYyBpbnQgcGNpX3Z0Y29uX2NmZ3dyaXRlKHZv aWQgKiwgaW50LCBpbnQsIHVpbnQzMl90KTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9uZWdfZmVh dHVyZXModm9pZCAqLCB1aW50NjRfdCk7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25fc29ja19hY2Nl cHQoaW50LCBlbnVtIGV2X3R5cGUsICB2b2lkICopOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX3Nv Y2tfcngoaW50LCBlbnVtIGV2X3R5cGUsIHZvaWQgKik7CitzdGF0aWMgdm9pZCBwY2lfdnRjb25f c29ja190eChzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKiwgdm9pZCAqLCBzdHJ1Y3QgaW92ZWMgKiwK KyAgICBpbnQpOworc3RhdGljIHZvaWQgcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChzdHJ1Y3QgcGNp X3Z0Y29uX3NvZnRjICosCisgICAgc3RydWN0IHBjaV92dGNvbl9jb250cm9sICosIGNvbnN0IHZv aWQgKiwgc2l6ZV90KTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9hbm5vdW5jZV9wb3J0KHN0cnVj dCBwY2lfdnRjb25fcG9ydCAqKTsKK3N0YXRpYyB2b2lkIHBjaV92dGNvbl9vcGVuX3BvcnQoc3Ry dWN0IHBjaV92dGNvbl9wb3J0ICosIGJvb2wpOworCitzdGF0aWMgc3RydWN0IHZpcnRpb19jb25z dHMgdnRjb25fdmlfY29uc3RzID0geworCSJ2dGNvbiIsCQkvKiBvdXIgbmFtZSAqLworCVZUQ09O X01BWFEsCQkvKiB3ZSBzdXBwb3J0IFZUQ09OX01BWFEgdmlydHF1ZXVlcyAqLworCXNpemVvZihz dHJ1Y3QgcGNpX3Z0Y29uX2NvbmZpZyksIC8qIGNvbmZpZyByZWcgc2l6ZSAqLworCXBjaV92dGNv bl9yZXNldCwJLyogcmVzZXQgKi8KKwlOVUxMLAkJCS8qIGRldmljZS13aWRlIHFub3RpZnkgKi8K KwlwY2lfdnRjb25fY2ZncmVhZCwJLyogcmVhZCB2aXJ0aW8gY29uZmlnICovCisJcGNpX3Z0Y29u X2NmZ3dyaXRlLAkvKiB3cml0ZSB2aXJ0aW8gY29uZmlnICovCisJcGNpX3Z0Y29uX25lZ19mZWF0 dXJlcywJLyogYXBwbHkgbmVnb3RpYXRlZCBmZWF0dXJlcyAqLworCVZUQ09OX1NfSE9TVENBUFMs CS8qIG91ciBjYXBhYmlsaXRpZXMgKi8KK307CisKKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9y ZXNldCh2b2lkICp2c2MpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2M7CisKKwlzYyA9 IHZzYzsKKworCURQUklOVEYoKCJ2dGNvbjogZGV2aWNlIHJlc2V0IHJlcXVlc3RlZCFcbiIpKTsK Kwl2aV9yZXNldF9kZXYoJnNjLT52c2NfdnMpOworfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29u X25lZ19mZWF0dXJlcyh2b2lkICp2c2MsIHVpbnQ2NF90IG5lZ290aWF0ZWRfZmVhdHVyZXMpCit7 CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2MgPSB2c2M7CisKKwlzYy0+dnNjX2ZlYXR1cmVz ID0gbmVnb3RpYXRlZF9mZWF0dXJlczsKK30KKworc3RhdGljIGludAorcGNpX3Z0Y29uX2NmZ3Jl YWQodm9pZCAqdnNjLCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdWludDMyX3QgKnJldHZhbCkKK3sK KwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYyA9IHZzYzsKKwl2b2lkICpwdHI7CisKKwlwdHIg PSAodWludDhfdCAqKXNjLT52c2NfY29uZmlnICsgb2Zmc2V0OworCW1lbWNweShyZXR2YWwsIHB0 ciwgc2l6ZSk7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAorcGNpX3Z0Y29uX2NmZ3dy aXRlKHZvaWQgKnZzYywgaW50IG9mZnNldCwgaW50IHNpemUsIHVpbnQzMl90IHZhbCkKK3sKKwor CXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBjaV92dGNvbl9wb3J0ICoK K3BjaV92dGNvbl92cV90b19wb3J0KHN0cnVjdCBwY2lfdnRjb25fc29mdGMgKnNjLCBzdHJ1Y3Qg dnF1ZXVlX2luZm8gKnZxKQoreworCXVpbnQxNl90IG51bSA9IHZxLT52cV9udW07CisKKwlpZiAo bnVtID09IDAgfHwgbnVtID09IDEpCisJCXJldHVybiAoJnNjLT52c2NfcG9ydHNbMF0pOworCisJ aWYgKG51bSA9PSAyIHx8IG51bSA9PSAzKQorCQlyZXR1cm4gKCZzYy0+dnNjX2NvbnRyb2xfcG9y dCk7CisKKwlyZXR1cm4gKCZzYy0+dnNjX3BvcnRzWyhudW0gLyAyKSAtIDFdKTsKK30KKworc3Rh dGljIGlubGluZSBzdHJ1Y3QgdnF1ZXVlX2luZm8gKgorcGNpX3Z0Y29uX3BvcnRfdG9fdnEoc3Ry dWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0LCBib29sIHR4X3F1ZXVlKQoreworCWludCBxbnVtOwor CisJcW51bSA9IHR4X3F1ZXVlID8gcG9ydC0+dnNwX3R4cSA6IHBvcnQtPnZzcF9yeHE7CisJcmV0 dXJuICgmcG9ydC0+dnNwX3NjLT52c2NfcXVldWVzW3FudW1dKTsKK30KKworc3RhdGljIHN0cnVj dCBwY2lfdnRjb25fcG9ydCAqCitwY2lfdnRjb25fcG9ydF9hZGQoc3RydWN0IHBjaV92dGNvbl9z b2Z0YyAqc2MsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgcGNpX3Z0Y29uX2NiX3QgKmNiLCB2b2lk ICphcmcpCit7CisJc3RydWN0IHBjaV92dGNvbl9wb3J0ICpwb3J0OworCisJaWYgKHNjLT52c2Nf bnBvcnRzID09IFZUQ09OX01BWFBPUlRTKSB7CisJCWVycm5vID0gRUJVU1k7CisJCXJldHVybiAo TlVMTCk7CisJfQorCisJcG9ydCA9ICZzYy0+dnNjX3BvcnRzW3NjLT52c2NfbnBvcnRzKytdOwor CXBvcnQtPnZzcF9pZCA9IHNjLT52c2NfbnBvcnRzIC0gMTsKKwlwb3J0LT52c3Bfc2MgPSBzYzsK Kwlwb3J0LT52c3BfbmFtZSA9IG5hbWU7CisJcG9ydC0+dnNwX2NiID0gY2I7CisJcG9ydC0+dnNw X2FyZyA9IGFyZzsKKworCWlmIChwb3J0LT52c3BfaWQgPT0gMCkgeworCQkvKiBwb3J0MCAqLwor CQlwb3J0LT52c3BfdHhxID0gMDsKKwkJcG9ydC0+dnNwX3J4cSA9IDE7CisJfSBlbHNlIHsKKwkJ cG9ydC0+dnNwX3R4cSA9IHNjLT52c2NfbnBvcnRzICogMjsKKwkJcG9ydC0+dnNwX3J4cSA9IHBv cnQtPnZzcF90eHEgKyAxOworCX0KKworCXBvcnQtPnZzcF9lbmFibGVkID0gdHJ1ZTsKKwlyZXR1 cm4gKHBvcnQpOworfQorCitzdGF0aWMgaW50CitwY2lfdnRjb25fc29ja19hZGQoc3RydWN0IHBj aV92dGNvbl9zb2Z0YyAqc2MsIGNvbnN0IGNoYXIgKm5hbWUsCisgICAgY29uc3QgY2hhciAqcGF0 aCkKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2sgKnNvY2s7CisJc3RydWN0IHNvY2thZGRyX3Vu IHN1bjsKKwlpbnQgcyA9IC0xLCBmZCA9IC0xLCBlcnJvciA9IDA7CisKKwlzb2NrID0gY2FsbG9j KDEsIHNpemVvZihzdHJ1Y3QgcGNpX3Z0Y29uX3NvY2spKTsKKwlpZiAoc29jayA9PSBOVUxMKSB7 CisJCWVycm9yID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCXMgPSBzb2NrZXQoQUZfVU5JWCwg U09DS19TVFJFQU0sIDApOworCWlmIChzIDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91 dDsKKwl9CisKKwlmZCA9IG9wZW4oZGlybmFtZShwYXRoKSwgT19SRE9OTFkgfCBPX0RJUkVDVE9S WSk7CisJaWYgKGZkIDwgMCkgeworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwlz dW4uc3VuX2ZhbWlseSA9IEFGX1VOSVg7CisJc3VuLnN1bl9sZW4gPSBzaXplb2Yoc3RydWN0IHNv Y2thZGRyX3VuKTsKKwlzdHJuY3B5KHN1bi5zdW5fcGF0aCwgYmFzZW5hbWUoKGNoYXIgKilwYXRo KSwgc2l6ZW9mKHN1bi5zdW5fcGF0aCkpOworCisJaWYgKGJpbmRhdChmZCwgcywgKHN0cnVjdCBz b2NrYWRkciAqKSZzdW4sIHN1bi5zdW5fbGVuKSA8IDApIHsKKwkJZXJyb3IgPSAtMTsKKwkJZ290 byBvdXQ7CisJfQorCisJaWYgKGZjbnRsKHMsIEZfU0VURkwsIE9fTk9OQkxPQ0spIDwgMCkgewor CQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAobGlzdGVuKHMsIDEpIDwgMCkg eworCQllcnJvciA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKworCXNvY2stPnZzc19wb3J0ID0g cGNpX3Z0Y29uX3BvcnRfYWRkKHNjLCBuYW1lLCBwY2lfdnRjb25fc29ja190eCwgc29jayk7CisJ aWYgKHNvY2stPnZzc19wb3J0ID09IE5VTEwpIHsKKwkJZXJyb3IgPSAtMTsKKwkJZ290byBvdXQ7 CisJfQorCisJc29jay0+dnNzX29wZW4gPSBmYWxzZTsKKwlzb2NrLT52c3NfY29ubl9mZCA9IC0x OworCXNvY2stPnZzc19zZXJ2ZXJfZmQgPSBzOworCXNvY2stPnZzc19zZXJ2ZXJfZXZwID0gbWV2 ZW50X2FkZChzLCBFVkZfUkVBRCwgcGNpX3Z0Y29uX3NvY2tfYWNjZXB0LAorCSAgICBzb2NrKTsK KworCWlmIChzb2NrLT52c3Nfc2VydmVyX2V2cCA9PSBOVUxMKSB7CisJCWVycm9yID0gLTE7CisJ CWdvdG8gb3V0OworCX0KKworb3V0OgorCWlmIChmZCAhPSAtMSkKKwkJY2xvc2UoZmQpOworCisJ aWYgKGVycm9yICE9IDAgJiYgcyAhPSAtMSkKKwkJY2xvc2Uocyk7CisKKwlyZXR1cm4gKGVycm9y KTsKK30KKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX2FjY2VwdChpbnQgZmQgX191bnVz ZWQsIGVudW0gZXZfdHlwZSB0IF9fdW51c2VkLCB2b2lkICphcmcpCit7CisJc3RydWN0IHBjaV92 dGNvbl9zb2NrICpzb2NrID0gKHN0cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsKKwlpbnQgczsK KworCXMgPSBhY2NlcHQoc29jay0+dnNzX3NlcnZlcl9mZCwgTlVMTCwgTlVMTCk7CisJaWYgKHMg PCAwKQorCQlyZXR1cm47CisKKwlpZiAoc29jay0+dnNzX29wZW4pIHsKKwkJY2xvc2Uocyk7CisJ CXJldHVybjsKKwl9CisKKwlzb2NrLT52c3Nfb3BlbiA9IHRydWU7CisJc29jay0+dnNzX2Nvbm5f ZmQgPSBzOworCXNvY2stPnZzc19jb25uX2V2cCA9IG1ldmVudF9hZGQocywgRVZGX1JFQUQsIHBj aV92dGNvbl9zb2NrX3J4LCBzb2NrKTsKKwlwY2lfdnRjb25fb3Blbl9wb3J0KHNvY2stPnZzc19w b3J0LCB0cnVlKTsKK30KKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9zb2NrX3J4KGludCBmZCBf X3VudXNlZCwgZW51bSBldl90eXBlIHQgX191bnVzZWQsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3Qg cGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisJc3RydWN0IHBjaV92dGNvbl9zb2NrICpzb2NrID0gKHN0 cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsKKwlzdHJ1Y3QgdnF1ZXVlX2luZm8gKnZxOworCXN0 cnVjdCBpb3ZlYyBpb3Y7CisJc3RhdGljIGNoYXIgZHVtbXlidWZbMjA0OF07CisJaW50IGxlbiwg bjsKKwl1aW50MTZfdCBpZHg7CisKKwlwb3J0ID0gc29jay0+dnNzX3BvcnQ7CisJdnEgPSBwY2lf dnRjb25fcG9ydF90b192cShwb3J0LCB0cnVlKTsKKworCWlmICghc29jay0+dnNzX29wZW4gfHwg IXBvcnQtPnZzcF9yeF9yZWFkeSkgeworCQlsZW4gPSByZWFkKHNvY2stPnZzc19jb25uX2ZkLCBk dW1teWJ1Ziwgc2l6ZW9mKGR1bW15YnVmKSk7CisJCWlmIChsZW4gPT0gMCkKKwkJCWdvdG8gY2xv c2U7CisKKwkJcmV0dXJuOworCX0KKworCWlmICghdnFfaGFzX2Rlc2NzKHZxKSkgeworCQlsZW4g PSByZWFkKHNvY2stPnZzc19jb25uX2ZkLCBkdW1teWJ1Ziwgc2l6ZW9mKGR1bW15YnVmKSk7CisJ CXZxX2VuZGNoYWlucyh2cSwgMSk7CisJCWlmIChsZW4gPT0gMCkKKwkJCWdvdG8gY2xvc2U7CisK KwkJcmV0dXJuOworCX0KKworCWRvIHsKKwkJbiA9IHZxX2dldGNoYWluKHZxLCAmaWR4LCAmaW92 LCAxLCBOVUxMKTsKKwkJbGVuID0gcmVhZHYoc29jay0+dnNzX2Nvbm5fZmQsICZpb3YsIG4pOwor CisJCWlmIChsZW4gPT0gMCB8fCAobGVuIDwgMCAmJiBlcnJubyA9PSBFV09VTERCTE9DSykpIHsK KwkJCXZxX3JldGNoYWluKHZxKTsKKwkJCXZxX2VuZGNoYWlucyh2cSwgMCk7CisJCQlpZiAobGVu ID09IDApCisJCQkJZ290byBjbG9zZTsKKworCQkJcmV0dXJuOworCQl9CisKKwkJdnFfcmVsY2hh aW4odnEsIGlkeCwgbGVuKTsKKwl9IHdoaWxlICh2cV9oYXNfZGVzY3ModnEpKTsKKworCXZxX2Vu ZGNoYWlucyh2cSwgMSk7CisKK2Nsb3NlOgorCW1ldmVudF9kZWxldGVfY2xvc2Uoc29jay0+dnNz X2Nvbm5fZXZwKTsKKwlzb2NrLT52c3NfY29ubl9mZCA9IC0xOworCXNvY2stPnZzc19vcGVuID0g ZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fc29ja190eChzdHJ1Y3QgcGNpX3Z0 Y29uX3BvcnQgKnBvcnQsIHZvaWQgKmFyZywgc3RydWN0IGlvdmVjICppb3YsCisgICAgaW50IG5p b3YpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2NrICpzb2NrOworCWludCByZXQ7CisKKwlzb2Nr ID0gKHN0cnVjdCBwY2lfdnRjb25fc29jayAqKWFyZzsKKworCWlmIChzb2NrLT52c3NfY29ubl9m ZCA9PSAtMSkKKwkJcmV0dXJuOworCisJcmV0ID0gd3JpdGV2KHNvY2stPnZzc19jb25uX2ZkLCBp b3YsIG5pb3YpOworCisJaWYgKHJldCA8IDAgJiYgZXJybm8gIT0gRVdPVUxEQkxPQ0spIHsKKwkJ bWV2ZW50X2RlbGV0ZV9jbG9zZShzb2NrLT52c3NfY29ubl9ldnApOworCQlzb2NrLT52c3NfY29u bl9mZCA9IC0xOworCQlzb2NrLT52c3Nfb3BlbiA9IGZhbHNlOworCX0KK30KKworc3RhdGljIHZv aWQKK3BjaV92dGNvbl9jb250cm9sX3R4KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9ydCwgdm9p ZCAqYXJnLCBzdHJ1Y3QgaW92ZWMgKmlvdiwKKyAgICBpbnQgbmlvdikKK3sKKwlzdHJ1Y3QgcGNp X3Z0Y29uX3NvZnRjICpzYzsKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnRtcDsKKwlzdHJ1Y3Qg cGNpX3Z0Y29uX2NvbnRyb2wgcmVzcCwgKmN0cmw7CisJaW50IGk7CisKKwlhc3NlcnQobmlvdiA9 PSAxKTsKKworCXNjID0gcG9ydC0+dnNwX3NjOworCWN0cmwgPSAoc3RydWN0IHBjaV92dGNvbl9j b250cm9sICopaW92LT5pb3ZfYmFzZTsKKworCXN3aXRjaCAoY3RybC0+ZXZlbnQpIHsKKwljYXNl IFZUQ09OX0RFVklDRV9SRUFEWToKKwkJLyogc2V0IHBvcnQgcmVhZHkgZXZlbnRzIGZvciByZWdp c3RlcmVkIHBvcnRzICovCisJCWZvciAoaSA9IDA7IGkgPCBWVENPTl9NQVhQT1JUUzsgaSsrKSB7 CisJCQl0bXAgPSAmc2MtPnZzY19wb3J0c1tpXTsKKwkJCWlmICh0bXAtPnZzcF9lbmFibGVkKQor CQkJCXBjaV92dGNvbl9hbm5vdW5jZV9wb3J0KHRtcCk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNl IFZUQ09OX1BPUlRfUkVBRFk6CisJCWlmIChjdHJsLT5pZCA+PSBzYy0+dnNjX25wb3J0cykgewor CQkJV1BSSU5URigoIlZUQ09OX1BPUlRfUkVBRFkgZXZlbnQgZm9yIHVua25vd24gcG9ydCAlZFxu IiwKKwkJCSAgICBjdHJsLT5pZCkpOworCQkJcmV0dXJuOworCQl9CisKKwkJdG1wID0gJnNjLT52 c2NfcG9ydHNbY3RybC0+aWRdOworCQlpZiAodG1wLT52c3BfY29uc29sZSkgeworCQkJcmVzcC5l dmVudCA9IFZUQ09OX0NPTlNPTEVfUE9SVDsKKwkJCXJlc3AuaWQgPSBjdHJsLT5pZDsKKwkJCXJl c3AudmFsdWUgPSAxOworCQkJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChzYywgJnJlc3AsIE5VTEws IDApOworCQl9CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQKK3BjaV92dGNvbl9hbm5v dW5jZV9wb3J0KHN0cnVjdCBwY2lfdnRjb25fcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgcGNpX3Z0 Y29uX2NvbnRyb2wgZXZlbnQ7CisKKwlldmVudC5pZCA9IHBvcnQtPnZzcF9pZDsKKwlldmVudC5l dmVudCA9IFZUQ09OX0RFVklDRV9BREQ7CisJZXZlbnQudmFsdWUgPSAxOworCXBjaV92dGNvbl9j b250cm9sX3NlbmQocG9ydC0+dnNwX3NjLCAmZXZlbnQsIE5VTEwsIDApOworCisJZXZlbnQuZXZl bnQgPSBWVENPTl9QT1JUX05BTUU7CisJcGNpX3Z0Y29uX2NvbnRyb2xfc2VuZChwb3J0LT52c3Bf c2MsICZldmVudCwgcG9ydC0+dnNwX25hbWUsCisJICAgIHN0cmxlbihwb3J0LT52c3BfbmFtZSkp OworfQorCitzdGF0aWMgdm9pZAorcGNpX3Z0Y29uX29wZW5fcG9ydChzdHJ1Y3QgcGNpX3Z0Y29u X3BvcnQgKnBvcnQsIGJvb2wgb3BlbikKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX2NvbnRyb2wgZXZl bnQ7CisKKwlldmVudC5pZCA9IHBvcnQtPnZzcF9pZDsKKwlldmVudC5ldmVudCA9IFZUQ09OX1BP UlRfT1BFTjsKKwlldmVudC52YWx1ZSA9IChpbnQpb3BlbjsKKwlwY2lfdnRjb25fY29udHJvbF9z ZW5kKHBvcnQtPnZzcF9zYywgJmV2ZW50LCBOVUxMLCAwKTsKK30KKworc3RhdGljIHZvaWQKK3Bj aV92dGNvbl9jb250cm9sX3NlbmQoc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2MsCisgICAgc3Ry dWN0IHBjaV92dGNvbl9jb250cm9sICpjdHJsLCBjb25zdCB2b2lkICpwYXlsb2FkLCBzaXplX3Qg bGVuKQoreworCXN0cnVjdCB2cXVldWVfaW5mbyAqdnE7CisJc3RydWN0IGlvdmVjIGlvdjsKKwl1 aW50MTZfdCBpZHg7CisJaW50IG47CisKKwl2cSA9IHBjaV92dGNvbl9wb3J0X3RvX3ZxKCZzYy0+ dnNjX2NvbnRyb2xfcG9ydCwgdHJ1ZSk7CisKKwlpZiAoIXZxX2hhc19kZXNjcyh2cSkpCisJCXJl dHVybjsKKworCW4gPSB2cV9nZXRjaGFpbih2cSwgJmlkeCwgJmlvdiwgMSwgTlVMTCk7CisKKwlh c3NlcnQobiA9PSAxKTsKKworCW1lbWNweShpb3YuaW92X2Jhc2UsIGN0cmwsIHNpemVvZihzdHJ1 Y3QgcGNpX3Z0Y29uX2NvbnRyb2wpKTsKKwlpZiAocGF5bG9hZCAhPSBOVUxMICYmIGxlbiA+IDAp CisJCW1lbWNweShpb3YuaW92X2Jhc2UgKyBzaXplb2Yoc3RydWN0IHBjaV92dGNvbl9jb250cm9s KSwKKwkJICAgICBwYXlsb2FkLCBsZW4pOworCisJdnFfcmVsY2hhaW4odnEsIGlkeCwgc2l6ZW9m KHN0cnVjdCBwY2lfdnRjb25fY29udHJvbCkgKyBsZW4pOworCXZxX2VuZGNoYWlucyh2cSwgMSk7 Cit9CisgICAgCisKK3N0YXRpYyB2b2lkCitwY2lfdnRjb25fbm90aWZ5X3R4KHZvaWQgKnZzYywg c3RydWN0IHZxdWV1ZV9pbmZvICp2cSkKK3sKKwlzdHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjICpzYzsK KwlzdHJ1Y3QgcGNpX3Z0Y29uX3BvcnQgKnBvcnQ7CisJc3RydWN0IGlvdmVjIGlvdlsxXTsKKwl1 aW50MTZfdCBpZHgsIG47CisJdWludDE2X3QgZmxhZ3NbOF07CisKKwlzYyA9IHZzYzsKKwlwb3J0 ID0gcGNpX3Z0Y29uX3ZxX3RvX3BvcnQoc2MsIHZxKTsKKworCXdoaWxlICh2cV9oYXNfZGVzY3Mo dnEpKSB7CisJCW4gPSB2cV9nZXRjaGFpbih2cSwgJmlkeCwgaW92LCAxLCBmbGFncyk7CisJCWlm IChwb3J0ICE9IE5VTEwpCisJCQlwb3J0LT52c3BfY2IocG9ydCwgcG9ydC0+dnNwX2FyZywgaW92 LCAxKTsKKworCQkvKgorCQkgKiBSZWxlYXNlIHRoaXMgY2hhaW4gYW5kIGhhbmRsZSBtb3JlCisJ CSAqLworCQl2cV9yZWxjaGFpbih2cSwgaWR4LCAwKTsKKwl9CisJdnFfZW5kY2hhaW5zKHZxLCAx KTsJLyogR2VuZXJhdGUgaW50ZXJydXB0IGlmIGFwcHJvcHJpYXRlLiAqLworfQorCitzdGF0aWMg dm9pZAorcGNpX3Z0Y29uX25vdGlmeV9yeCh2b2lkICp2c2MsIHN0cnVjdCB2cXVldWVfaW5mbyAq dnEpCit7CisJc3RydWN0IHBjaV92dGNvbl9zb2Z0YyAqc2M7CisJc3RydWN0IHBjaV92dGNvbl9w b3J0ICpwb3J0OworCisJc2MgPSB2c2M7CisJcG9ydCA9IHBjaV92dGNvbl92cV90b19wb3J0KHNj LCB2cSk7CisKKwlpZiAoIXBvcnQtPnZzcF9yeF9yZWFkeSkgeworCQlwb3J0LT52c3BfcnhfcmVh ZHkgPSAxOworCQl2cS0+dnFfdXNlZC0+dnVfZmxhZ3MgfD0gVlJJTkdfVVNFRF9GX05PX05PVElG WTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK3BjaV92dGNvbl9pbml0KHN0cnVjdCB2bWN0eCAqY3R4 LCBzdHJ1Y3QgcGNpX2Rldmluc3QgKnBpLCBjaGFyICpvcHRzKQoreworCXN0cnVjdCBwY2lfdnRj b25fc29mdGMgKnNjOworCWNoYXIgKnBvcnRuYW1lID0gTlVMTDsKKwljaGFyICpwb3J0cGF0aCA9 IE5VTEw7CisJY2hhciAqb3B0OworCWludCBpOwkKKworCXNjID0gY2FsbG9jKDEsIHNpemVvZihz dHJ1Y3QgcGNpX3Z0Y29uX3NvZnRjKSk7CisJc2MtPnZzY19jb25maWcgPSBjYWxsb2MoMSwgc2l6 ZW9mKHN0cnVjdCBwY2lfdnRjb25fY29uZmlnKSk7CisJc2MtPnZzY19jb25maWctPm1heF9ucl9w b3J0cyA9IFZUQ09OX01BWFBPUlRTOworCXNjLT52c2NfY29uZmlnLT5jb2xzID0gODA7CisJc2Mt PnZzY19jb25maWctPnJvd3MgPSAyNTsgCisKKwl2aV9zb2Z0Y19saW5rdXAoJnNjLT52c2NfdnMs ICZ2dGNvbl92aV9jb25zdHMsIHNjLCBwaSwgc2MtPnZzY19xdWV1ZXMpOworCXNjLT52c2NfdnMu dnNfbXR4ID0gJnNjLT52c2NfbXR4OworCisJZm9yIChpID0gMDsgaSA8IFZUQ09OX01BWFE7IGkr KykgeworCQlzYy0+dnNjX3F1ZXVlc1tpXS52cV9xc2l6ZSA9IFZUQ09OX1JJTkdTWjsKKwkJc2Mt PnZzY19xdWV1ZXNbaV0udnFfbm90aWZ5ID0gaSAlIDIgPT0gMAorCQkgICAgPyBwY2lfdnRjb25f bm90aWZ5X3J4CisJCSAgICA6IHBjaV92dGNvbl9ub3RpZnlfdHg7CisJfQorCisJLyogaW5pdGlh bGl6ZSBjb25maWcgc3BhY2UgKi8KKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJUl9ERVZJQ0Us IFZJUlRJT19ERVZfQ09OU09MRSk7CisJcGNpX3NldF9jZmdkYXRhMTYocGksIFBDSVJfVkVORE9S LCBWSVJUSU9fVkVORE9SKTsKKwlwY2lfc2V0X2NmZ2RhdGE4KHBpLCBQQ0lSX0NMQVNTLCBQQ0lD X1NJTVBMRUNPTU0pOworCXBjaV9zZXRfY2ZnZGF0YTE2KHBpLCBQQ0lSX1NVQkRFVl8wLCBWSVJU SU9fVFlQRV9DT05TT0xFKTsKKwlwY2lfc2V0X2NmZ2RhdGExNihwaSwgUENJUl9TVUJWRU5EXzAs IFZJUlRJT19WRU5ET1IpOworCisJaWYgKHZpX2ludHJfaW5pdCgmc2MtPnZzY192cywgMSwgZmJz ZHJ1bl92aXJ0aW9fbXNpeCgpKSkKKwkJcmV0dXJuICgxKTsKKwl2aV9zZXRfaW9fYmFyKCZzYy0+ dnNjX3ZzLCAwKTsKKworCS8qIGNyZWF0ZSBjb250cm9sIHBvcnQgKi8KKwlzYy0+dnNjX2NvbnRy b2xfcG9ydC52c3Bfc2MgPSBzYzsKKwlzYy0+dnNjX2NvbnRyb2xfcG9ydC52c3BfdHhxID0gMjsK KwlzYy0+dnNjX2NvbnRyb2xfcG9ydC52c3BfcnhxID0gMzsKKwlzYy0+dnNjX2NvbnRyb2xfcG9y dC52c3BfY2IgPSBwY2lfdnRjb25fY29udHJvbF90eDsKKwlzYy0+dnNjX2NvbnRyb2xfcG9ydC52 c3BfZW5hYmxlZCA9IHRydWU7CisKKwl3aGlsZSAoKG9wdCA9IHN0cnNlcCgmb3B0cywgIiwiKSkg IT0gTlVMTCkgeworCQlwb3J0bmFtZSA9IHN0cnNlcCgmb3B0LCAiPSIpOworCQlwb3J0cGF0aCA9 IHN0cmR1cChvcHQpOworCisJCS8qIGNyZWF0ZSBwb3J0ICovCisJCWlmIChwY2lfdnRjb25fc29j a19hZGQoc2MsIHBvcnRuYW1lLCBwb3J0cGF0aCkgPCAwKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwg ImNhbm5vdCBjcmVhdGUgcG9ydCAlczogJXNcbiIsCisJCQkgICAgcG9ydG5hbWUsIHN0cmVycm9y KGVycm5vKSk7CisJCQlyZXR1cm4gKDEpOworCQl9CisJfQorCisJcmV0dXJuICgwKTsKK30KKwor c3RydWN0IHBjaV9kZXZlbXUgcGNpX2RlX3Zjb24gPSB7CisJLnBlX2VtdSA9CSJ2aXJ0aW8tY29u c29sZSIsCisJLnBlX2luaXQgPQlwY2lfdnRjb25faW5pdCwKKwkucGVfYmFyd3JpdGUgPQl2aV9w Y2lfd3JpdGUsCisJLnBlX2JhcnJlYWQgPQl2aV9wY2lfcmVhZAorfTsKK1BDSV9FTVVMX1NFVChw Y2lfZGVfdmNvbik7CmRpZmYgLS1naXQgYS9oZWFkL3Vzci5zYmluL2JoeXZlL01ha2VmaWxlIGIv aGVhZC91c3Iuc2Jpbi9iaHl2ZS9NYWtlZmlsZQotLS0gYS9oZWFkL3Vzci5zYmluL2JoeXZlL01h a2VmaWxlCisrKyBiL2hlYWQvdXNyLnNiaW4vYmh5dmUvTWFrZWZpbGUKQEAgLTM2LDYgKzM2LDcg QEAKIAlwY2lfbHBjLmMJCVwKIAlwY2lfcGFzc3RocnUuYwkJXAogCXBjaV92aXJ0aW9fYmxvY2su YwlcCisJcGNpX3ZpcnRpb19jb25zb2xlLmMJXAogCXBjaV92aXJ0aW9fbmV0LmMJXAogCXBjaV92 aXJ0aW9fcm5kLmMJXAogCXBjaV91YXJ0LmMJCVwKCg== --b1_cdb8b977c385734b9760c191c9ddc9cd--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cdb8b977c385734b9760c191c9ddc9cd>