From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GVXkb-00055D-GE for qemu-devel@nongnu.org; Thu, 05 Oct 2006 14:15:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GVXkY-00051y-Fc for qemu-devel@nongnu.org; Thu, 05 Oct 2006 14:15:16 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GVXkY-00051v-9F for qemu-devel@nongnu.org; Thu, 05 Oct 2006 14:15:14 -0400 Received: from [64.233.184.225] (helo=wr-out-0506.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1GVXrF-00064S-T0 for qemu-devel@nongnu.org; Thu, 05 Oct 2006 14:22:10 -0400 Received: by wr-out-0506.google.com with SMTP id 67so198399wri for ; Thu, 05 Oct 2006 11:15:13 -0700 (PDT) Message-ID: Date: Thu, 5 Oct 2006 20:15:12 +0200 From: "Pascal Terjan" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_141710_27563434.1160072112774" Subject: [Qemu-devel] Patch to see all tracks on CDROM 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_141710_27563434.1160072112774 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, Here is a dirty patch to see all tracks of a CD-ROM as I need it. It basically reads TOC in the cdrom_read_toc function. The patch only works for Linux (but adding support for other OS should not be difficult) What would be needed is to have a BlockDriverState parameter for cdrom_read_toc in order to avoid exporting the list and searching for a CDROM inside it. Another nice thing would be to handle .toc/.bin but that would need adding a field somewhere to keep the .toc filename. BTW, why does -snapshot apply to cdrom ? ------=_Part_141710_27563434.1160072112774 Content-Type: text/x-patch; name=qemu-cdrom-multi_track.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_esxgscbm Content-Disposition: attachment; filename="qemu-cdrom-multi_track.patch" SW5kZXg6IGh3L2Nkcm9tLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvcWVtdS9xZW11 L2h3L2Nkcm9tLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMQpkaWZmIC11IC1yMS4xIGNkcm9t LmMKLS0tIGh3L2Nkcm9tLmMJMjUgTWF5IDIwMDYgMjM6NTg6NTEgLTAwMDAJMS4xCisrKyBody9j ZHJvbS5jCTUgT2N0IDIwMDYgMTg6MDA6MzEgLTAwMDAKQEAgLTI2LDYgKzI2LDE0IEBACiAgICBo ZXJlLiAgKi8KIAogI2luY2x1ZGUgPHZsLmg+CisjaW5jbHVkZSAiYmxvY2tfaW50LmgiCisKKyNp ZiBkZWZpbmVkKF9fbGludXhfXykKKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxs aW51eC9jZHJvbS5oPgorI2VuZGlmCisKK2V4dGVybiBCbG9ja0RyaXZlclN0YXRlICpiZHJ2X2Zp cnN0OwogCiBzdGF0aWMgdm9pZCBsYmFfdG9fbXNmKHVpbnQ4X3QgKmJ1ZiwgaW50IGxiYSkKIHsK QEAgLTM5LDQ1ICs0NywxMjUgQEAKIC8qIFhYWDogY2hlY2sgdGhpcyAqLwogaW50IGNkcm9tX3Jl YWRfdG9jKGludCBuYl9zZWN0b3JzLCB1aW50OF90ICpidWYsIGludCBtc2YsIGludCBzdGFydF90 cmFjaykKIHsKLSAgICB1aW50OF90ICpxOwotICAgIGludCBsZW47Ci0gICAgCi0gICAgaWYgKHN0 YXJ0X3RyYWNrID4gMSAmJiBzdGFydF90cmFjayAhPSAweGFhKQotICAgICAgICByZXR1cm4gLTE7 Ci0gICAgcSA9IGJ1ZiArIDI7Ci0gICAgKnErKyA9IDE7IC8qIGZpcnN0IHNlc3Npb24gKi8KLSAg ICAqcSsrID0gMTsgLyogbGFzdCBzZXNzaW9uICovCi0gICAgaWYgKHN0YXJ0X3RyYWNrIDw9IDEp IHsKLSAgICAgICAgKnErKyA9IDA7IC8qIHJlc2VydmVkICovCi0gICAgICAgICpxKysgPSAweDE0 OyAvKiBBRFIsIGNvbnRyb2wgKi8KLSAgICAgICAgKnErKyA9IDE7ICAgIC8qIHRyYWNrIG51bWJl ciAqLwotICAgICAgICAqcSsrID0gMDsgLyogcmVzZXJ2ZWQgKi8KLSAgICAgICAgaWYgKG1zZikg ewotICAgICAgICAgICAgKnErKyA9IDA7IC8qIHJlc2VydmVkICovCi0gICAgICAgICAgICBsYmFf dG9fbXNmKHEsIDApOwotICAgICAgICAgICAgcSArPSAzOwotICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICAgLyogc2VjdG9yIDAgKi8KLSAgICAgICAgICAgIGNwdV90b19iZTMyd3UoKHVpbnQz Ml90ICopcSwgMCk7Ci0gICAgICAgICAgICBxICs9IDQ7Ci0gICAgICAgIH0KKyAgdWludDhfdCAq cTsKKyAgaW50IGxlbjsKKyAgaW50IGk7CisgIGNoYXIgKiBmaWxlbmFtZSA9IE5VTEw7CisKKyAg LyogRmluZCB0aGUgZGV2aWNlIGZpbGVuYW1lICovCisgIEJsb2NrRHJpdmVyU3RhdGUgKmJzOwor CisgIGZvciAoYnMgPSBiZHJ2X2ZpcnN0OyBicyAhPSBOVUxMOyBicyA9IGJzLT5uZXh0KSB7Cisg ICAgaWYoYnMtPnR5cGUgPT0gQkRSVl9UWVBFX0NEUk9NKSB7CisgICAgICAvKiBMb29rcyBsaWtl IC1zbmFwc2hvdCBhbHNvIGFwcGxpZXMgdG8gQ0QgKi8KKyAgICAgIGlmKGJzLT5iYWNraW5nX2Zp bGUpIHsKKwlmaWxlbmFtZSA9IGJzLT5iYWNraW5nX2ZpbGU7CisgICAgICB9IGVsc2UgeworCWZp bGVuYW1lID0gYnMtPmZpbGVuYW1lOworICAgICAgfQogICAgIH0KLSAgICAvKiBsZWFkIG91dCB0 cmFjayAqLwotICAgICpxKysgPSAwOyAvKiByZXNlcnZlZCAqLwotICAgICpxKysgPSAweDE2OyAv KiBBRFIsIGNvbnRyb2wgKi8KLSAgICAqcSsrID0gMHhhYTsgLyogdHJhY2sgbnVtYmVyICovCi0g ICAgKnErKyA9IDA7IC8qIHJlc2VydmVkICovCisgIH0KKworICBpbnQgZmQgPSAwOworI2lmIGRl ZmluZWQoX19saW51eF9fKQorICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRPTkxZKTsKKyAgaWYo ZmQ8MCkgeworICAgIHJldHVybiAtMTsKKyAgfQorI2VuZGlmCisKKyAgc3RydWN0IGNkcm9tX3Rv Y2hkciB0b2NoZHI7CisjaWYgZGVmaW5lZChfX2xpbnV4X18pCisgIGlmIChpb2N0bChmZCwgQ0RS T01SRUFEVE9DSERSLCAmdG9jaGRyKSkgeworICAgIC8qIElmIHdlIGhhdmUgYSBmaWxlIGFuZCBu b3QgYSByZWFsIENELVJPTSwgcmV2ZXJ0IHRvIG9sZCBiZWhhdmlvdXIgKi8KKyAgICAvKkZJWE1F IFdlIHNob3VsZCByYXRoZXIgY2hlY2sgYnMtPmRydiAqLworICAgIGNsb3NlKGZkKTsKKyAgICBm ZCA9IDA7CisjZWxzZQorICB7CisjZW5kaWYKKyAgICB0b2NoZHIuY2R0aF90cmswID0gMTsKKyAg ICB0b2NoZHIuY2R0aF90cmsxID0gMTsKKyAgICAgCisgIH0KKworICBpZiAoKHN0YXJ0X3RyYWNr ID4gdG9jaGRyLmNkdGhfdHJrMSkgJiYgKHN0YXJ0X3RyYWNrICE9IDB4YWEpKSB7CisgICAgaWYg KGZkKQorICAgICAgY2xvc2UoZmQpOworICAgIHJldHVybiAtMTsKKyAgfQorICAKKyAgaWYgKHN0 YXJ0X3RyYWNrIDwgdG9jaGRyLmNkdGhfdHJrMCkKKyAgICBzdGFydF90cmFjayA9IHRvY2hkci5j ZHRoX3RyazA7CisgIAorICBxID0gYnVmICsgMjsKKyAgKnErKyA9IHRvY2hkci5jZHRoX3RyazA7 IC8qIGZpcnN0IHNlc3Npb24gKi8KKyAgKnErKyA9IHRvY2hkci5jZHRoX3RyazE7IC8qIGxhc3Qg c2Vzc2lvbiAqLworICAKKyAgZm9yIChpID0gc3RhcnRfdHJhY2s7IGkgPD0gdG9jaGRyLmNkdGhf dHJrMTsgaSsrKSB7CisgICAgc3RydWN0IGNkcm9tX3RvY2VudHJ5IHRvY2VudHJ5OworCisjaWYg ZGVmaW5lZChfX2xpbnV4X18pCisgICAgdG9jZW50cnkuY2R0ZV9mb3JtYXQgPSAobXNmKSA/IENE Uk9NX01TRiA6IENEUk9NX0xCQTsKKyAgICB0b2NlbnRyeS5jZHRlX3RyYWNrID0gaTsKKyAgICBp ZiAoZmQpIHsKKyAgICAgIGlmIChpb2N0bChmZCwgQ0RST01SRUFEVE9DRU5UUlksICZ0b2NlbnRy eSkpIHsKKwlwZXJyb3IoImNkcm9tOiByZWFkX3RvYzogUkVBRFRPQ0VOVFJZIGxlYWQtb3V0IGZh aWxlZCIpOworCWNsb3NlKGZkKTsKKwlyZXR1cm4gLTE7CisgICAgICB9CisgICAgfSBlbHNlIHsK KyNlbHNlCisgICAgeworI2VuZGlmCisgICAgICB0b2NlbnRyeS5jZHRlX2FkciA9IDA7CisgICAg ICB0b2NlbnRyeS5jZHRlX2N0cmwgPSAweDE0OworICAgICAgaWYgKG1zZikgeworCXRvY2VudHJ5 LmNkdGVfYWRkci5tc2YubWludXRlID0gMDsKKwl0b2NlbnRyeS5jZHRlX2FkZHIubXNmLnNlY29u ZCA9IDI7CisJdG9jZW50cnkuY2R0ZV9hZGRyLm1zZi5mcmFtZSA9IDA7CisgICAgICB9IGVsc2Ug eworCXRvY2VudHJ5LmNkdGVfYWRkci5sYmEgPSAwOworICAgICAgfQorICAgIH0KKyAgICAgIAor ICAgICpxKysgPSAwOyAvLyBSZXNlcnZlZAorICAgICpxKysgPSAodG9jZW50cnkuY2R0ZV9hZHIg PDwgNCkgfCB0b2NlbnRyeS5jZHRlX2N0cmwgOyAvLyBBRFIsIGNvbnRyb2wKKyAgICAqcSsrID0g aTsgLy8gVHJhY2sgbnVtYmVyCisgICAgKnErKyA9IDA7IC8vIFJlc2VydmVkCisgICAgCisgICAg Ly8gU3RhcnQgYWRkcmVzcwogICAgIGlmIChtc2YpIHsKLSAgICAgICAgKnErKyA9IDA7IC8qIHJl c2VydmVkICovCi0gICAgICAgIGxiYV90b19tc2YocSwgbmJfc2VjdG9ycyk7Ci0gICAgICAgIHEg Kz0gMzsKKyAgICAgICpxKysgPSAwOyAvLyByZXNlcnZlZAorICAgICAgKnErKyA9IHRvY2VudHJ5 LmNkdGVfYWRkci5tc2YubWludXRlOworICAgICAgKnErKyA9IHRvY2VudHJ5LmNkdGVfYWRkci5t c2Yuc2Vjb25kOworICAgICAgKnErKyA9IHRvY2VudHJ5LmNkdGVfYWRkci5tc2YuZnJhbWU7CiAg ICAgfSBlbHNlIHsKLSAgICAgICAgY3B1X3RvX2JlMzJ3dSgodWludDMyX3QgKilxLCBuYl9zZWN0 b3JzKTsKLSAgICAgICAgcSArPSA0OworICAgICAgKnErKyA9ICgoKHVuc2lnbmVkKXRvY2VudHJ5 LmNkdGVfYWRkci5sYmEpID4+IDI0KSAmIDB4ZmY7CisgICAgICAqcSsrID0gKCgodW5zaWduZWQp dG9jZW50cnkuY2R0ZV9hZGRyLmxiYSkgPj4gMTYpICYgMHhmZjsKKyAgICAgICpxKysgPSAoKCh1 bnNpZ25lZCl0b2NlbnRyeS5jZHRlX2FkZHIubGJhKSA+PiA4KSAmIDB4ZmY7CisgICAgICAqcSsr ID0gKCgodW5zaWduZWQpdG9jZW50cnkuY2R0ZV9hZGRyLmxiYSkgPj4gMCkgJiAweGZmOwogICAg IH0KLSAgICBsZW4gPSBxIC0gYnVmOwotICAgIGNwdV90b19iZTE2d3UoKHVpbnQxNl90ICopYnVm LCBsZW4gLSAyKTsKLSAgICByZXR1cm4gbGVuOworICB9CisKKyAgLyogbGVhZCBvdXQgdHJhY2sg Ki8KKyAgKnErKyA9IDA7IC8qIHJlc2VydmVkICovCisgICpxKysgPSAweDE2OyAvKiBBRFIsIGNv bnRyb2wgKi8KKyAgKnErKyA9IDB4YWE7IC8qIHRyYWNrIG51bWJlciAqLworICAqcSsrID0gMDsg LyogcmVzZXJ2ZWQgKi8KKyAgaWYgKG1zZikgeworICAgICpxKysgPSAwOyAvKiByZXNlcnZlZCAq LworICAgIGxiYV90b19tc2YocSwgbmJfc2VjdG9ycyk7CisgICAgcSArPSAzOworICB9IGVsc2Ug eworICAgIGNwdV90b19iZTMyd3UoKHVpbnQzMl90ICopcSwgbmJfc2VjdG9ycyk7CisgICAgcSAr PSA0OworICB9CisgIGxlbiA9IHEgLSBidWY7CisgIGNwdV90b19iZTE2d3UoKHVpbnQxNl90ICop YnVmLCBsZW4gLSAyKTsKKyAgaWYgKGZkKQorICAgIGNsb3NlKGZkKTsKKyAgcmV0dXJuIGxlbjsK IH0KIAogLyogbW9zdGx5IHNhbWUgaW5mbyBhcyBQZWFyUGMgKi8KQEAgLTE1Miw1ICsyNDAsMyBA QAogICAgIGNwdV90b19iZTE2d3UoKHVpbnQxNl90ICopYnVmLCBsZW4gLSAyKTsKICAgICByZXR1 cm4gbGVuOwogfQotCi0KSW5kZXg6IGJsb2NrLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJj ZXMvcWVtdS9xZW11L2Jsb2NrLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzcKZGlmZiAtdSAt cjEuMzcgYmxvY2suYwotLS0gYmxvY2suYwkyNCBBdWcgMjAwNiAxOTo1MzozNyAtMDAwMAkxLjM3 CisrKyBibG9jay5jCTUgT2N0IDIwMDYgMTg6MDA6MzEgLTAwMDAKQEAgLTUzLDcgKzUzLDcgQEAK IHN0YXRpYyBpbnQgYmRydl93cml0ZV9lbShCbG9ja0RyaXZlclN0YXRlICpicywgaW50NjRfdCBz ZWN0b3JfbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwg aW50IG5iX3NlY3RvcnMpOwogCi1zdGF0aWMgQmxvY2tEcml2ZXJTdGF0ZSAqYmRydl9maXJzdDsK K0Jsb2NrRHJpdmVyU3RhdGUgKmJkcnZfZmlyc3Q7CiBzdGF0aWMgQmxvY2tEcml2ZXIgKmZpcnN0 X2RydjsKIAogI2lmZGVmIF9XSU4zMgo= ------=_Part_141710_27563434.1160072112774--