From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH] [UPDATE] secondary consoles in minos Date: Tue, 16 Jun 2009 16:38:53 +0100 Message-ID: <4A37BC8D.8020703@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030802000708070100040502" 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 List-Id: xen-devel@lists.xenproject.org --------------030802000708070100040502 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi all, this is an updated version of the patch "secondary consoles in minos" that didn't apply cleanly the first time. Signed-off-by: Stefano Stabellini --------------030802000708070100040502 Content-Type: text/plain; name="sec_console_minios" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="sec_console_minios" ZGlmZiAtciBlNWRiODJmMTJkMzIgZXh0cmFzL21pbmktb3MvY29uc29sZS9jb25zb2xlLmMK LS0tIGEvZXh0cmFzL21pbmktb3MvY29uc29sZS9jb25zb2xlLmMJVHVlIEp1biAxNiAxNjow NToxNyAyMDA5ICswMTAwCisrKyBiL2V4dHJhcy9taW5pLW9zL2NvbnNvbGUvY29uc29sZS5j CVR1ZSBKdW4gMTYgMTY6MDU6MjQgMjAwOSArMDEwMApAQCAtNzYsMTEgKzc2LDExIEBACiAj ZW5kaWYKIAogCi12b2lkIGNvbnNvbGVfcHJpbnQoY2hhciAqZGF0YSwgaW50IGxlbmd0aCkK K3ZvaWQgY29uc29sZV9wcmludChzdHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2LCBjaGFyICpk YXRhLCBpbnQgbGVuZ3RoKQogewogICAgIGNoYXIgKmN1cnJfY2hhciwgc2F2ZWRfY2hhcjsK ICAgICBpbnQgcGFydF9sZW47Ci0gICAgaW50ICgqcmluZ19zZW5kX2ZuKShjb25zdCBjaGFy ICpkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIGludCAoKnJpbmdfc2VuZF9mbikoc3Ry dWN0IGNvbnNmcm9udF9kZXYgKmRldiwgY29uc3QgY2hhciAqZGF0YSwgdW5zaWduZWQgbGVu Z3RoKTsKIAogICAgIGlmKCFjb25zb2xlX2luaXRpYWxpc2VkKQogICAgICAgICByaW5nX3Nl bmRfZm4gPSB4ZW5jb25zX3Jpbmdfc2VuZF9ub19ub3RpZnk7CkBAIC05NCwxNyArOTQsMTcg QEAKICAgICAgICAgICAgIHNhdmVkX2NoYXIgPSAqKGN1cnJfY2hhcisxKTsKICAgICAgICAg ICAgICooY3Vycl9jaGFyKzEpID0gJ1xyJzsKICAgICAgICAgICAgIHBhcnRfbGVuID0gY3Vy cl9jaGFyIC0gZGF0YSArIDI7Ci0gICAgICAgICAgICByaW5nX3NlbmRfZm4oZGF0YSwgcGFy dF9sZW4pOworICAgICAgICAgICAgcmluZ19zZW5kX2ZuKGRldiwgZGF0YSwgcGFydF9sZW4p OwogICAgICAgICAgICAgKihjdXJyX2NoYXIrMSkgPSBzYXZlZF9jaGFyOwogICAgICAgICAg ICAgZGF0YSA9IGN1cnJfY2hhcisxOwogICAgICAgICAgICAgbGVuZ3RoIC09IHBhcnRfbGVu IC0gMTsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICByaW5nX3NlbmRfZm4oZGF0YSwg bGVuZ3RoKTsKKyAgICByaW5nX3NlbmRfZm4oZGV2LCBkYXRhLCBsZW5ndGgpOwogICAgIAog ICAgIGlmKGRhdGFbbGVuZ3RoLTFdID09ICdcbicpCi0gICAgICAgIHJpbmdfc2VuZF9mbigi XHIiLCAxKTsKKyAgICAgICAgcmluZ19zZW5kX2ZuKGRldiwgIlxyIiwgMSk7CiB9CiAKIHZv aWQgcHJpbnQoaW50IGRpcmVjdCwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCkBA IC0xMjMsNyArMTIzLDcgQEAKICNlbmRpZiAgICAKICAgICAgICAgICAgICh2b2lkKUhZUEVS VklTT1JfY29uc29sZV9pbyhDT05TT0xFSU9fd3JpdGUsIHN0cmxlbihidWYpLCBidWYpOwog ICAgICAgICAKLSAgICAgICAgY29uc29sZV9wcmludChidWYsIHN0cmxlbihidWYpKTsKKyAg ICAgICAgY29uc29sZV9wcmludChOVUxMLCBidWYsIHN0cmxlbihidWYpKTsKICAgICB9CiB9 CiAKQEAgLTE1MSw3ICsxNTEsNyBAQAogICAgIHByaW50aygiZG9uZS5cbiIpOwogfQogCi12 b2lkIGZpbmlfY29uc29sZSh2b2lkKQordm9pZCBmaW5pX2NvbnNvbGUoc3RydWN0IGNvbnNm cm9udF9kZXYgKmRldikKIHsKLSAgICAvKiBEZXN0cnVjdCB0aGUgY29uc29sZSBhbmQgZ2V0 IHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSByZXN0YXJ0ZWQgb25lICovCisgICAgaWYgKGRldikg ZnJlZV9jb25zZnJvbnQoZGV2KTsKIH0KZGlmZiAtciBlNWRiODJmMTJkMzIgZXh0cmFzL21p bmktb3MvY29uc29sZS94ZW5jb25zX3JpbmcuYwotLS0gYS9leHRyYXMvbWluaS1vcy9jb25z b2xlL3hlbmNvbnNfcmluZy5jCVR1ZSBKdW4gMTYgMTY6MDU6MTcgMjAwOSArMDEwMAorKysg Yi9leHRyYXMvbWluaS1vcy9jb25zb2xlL3hlbmNvbnNfcmluZy5jCVR1ZSBKdW4gMTYgMTY6 MDU6MjQgMjAwOSArMDEwMApAQCAtNywyNSArNywzOCBAQAogI2luY2x1ZGUgPGxpYi5oPgog I2luY2x1ZGUgPHhlbmJ1cy5oPgogI2luY2x1ZGUgPHhlbi9pby9jb25zb2xlLmg+CisjaW5j bHVkZSA8eGVuL2lvL3Byb3RvY29scy5oPgorI2luY2x1ZGUgPHhlbi9pby9yaW5nLmg+Cisj aW5jbHVkZSA8eG1hbGxvYy5oPgorI2luY2x1ZGUgPGdudHRhYi5oPgogCiBERUNMQVJFX1dB SVRfUVVFVUVfSEVBRChjb25zb2xlX3F1ZXVlKTsKKworc3RhdGljIGlubGluZSB2b2lkIG5v dGlmeV9kYWVtb24oc3RydWN0IGNvbnNmcm9udF9kZXYgKmRldikKK3sKKyAgICAvKiBVc2Ug ZXZ0Y2huOiB0aGlzIGlzIGNhbGxlZCBlYXJseSwgYmVmb3JlIGlycSBpcyBzZXQgdXAuICov CisgICAgaWYgKCFkZXYpCisgICAgICAgIG5vdGlmeV9yZW1vdGVfdmlhX2V2dGNobihzdGFy dF9pbmZvLmNvbnNvbGUuZG9tVS5ldnRjaG4pOworICAgIGVsc2UKKyAgICAgICAgbm90aWZ5 X3JlbW90ZV92aWFfZXZ0Y2huKGRldi0+ZXZ0Y2huKTsKK30KIAogc3RhdGljIGlubGluZSBz dHJ1Y3QgeGVuY29uc19pbnRlcmZhY2UgKnhlbmNvbnNfaW50ZXJmYWNlKHZvaWQpCiB7CiAg ICAgcmV0dXJuIG1mbl90b192aXJ0KHN0YXJ0X2luZm8uY29uc29sZS5kb21VLm1mbik7Ci19 Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBub3RpZnlfZGFlbW9uKHZvaWQpCi17Ci0gICAgLyog VXNlIGV2dGNobjogdGhpcyBpcyBjYWxsZWQgZWFybHksIGJlZm9yZSBpcnEgaXMgc2V0IHVw LiAqLwotICAgIG5vdGlmeV9yZW1vdGVfdmlhX2V2dGNobihzdGFydF9pbmZvLmNvbnNvbGUu ZG9tVS5ldnRjaG4pOwotfQotCi1pbnQgeGVuY29uc19yaW5nX3NlbmRfbm9fbm90aWZ5KGNv bnN0IGNoYXIgKmRhdGEsIHVuc2lnbmVkIGxlbikKK30gCisgCitpbnQgeGVuY29uc19yaW5n X3NlbmRfbm9fbm90aWZ5KHN0cnVjdCBjb25zZnJvbnRfZGV2ICpkZXYsIGNvbnN0IGNoYXIg KmRhdGEsIHVuc2lnbmVkIGxlbikKIHsJCiAgICAgaW50IHNlbnQgPSAwOwotCXN0cnVjdCB4 ZW5jb25zX2ludGVyZmFjZSAqaW50ZiA9IHhlbmNvbnNfaW50ZXJmYWNlKCk7CisJc3RydWN0 IHhlbmNvbnNfaW50ZXJmYWNlICppbnRmOwogCVhFTkNPTlNfUklOR19JRFggY29ucywgcHJv ZDsKKworCWlmICghZGV2KQorICAgICAgICAgICAgaW50ZiA9IHhlbmNvbnNfaW50ZXJmYWNl KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGYgPSBkZXYtPnJpbmc7CisKIAlj b25zID0gaW50Zi0+b3V0X2NvbnM7CiAJcHJvZCA9IGludGYtPm91dF9wcm9kOwogCW1iKCk7 CkBAIC00MCwyMCArNTMsMjcgQEAKICAgICByZXR1cm4gc2VudDsKIH0KIAotaW50IHhlbmNv bnNfcmluZ19zZW5kKGNvbnN0IGNoYXIgKmRhdGEsIHVuc2lnbmVkIGxlbikKK2ludCB4ZW5j b25zX3Jpbmdfc2VuZChzdHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2LCBjb25zdCBjaGFyICpk YXRhLCB1bnNpZ25lZCBsZW4pCiB7CiAgICAgaW50IHNlbnQ7Ci0gICAgc2VudCA9IHhlbmNv bnNfcmluZ19zZW5kX25vX25vdGlmeShkYXRhLCBsZW4pOwotCW5vdGlmeV9kYWVtb24oKTsK IAotCXJldHVybiBzZW50OworICAgIHNlbnQgPSB4ZW5jb25zX3Jpbmdfc2VuZF9ub19ub3Rp ZnkoZGV2LCBkYXRhLCBsZW4pOworICAgIG5vdGlmeV9kYWVtb24oZGV2KTsKKworICAgIHJl dHVybiBzZW50OwogfQkKIAogCiAKLXN0YXRpYyB2b2lkIGhhbmRsZV9pbnB1dChldnRjaG5f cG9ydF90IHBvcnQsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB2b2lkICppZ24pCitzdGF0aWMg dm9pZCBoYW5kbGVfaW5wdXQoZXZ0Y2huX3BvcnRfdCBwb3J0LCBzdHJ1Y3QgcHRfcmVncyAq cmVncywgdm9pZCAqZGF0YSkKIHsKICNpZmRlZiBIQVZFX0xJQkMKKwlzdHJ1Y3QgY29uc2Zy b250X2RldiAqZGV2ID0gKHN0cnVjdCBjb25zZnJvbnRfZGV2ICopIGRhdGE7CisgICAgICAg IGludCBmZCA9IGRldiA/IGRldi0+ZmQgOiAtMTsKKworICAgICAgICBpZiAoZmQgIT0gLTEp CisgICAgICAgICAgICBmaWxlc1tmZF0ucmVhZCA9IDE7CisKICAgICAgICAgd2FrZV91cCgm Y29uc29sZV9xdWV1ZSk7CiAjZWxzZQogCXN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqaW50 ZiA9IHhlbmNvbnNfaW50ZXJmYWNlKCk7CkBAIC03MiwxNyArOTIsMjIgQEAKIAltYigpOwog CWludGYtPmluX2NvbnMgPSBjb25zOwogCi0Jbm90aWZ5X2RhZW1vbigpOworCW5vdGlmeV9k YWVtb24oZGV2KTsKIAogCXhlbmNvbnNfdHgoKTsKICNlbmRpZgogfQogCiAjaWZkZWYgSEFW RV9MSUJDCi1pbnQgeGVuY29uc19yaW5nX2F2YWlsKHZvaWQpCitpbnQgeGVuY29uc19yaW5n X2F2YWlsKHN0cnVjdCBjb25zZnJvbnRfZGV2ICpkZXYpCiB7Ci0Jc3RydWN0IHhlbmNvbnNf aW50ZXJmYWNlICppbnRmID0geGVuY29uc19pbnRlcmZhY2UoKTsKKwlzdHJ1Y3QgeGVuY29u c19pbnRlcmZhY2UgKmludGY7CiAJWEVOQ09OU19SSU5HX0lEWCBjb25zLCBwcm9kOworCisg ICAgICAgIGlmICghZGV2KQorICAgICAgICAgICAgaW50ZiA9IHhlbmNvbnNfaW50ZXJmYWNl KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGludGYgPSBkZXYtPnJpbmc7CiAKIAlj b25zID0gaW50Zi0+aW5fY29uczsKIAlwcm9kID0gaW50Zi0+aW5fcHJvZDsKQEAgLTkyLDEx ICsxMTcsMTYgQEAKICAgICAgICAgcmV0dXJuIHByb2QgLSBjb25zOwogfQogCi1pbnQgeGVu Y29uc19yaW5nX3JlY3YoY2hhciAqZGF0YSwgdW5zaWduZWQgbGVuKQoraW50IHhlbmNvbnNf cmluZ19yZWN2KHN0cnVjdCBjb25zZnJvbnRfZGV2ICpkZXYsIGNoYXIgKmRhdGEsIHVuc2ln bmVkIGxlbikKIHsKLQlzdHJ1Y3QgeGVuY29uc19pbnRlcmZhY2UgKmludGYgPSB4ZW5jb25z X2ludGVyZmFjZSgpOworCXN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqaW50ZjsKIAlYRU5D T05TX1JJTkdfSURYIGNvbnMsIHByb2Q7CiAgICAgICAgIHVuc2lnbmVkIGZpbGxlZCA9IDA7 CisKKyAgICAgICAgaWYgKCFkZXYpCisgICAgICAgICAgICBpbnRmID0geGVuY29uc19pbnRl cmZhY2UoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW50ZiA9IGRldi0+cmluZzsK IAogCWNvbnMgPSBpbnRmLT5pbl9jb25zOwogCXByb2QgPSBpbnRmLT5pbl9wcm9kOwpAQCAt MTExLDMxICsxNDEsMTkwIEBACiAJbWIoKTsKICAgICAgICAgaW50Zi0+aW5fY29ucyA9IGNv bnMgKyBmaWxsZWQ7CiAKLQlub3RpZnlfZGFlbW9uKCk7CisJbm90aWZ5X2RhZW1vbihkZXYp OwogCiAgICAgICAgIHJldHVybiBmaWxsZWQ7CiB9CiAjZW5kaWYKIAotaW50IHhlbmNvbnNf cmluZ19pbml0KHZvaWQpCitzdHJ1Y3QgY29uc2Zyb250X2RldiAqeGVuY29uc19yaW5nX2lu aXQodm9pZCkKIHsKIAlpbnQgZXJyOworCXN0cnVjdCBjb25zZnJvbnRfZGV2ICpkZXY7CiAK IAlpZiAoIXN0YXJ0X2luZm8uY29uc29sZS5kb21VLmV2dGNobikKIAkJcmV0dXJuIDA7CiAK LQllcnIgPSBiaW5kX2V2dGNobihzdGFydF9pbmZvLmNvbnNvbGUuZG9tVS5ldnRjaG4sIGhh bmRsZV9pbnB1dCwKLQkJCSAgTlVMTCk7CisJZGV2ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qg Y29uc2Zyb250X2RldikpOworCW1lbXNldChkZXYsIDAsIHNpemVvZihzdHJ1Y3QgY29uc2Zy b250X2RldikpOworCWRldi0+bm9kZW5hbWUgPSAiZGV2aWNlL2NvbnNvbGUiOworCWRldi0+ ZG9tID0gMDsKKwlkZXYtPmJhY2tlbmQgPSAwOworCWRldi0+cmluZ19yZWYgPSAwOworCisj aWZkZWYgSEFWRV9MSUJDCisJZGV2LT5mZCA9IC0xOworI2VuZGlmCisJZGV2LT5ldnRjaG4g PSBzdGFydF9pbmZvLmNvbnNvbGUuZG9tVS5ldnRjaG47CisJZGV2LT5yaW5nID0gKHN0cnVj dCB4ZW5jb25zX2ludGVyZmFjZSAqKSBtZm5fdG9fdmlydChzdGFydF9pbmZvLmNvbnNvbGUu ZG9tVS5tZm4pOworCisJZXJyID0gYmluZF9ldnRjaG4oZGV2LT5ldnRjaG4sIGhhbmRsZV9p bnB1dCwgZGV2KTsKIAlpZiAoZXJyIDw9IDApIHsKIAkJcHJpbnRrKCJYRU4gY29uc29sZSBy ZXF1ZXN0IGNobiBiaW5kIGZhaWxlZCAlaVxuIiwgZXJyKTsKLQkJcmV0dXJuIGVycjsKKyAg ICAgICAgICAgICAgICBmcmVlKGRldik7CisJCXJldHVybiBOVUxMOwogCX0KLSAgICAgICAg dW5tYXNrX2V2dGNobihzdGFydF9pbmZvLmNvbnNvbGUuZG9tVS5ldnRjaG4pOworICAgICAg ICB1bm1hc2tfZXZ0Y2huKGRldi0+ZXZ0Y2huKTsKIAogCS8qIEluIGNhc2Ugd2UgaGF2ZSBp bi1mbGlnaHQgZGF0YSBhZnRlciBzYXZlL3Jlc3RvcmUuLi4gKi8KLQlub3RpZnlfZGFlbW9u KCk7CisJbm90aWZ5X2RhZW1vbihkZXYpOwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIGRldjsK K30KKwordm9pZCBmcmVlX2NvbnNmcm9udChzdHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2KQor eworICAgIG1hc2tfZXZ0Y2huKGRldi0+ZXZ0Y2huKTsKKworICAgIGZyZWUoZGV2LT5iYWNr ZW5kKTsKKworICAgIGdudHRhYl9lbmRfYWNjZXNzKGRldi0+cmluZ19yZWYpOworICAgIGZy ZWVfcGFnZShkZXYtPnJpbmcpOworCisgICAgdW5iaW5kX2V2dGNobihkZXYtPmV2dGNobik7 CisKKyAgICBmcmVlKGRldi0+bm9kZW5hbWUpOworICAgIGZyZWUoZGV2KTsKK30KKworc3Ry dWN0IGNvbnNmcm9udF9kZXYgKmluaXRfY29uc2Zyb250KGNoYXIgKl9ub2RlbmFtZSkKK3sK KyAgICB4ZW5idXNfdHJhbnNhY3Rpb25fdCB4YnQ7CisgICAgY2hhciogZXJyOworICAgIGNo YXIqIG1lc3NhZ2U9TlVMTDsKKyAgICBpbnQgcmV0cnk9MDsKKyAgICBjaGFyKiBtc2c7Cisg ICAgY2hhciBub2RlbmFtZVsyNTZdOworICAgIGNoYXIgcGF0aFsyNTZdOworICAgIHN0YXRp YyBpbnQgY29uc2Zyb250ZW5kcyA9IDE7CisgICAgc3RydWN0IGNvbnNmcm9udF9kZXYgKmRl djsKKyAgICBpbnQgcmVzOworCisgICAgaWYgKCFfbm9kZW5hbWUpCisgICAgICAgIHNucHJp bnRmKG5vZGVuYW1lLCBzaXplb2Yobm9kZW5hbWUpLCAiZGV2aWNlL2NvbnNvbGUvJWQiLCBj b25zZnJvbnRlbmRzKTsKKyAgICBlbHNlCisgICAgICAgIHN0cm5jcHkobm9kZW5hbWUsIF9u b2RlbmFtZSwgc2l6ZW9mKG5vZGVuYW1lKSk7CisKKyAgICBwcmludGsoIioqKioqKioqKioq KioqKioqKiogQ09OU0ZST05UIGZvciAlcyAqKioqKioqKioqXG5cblxuIiwgbm9kZW5hbWUp OworCisgICAgY29uc2Zyb250ZW5kcysrOworICAgIGRldiA9IG1hbGxvYyhzaXplb2YoKmRl dikpOworICAgIG1lbXNldChkZXYsIDAsIHNpemVvZigqZGV2KSk7CisgICAgZGV2LT5ub2Rl bmFtZSA9IHN0cmR1cChub2RlbmFtZSk7CisjaWZkZWYgSEFWRV9MSUJDCisgICAgZGV2LT5m ZCA9IC0xOworI2VuZGlmCisKKyAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIl cy9iYWNrZW5kLWlkIiwgbm9kZW5hbWUpOworICAgIGlmICgocmVzID0geGVuYnVzX3JlYWRf aW50ZWdlcihwYXRoKSkgPCAwKSAKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZWxzZQor ICAgICAgICBkZXYtPmRvbSA9IHJlczsKKyAgICBldnRjaG5fYWxsb2NfdW5ib3VuZChkZXYt PmRvbSwgaGFuZGxlX2lucHV0LCBkZXYsICZkZXYtPmV2dGNobik7CisKKyAgICBkZXYtPnJp bmcgPSAoc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICopIGFsbG9jX3BhZ2UoKTsKKyAgICBt ZW1zZXQoZGV2LT5yaW5nLCAwLCBQQUdFX1NJWkUpOworICAgIGRldi0+cmluZ19yZWYgPSBn bnR0YWJfZ3JhbnRfYWNjZXNzKGRldi0+ZG9tLCB2aXJ0X3RvX21mbihkZXYtPnJpbmcpLCAw KTsKKworICAgIGRldi0+ZXZlbnRzID0gTlVMTDsKKworYWdhaW46CisgICAgZXJyID0geGVu YnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAg cHJpbnRrKCJzdGFydGluZyB0cmFuc2FjdGlvblxuIik7CisgICAgfQorCisgICAgZXJyID0g eGVuYnVzX3ByaW50Zih4YnQsIG5vZGVuYW1lLCAicmluZy1yZWYiLCIldSIsCisgICAgICAg ICAgICAgICAgZGV2LT5yaW5nX3JlZik7CisgICAgaWYgKGVycikgeworICAgICAgICBtZXNz YWdlID0gIndyaXRpbmcgcmluZy1yZWYiOworICAgICAgICBnb3RvIGFib3J0X3RyYW5zYWN0 aW9uOworICAgIH0KKyAgICBlcnIgPSB4ZW5idXNfcHJpbnRmKHhidCwgbm9kZW5hbWUsCisg ICAgICAgICAgICAgICAgInBvcnQiLCAiJXUiLCBkZXYtPmV2dGNobik7CisgICAgaWYgKGVy cikgeworICAgICAgICBtZXNzYWdlID0gIndyaXRpbmcgZXZlbnQtY2hhbm5lbCI7CisgICAg ICAgIGdvdG8gYWJvcnRfdHJhbnNhY3Rpb247CisgICAgfQorICAgIGVyciA9IHhlbmJ1c19w cmludGYoeGJ0LCBub2RlbmFtZSwKKyAgICAgICAgICAgICAgICAicHJvdG9jb2wiLCAiJXMi LCBYRU5fSU9fUFJPVE9fQUJJX05BVElWRSk7CisgICAgaWYgKGVycikgeworICAgICAgICBt ZXNzYWdlID0gIndyaXRpbmcgcHJvdG9jb2wiOworICAgICAgICBnb3RvIGFib3J0X3RyYW5z YWN0aW9uOworICAgIH0KKworICAgIGVyciA9IHhlbmJ1c19wcmludGYoeGJ0LCBub2RlbmFt ZSwgInR5cGUiLCAiJXMiLCAiaW9lbXUiKTsKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIG1l c3NhZ2UgPSAid3JpdGluZyB0eXBlIjsKKyAgICAgICAgZ290byBhYm9ydF90cmFuc2FjdGlv bjsKKyAgICB9CisKKyAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIlcy9zdGF0 ZSIsIG5vZGVuYW1lKTsKKyAgICBlcnIgPSB4ZW5idXNfc3dpdGNoX3N0YXRlKHhidCwgcGF0 aCwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgbWVz c2FnZSA9ICJzd2l0Y2hpbmcgc3RhdGUiOworICAgICAgICBnb3RvIGFib3J0X3RyYW5zYWN0 aW9uOworICAgIH0KKworCisgICAgZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQs IDAsICZyZXRyeSk7CisgICAgaWYgKHJldHJ5KSB7CisgICAgICAgICAgICBnb3RvIGFnYWlu OworICAgICAgICBwcmludGsoImNvbXBsZXRpbmcgdHJhbnNhY3Rpb25cbiIpOworICAgIH0K KworICAgIGdvdG8gZG9uZTsKKworYWJvcnRfdHJhbnNhY3Rpb246CisgICAgeGVuYnVzX3Ry YW5zYWN0aW9uX2VuZCh4YnQsIDEsICZyZXRyeSk7CisgICAgZ290byBlcnJvcjsKKworZG9u ZToKKworICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIiVzL2JhY2tlbmQiLCBu b2RlbmFtZSk7CisgICAgbXNnID0geGVuYnVzX3JlYWQoWEJUX05JTCwgcGF0aCwgJmRldi0+ YmFja2VuZCk7CisgICAgaWYgKG1zZykgeworICAgICAgICBwcmludGsoIkVycm9yICVzIHdo ZW4gcmVhZGluZyB0aGUgYmFja2VuZCBwYXRoICVzXG4iLCBtc2csIHBhdGgpOworICAgICAg ICBnb3RvIGVycm9yOworICAgIH0KKworICAgIHByaW50aygiYmFja2VuZCBhdCAlc1xuIiwg ZGV2LT5iYWNrZW5kKTsKKworICAgIHsKKyAgICAgICAgWGVuYnVzU3RhdGUgc3RhdGU7Cisg ICAgICAgIGNoYXIgcGF0aFtzdHJsZW4oZGV2LT5iYWNrZW5kKSArIDEgKyAxOSArIDFdOwor ICAgICAgICBzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIlcy9zdGF0ZSIsIGRldi0+ YmFja2VuZCk7CisgICAgICAgIAorCXhlbmJ1c193YXRjaF9wYXRoX3Rva2VuKFhCVF9OSUws IHBhdGgsIHBhdGgsICZkZXYtPmV2ZW50cyk7CisgICAgICAgIG1zZyA9IE5VTEw7CisgICAg ICAgIHN0YXRlID0geGVuYnVzX3JlYWRfaW50ZWdlcihwYXRoKTsKKyAgICAgICAgd2hpbGUg KG1zZyA9PSBOVUxMICYmIHN0YXRlIDwgWGVuYnVzU3RhdGVDb25uZWN0ZWQpCisgICAgICAg ICAgICBtc2cgPSB4ZW5idXNfd2FpdF9mb3Jfc3RhdGVfY2hhbmdlKHBhdGgsICZzdGF0ZSwg JmRldi0+ZXZlbnRzKTsKKyAgICAgICAgaWYgKG1zZyAhPSBOVUxMIHx8IHN0YXRlICE9IFhl bmJ1c1N0YXRlQ29ubmVjdGVkKSB7CisgICAgICAgICAgICBwcmludGsoImJhY2tlbmQgbm90 IGF2YWlsYWJsZSwgc3RhdGU9JWRcbiIsIHN0YXRlKTsKKyAgICAgICAgICAgIHhlbmJ1c191 bndhdGNoX3BhdGgoWEJUX05JTCwgcGF0aCk7CisgICAgICAgICAgICBnb3RvIGVycm9yOwor ICAgICAgICB9CisgICAgfQorICAgIHVubWFza19ldnRjaG4oZGV2LT5ldnRjaG4pOworCisg ICAgcHJpbnRrKCIqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIik7CisKKyAgICByZXR1 cm4gZGV2OworCitlcnJvcjoKKyAgICBmcmVlX2NvbnNmcm9udChkZXYpOworICAgIHJldHVy biBOVUxMOwogfQogCiB2b2lkIHhlbmNvbnNfcmVzdW1lKHZvaWQpCmRpZmYgLXIgZTVkYjgy ZjEyZDMyIGV4dHJhcy9taW5pLW9zL2luY2x1ZGUvY29uc29sZS5oCi0tLSBhL2V4dHJhcy9t aW5pLW9zL2luY2x1ZGUvY29uc29sZS5oCVR1ZSBKdW4gMTYgMTY6MDU6MTcgMjAwOSArMDEw MAorKysgYi9leHRyYXMvbWluaS1vcy9pbmNsdWRlL2NvbnNvbGUuaAlUdWUgSnVuIDE2IDE2 OjA1OjI0IDIwMDkgKzAxMDAKQEAgLTM2LDkgKzM2LDMyIEBACiAjaWZuZGVmIF9MSUJfQ09O U09MRV9IXwogI2RlZmluZSBfTElCX0NPTlNPTEVfSF8KIAotI2luY2x1ZGU8bWluaS1vcy9v cy5oPgotI2luY2x1ZGU8bWluaS1vcy90cmFwcy5oPgotI2luY2x1ZGU8c3RkYXJnLmg+Cisj aW5jbHVkZSA8bWluaS1vcy9vcy5oPgorI2luY2x1ZGUgPG1pbmktb3MvdHJhcHMuaD4KKyNp bmNsdWRlIDxtaW5pLW9zL3R5cGVzLmg+CisjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+ CisjaW5jbHVkZSA8eGVuYnVzLmg+CisjaW5jbHVkZSA8eGVuL2lvL2NvbnNvbGUuaD4KKyNp bmNsdWRlIDxzdGRhcmcuaD4KKworc3RydWN0IGNvbnNmcm9udF9kZXYgeworICAgIGRvbWlk X3QgZG9tOworCisgICAgc3RydWN0IHhlbmNvbnNfaW50ZXJmYWNlICpyaW5nOworICAgIGdy YW50X3JlZl90IHJpbmdfcmVmOworICAgIGV2dGNobl9wb3J0X3QgZXZ0Y2huOworCisgICAg Y2hhciAqbm9kZW5hbWU7CisgICAgY2hhciAqYmFja2VuZDsKKworICAgIHhlbmJ1c19ldmVu dF9xdWV1ZSBldmVudHM7CisKKyNpZmRlZiBIQVZFX0xJQkMKKyAgICBpbnQgZmQ7CisjZW5k aWYKK307CisKKwogCiB2b2lkIHByaW50KGludCBkaXJlY3QsIGNvbnN0IGNoYXIgKmZtdCwg dmFfbGlzdCBhcmdzKTsKIHZvaWQgcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKQEAg LTUwLDE2ICs3MywxNyBAQAogdm9pZCB4ZW5jb25zX3R4KHZvaWQpOwogCiB2b2lkIGluaXRf Y29uc29sZSh2b2lkKTsKLXZvaWQgY29uc29sZV9wcmludChjaGFyICpkYXRhLCBpbnQgbGVu Z3RoKTsKLXZvaWQgZmluaV9jb25zb2xlKHZvaWQpOwordm9pZCBjb25zb2xlX3ByaW50KHN0 cnVjdCBjb25zZnJvbnRfZGV2ICpkZXYsIGNoYXIgKmRhdGEsIGludCBsZW5ndGgpOwordm9p ZCBmaW5pX2NvbnNvbGUoc3RydWN0IGNvbnNmcm9udF9kZXYgKmRldik7CiAKIC8qIExvdyBs ZXZlbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiB4ZW5jb25zX3JpbmcuYyAqLwogZXh0ZXJuIHN0 cnVjdCB3YWl0X3F1ZXVlX2hlYWQgY29uc29sZV9xdWV1ZTsKLWludCB4ZW5jb25zX3Jpbmdf aW5pdCh2b2lkKTsKLWludCB4ZW5jb25zX3Jpbmdfc2VuZChjb25zdCBjaGFyICpkYXRhLCB1 bnNpZ25lZCBsZW4pOwotaW50IHhlbmNvbnNfcmluZ19zZW5kX25vX25vdGlmeShjb25zdCBj aGFyICpkYXRhLCB1bnNpZ25lZCBsZW4pOwotaW50IHhlbmNvbnNfcmluZ19hdmFpbCh2b2lk KTsKLWludCB4ZW5jb25zX3JpbmdfcmVjdihjaGFyICpkYXRhLCB1bnNpZ25lZCBsZW4pOwot CitzdHJ1Y3QgY29uc2Zyb250X2RldiAqeGVuY29uc19yaW5nX2luaXQodm9pZCk7CitzdHJ1 Y3QgY29uc2Zyb250X2RldiAqaW5pdF9jb25zZnJvbnQoY2hhciAqX25vZGVuYW1lKTsKK2lu dCB4ZW5jb25zX3Jpbmdfc2VuZChzdHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2LCBjb25zdCBj aGFyICpkYXRhLCB1bnNpZ25lZCBsZW4pOworaW50IHhlbmNvbnNfcmluZ19zZW5kX25vX25v dGlmeShzdHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2LCBjb25zdCBjaGFyICpkYXRhLCB1bnNp Z25lZCBsZW4pOworaW50IHhlbmNvbnNfcmluZ19hdmFpbChzdHJ1Y3QgY29uc2Zyb250X2Rl diAqZGV2KTsKK2ludCB4ZW5jb25zX3JpbmdfcmVjdihzdHJ1Y3QgY29uc2Zyb250X2RldiAq ZGV2LCBjaGFyICpkYXRhLCB1bnNpZ25lZCBsZW4pOwordm9pZCBmcmVlX2NvbnNmcm9udChz dHJ1Y3QgY29uc2Zyb250X2RldiAqZGV2KTsKIAogI2VuZGlmIC8qIF9MSUJfQ09OU09MRV9I XyAqLwpkaWZmIC1yIGU1ZGI4MmYxMmQzMiBleHRyYXMvbWluaS1vcy9pbmNsdWRlL2xpYi5o Ci0tLSBhL2V4dHJhcy9taW5pLW9zL2luY2x1ZGUvbGliLmgJVHVlIEp1biAxNiAxNjowNTox NyAyMDA5ICswMTAwCisrKyBiL2V4dHJhcy9taW5pLW9zL2luY2x1ZGUvbGliLmgJVHVlIEp1 biAxNiAxNjowNToyNCAyMDA5ICswMTAwCkBAIC0xMDEsNiArMTAxLDcgQEAKIGNoYXIgICpz dHJkdXAoY29uc3QgY2hhciAqcyk7CiAjZW5kaWYKICNpbmNsdWRlIDxtaW5pLW9zL2NvbnNv bGUuaD4KK2ludCBvcGVucHR5KHZvaWQpOwogCiAjZGVmaW5lIFJBTkRfTUlYIDI2NTQ0MzU3 NjlVCiAKQEAgLTE4Myw2ICsxODQsOSBAQAogCXN0cnVjdCB7CiAJICAgIHN0cnVjdCBmYmZy b250X2RldiAqZGV2OwogCX0gZmI7CisJc3RydWN0IHsKKwkgICAgc3RydWN0IGNvbnNmcm9u dF9kZXYgKmRldjsKKwl9IGNvbnM7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAv KiBUbyBlYWNoIHhlbmJ1cyBGRCBpcyBhc3NvY2lhdGVkIGEgcXVldWUgb2Ygd2F0Y2ggZXZl bnRzIGZvciB0aGlzCiAgICAgICAgICAgICAgKiBGRC4gICovCmRpZmYgLXIgZTVkYjgyZjEy ZDMyIGV4dHJhcy9taW5pLW9zL2tlcm5lbC5jCi0tLSBhL2V4dHJhcy9taW5pLW9zL2tlcm5l bC5jCVR1ZSBKdW4gMTYgMTY6MDU6MTcgMjAwOSArMDEwMAorKysgYi9leHRyYXMvbWluaS1v cy9rZXJuZWwuYwlUdWUgSnVuIDE2IDE2OjA1OjI0IDIwMDkgKzAxMDAKQEAgLTU2Miw3ICs1 NjIsNyBAQAogICAgIGZpbmlfZ250dGFiKCk7CiAKICAgICAvKiBSZXNldCB0aGUgY29uc29s ZSBkcml2ZXIuICovCi0gICAgZmluaV9jb25zb2xlKCk7CisgICAgZmluaV9jb25zb2xlKE5V TEwpOwogICAgIC8qIFRPRE86IHJlY29yZCBuZXcgcmluZyBtZm4gJiBldmVudCBpbiBzdGFy dF9pbmZvICovCiAKICAgICAvKiBSZXNldCBYZW5CdXMgKi8KZGlmZiAtciBlNWRiODJmMTJk MzIgZXh0cmFzL21pbmktb3MvbGliL3N5cy5jCi0tLSBhL2V4dHJhcy9taW5pLW9zL2xpYi9z eXMuYwlUdWUgSnVuIDE2IDE2OjA1OjE3IDIwMDkgKzAxMDAKKysrIGIvZXh0cmFzL21pbmkt b3MvbGliL3N5cy5jCVR1ZSBKdW4gMTYgMTY6MDU6MjQgMjAwOSArMDEwMApAQCAtMTY3LDYg KzE2NywxOCBAQAogICAgIHJldHVybiAwOwogfQogCitpbnQgb3BlbnB0eSh2b2lkKQorewor ICAgIHN0cnVjdCBjb25zZnJvbnRfZGV2ICpkZXY7CisKKyAgICBkZXYgPSBpbml0X2NvbnNm cm9udChOVUxMKTsKKyAgICBkZXYtPmZkID0gYWxsb2NfZmQoRlRZUEVfQ09OU09MRSk7Cisg ICAgZmlsZXNbZGV2LT5mZF0uY29ucy5kZXYgPSBkZXY7CisKKyAgICBwcmludGsoImZkKCVk KSA9IG9wZW5wdHlcbiIsIGRldi0+ZmQpOworICAgIHJldHVybihkZXYtPmZkKTsKK30KKwog aW50IG9wZW4oY29uc3QgY2hhciAqcGF0aG5hbWUsIGludCBmbGFncywgLi4uKQogewogICAg IGludCBmc19mZCwgZmQ7CkBAIC0yMTksNyArMjMxLDcgQEAKICAgICAgICAgICAgIERFRklO RV9XQUlUKHcpOwogICAgICAgICAgICAgd2hpbGUoMSkgewogICAgICAgICAgICAgICAgIGFk ZF93YWl0ZXIodywgY29uc29sZV9xdWV1ZSk7Ci0gICAgICAgICAgICAgICAgcmV0ID0geGVu Y29uc19yaW5nX3JlY3YoYnVmLCBuYnl0ZXMpOworICAgICAgICAgICAgICAgIHJldCA9IHhl bmNvbnNfcmluZ19yZWN2KGZpbGVzW2ZkXS5jb25zLmRldiwgYnVmLCBuYnl0ZXMpOwogICAg ICAgICAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgICAgIHNjaGVkdWxlKCk7CkBAIC0yODYsNyArMjk4LDcgQEAKIHsKICAgICBz d2l0Y2ggKGZpbGVzW2ZkXS50eXBlKSB7CiAJY2FzZSBGVFlQRV9DT05TT0xFOgotCSAgICBj b25zb2xlX3ByaW50KChjaGFyICopYnVmLCBuYnl0ZXMpOworCSAgICBjb25zb2xlX3ByaW50 KGZpbGVzW2ZkXS5jb25zLmRldiwgKGNoYXIgKilidWYsIG5ieXRlcyk7CiAJICAgIHJldHVy biBuYnl0ZXM7CiAJY2FzZSBGVFlQRV9GSUxFOiB7CiAJICAgIHNzaXplX3QgcmV0OwpAQCAt NDE0LDYgKzQyNiwxMCBAQAogICAgICAgICAgICAgcmV0dXJuIDA7CiAJY2FzZSBGVFlQRV9G QjoKICAgICAgICAgICAgIHNodXRkb3duX2ZiZnJvbnQoZmlsZXNbZmRdLmZiLmRldik7Cisg ICAgICAgICAgICBmaWxlc1tmZF0udHlwZSA9IEZUWVBFX05PTkU7CisgICAgICAgICAgICBy ZXR1cm4gMDsKKyAgICAgICAgY2FzZSBGVFlQRV9DT05TT0xFOgorICAgICAgICAgICAgZmlu aV9jb25zb2xlKGZpbGVzW2ZkXS5jb25zLmRldik7CiAgICAgICAgICAgICBmaWxlc1tmZF0u dHlwZSA9IEZUWVBFX05PTkU7CiAgICAgICAgICAgICByZXR1cm4gMDsKIAljYXNlIEZUWVBF X05PTkU6CkBAIC03MzUsNyArNzUxLDcgQEAKIAkgICAgYnJlYWs7CiAJY2FzZSBGVFlQRV9D T05TT0xFOgogCSAgICBpZiAoRkRfSVNTRVQoaSwgcmVhZGZkcykpIHsKLSAgICAgICAgICAg ICAgICBpZiAoeGVuY29uc19yaW5nX2F2YWlsKCkpCisgICAgICAgICAgICAgICAgaWYgKHhl bmNvbnNfcmluZ19hdmFpbChmaWxlc1tpXS5jb25zLmRldikpCiAJCSAgICBuKys7CiAJCWVs c2UKIAkJICAgIEZEX0NMUihpLCByZWFkZmRzKTsKZGlmZiAtciBlNWRiODJmMTJkMzIgc3R1 YmRvbS9ncnViL21pbmktb3MuYwotLS0gYS9zdHViZG9tL2dydWIvbWluaS1vcy5jCVR1ZSBK dW4gMTYgMTY6MDU6MTcgMjAwOSArMDEwMAorKysgYi9zdHViZG9tL2dydWIvbWluaS1vcy5j CVR1ZSBKdW4gMTYgMTY6MDU6MjQgMjAwOSArMDEwMApAQCAtMzI5LDcgKzMyOSw3IEBACiBz ZXJpYWxfaHdfcHV0IChpbnQgX2MpCiB7CiAgIGNoYXIgYyA9IF9jOwotICBjb25zb2xlX3By aW50KCZjLCAxKTsKKyAgY29uc29sZV9wcmludChOVUxMLCAmYywgMSk7CiB9CiAKIGludApA QCAtMzM3LDcgKzMzNyw3IEBACiB7CiAgICAgY2hhciBrZXk7CiAKLSAgICBpZiAoIXhlbmNv bnNfcmluZ19hdmFpbCgpKQorICAgIGlmICgheGVuY29uc19yaW5nX2F2YWlsKE5VTEwpKQog ICAgICAgICByZXR1cm4gLTE7CiAKICAgICByZWFkKFNURElOX0ZJTEVOTywgJmtleSwgMSk7 Cg== --------------030802000708070100040502 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 --------------030802000708070100040502--