From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Gu7BD-0004L4-OV for qemu-devel@nongnu.org; Tue, 12 Dec 2006 07:56:19 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Gu7BB-0004Jq-Tk for qemu-devel@nongnu.org; Tue, 12 Dec 2006 07:56:19 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gu7BB-0004JN-9J for qemu-devel@nongnu.org; Tue, 12 Dec 2006 07:56:17 -0500 Received: from [64.233.182.187] (helo=nf-out-0910.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1Gu7BB-0007Bg-0z for qemu-devel@nongnu.org; Tue, 12 Dec 2006 07:56:17 -0500 Received: by nf-out-0910.google.com with SMTP id c31so315209nfb for ; Tue, 12 Dec 2006 04:56:15 -0800 (PST) Message-ID: <1d592d70612120456s21299325q811e75310d432266@mail.gmail.com> Date: Tue, 12 Dec 2006 14:56:14 +0200 From: "Kirill Shutemov" In-Reply-To: <1d592d70612111745s8f6b7fcy5e115874d066fe15@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_110218_13010824.1165928174657" References: <1d592d70612111745s8f6b7fcy5e115874d066fe15@mail.gmail.com> Subject: [Qemu-devel] [PATCH] Simplily linux-user/path.c Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_110218_13010824.1165928174657 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline I have no ideas why path.c is so complex. Any? In the attachment rewritten version. It has tested with qemu-arm. With old version I had the problem. It hangs due loop of symlinks. :( ------=_Part_110218_13010824.1165928174657 Content-Type: application/octet-stream; name=path.c.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_evm07izw Content-Disposition: attachment; filename="path.c.patch" LS0tIHFlbXUtMC44LjIvbGludXgtdXNlci9wYXRoLmMub3JpZwkyMDA2LTEyLTExIDIzOjMzOjQ0 LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS0wLjguMi9saW51eC11c2VyL3BhdGguYwkyMDA2LTEy LTEyIDAxOjA3OjEyLjAwMDAwMDAwMCArMDAwMApAQCAtMSwxNDcgKzEsMzcgQEAKIC8qIENvZGUg dG8gbWFuZ2xlIHBhdGhuYW1lcyBpbnRvIHRob3NlIG1hdGNoaW5nIGEgZ2l2ZW4gcHJlZml4Lgog ICAgZWcuIG9wZW4oIi9saWIvZm9vLnNvIikgPT4gb3BlbigiL3Vzci9nbmVtdWwvaTM4Ni1saW51 eC9saWIvZm9vLnNvIik7Ci0KLSAgIFRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhpcyBhcmVhIGRv ZXMgbm90IGNoYW5nZS4KLSovCisgICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2luY2x1 ZGUgPGRpcmVudC5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+ Ci0jaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8ZXJy bm8uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInFlbXUuaCIKIAotc3RydWN0IHBh dGhlbGVtCi17Ci0gICAgLyogTmFtZSBvZiB0aGlzLCBlZy4gbGliICovCi0gICAgY2hhciAqbmFt ZTsKLSAgICAvKiBGdWxsIHBhdGggbmFtZSwgZWcuIC91c3IvZ25lbXVsL3g4Ni1saW51eC9saWIu ICovCi0gICAgY2hhciAqcGF0aG5hbWU7Ci0gICAgc3RydWN0IHBhdGhlbGVtICpwYXJlbnQ7Ci0g ICAgLyogQ2hpbGRyZW4gKi8KLSAgICB1bnNpZ25lZCBpbnQgbnVtX2VudHJpZXM7Ci0gICAgc3Ry dWN0IHBhdGhlbGVtICplbnRyaWVzWzBdOwotfTsKLQotc3RhdGljIHN0cnVjdCBwYXRoZWxlbSAq YmFzZTsKLQotLyogRmlyc3QgTiBjaGFycyBvZiBTMSBtYXRjaCBTMiwgYW5kIFMyIGlzIE4gY2hh cnMgbG9uZy4gKi8KLXN0YXRpYyBpbnQgc3RybmVxKGNvbnN0IGNoYXIgKnMxLCB1bnNpZ25lZCBp bnQgbiwgY29uc3QgY2hhciAqczIpCi17Ci0gICAgdW5zaWduZWQgaW50IGk7Ci0KLSAgICBmb3Ig KGkgPSAwOyBpIDwgbjsgaSsrKQotCWlmIChzMVtpXSAhPSBzMltpXSkKLQkgICAgcmV0dXJuIDA7 Ci0gICAgcmV0dXJuIHMyW2ldID09IDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGF0aGVsZW0gKmFk ZF9lbnRyeShzdHJ1Y3QgcGF0aGVsZW0gKnJvb3QsIGNvbnN0IGNoYXIgKm5hbWUpOwotCi1zdGF0 aWMgc3RydWN0IHBhdGhlbGVtICpuZXdfZW50cnkoY29uc3QgY2hhciAqcm9vdCwKLQkJCQkgIHN0 cnVjdCBwYXRoZWxlbSAqcGFyZW50LAotCQkJCSAgY29uc3QgY2hhciAqbmFtZSkKLXsKLSAgICBz dHJ1Y3QgcGF0aGVsZW0gKm5ldyA9IG1hbGxvYyhzaXplb2YoKm5ldykpOwotICAgIG5ldy0+bmFt ZSA9IHN0cmR1cChuYW1lKTsKLSAgICBhc3ByaW50ZigmbmV3LT5wYXRobmFtZSwgIiVzLyVzIiwg cm9vdCwgbmFtZSk7Ci0gICAgbmV3LT5udW1fZW50cmllcyA9IDA7Ci0gICAgcmV0dXJuIG5ldzsK LX0KLQotI2RlZmluZSBzdHJlcShhLGIpIChzdHJjbXAoKGEpLCAoYikpID09IDApCi0KLXN0YXRp YyBzdHJ1Y3QgcGF0aGVsZW0gKmFkZF9kaXJfbWF5YmUoc3RydWN0IHBhdGhlbGVtICpwYXRoKQot ewotICAgIERJUiAqZGlyOwotCi0gICAgaWYgKChkaXIgPSBvcGVuZGlyKHBhdGgtPnBhdGhuYW1l KSkgIT0gTlVMTCkgewotCXN0cnVjdCBkaXJlbnQgKmRpcmVudDsKLQotCXdoaWxlICgoZGlyZW50 ID0gcmVhZGRpcihkaXIpKSAhPSBOVUxMKSB7Ci0JICAgIGlmICghc3RyZXEoZGlyZW50LT5kX25h bWUsIi4iKSAmJiAhc3RyZXEoZGlyZW50LT5kX25hbWUsIi4uIikpewotCQlwYXRoID0gYWRkX2Vu dHJ5KHBhdGgsIGRpcmVudC0+ZF9uYW1lKTsKLQkgICAgfQotCX0KLSAgICAgICAgY2xvc2VkaXIo ZGlyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHBhdGg7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGF0aGVs ZW0gKmFkZF9lbnRyeShzdHJ1Y3QgcGF0aGVsZW0gKnJvb3QsIGNvbnN0IGNoYXIgKm5hbWUpCi17 Ci0gICAgcm9vdC0+bnVtX2VudHJpZXMrKzsKLQotICAgIHJvb3QgPSByZWFsbG9jKHJvb3QsIHNp emVvZigqcm9vdCkKLQkJICAgKyBzaXplb2Yocm9vdC0+ZW50cmllc1swXSkqcm9vdC0+bnVtX2Vu dHJpZXMpOwotCi0gICAgcm9vdC0+ZW50cmllc1tyb290LT5udW1fZW50cmllcy0xXSA9IG5ld19l bnRyeShyb290LT5wYXRobmFtZSwgcm9vdCwgbmFtZSk7Ci0gICAgcm9vdC0+ZW50cmllc1tyb290 LT5udW1fZW50cmllcy0xXQotCT0gYWRkX2Rpcl9tYXliZShyb290LT5lbnRyaWVzW3Jvb3QtPm51 bV9lbnRyaWVzLTFdKTsKLSAgICByZXR1cm4gcm9vdDsKLX0KLQotLyogVGhpcyBuZWVkcyB0byBi ZSBkb25lIGFmdGVyIHRyZWUgaXMgc3RhYmFsaXplZCAoaWUuIG5vIG1vcmUgcmVhbGxvY3MhKS4g Ki8KLXN0YXRpYyB2b2lkIHNldF9wYXJlbnRzKHN0cnVjdCBwYXRoZWxlbSAqY2hpbGQsIHN0cnVj dCBwYXRoZWxlbSAqcGFyZW50KQotewotICAgIHVuc2lnbmVkIGludCBpOwotCi0gICAgY2hpbGQt PnBhcmVudCA9IHBhcmVudDsKLSAgICBmb3IgKGkgPSAwOyBpIDwgY2hpbGQtPm51bV9lbnRyaWVz OyBpKyspCi0Jc2V0X3BhcmVudHMoY2hpbGQtPmVudHJpZXNbaV0sIGNoaWxkKTsKLX0KK3N0YXRp YyBjaGFyKiBwcmVmOwogCiB2b2lkIGluaXRfcGF0aHMoY29uc3QgY2hhciAqcHJlZml4KQogewog ICAgIGlmIChwcmVmaXhbMF0gIT0gJy8nIHx8Ci0gICAgICAgIHByZWZpeFswXSA9PSAnXDAnIHx8 Ci0gICAgICAgICFzdHJjbXAocHJlZml4LCAiLyIpKQorICAgICAgICAgICAgcHJlZml4WzBdID09 ICdcMCcgfHwKKyAgICAgICAgICAgICFzdHJjbXAocHJlZml4LCAiLyIpKQogICAgICAgICByZXR1 cm47CiAKLSAgICBiYXNlID0gbmV3X2VudHJ5KCIiLCBOVUxMLCBwcmVmaXgrMSk7Ci0gICAgYmFz ZSA9IGFkZF9kaXJfbWF5YmUoYmFzZSk7Ci0gICAgaWYgKGJhc2UtPm51bV9lbnRyaWVzID09IDAp IHsKLSAgICAgICAgZnJlZSAoYmFzZSk7Ci0gICAgICAgIGJhc2UgPSBOVUxMOwotICAgIH0gZWxz ZSB7Ci0gICAgICAgIHNldF9wYXJlbnRzKGJhc2UsIGJhc2UpOwotICAgIH0KLX0KLQotLyogRklY TUU6IERvZXNuJ3QgaGFuZGxlIERJUi8uLiB3aGVyZSBESVIgaXMgbm90IGluIGVtdWxhdGVkIGRp ci4gKi8KLXN0YXRpYyBjb25zdCBjaGFyICoKLWZvbGxvd19wYXRoKGNvbnN0IHN0cnVjdCBwYXRo ZWxlbSAqY3Vyc29yLCBjb25zdCBjaGFyICpuYW1lKQotewotICAgIHVuc2lnbmVkIGludCBpLCBu YW1lbGVuOwotCi0gICAgbmFtZSArPSBzdHJzcG4obmFtZSwgIi8iKTsKLSAgICBuYW1lbGVuID0g c3RyY3NwbihuYW1lLCAiLyIpOwotCi0gICAgaWYgKG5hbWVsZW4gPT0gMCkKLQlyZXR1cm4gY3Vy c29yLT5wYXRobmFtZTsKLQotICAgIGlmIChzdHJuZXEobmFtZSwgbmFtZWxlbiwgIi4uIikpCi0J cmV0dXJuIGZvbGxvd19wYXRoKGN1cnNvci0+cGFyZW50LCBuYW1lICsgbmFtZWxlbik7Ci0KLSAg ICBpZiAoc3RybmVxKG5hbWUsIG5hbWVsZW4sICIuIikpCi0JcmV0dXJuIGZvbGxvd19wYXRoKGN1 cnNvciwgbmFtZSArIG5hbWVsZW4pOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGN1cnNvci0+bnVt X2VudHJpZXM7IGkrKykKLQlpZiAoc3RybmVxKG5hbWUsIG5hbWVsZW4sIGN1cnNvci0+ZW50cmll c1tpXS0+bmFtZSkpCi0JICAgIHJldHVybiBmb2xsb3dfcGF0aChjdXJzb3ItPmVudHJpZXNbaV0s IG5hbWUgKyBuYW1lbGVuKTsKLQotICAgIC8qIE5vdCBmb3VuZCAqLwotICAgIHJldHVybiBOVUxM OworICAgIHByZWYgPSBzdHJkdXAocHJlZml4KTsKIH0KIAogLyogTG9vayBmb3IgcGF0aCBpbiBl bXVsYXRpb24gZGlyLCBvdGhlcndpc2UgcmV0dXJuIG5hbWUuICovCiBjb25zdCBjaGFyICpwYXRo KGNvbnN0IGNoYXIgKm5hbWUpCiB7CisgICAgY2hhciAqbmV3bmFtZSA9IChjaGFyICopIGFsbG9j YShzdHJsZW4ocHJlZikrc3RybGVuKG5hbWUpKzEpOworICAgIHN0cnVjdCBzdGF0IGJ1ZjsKICAg ICAvKiBPbmx5IGRvIGFic29sdXRlIHBhdGhzOiBxdWljayBhbmQgZGlydHksIGJ1dCBzaG91bGQg bW9zdGx5IGJlIE9LLgogICAgICAgIENvdWxkIGRvIHJlbGF0aXZlIGJ5IHRyYWNraW5nIGN3ZC4g Ki8KLSAgICBpZiAoIWJhc2UgfHwgbmFtZVswXSAhPSAnLycpCi0JcmV0dXJuIG5hbWU7CisgICAg aWYgKCFwcmVmIHx8IG5hbWVbMF0gIT0gJy8nKQorICAgICAgICByZXR1cm4gbmFtZTsKKworICAg IHN0cmNweShuZXduYW1lLHByZWYpOworICAgIHN0cmNhdChuZXduYW1lLG5hbWUpOwogCi0gICAg cmV0dXJuIGZvbGxvd19wYXRoKGJhc2UsIG5hbWUpID86IG5hbWU7CisgICAgcmV0dXJuIHN0YXQo bmV3bmFtZSwmYnVmKSA/IG5hbWUgOiBuZXduYW1lOwogfQo= ------=_Part_110218_13010824.1165928174657--