From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH] ioemu: cleaning DisplayState->dpy_resize interface Date: Fri, 06 Jun 2008 18:32:03 +0100 Message-ID: <48497493.6020506@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000101000708030005050906" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------000101000708030005050906 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi all, I am attaching a patch that brings the DisplayState dpy_resize interface back to how it is in qemu mainstream, thus making the code easier to merge. In order to support sharing the framebuffer, I am adding a new resize interface called dpy_resize_shared that also has a depth and a pixels parameters. As a consequence I could remove the dpy_colourdepth callback and make the code cleaner and easier to read. Best Regards, Stefano Stabellini Signed-off-by: Stefano Stabellini --------------000101000708030005050906 Content-Type: text/plain; name="ioemu-displaystate-interface" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ioemu-displaystate-interface" ZGlmZiAtciBiMzIwY2ZlMWYxMGYgdG9vbHMvaW9lbXUvY29jb2EubQotLS0gYS90b29scy9p b2VtdS9jb2NvYS5tCVRodSBKdW4gMDUgMTM6MDQ6MDcgMjAwOCArMDEwMAorKysgYi90b29s cy9pb2VtdS9jb2NvYS5tCUZyaSBKdW4gMDYgMTg6MDY6MDEgMjAwOCArMDEwMApAQCAtOTYs NyArOTYsNyBAQCBzdGF0aWMgdm9pZCBjb2NvYV91cGRhdGUoRGlzcGxheVN0YXRlICpkCiAg ICAgY29jb2FfcmVzaXplCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAqLwotc3RhdGljIHZvaWQgY29jb2FfcmVzaXplKERpc3Bs YXlTdGF0ZSAqZHMsIGludCB3LCBpbnQgaCwgaW50IGxpbmVzaXplKQorc3RhdGljIHZvaWQg Y29jb2FfcmVzaXplKERpc3BsYXlTdGF0ZSAqZHMsIGludCB3LCBpbnQgaCkKIHsKICAgICBj b25zdCBpbnQgZGV2aWNlX2JwcCA9IDMyOwogICAgIHN0YXRpYyB2b2lkICpzY3JlZW5fcGl4 ZWxzOwpkaWZmIC1yIGIzMjBjZmUxZjEwZiB0b29scy9pb2VtdS9ody9wbDExMC5jCi0tLSBh L3Rvb2xzL2lvZW11L2h3L3BsMTEwLmMJVGh1IEp1biAwNSAxMzowNDowNyAyMDA4ICswMTAw CisrKyBiL3Rvb2xzL2lvZW11L2h3L3BsMTEwLmMJRnJpIEp1biAwNiAxODowNjowMSAyMDA4 ICswMTAwCkBAIC0yNjIsNyArMjYyLDcgQEAgc3RhdGljIHZvaWQgcGwxMTBfcmVzaXplKHBs MTEwX3N0YXRlICpzLAogewogICAgIGlmICh3aWR0aCAhPSBzLT5jb2xzIHx8IGhlaWdodCAh PSBzLT5yb3dzKSB7CiAgICAgICAgIGlmIChwbDExMF9lbmFibGVkKHMpKSB7Ci0gICAgICAg ICAgICBkcHlfcmVzaXplKHMtPmRzLCB3aWR0aCwgaGVpZ2h0LCB3aWR0aCAqIDQpOworICAg ICAgICAgICAgZHB5X3Jlc2l6ZShzLT5kcywgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIH0K ICAgICB9CiAgICAgcy0+Y29scyA9IHdpZHRoOwpAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRp YyB2b2lkIHBsMTEwX3dyaXRlKHZvaWQgKm9wYXF1ZSwgdGEKICAgICAgICAgcy0+Y3IgPSB2 YWw7CiAgICAgICAgIHMtPmJwcCA9ICh2YWwgPj4gMSkgJiA3OwogICAgICAgICBpZiAocGwx MTBfZW5hYmxlZChzKSkgewotICAgICAgICAgICAgZHB5X3Jlc2l6ZShzLT5kcywgcy0+Y29s cywgcy0+cm93cywgcy0+Y29scyAqIDQpOworICAgICAgICAgICAgZHB5X3Jlc2l6ZShzLT5k cywgcy0+Y29scywgcy0+cm93cyk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg Y2FzZSAxMDogLyogTENESUNSICovCmRpZmYgLXIgYjMyMGNmZTFmMTBmIHRvb2xzL2lvZW11 L2h3L3RjeC5jCi0tLSBhL3Rvb2xzL2lvZW11L2h3L3RjeC5jCVRodSBKdW4gMDUgMTM6MDQ6 MDcgMjAwOCArMDEwMAorKysgYi90b29scy9pb2VtdS9ody90Y3guYwlGcmkgSnVuIDA2IDE4 OjA2OjAxIDIwMDggKzAxMDAKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lkIHRjeF9pbml0KERp c3BsYXlTdGF0ZSAqZHMsIHVpbnQzMl90CiAgICAgcmVnaXN0ZXJfc2F2ZXZtKCJ0Y3giLCBh ZGRyLCAxLCB0Y3hfc2F2ZSwgdGN4X2xvYWQsIHMpOwogICAgIHFlbXVfcmVnaXN0ZXJfcmVz ZXQodGN4X3Jlc2V0LCBzKTsKICAgICB0Y3hfcmVzZXQocyk7Ci0gICAgZHB5X3Jlc2l6ZShz LT5kcywgd2lkdGgsIGhlaWdodCwgd2lkdGggKiAxKTsKKyAgICBkcHlfcmVzaXplKHMtPmRz LCB3aWR0aCwgaGVpZ2h0KTsKIH0KIAogc3RhdGljIHZvaWQgdGN4X3NjcmVlbl9kdW1wKHZv aWQgKm9wYXF1ZSwgY29uc3QgY2hhciAqZmlsZW5hbWUpCmRpZmYgLXIgYjMyMGNmZTFmMTBm IHRvb2xzL2lvZW11L2h3L3ZnYS5jCi0tLSBhL3Rvb2xzL2lvZW11L2h3L3ZnYS5jCVRodSBK dW4gMDUgMTM6MDQ6MDcgMjAwOCArMDEwMAorKysgYi90b29scy9pb2VtdS9ody92Z2EuYwlG cmkgSnVuIDA2IDE4OjA2OjA5IDIwMDggKzAxMDAKQEAgLTEwNjUsNiArMTA2NSw4IEBAIHR5 cGVkZWYgdW5zaWduZWQgaW50IHJnYl90b19waXhlbF9kdXBfZnUKIAogc3RhdGljIHJnYl90 b19waXhlbF9kdXBfZnVuYyAqcmdiX3RvX3BpeGVsX2R1cF90YWJsZVtOQl9ERVBUSFNdOwog CitzdGF0aWMgaW50IG9sZF9kZXB0aCA9IDA7CisKIC8qIAogICogVGV4dCBtb2RlIHVwZGF0 ZSAKICAqIE1pc3Npbmc6CkBAIC0xMDg5LDQwICsxMDkxLDYgQEAgc3RhdGljIHZvaWQgdmdh X2RyYXdfdGV4dChWR0FTdGF0ZSAqcywgaQogICAgIC8qIERpc2FibGUgZGlydHkgYml0IHRy YWNraW5nICovCiAgICAgeGNfaHZtX3RyYWNrX2RpcnR5X3ZyYW0oeGNfaGFuZGxlLCBkb21p ZCwgMCwgMCwgTlVMTCk7CiAKLSAgICBpZiAocy0+ZHMtPmRweV9jb2xvdXJkZXB0aCAhPSBO VUxMICYmIHMtPmRzLT5kZXB0aCAhPSAwKQotICAgICAgICBzLT5kcy0+ZHB5X2NvbG91cmRl cHRoKHMtPmRzLCAwKTsKLSAgICBzLT5yZ2JfdG9fcGl4ZWwgPSAKLSAgICAgICAgcmdiX3Rv X3BpeGVsX2R1cF90YWJsZVtnZXRfZGVwdGhfaW5kZXgocy0+ZHMpXTsKLQotICAgIGZ1bGxf dXBkYXRlIHw9IHVwZGF0ZV9wYWxldHRlMTYocyk7Ci0gICAgcGFsZXR0ZSA9IHMtPmxhc3Rf cGFsZXR0ZTsKLSAgICAKLSAgICAvKiBjb21wdXRlIGZvbnQgZGF0YSBhZGRyZXNzIChpbiBw bGFuZSAyKSAqLwotICAgIHYgPSBzLT5zclszXTsKLSAgICBvZmZzZXQgPSAoKCh2ID4+IDQp ICYgMSkgfCAoKHYgPDwgMSkgJiA2KSkgKiA4MTkyICogNCArIDI7Ci0gICAgaWYgKG9mZnNl dCAhPSBzLT5mb250X29mZnNldHNbMF0pIHsKLSAgICAgICAgcy0+Zm9udF9vZmZzZXRzWzBd ID0gb2Zmc2V0OwotICAgICAgICBmdWxsX3VwZGF0ZSA9IDE7Ci0gICAgfQotICAgIGZvbnRf YmFzZVswXSA9IHMtPnZyYW1fcHRyICsgb2Zmc2V0OwotCi0gICAgb2Zmc2V0ID0gKCgodiA+ PiA1KSAmIDEpIHwgKCh2ID4+IDEpICYgNikpICogODE5MiAqIDQgKyAyOwotICAgIGZvbnRf YmFzZVsxXSA9IHMtPnZyYW1fcHRyICsgb2Zmc2V0OwotICAgIGlmIChvZmZzZXQgIT0gcy0+ Zm9udF9vZmZzZXRzWzFdKSB7Ci0gICAgICAgIHMtPmZvbnRfb2Zmc2V0c1sxXSA9IG9mZnNl dDsKLSAgICAgICAgZnVsbF91cGRhdGUgPSAxOwotICAgIH0KLSAgICBpZiAocy0+cGxhbmVf dXBkYXRlZCAmICgxIDw8IDIpKSB7Ci0gICAgICAgIC8qIGlmIHRoZSBwbGFuZSAyIHdhcyBt b2RpZmllZCBzaW5jZSB0aGUgbGFzdCBkaXNwbGF5LCBpdAotICAgICAgICAgICBpbmRpY2F0 ZXMgdGhlIGZvbnQgbWF5IGhhdmUgYmVlbiBtb2RpZmllZCAqLwotICAgICAgICBzLT5wbGFu ZV91cGRhdGVkID0gMDsKLSAgICAgICAgZnVsbF91cGRhdGUgPSAxOwotICAgIH0KLSAgICBm dWxsX3VwZGF0ZSB8PSB1cGRhdGVfYmFzaWNfcGFyYW1zKHMpOwotCi0gICAgbGluZV9vZmZz ZXQgPSBzLT5saW5lX29mZnNldDsKLSAgICBzMSA9IHMtPnZyYW1fcHRyICsgKHMtPnN0YXJ0 X2FkZHIgKiA0KTsKLQogICAgIC8qIHRvdGFsIHdpZHRoICYgaGVpZ2h0ICovCiAgICAgY2hl aWdodCA9IChzLT5jcls5XSAmIDB4MWYpICsgMTsKICAgICBjdyA9IDg7CkBAIC0xMTMwLDcg KzEwOTgsNiBAQCBzdGF0aWMgdm9pZCB2Z2FfZHJhd190ZXh0KFZHQVN0YXRlICpzLCBpCiAg ICAgICAgIGN3ID0gOTsKICAgICBpZiAocy0+c3JbMV0gJiAweDA4KQogICAgICAgICBjdyA9 IDE2OyAvKiBOT1RFOiBubyAxOCBwaXhlbCB3aWRlICovCi0gICAgeF9pbmNyID0gY3cgKiAo KHMtPmRzLT5kZXB0aCArIDcpID4+IDMpOwogICAgIHdpZHRoID0gKHMtPmNyWzB4MDFdICsg MSk7CiAgICAgaWYgKHMtPmNyWzB4MDZdID09IDEwMCkgewogICAgICAgICAvKiB1Z2x5IGhh Y2sgZm9yIENHQSAxNjB4MTAweDE2IC0gZXhwbGFpbiBtZSB0aGUgbG9naWMgKi8KQEAgLTEx NDYsMTcgKzExMTMsNTUgQEAgc3RhdGljIHZvaWQgdmdhX2RyYXdfdGV4dChWR0FTdGF0ZSAq cywgaQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKHdpZHRoICE9IHMtPmxh c3Rfd2lkdGggfHwgaGVpZ2h0ICE9IHMtPmxhc3RfaGVpZ2h0IHx8CisgICAgcy0+bGFzdF9z Y3Jfd2lkdGggPSB3aWR0aCAqIGN3OworICAgIHMtPmxhc3Rfc2NyX2hlaWdodCA9IGhlaWdo dCAqIGNoZWlnaHQ7CisgICAgaWYgKHMtPmRzLT5kcHlfcmVzaXplX3NoYXJlZCAmJiBvbGRf ZGVwdGgpIHsKKyAgICAgICAgZHB5X3Jlc2l6ZV9zaGFyZWQocy0+ZHMsIHMtPmxhc3Rfc2Ny X3dpZHRoLCBzLT5sYXN0X3Njcl9oZWlnaHQsIDAsIHMtPmxhc3Rfc2NyX3dpZHRoICogKHMt PmRzLT5kZXB0aCAvIDgpLCBOVUxMKTsKKyAgICAgICAgb2xkX2RlcHRoID0gMDsKKyAgICAg ICAgZnVsbF91cGRhdGUgPSAxOworICAgIH0gZWxzZSBpZiAod2lkdGggIT0gcy0+bGFzdF93 aWR0aCB8fCBoZWlnaHQgIT0gcy0+bGFzdF9oZWlnaHQgfHwKICAgICAgICAgY3cgIT0gcy0+ bGFzdF9jdyB8fCBjaGVpZ2h0ICE9IHMtPmxhc3RfY2gpIHsKLSAgICAgICAgcy0+bGFzdF9z Y3Jfd2lkdGggPSB3aWR0aCAqIGN3OwotICAgICAgICBzLT5sYXN0X3Njcl9oZWlnaHQgPSBo ZWlnaHQgKiBjaGVpZ2h0OwotICAgICAgICBkcHlfcmVzaXplKHMtPmRzLCBzLT5sYXN0X3Nj cl93aWR0aCwgcy0+bGFzdF9zY3JfaGVpZ2h0LCBzLT5sYXN0X3Njcl93aWR0aCAqIChzLT5k cy0+ZGVwdGggLyA4KSk7Ci0gICAgICAgIHMtPmxhc3Rfd2lkdGggPSB3aWR0aDsKLSAgICAg ICAgcy0+bGFzdF9oZWlnaHQgPSBoZWlnaHQ7Ci0gICAgICAgIHMtPmxhc3RfY2ggPSBjaGVp Z2h0OwotICAgICAgICBzLT5sYXN0X2N3ID0gY3c7CisgICAgICAgIGRweV9yZXNpemUocy0+ ZHMsIHMtPmxhc3Rfc2NyX3dpZHRoLCBzLT5sYXN0X3Njcl9oZWlnaHQpOwogICAgICAgICBm dWxsX3VwZGF0ZSA9IDE7CiAgICAgfQorICAgIHMtPmxhc3Rfd2lkdGggPSB3aWR0aDsKKyAg ICBzLT5sYXN0X2hlaWdodCA9IGhlaWdodDsKKyAgICBzLT5sYXN0X2NoID0gY2hlaWdodDsK KyAgICBzLT5sYXN0X2N3ID0gY3c7CisKKyAgICBzLT5yZ2JfdG9fcGl4ZWwgPSAKKyAgICAg ICAgcmdiX3RvX3BpeGVsX2R1cF90YWJsZVtnZXRfZGVwdGhfaW5kZXgocy0+ZHMpXTsKKwor ICAgIGZ1bGxfdXBkYXRlIHw9IHVwZGF0ZV9wYWxldHRlMTYocyk7CisgICAgcGFsZXR0ZSA9 IHMtPmxhc3RfcGFsZXR0ZTsKKyAgICAKKyAgICB4X2luY3IgPSBjdyAqICgocy0+ZHMtPmRl cHRoICsgNykgPj4gMyk7CisgICAgLyogY29tcHV0ZSBmb250IGRhdGEgYWRkcmVzcyAoaW4g cGxhbmUgMikgKi8KKyAgICB2ID0gcy0+c3JbM107CisgICAgb2Zmc2V0ID0gKCgodiA+PiA0 KSAmIDEpIHwgKCh2IDw8IDEpICYgNikpICogODE5MiAqIDQgKyAyOworICAgIGlmIChvZmZz ZXQgIT0gcy0+Zm9udF9vZmZzZXRzWzBdKSB7CisgICAgICAgIHMtPmZvbnRfb2Zmc2V0c1sw XSA9IG9mZnNldDsKKyAgICAgICAgZnVsbF91cGRhdGUgPSAxOworICAgIH0KKyAgICBmb250 X2Jhc2VbMF0gPSBzLT52cmFtX3B0ciArIG9mZnNldDsKKworICAgIG9mZnNldCA9ICgoKHYg Pj4gNSkgJiAxKSB8ICgodiA+PiAxKSAmIDYpKSAqIDgxOTIgKiA0ICsgMjsKKyAgICBmb250 X2Jhc2VbMV0gPSBzLT52cmFtX3B0ciArIG9mZnNldDsKKyAgICBpZiAob2Zmc2V0ICE9IHMt PmZvbnRfb2Zmc2V0c1sxXSkgeworICAgICAgICBzLT5mb250X29mZnNldHNbMV0gPSBvZmZz ZXQ7CisgICAgICAgIGZ1bGxfdXBkYXRlID0gMTsKKyAgICB9CisgICAgaWYgKHMtPnBsYW5l X3VwZGF0ZWQgJiAoMSA8PCAyKSkgeworICAgICAgICAvKiBpZiB0aGUgcGxhbmUgMiB3YXMg bW9kaWZpZWQgc2luY2UgdGhlIGxhc3QgZGlzcGxheSwgaXQKKyAgICAgICAgICAgaW5kaWNh dGVzIHRoZSBmb250IG1heSBoYXZlIGJlZW4gbW9kaWZpZWQgKi8KKyAgICAgICAgcy0+cGxh bmVfdXBkYXRlZCA9IDA7CisgICAgICAgIGZ1bGxfdXBkYXRlID0gMTsKKyAgICB9CisgICAg ZnVsbF91cGRhdGUgfD0gdXBkYXRlX2Jhc2ljX3BhcmFtcyhzKTsKKworICAgIGxpbmVfb2Zm c2V0ID0gcy0+bGluZV9vZmZzZXQ7CisgICAgczEgPSBzLT52cmFtX3B0ciArIChzLT5zdGFy dF9hZGRyICogNCk7CisKICAgICBjdXJzb3Jfb2Zmc2V0ID0gKChzLT5jclsweDBlXSA8PCA4 KSB8IHMtPmNyWzB4MGZdKSAtIHMtPnN0YXJ0X2FkZHI7CiAgICAgaWYgKGN1cnNvcl9vZmZz ZXQgIT0gcy0+Y3Vyc29yX29mZnNldCB8fAogICAgICAgICBzLT5jclsweGFdICE9IHMtPmN1 cnNvcl9zdGFydCB8fApAQCAtMTUwMSwxNiArMTUwNiw2IEBAIHN0YXRpYyB2b2lkIHZnYV9k cmF3X2dyYXBoaWMoVkdBU3RhdGUgKnMKICAgICBzLT5nZXRfcmVzb2x1dGlvbihzLCAmd2lk dGgsICZoZWlnaHQpOwogICAgIGRpc3Bfd2lkdGggPSB3aWR0aDsKIAotICAgIGRzX2RlcHRo ID0gcy0+ZHMtPmRlcHRoOwotICAgIGRlcHRoID0gcy0+Z2V0X2JwcChzKTsKLSAgICBpZiAo cy0+ZHMtPmRweV9jb2xvdXJkZXB0aCAhPSBOVUxMICYmIAotICAgICAgICAgICAgKGRzX2Rl cHRoICE9IGRlcHRoIHx8ICFzLT5kcy0+c2hhcmVkX2J1ZikpCi0gICAgICAgIHMtPmRzLT5k cHlfY29sb3VyZGVwdGgocy0+ZHMsIGRlcHRoKTsKLSAgICBpZiAoZHNfZGVwdGggIT0gcy0+ ZHMtPmRlcHRoKSBmdWxsX3VwZGF0ZSA9IDE7Ci0KLSAgICBzLT5yZ2JfdG9fcGl4ZWwgPSAK LSAgICAgICAgcmdiX3RvX3BpeGVsX2R1cF90YWJsZVtnZXRfZGVwdGhfaW5kZXgocy0+ZHMp XTsKLQogICAgIHNoaWZ0X2NvbnRyb2wgPSAocy0+Z3JbMHgwNV0gPj4gNSkgJiAzOwogICAg IGRvdWJsZV9zY2FuID0gKHMtPmNyWzB4MDldID4+IDcpOwogICAgIGlmIChzaGlmdF9jb250 cm9sICE9IDEpIHsKQEAgLTE1MjcsMTIgKzE1MjIsNDQgQEAgc3RhdGljIHZvaWQgdmdhX2Ry YXdfZ3JhcGhpYyhWR0FTdGF0ZSAqcwogICAgICAgICBzLT5zaGlmdF9jb250cm9sID0gc2hp ZnRfY29udHJvbDsKICAgICAgICAgcy0+ZG91YmxlX3NjYW4gPSBkb3VibGVfc2NhbjsKICAg ICB9Ci0gICAgCisgICAgaWYgKHNoaWZ0X2NvbnRyb2wgPT0gMSAmJiAocy0+c3JbMHgwMV0g JiA4KSkgeworICAgICAgICBkaXNwX3dpZHRoIDw8PSAxOworICAgIH0KKworICAgIGRzX2Rl cHRoID0gcy0+ZHMtPmRlcHRoOworICAgIGRlcHRoID0gcy0+Z2V0X2JwcChzKTsKKyAgICBp ZiAocy0+ZHMtPmRweV9yZXNpemVfc2hhcmVkKSB7CisgICAgICAgIGlmIChzLT5saW5lX29m ZnNldCAhPSBzLT5sYXN0X2xpbmVfb2Zmc2V0IHx8IAorICAgICAgICAgICAgZGlzcF93aWR0 aCAhPSBzLT5sYXN0X3dpZHRoIHx8CisgICAgICAgICAgICBoZWlnaHQgIT0gcy0+bGFzdF9o ZWlnaHQgfHwKKyAgICAgICAgICAgIG9sZF9kZXB0aCAhPSBkZXB0aCkgeworICAgICAgICAg ICAgZHB5X3Jlc2l6ZV9zaGFyZWQocy0+ZHMsIGRpc3Bfd2lkdGgsIGhlaWdodCwgZGVwdGgs IHMtPmxpbmVfb2Zmc2V0LCBzLT52cmFtX3B0ciArIChzLT5zdGFydF9hZGRyICogNCkpOwor ICAgICAgICAgICAgcy0+bGFzdF9zY3Jfd2lkdGggPSBkaXNwX3dpZHRoOworICAgICAgICAg ICAgcy0+bGFzdF9zY3JfaGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAgcy0+bGFzdF93 aWR0aCA9IGRpc3Bfd2lkdGg7CisgICAgICAgICAgICBzLT5sYXN0X2hlaWdodCA9IGhlaWdo dDsKKyAgICAgICAgICAgIHMtPmxhc3RfbGluZV9vZmZzZXQgPSBzLT5saW5lX29mZnNldDsK KyAgICAgICAgICAgIG9sZF9kZXB0aCA9IGRlcHRoOworICAgICAgICAgICAgZnVsbF91cGRh dGUgPSAxOworICAgICAgICB9IGVsc2UgaWYgKHMtPmRzLT5zaGFyZWRfYnVmICYmIChmdWxs X3VwZGF0ZSB8fCBzLT5kcy0+ZGF0YSAhPSBzLT52cmFtX3B0ciArIChzLT5zdGFydF9hZGRy ICogNCkpKQorICAgICAgICAgICAgcy0+ZHMtPmRweV9zZXRkYXRhKHMtPmRzLCBzLT52cmFt X3B0ciArIChzLT5zdGFydF9hZGRyICogNCkpOworICAgIH0gZWxzZSBpZiAoZGlzcF93aWR0 aCAhPSBzLT5sYXN0X3dpZHRoIHx8CisgICAgICAgICAgICAgICBoZWlnaHQgIT0gcy0+bGFz dF9oZWlnaHQpIHsKKyAgICAgICAgZHB5X3Jlc2l6ZShzLT5kcywgZGlzcF93aWR0aCwgaGVp Z2h0KTsKKyAgICAgICAgcy0+bGFzdF9zY3Jfd2lkdGggPSBkaXNwX3dpZHRoOworICAgICAg ICBzLT5sYXN0X3Njcl9oZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHMtPmxhc3Rfd2lkdGgg PSBkaXNwX3dpZHRoOworICAgICAgICBzLT5sYXN0X2hlaWdodCA9IGhlaWdodDsKKyAgICAg ICAgZnVsbF91cGRhdGUgPSAxOworICAgIH0KKworICAgIHMtPnJnYl90b19waXhlbCA9IAor ICAgICAgICByZ2JfdG9fcGl4ZWxfZHVwX3RhYmxlW2dldF9kZXB0aF9pbmRleChzLT5kcyld OworCiAgICAgaWYgKHNoaWZ0X2NvbnRyb2wgPT0gMCkgewogICAgICAgICBmdWxsX3VwZGF0 ZSB8PSB1cGRhdGVfcGFsZXR0ZTE2KHMpOwogICAgICAgICBpZiAocy0+c3JbMHgwMV0gJiA4 KSB7CiAgICAgICAgICAgICB2ID0gVkdBX0RSQVdfTElORTREMjsKLSAgICAgICAgICAgIGRp c3Bfd2lkdGggPDw9IDE7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB2ID0gVkdB X0RSQVdfTElORTQ7CiAgICAgICAgIH0KQEAgLTE1NDEsNyArMTU2OCw2IEBAIHN0YXRpYyB2 b2lkIHZnYV9kcmF3X2dyYXBoaWMoVkdBU3RhdGUgKnMKICAgICAgICAgZnVsbF91cGRhdGUg fD0gdXBkYXRlX3BhbGV0dGUxNihzKTsKICAgICAgICAgaWYgKHMtPnNyWzB4MDFdICYgOCkg ewogICAgICAgICAgICAgdiA9IFZHQV9EUkFXX0xJTkUyRDI7Ci0gICAgICAgICAgICBkaXNw X3dpZHRoIDw8PSAxOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdiA9IFZHQV9E UkFXX0xJTkUyOwogICAgICAgICB9CkBAIC0xNTc5LDE5ICsxNjA1LDYgQEAgc3RhdGljIHZv aWQgdmdhX2RyYXdfZ3JhcGhpYyhWR0FTdGF0ZSAqcwogICAgIH0KIAogICAgIHZnYV9kcmF3 X2xpbmUgPSB2Z2FfZHJhd19saW5lX3RhYmxlW3YgKiBOQl9ERVBUSFMgKyBnZXRfZGVwdGhf aW5kZXgocy0+ZHMpXTsKLSAgICBpZiAocy0+bGluZV9vZmZzZXQgIT0gcy0+bGFzdF9saW5l X29mZnNldCB8fCAKLSAgICAgICAgZGlzcF93aWR0aCAhPSBzLT5sYXN0X3dpZHRoIHx8Ci0g ICAgICAgIGhlaWdodCAhPSBzLT5sYXN0X2hlaWdodCkgewotICAgICAgICBkcHlfcmVzaXpl KHMtPmRzLCBkaXNwX3dpZHRoLCBoZWlnaHQsIHMtPmxpbmVfb2Zmc2V0KTsKLSAgICAgICAg cy0+bGFzdF9zY3Jfd2lkdGggPSBkaXNwX3dpZHRoOwotICAgICAgICBzLT5sYXN0X3Njcl9o ZWlnaHQgPSBoZWlnaHQ7Ci0gICAgICAgIHMtPmxhc3Rfd2lkdGggPSBkaXNwX3dpZHRoOwot ICAgICAgICBzLT5sYXN0X2hlaWdodCA9IGhlaWdodDsKLSAgICAgICAgcy0+bGFzdF9saW5l X29mZnNldCA9IHMtPmxpbmVfb2Zmc2V0OyAKLSAgICAgICAgZnVsbF91cGRhdGUgPSAxOwot ICAgIH0KLSAgICBpZiAocy0+ZHMtPnNoYXJlZF9idWYgJiYgKGZ1bGxfdXBkYXRlIHx8IHMt PmRzLT5kYXRhICE9IHMtPnZyYW1fcHRyICsgKHMtPnN0YXJ0X2FkZHIgKiA0KSkpCi0gICAg ICAgIHMtPmRzLT5kcHlfc2V0ZGF0YShzLT5kcywgcy0+dnJhbV9wdHIgKyAocy0+c3RhcnRf YWRkciAqIDQpKTsKICAgICBpZiAoIXMtPmRzLT5zaGFyZWRfYnVmICYmIHMtPmN1cnNvcl9p bnZhbGlkYXRlKQogICAgICAgICBzLT5jdXJzb3JfaW52YWxpZGF0ZShzKTsKICAgICAKQEAg LTIzMTEsNyArMjMyNCw3IEBAIHN0YXRpYyB2b2lkIHZnYV9zYXZlX2RweV91cGRhdGUoRGlz cGxheVMKIHsKIH0KIAotc3RhdGljIHZvaWQgdmdhX3NhdmVfZHB5X3Jlc2l6ZShEaXNwbGF5 U3RhdGUgKnMsIGludCB3LCBpbnQgaCwgaW50IGxpbmVzaXplKQorc3RhdGljIHZvaWQgdmdh X3NhdmVfZHB5X3Jlc2l6ZShEaXNwbGF5U3RhdGUgKnMsIGludCB3LCBpbnQgaCkKIHsKICAg ICBzLT5saW5lc2l6ZSA9IHcgKiA0OwogICAgIHMtPmRhdGEgPSBxZW11X21hbGxvYyhoICog cy0+bGluZXNpemUpOwpkaWZmIC1yIGIzMjBjZmUxZjEwZiB0b29scy9pb2VtdS9ody94ZW5m Yi5jCi0tLSBhL3Rvb2xzL2lvZW11L2h3L3hlbmZiLmMJVGh1IEp1biAwNSAxMzowNDowNyAy MDA4ICswMTAwCisrKyBiL3Rvb2xzL2lvZW11L2h3L3hlbmZiLmMJRnJpIEp1biAwNiAxODow NjowOSAyMDA4ICswMTAwCkBAIC01ODcsMTAgKzU4NywxMCBAQCBzdGF0aWMgdm9pZCB4ZW5m Yl9vbl9mYl9ldmVudChzdHJ1Y3QgeGVuCiAJCQkJCSAgICAgICBldmVudC0+cmVzaXplLm9m ZnNldCwKIAkJCQkJICAgICAgIGV2ZW50LT5yZXNpemUuc3RyaWRlKSA8IDApCiAJCQkJYnJl YWs7Ci0JCQlkcHlfY29sb3VyZGVwdGgoeGVuZmItPmRzLCB4ZW5mYi0+ZGVwdGgpOwotCQkJ ZHB5X3Jlc2l6ZSh4ZW5mYi0+ZHMsIHhlbmZiLT53aWR0aCwgeGVuZmItPmhlaWdodCwgeGVu ZmItPnJvd19zdHJpZGUpOwotCQkJaWYgKHhlbmZiLT5kcy0+c2hhcmVkX2J1ZikKLQkJCQlk cHlfc2V0ZGF0YSh4ZW5mYi0+ZHMsIHhlbmZiLT5waXhlbHMgKyB4ZW5mYi0+b2Zmc2V0KTsK KwkJCWlmICh4ZW5mYi0+ZHMtPmRweV9yZXNpemVfc2hhcmVkKQorCQkJICAgIGRweV9yZXNp emVfc2hhcmVkKHhlbmZiLT5kcywgeGVuZmItPndpZHRoLCB4ZW5mYi0+aGVpZ2h0LCB4ZW5m Yi0+ZGVwdGgsIHhlbmZiLT5yb3dfc3RyaWRlLCB4ZW5mYi0+cGl4ZWxzICsgeGVuZmItPm9m ZnNldCk7CisJCQllbHNlCisJCQkgICAgZHB5X3Jlc2l6ZSh4ZW5mYi0+ZHMsIHhlbmZiLT53 aWR0aCwgeGVuZmItPmhlaWdodCk7CiAJCQl4ZW5mYl9pbnZhbGlkYXRlKHhlbmZiKTsKIAkJ CWJyZWFrOwogCQl9CkBAIC0xMzI0LDEwICsxMzI0LDEwIEBAIHN0YXRpYyBpbnQgeGVuZmJf cmVnaXN0ZXJfY29uc29sZShzdHJ1Y3QKIAkJCSAgICAgeGVuZmJfaW52YWxpZGF0ZSwKIAkJ CSAgICAgeGVuZmJfc2NyZWVuX2R1bXAsCiAJCQkgICAgIHhlbmZiKTsKLQlkcHlfY29sb3Vy ZGVwdGgoeGVuZmItPmRzLCB4ZW5mYi0+ZGVwdGgpOwotICAgICAgICBkcHlfcmVzaXplKHhl bmZiLT5kcywgeGVuZmItPndpZHRoLCB4ZW5mYi0+aGVpZ2h0LCB4ZW5mYi0+cm93X3N0cmlk ZSk7Ci0JaWYgKHhlbmZiLT5kcy0+c2hhcmVkX2J1ZikKLQkgICAgZHB5X3NldGRhdGEoeGVu ZmItPmRzLCB4ZW5mYi0+cGl4ZWxzKTsKKyAgICAgICAgaWYgKHhlbmZiLT5kcy0+ZHB5X3Jl c2l6ZV9zaGFyZWQpCisgICAgICAgICAgICBkcHlfcmVzaXplX3NoYXJlZCh4ZW5mYi0+ZHMs IHhlbmZiLT53aWR0aCwgeGVuZmItPmhlaWdodCwgeGVuZmItPmRlcHRoLCB4ZW5mYi0+cm93 X3N0cmlkZSwgeGVuZmItPnBpeGVscyArIHhlbmZiLT5vZmZzZXQpOworICAgICAgICBlbHNl CisgICAgICAgICAgICBkcHlfcmVzaXplKHhlbmZiLT5kcywgeGVuZmItPndpZHRoLCB4ZW5m Yi0+aGVpZ2h0KTsKIAogCWlmIChxZW11X3NldF9mZF9oYW5kbGVyMih4Y19ldnRjaG5fZmQo eGVuZmItPmV2dF94Y2gpLCBOVUxMLCB4ZW5mYl9kaXNwYXRjaF9jaGFubmVsLCBOVUxMLCB4 ZW5mYikgPCAwKQogCSAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTM1Myw2ICsxMzUzLDggQEAg c3RhdGljIGNoYXIgKmtiZF9wYXRoLCAqZmJfcGF0aDsKIAogc3RhdGljIHVuc2lnbmVkIGNo YXIgbGludXgyc2NhbmNvZGVbS0VZX01BWCArIDFdOwogCitzdGF0aWMgdm9pZCB4ZW5mYl9w dl9jb2xvdXJkZXB0aChEaXNwbGF5U3RhdGUgKmRzLCBpbnQgZGVwdGgpOworCiBpbnQgeGVu ZmJfY29ubmVjdF92a2JkKGNvbnN0IGNoYXIgKnBhdGgpCiB7CiAgICAga2JkX3BhdGggPSBz dHJkdXAocGF0aCk7CkBAIC0xMzc0LDExICsxMzc2LDEzIEBAIHN0YXRpYyB2b2lkIHhlbmZi X3B2X3VwZGF0ZShEaXNwbGF5U3RhdGUKICAgICBmYmZyb250X3VwZGF0ZShmYl9kZXYsIHgs IHksIHcsIGgpOwogfQogCi1zdGF0aWMgdm9pZCB4ZW5mYl9wdl9yZXNpemUoRGlzcGxheVN0 YXRlICpkcywgaW50IHcsIGludCBoLCBpbnQgbGluZXNpemUpCitzdGF0aWMgdm9pZCB4ZW5m Yl9wdl9yZXNpemVfc2hhcmVkKERpc3BsYXlTdGF0ZSAqZHMsIGludCB3LCBpbnQgaCwgaW50 IGRlcHRoLCBpbnQgbGluZXNpemUsIHZvaWQgKnBpeGVscykKIHsKICAgICBYZW5GQlN0YXRl ICp4cyA9IGRzLT5vcGFxdWU7CiAgICAgc3RydWN0IGZiZnJvbnRfZGV2ICpmYl9kZXYgPSB4 cy0+ZmJfZGV2OworICAgIGludCBvZmZzZXQ7CiAgICAgZnByaW50ZihzdGRlcnIsInJlc2l6 ZSB0byAlZHglZCwgJWQgcmVxdWlyZWRcbiIsIHcsIGgsIGxpbmVzaXplKTsKKyAgICB4ZW5m Yl9wdl9jb2xvdXJkZXB0aChkcywgZGVwdGgpOwogICAgIGRzLT53aWR0aCA9IHc7CiAgICAg ZHMtPmhlaWdodCA9IGg7CiAgICAgaWYgKCFsaW5lc2l6ZSkKQEAgLTEzODksMTEgKzEzOTMs MTggQEAgc3RhdGljIHZvaWQgeGVuZmJfcHZfcmVzaXplKERpc3BsYXlTdGF0ZQogICAgIGlm ICghZmJfZGV2KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGRzLT5zaGFyZWRfYnVmKSB7 Ci0gICAgICAgIGRzLT5kYXRhID0gTlVMTDsKKyAgICAgICAgb2Zmc2V0ID0gcGl4ZWxzIC0g eHMtPnZnYV92cmFtOworICAgICAgICBkcy0+ZGF0YSA9IHBpeGVsczsKKyAgICAgICAgZmJm cm9udF9yZXNpemUoZmJfZGV2LCBkcy0+d2lkdGgsIGRzLT5oZWlnaHQsIGRzLT5saW5lc2l6 ZSwgZHMtPmRlcHRoLCBvZmZzZXQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRzLT5kYXRh ID0geHMtPm5vbnNoYXJlZF92cmFtOwogICAgICAgICBmYmZyb250X3Jlc2l6ZShmYl9kZXYs IHcsIGgsIGxpbmVzaXplLCBkcy0+ZGVwdGgsIFZHQV9SQU1fU0laRSk7CiAgICAgfQorfQor CitzdGF0aWMgdm9pZCB4ZW5mYl9wdl9yZXNpemUoRGlzcGxheVN0YXRlICpkcywgaW50IHcs IGludCBoKQoreworICAgIHhlbmZiX3B2X3Jlc2l6ZV9zaGFyZWQoZHMsIHcsIGgsIDAsIDAs IE5VTEwpOwogfQogCiBzdGF0aWMgdm9pZCB4ZW5mYl9wdl9jb2xvdXJkZXB0aChEaXNwbGF5 U3RhdGUgKmRzLCBpbnQgZGVwdGgpCkBAIC0xNDE4LDcgKzE0MjksNiBAQCBzdGF0aWMgdm9p ZCB4ZW5mYl9wdl9jb2xvdXJkZXB0aChEaXNwbGF5CiAgICAgICAgIGRzLT5kYXRhID0gTlVM TDsKICAgICB9IGVsc2UgewogICAgICAgICBkcy0+ZGF0YSA9IHhzLT5ub25zaGFyZWRfdnJh bTsKLSAgICAgICAgZmJmcm9udF9yZXNpemUoZmJfZGV2LCBkcy0+d2lkdGgsIGRzLT5oZWln aHQsIGRzLT5saW5lc2l6ZSwgZHMtPmRlcHRoLCBWR0FfUkFNX1NJWkUpOwogICAgIH0KIH0K IApAQCAtMTU5Nyw3ICsxNjA3LDcgQEAgaW50IHhlbmZiX3B2X2Rpc3BsYXlfaW5pdChEaXNw bGF5U3RhdGUgKgogICAgIGRzLT5saW5lc2l6ZSA9IDY0MCAqIDQ7CiAgICAgZHMtPmRweV91 cGRhdGUgPSB4ZW5mYl9wdl91cGRhdGU7CiAgICAgZHMtPmRweV9yZXNpemUgPSB4ZW5mYl9w dl9yZXNpemU7Ci0gICAgZHMtPmRweV9jb2xvdXJkZXB0aCA9IHhlbmZiX3B2X2NvbG91cmRl cHRoOworICAgIGRzLT5kcHlfcmVzaXplX3NoYXJlZCA9IHhlbmZiX3B2X3Jlc2l6ZV9zaGFy ZWQ7CiAgICAgZHMtPmRweV9zZXRkYXRhID0geGVuZmJfcHZfc2V0ZGF0YTsKICAgICBkcy0+ ZHB5X3JlZnJlc2ggPSB4ZW5mYl9wdl9yZWZyZXNoOwogICAgIHJldHVybiAwOwpkaWZmIC1y IGIzMjBjZmUxZjEwZiB0b29scy9pb2VtdS9zZGwuYwotLS0gYS90b29scy9pb2VtdS9zZGwu YwlUaHUgSnVuIDA1IDEzOjA0OjA3IDIwMDggKzAxMDAKKysrIGIvdG9vbHMvaW9lbXUvc2Rs LmMJRnJpIEp1biAwNiAxODowNjowMSAyMDA4ICswMTAwCkBAIC01MCw2ICs1MCw4IEBAIHN0 YXRpYyBpbnQgYWJzb2x1dGVfZW5hYmxlZCA9IDA7CiBzdGF0aWMgaW50IGFic29sdXRlX2Vu YWJsZWQgPSAwOwogc3RhdGljIGludCBvcGVuZ2xfZW5hYmxlZDsKIAorc3RhdGljIHZvaWQg c2RsX2NvbG91cmRlcHRoKERpc3BsYXlTdGF0ZSAqZHMsIGludCBkZXB0aCk7CisKICNpZmRl ZiBDT05GSUdfT1BFTkdMCiBzdGF0aWMgR0xpbnQgdGV4X2Zvcm1hdDsKIHN0YXRpYyBHTGlu dCB0ZXhfdHlwZTsKQEAgLTIxMSwxMSArMjEzLDEzIEBAIHN0YXRpYyB2b2lkIHNkbF9zZXRk YXRhKERpc3BsYXlTdGF0ZSAqZHMKICAgICBkcy0+ZGF0YSA9IHBpeGVsczsKIH0KIAotc3Rh dGljIHZvaWQgc2RsX3Jlc2l6ZShEaXNwbGF5U3RhdGUgKmRzLCBpbnQgdywgaW50IGgsIGlu dCBsaW5lc2l6ZSkKK3N0YXRpYyB2b2lkIHNkbF9yZXNpemVfc2hhcmVkKERpc3BsYXlTdGF0 ZSAqZHMsIGludCB3LCBpbnQgaCwgaW50IGRlcHRoLCBpbnQgbGluZXNpemUsIHZvaWQgKnBp eGVscykKIHsKICAgICBpbnQgZmxhZ3M7CiAKICAgICAvLyAgICBwcmludGYoInJlc2l6aW5n IHRvICVkICVkXG4iLCB3LCBoKTsKKworICAgIHNkbF9jb2xvdXJkZXB0aChkcywgZGVwdGgp OwogCiAjaWZkZWYgQ09ORklHX09QRU5HTAogICAgIGlmIChkcy0+c2hhcmVkX2J1ZiAmJiBv cGVuZ2xfZW5hYmxlZCkKQEAgLTI0NSw3ICsyNDksOCBAQCBzdGF0aWMgdm9pZCBzZGxfcmVz aXplKERpc3BsYXlTdGF0ZSAqZHMsCiAgICAgICAgICAgICBvcGVuZ2xfZW5hYmxlZCA9IDA7 CiAgICAgICAgICAgICBkcy0+ZHB5X3VwZGF0ZSA9IHNkbF91cGRhdGU7CiAgICAgICAgICAg ICBkcy0+ZHB5X3NldGRhdGEgPSBzZGxfc2V0ZGF0YTsKLSAgICAgICAgICAgIHNkbF9yZXNp emUoZHMsIHcsIGgsIGxpbmVzaXplKTsKKyAgICAgICAgICAgIGRzLT5kcHlfcmVzaXplX3No YXJlZCA9IHNkbF9yZXNpemVfc2hhcmVkOworICAgICAgICAgICAgc2RsX3Jlc2l6ZV9zaGFy ZWQoZHMsIHcsIGgsIGRlcHRoLCBsaW5lc2l6ZSwgcGl4ZWxzKTsKICAgICAgICAgICAgIHJl dHVybjsKICAgICAgICAgfQogICAgICAgICBleGl0KDEpOwpAQCAtMjcyLDYgKzI3Nyw3IEBA IHN0YXRpYyB2b2lkIHNkbF9yZXNpemUoRGlzcGxheVN0YXRlICpkcywKICAgICAgICAgfSBl bHNlIHsKICAgICAgICAgICAgIGRzLT5iZ3IgPSAwOwogICAgICAgICB9CisgICAgICAgIHNo YXJlZCA9IE5VTEw7CiAgICAgICAgIGRzLT5kYXRhID0gc2NyZWVuLT5waXhlbHM7CiAgICAg ICAgIGRzLT5saW5lc2l6ZSA9IHNjcmVlbi0+cGl0Y2g7CiAgICAgfSBlbHNlIHsKQEAgLTI5 NiwyMSArMzAyLDI2IEBAIHN0YXRpYyB2b2lkIHNkbF9yZXNpemUoRGlzcGxheVN0YXRlICpk cywKICAgICAgICAgfTsKICNlbmRpZgogICAgIH0KKyAgICBpZiAoZHMtPnNoYXJlZF9idWYp IGRzLT5kcHlfc2V0ZGF0YShkcywgcGl4ZWxzKTsKK30KKworc3RhdGljIHZvaWQgc2RsX3Jl c2l6ZShEaXNwbGF5U3RhdGUgKmRzLCBpbnQgdywgaW50IGgpCit7CisgICAgc2RsX3Jlc2l6 ZV9zaGFyZWQoZHMsIHcsIGgsIDAsIHcgKiAoZHMtPmRlcHRoIC8gOCksIE5VTEwpOwogfQog CiBzdGF0aWMgdm9pZCBzZGxfY29sb3VyZGVwdGgoRGlzcGxheVN0YXRlICpkcywgaW50IGRl cHRoKQogewogICAgIGlmICghZGVwdGggfHwgIWRzLT5kZXB0aCkgewogICAgICAgICBkcy0+ c2hhcmVkX2J1ZiA9IDA7CisgICAgICAgIGRzLT5kcHlfdXBkYXRlID0gc2RsX3VwZGF0ZTsK ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBkcy0+c2hhcmVkX2J1ZiA9IDE7CiAgICAg ZHMtPmRlcHRoID0gZGVwdGg7Ci0gICAgZHMtPmxpbmVzaXplID0gd2lkdGggKiBkZXB0aCAv IDg7CiAjaWZkZWYgQ09ORklHX09QRU5HTAogICAgIGlmIChvcGVuZ2xfZW5hYmxlZCkgewog ICAgICAgICBkcy0+ZHB5X3VwZGF0ZSA9IG9wZW5nbF91cGRhdGU7Ci0gICAgICAgIGRzLT5k cHlfc2V0ZGF0YSA9IG9wZW5nbF9zZXRkYXRhOwogICAgIH0KICNlbmRpZgogfQpAQCAtNTE3 LDggKzUyOCw3IEBAIHN0YXRpYyB2b2lkIHRvZ2dsZV9mdWxsX3NjcmVlbihEaXNwbGF5U3QK IHN0YXRpYyB2b2lkIHRvZ2dsZV9mdWxsX3NjcmVlbihEaXNwbGF5U3RhdGUgKmRzKQogewog ICAgIGd1aV9mdWxsc2NyZWVuID0gIWd1aV9mdWxsc2NyZWVuOwotICAgIHNkbF9yZXNpemUo ZHMsIGRzLT53aWR0aCwgZHMtPmhlaWdodCwgZHMtPmxpbmVzaXplKTsKLSAgICBkcy0+ZHB5 X3NldGRhdGEoZHMsIGRzLT5kYXRhKTsKKyAgICBzZGxfcmVzaXplX3NoYXJlZChkcywgZHMt PndpZHRoLCBkcy0+aGVpZ2h0LCBkcy0+ZGVwdGgsIGRzLT5saW5lc2l6ZSwgZHMtPmRhdGEp OwogICAgIGlmIChndWlfZnVsbHNjcmVlbikgewogICAgICAgICBndWlfc2F2ZWRfZ3JhYiA9 IGd1aV9ncmFiOwogICAgICAgICBzZGxfZ3JhYl9zdGFydCgpOwpAQCAtNzYwLDExICs3NzAs MTYgQEAgdm9pZCBzZGxfZGlzcGxheV9pbml0KERpc3BsYXlTdGF0ZSAqZHMsIAogCiAgICAg ZHMtPmRweV91cGRhdGUgPSBzZGxfdXBkYXRlOwogICAgIGRzLT5kcHlfcmVzaXplID0gc2Rs X3Jlc2l6ZTsKKyAgICBkcy0+ZHB5X3Jlc2l6ZV9zaGFyZWQgPSBzZGxfcmVzaXplX3NoYXJl ZDsKICAgICBkcy0+ZHB5X3JlZnJlc2ggPSBzZGxfcmVmcmVzaDsKLSAgICBkcy0+ZHB5X2Nv bG91cmRlcHRoID0gc2RsX2NvbG91cmRlcHRoOwotICAgIGRzLT5kcHlfc2V0ZGF0YSA9IHNk bF9zZXRkYXRhOwotCi0gICAgc2RsX3Jlc2l6ZShkcywgNjQwLCA0MDAsIDY0MCAqIDQpOwor I2lmZGVmIENPTkZJR19PUEVOR0wKKyAgICBpZiAob3BlbmdsX2VuYWJsZWQpCisgICAgICAg IGRzLT5kcHlfc2V0ZGF0YSA9IG9wZW5nbF9zZXRkYXRhOworICAgIGVsc2UKKyAgICAgICAg ZHMtPmRweV9zZXRkYXRhID0gc2RsX3NldGRhdGE7CisjZW5kaWYKKworICAgIHNkbF9yZXNp emUoZHMsIDY0MCwgNDAwKTsKICAgICBzZGxfdXBkYXRlX2NhcHRpb24oKTsKICAgICBTRExf RW5hYmxlS2V5UmVwZWF0KDI1MCwgNTApOwogICAgIFNETF9FbmFibGVVTklDT0RFKDEpOwpk aWZmIC1yIGIzMjBjZmUxZjEwZiB0b29scy9pb2VtdS92bC5jCi0tLSBhL3Rvb2xzL2lvZW11 L3ZsLmMJVGh1IEp1biAwNSAxMzowNDowNyAyMDA4ICswMTAwCisrKyBiL3Rvb2xzL2lvZW11 L3ZsLmMJRnJpIEp1biAwNiAxODowNjowMSAyMDA4ICswMTAwCkBAIC00NDYzLDcgKzQ0NjMs NiBAQCB2b2lkIGR1bWJfZGlzcGxheV9pbml0KERpc3BsYXlTdGF0ZSAqZHMpCiAgICAgZHMt PmRlcHRoID0gMDsKICAgICBkcy0+ZHB5X3VwZGF0ZSA9IGR1bWJfdXBkYXRlOwogICAgIGRz LT5kcHlfcmVzaXplID0gZHVtYl9yZXNpemU7Ci0gICAgZHMtPmRweV9jb2xvdXJkZXB0aCA9 IE5VTEw7CiAgICAgZHMtPmRweV9yZWZyZXNoID0gZHVtYl9yZWZyZXNoOwogICAgIGRzLT5n dWlfdGltZXJfaW50ZXJ2YWwgPSA1MDA7CiAgICAgZHMtPmlkbGUgPSAxOwpkaWZmIC1yIGIz MjBjZmUxZjEwZiB0b29scy9pb2VtdS92bC5oCi0tLSBhL3Rvb2xzL2lvZW11L3ZsLmgJVGh1 IEp1biAwNSAxMzowNDowNyAyMDA4ICswMTAwCisrKyBiL3Rvb2xzL2lvZW11L3ZsLmgJRnJp IEp1biAwNiAxODowNjowMSAyMDA4ICswMTAwCkBAIC05NDUsOSArOTQ1LDkgQEAgc3RydWN0 IERpc3BsYXlTdGF0ZSB7CiAgICAgaW50IHNoYXJlZF9idWY7CiAgICAgCiAgICAgdm9pZCAo KmRweV91cGRhdGUpKHN0cnVjdCBEaXNwbGF5U3RhdGUgKnMsIGludCB4LCBpbnQgeSwgaW50 IHcsIGludCBoKTsKLSAgICB2b2lkICgqZHB5X3Jlc2l6ZSkoc3RydWN0IERpc3BsYXlTdGF0 ZSAqcywgaW50IHcsIGludCBoLCBpbnQgbGluZXNpemUpOwotICAgIHZvaWQgKCpkcHlfY29s b3VyZGVwdGgpKHN0cnVjdCBEaXNwbGF5U3RhdGUgKnMsIGludCBkZXB0aCk7CisgICAgdm9p ZCAoKmRweV9yZXNpemUpKHN0cnVjdCBEaXNwbGF5U3RhdGUgKnMsIGludCB3LCBpbnQgaCk7 CiAgICAgdm9pZCAoKmRweV9zZXRkYXRhKShEaXNwbGF5U3RhdGUgKnMsIHZvaWQgKnBpeGVs cyk7CisgICAgdm9pZCAoKmRweV9yZXNpemVfc2hhcmVkKShEaXNwbGF5U3RhdGUgKnMsIGlu dCB3LCBpbnQgaCwgaW50IGRlcHRoLCBpbnQgbGluZXNpemUsIHZvaWQgKnBpeGVscyk7CiAg ICAgdm9pZCAoKmRweV9yZWZyZXNoKShzdHJ1Y3QgRGlzcGxheVN0YXRlICpzKTsKICAgICB2 b2lkICgqZHB5X2NvcHkpKHN0cnVjdCBEaXNwbGF5U3RhdGUgKnMsIGludCBzcmNfeCwgaW50 IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHcsIGludCBoKTsKIH07CkBAIC05 NTcsMTQgKzk1NywxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHB5X3VwZGF0ZShEaXNwbGF5 U3RhCiAgICAgcy0+ZHB5X3VwZGF0ZShzLCB4LCB5LCB3LCBoKTsKIH0KIAotc3RhdGljIGlu bGluZSB2b2lkIGRweV9yZXNpemUoRGlzcGxheVN0YXRlICpzLCBpbnQgdywgaW50IGgsIGlu dCBsaW5lc2l6ZSkKLXsKLSAgICBzLT5kcHlfcmVzaXplKHMsIHcsIGgsIGxpbmVzaXplKTsK LX0KLQotc3RhdGljIGlubGluZSB2b2lkIGRweV9jb2xvdXJkZXB0aChzdHJ1Y3QgRGlzcGxh eVN0YXRlICpzLCBpbnQgZGVwdGgpCi17Ci0gICAgcy0+ZHB5X2NvbG91cmRlcHRoKHMsIGRl cHRoKTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcHlfcmVzaXplKERpc3BsYXlTdGF0ZSAqcywg aW50IHcsIGludCBoKQoreworICAgIHMtPmRweV9yZXNpemUocywgdywgaCk7Cit9CisKK3N0 YXRpYyBpbmxpbmUgdm9pZCBkcHlfcmVzaXplX3NoYXJlZChEaXNwbGF5U3RhdGUgKnMsIGlu dCB3LCBpbnQgaCwgaW50IGRlcHRoLCBpbnQgbGluZXNpemUsIHZvaWQgKnBpeGVscykKK3sK KyAgICBzLT5kcHlfcmVzaXplX3NoYXJlZChzLCB3LCBoLCBkZXB0aCwgbGluZXNpemUsIHBp eGVscyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBkcHlfc2V0ZGF0YShEaXNwbGF5U3Rh dGUgKnMsIHZvaWQgKnBpeGVscykKZGlmZiAtciBiMzIwY2ZlMWYxMGYgdG9vbHMvaW9lbXUv dm5jLmMKLS0tIGEvdG9vbHMvaW9lbXUvdm5jLmMJVGh1IEp1biAwNSAxMzowNDowNyAyMDA4 ICswMTAwCisrKyBiL3Rvb2xzL2lvZW11L3ZuYy5jCUZyaSBKdW4gMDYgMTg6MDY6MDEgMjAw OCArMDEwMApAQCAtMjc3LDYgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIGRlcXVldWVfZnJhbWVi dWZmZXJfdXBkYXRlKFYKIHN0YXRpYyB2b2lkIGRlcXVldWVfZnJhbWVidWZmZXJfdXBkYXRl KFZuY1N0YXRlICp2cyk7CiBzdGF0aWMgaW50IGlzX2VtcHR5X3F1ZXVlKFZuY1N0YXRlICp2 cyk7CiBzdGF0aWMgdm9pZCBmcmVlX3F1ZXVlKFZuY1N0YXRlICp2cyk7CitzdGF0aWMgdm9p ZCB2bmNfY29sb3VyZGVwdGgoRGlzcGxheVN0YXRlICpkcywgaW50IGRlcHRoKTsKIAogI2lm IDAKIHN0YXRpYyBpbmxpbmUgdm9pZCB2bmNfc2V0X2JpdCh1aW50MzJfdCAqZCwgaW50IGsp CkBAIC0zNjMsMTMgKzM2NCwxNCBAQCBzdGF0aWMgdm9pZCB2bmNfZnJhbWVidWZmZXJfdXBk YXRlKFZuY1N0CiAgICAgdm5jX3dyaXRlX3MzMih2cywgZW5jb2RpbmcpOwogfQogCi1zdGF0 aWMgdm9pZCB2bmNfZHB5X3Jlc2l6ZShEaXNwbGF5U3RhdGUgKmRzLCBpbnQgdywgaW50IGgs IGludCBsaW5lc2l6ZSkKK3N0YXRpYyB2b2lkIHZuY19kcHlfcmVzaXplX3NoYXJlZChEaXNw bGF5U3RhdGUgKmRzLCBpbnQgdywgaW50IGgsIGludCBkZXB0aCwgaW50IGxpbmVzaXplLCB2 b2lkICpwaXhlbHMpCiB7CiAgICAgc3RhdGljIGludCBhbGxvY2F0ZWQ7CiAgICAgaW50IHNp emVfY2hhbmdlZDsKICAgICBWbmNTdGF0ZSAqdnMgPSBkcy0+b3BhcXVlOwogICAgIGludCBv OwogCisgICAgdm5jX2NvbG91cmRlcHRoKGRzLCBkZXB0aCk7CiAgICAgaWYgKCFkcy0+c2hh cmVkX2J1ZikgewogICAgICAgICBkcy0+bGluZXNpemUgPSB3ICogdnMtPmRlcHRoOwogICAg ICAgICBpZiAoYWxsb2NhdGVkKQpAQCAtNDE5LDYgKzQyMSwxMiBAQCBzdGF0aWMgdm9pZCB2 bmNfZHB5X3Jlc2l6ZShEaXNwbGF5U3RhdGUgCiAgICAgZm9yIChvID0gRElSVFlfUElYRUxf QklUUzsgbyA8IGRzLT53aWR0aDsgbyAqPSAyKQogCXZzLT5kaXJ0eV9waXhlbF9zaGlmdCsr OwogICAgIGZyYW1lYnVmZmVyX3NldF91cGRhdGVkKHZzLCAwLCAwLCBkcy0+d2lkdGgsIGRz LT5oZWlnaHQpOworICAgIGlmIChkcy0+c2hhcmVkX2J1ZikgZHMtPmRhdGEgPSBwaXhlbHM7 Cit9CisKK3N0YXRpYyB2b2lkIHZuY19kcHlfcmVzaXplKERpc3BsYXlTdGF0ZSAqZHMsIGlu dCB3LCBpbnQgaCkKK3sKKyAgICB2bmNfZHB5X3Jlc2l6ZV9zaGFyZWQoZHMsIHcsIGgsIDAs IHcgKiAoZHMtPmRlcHRoIC8gOCksIE5VTEwpOwogfQogCiAvKiBmYXN0ZXN0IGNvZGUgKi8K QEAgLTE2NDAsNyArMTY0OCw3IEBAIHN0YXRpYyB2b2lkIHZuY19kcHlfc2V0ZGF0YShEaXNw bGF5U3RhdGUKICAgICBkcy0+ZGF0YSA9IHBpeGVsczsKIH0KIAotc3RhdGljIHZvaWQgdm5j X2RweV9jb2xvdXJkZXB0aChEaXNwbGF5U3RhdGUgKmRzLCBpbnQgZGVwdGgpCitzdGF0aWMg dm9pZCB2bmNfY29sb3VyZGVwdGgoRGlzcGxheVN0YXRlICpkcywgaW50IGRlcHRoKQogewog ICAgIGludCBob3N0X2JpZ19lbmRpYW5fZmxhZzsKICAgICBzdHJ1Y3QgVm5jU3RhdGUgKnZz ID0gZHMtPm9wYXF1ZTsKQEAgLTE3NDIsOCArMTc1MCw2IEBAIHN0YXRpYyB2b2lkIHZuY19k cHlfY29sb3VyZGVwdGgoRGlzcGxheVMKICAgICAgICAgICAgIHZzLT53cml0ZV9waXhlbHMg PSB2bmNfd3JpdGVfcGl4ZWxzX2dlbmVyaWM7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICB2 bmNfZHB5X3Jlc2l6ZShkcywgZHMtPndpZHRoLCBkcy0+aGVpZ2h0LCBkcy0+bGluZXNpemUp OwogfQogCiBzdGF0aWMgaW50IHByb3RvY29sX2NsaWVudF9tc2coVm5jU3RhdGUgKnZzLCB1 aW50OF90ICpkYXRhLCBzaXplX3QgbGVuKQpAQCAtMjUwMiwxNCArMjUwOCwxNCBAQCB2b2lk IHZuY19kaXNwbGF5X2luaXQoRGlzcGxheVN0YXRlICpkcykKICAgICB2cy0+ZHMtPmRhdGEg PSBOVUxMOwogICAgIHZzLT5kcy0+ZHB5X3VwZGF0ZSA9IHZuY19kcHlfdXBkYXRlOwogICAg IHZzLT5kcy0+ZHB5X3Jlc2l6ZSA9IHZuY19kcHlfcmVzaXplOwotICAgIHZzLT5kcy0+ZHB5 X2NvbG91cmRlcHRoID0gdm5jX2RweV9jb2xvdXJkZXB0aDsKICAgICB2cy0+ZHMtPmRweV9z ZXRkYXRhID0gdm5jX2RweV9zZXRkYXRhOworICAgIHZzLT5kcy0+ZHB5X3Jlc2l6ZV9zaGFy ZWQgPSB2bmNfZHB5X3Jlc2l6ZV9zaGFyZWQ7CiAgICAgdnMtPmRzLT5kcHlfcmVmcmVzaCA9 IHZuY19kcHlfcmVmcmVzaDsKIAogICAgIHZzLT5kcy0+d2lkdGggPSA2NDA7CiAgICAgdnMt PmRzLT5oZWlnaHQgPSA0MDA7CiAgICAgdnMtPmRzLT5saW5lc2l6ZSA9IDY0MCAqIDQ7Ci0g ICAgdm5jX2RweV9jb2xvdXJkZXB0aCh2cy0+ZHMsIDI0KTsKKyAgICB2bmNfZHB5X3Jlc2l6 ZV9zaGFyZWQoZHMsIGRzLT53aWR0aCwgZHMtPmhlaWdodCwgMjQsIGRzLT5saW5lc2l6ZSwg TlVMTCk7CiB9CiAKICNpZiBDT05GSUdfVk5DX1RMUwo= --------------000101000708030005050906 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------000101000708030005050906--