From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1GNH69-0005zx-VH for qemu-devel@nongnu.org; Tue, 12 Sep 2006 18:51:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1GNH68-0005xh-7b for qemu-devel@nongnu.org; Tue, 12 Sep 2006 18:51:20 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GNH68-0005xe-26 for qemu-devel@nongnu.org; Tue, 12 Sep 2006 18:51:20 -0400 Received: from [64.233.162.204] (helo=nz-out-0102.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1GNH7i-000804-Cr for qemu-devel@nongnu.org; Tue, 12 Sep 2006 18:52:58 -0400 Received: by nz-out-0102.google.com with SMTP id n29so905452nzf for ; Tue, 12 Sep 2006 15:51:18 -0700 (PDT) Message-ID: Date: Wed, 13 Sep 2006 00:51:18 +0200 From: "Alessandro Corradi" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_110282_7802094.1158101478348" Subject: [Qemu-devel] Added new device: Interrupted system call 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 ------=_Part_110282_7802094.1158101478348 Content-Type: multipart/alternative; boundary="----=_Part_110283_32641488.1158101478348" ------=_Part_110283_32641488.1158101478348 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I wrote a device that is connect to a host program for data exchange via socket. The problem is that qemu do something and block the socket system call. If I "capture" the perror it return (in the host): Interrupted system call So there should be something in qemu that "delete" the system call. What can I do for manage that? In the attachment there is the source code that I wrote. The strange thing is also that the error rise only when i use recv() or socket() function, send() never made a problem. Thanks ------=_Part_110283_32641488.1158101478348 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi,
I wrote a device that is connect to a host program for data exchange via socket.
The problem is that qemu do something and block the socket system call. If I "capture" the perror it return (in the host):

Interrupted system call

So there should be something in qemu that "delete" the system call.

What can I do for manage that? 

In the attachment there is the source code that I wrote. The strange thing is also that the  error  rise  only when i use recv() or socket() function, send() never made a problem.

Thanks
------=_Part_110283_32641488.1158101478348-- ------=_Part_110282_7802094.1158101478348 Content-Type: text/x-csrc; name=scmem.c; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_es0zyd3u Content-Disposition: attachment; filename="scmem.c" I2luY2x1ZGUgInZsLmgiCiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNp bmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPG5l dGluZXQvaW4uaD4KI2luY2x1ZGUgPHNpZ25hbC5oPgojaW5jbHVkZSA8bmV0ZGIuaD4KI2luY2x1 ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5j bHVkZSA8ZXJybm8uaD4KCiNkZWZpbmUgREFUQSAweGJmZTAwNTIwCiNkZWZpbmUgQ09NTSAweGJm ZTAwNTMwCiNkZWZpbmUgQUREUiAweGJmZTAwNTEwCiNkZWZpbmUgQ09OVFJPTCAweGJmZTAwNTAw CgovLyNkZWZpbmUgU0NERUJVRwoKc3RydWN0IHNvY2thZGRyX2luIG15YWRkcl9pbjsJLy8gZm9y IGxvY2FsIHNvY2tldCBhZGRyZXNzCnN0cnVjdCBzb2NrYWRkcl9pbiBwZWVyYWRkcl9pbjsJLy8g Zm9yIHBlZXIgc29ja2V0IGFkZHJlc3MKaW50IHRoZVNvY2tldDsJCQkJCS8vIHNvY2tldCBkZXNj cmlwdG9yCnN0cnVjdCBob3N0ZW50ICpocDsJCQkJLy8gcG9pbnRlciB0byBob3N0IGluZm8Kc3Ry dWN0IHNlcnZlbnQgKnNwOwkJCQkvLyBwb2ludGVyIHRvIHNlcnZpY2UgaW5mb3JtYXRpb24KCnZv aWQgc2NtZW1fcmVzdG9yZSgpOwoKdHlwZWRlZiBzdHJ1Y3QgewoJdW5zaWduZWQgaW50IHR5cGU7 Cgl1bnNpZ25lZCBpbnQgYWRkcmVzczsKCXVuc2lnbmVkIGludCBsZW5ndGg7Cgl1bnNpZ25lZCBs b25nIGxvbmcgTWVtRWxlbTsKCXVuc2lnbmVkIGxvbmcgbG9uZyBNZW1FbGVtMTsKfSBzY19tZXNz YWdlX3R5cGVfdDsKCnNjX21lc3NhZ2VfdHlwZV90IG1zZzsKCnN0cnVjdCBzY21lbVN0YXRlIHsK ICAgIHVpbnQzMl90IGRhdGE7CiAgICB1aW50MzJfdCBhZGRyOwogICAgdWludDMyX3QgY29udHJv bDsKICAgIHVpbnQzMl90IGNvbW07CgogICAgaW50IGlycTsKICAgIGludCBpcnFfcGVuZGluZzsK ICAgIENoYXJEcml2ZXJTdGF0ZSAqY2hyOwogICAgaW50IGh3X2RyaXZlcjsKfTsKCi8vRGF0YSBl eGNoYW5nZQogdWludDMyIGNvc2ltKGludCBvcCwgaW50IGFkZHIsIGludCBkYXRhKSB7CiAgbXNn LnR5cGU9b3A7CiAgI2lmZGVmIFNDREVCVUcKICBwcmludGYoIm1zZy50eXBlPSAlZFxuIixtc2cu dHlwZSk7CiAgI2VuZGlmCgogIG1zZy5hZGRyZXNzPWFkZHI7CiAgI2lmZGVmIFNDREVCVUcKICBw cmludGYoIm1zZy5hZGRyPSAleFxuIixtc2cuYWRkcmVzcyk7CiAgI2VuZGlmCgogIGlmIChhZGRy ID09IENPTlRST0wpIHsKICAgIG1zZy5sZW5ndGg9MTsKICB9IGVsc2UgeyAKICAgICAgaWYgKGFk ZHIgPT0gREFUQSAmJiBvcCA9PSAwKSB7CiAgICAgICAgbXNnLmxlbmd0aD0wOwogICAgICB9IAog ICAgZWxzZSBtc2cubGVuZ3RoPXNpemVvZihtc2cuYWRkcmVzcyk7CiB9CiAgI2lmZGVmIFNDREVC VUcKICBwcmludGYoIm1zZy5sZW5ndGg9ICV4XG4iLG1zZy5sZW5ndGgpOwogICNlbmRpZgoKICBt c2cuTWVtRWxlbT1kYXRhOwogIHVzbGVlcCgyNTAwMDApOwogIGlmKHNlbmQodGhlU29ja2V0LCZt c2csc2l6ZW9mKHNjX21lc3NhZ2VfdHlwZV90KSxNU0dfT09CKSA9PSAtMSkgcGVycm9yKCJUY3BX cml0ZSBFUlJPUlxuIik7CiAgdXNsZWVwKDI1MDAwMCk7CiAgaWYocmVjdih0aGVTb2NrZXQsJm1z ZyxzaXplb2Yoc2NfbWVzc2FnZV90eXBlX3QpLDApID09IC0xKSB7CiAgICBwZXJyb3IoIlRDUFJF QUQiKTsKICAgIHBlcnJvcigiVGNwUmVhZCBFUlJPUlxuIik7ICAgIAogICAgfQogIHVzbGVlcCgy NTAwMDApOwoKICAjaWZkZWYgU0NERUJVRwogIHByaW50ZigibXNnLk1lbUVsZW09ICVkXG4iLG1z Zy5NZW1FbGVtKTsKICAjZW5kaWYKCiAgcmV0dXJuIG1zZy5NZW1FbGVtOwp9CgovKgpzdGF0aWMg dm9pZCBzY21lbV91cGRhdGVfaXJxKHNjbWVtU3RhdGUgKnMpCnsKICAgIGlmIChzLT5pcnFfcGVu ZGluZykKICAgICAgICBwaWNfc2V0X2lycShzLT5pcnEsIDEpOwogICAgZWxzZQogICAgICAgIHBp Y19zZXRfaXJxKHMtPmlycSwgMCk7Cn0KKi8Kc3RhdGljIHVpbnQzMl90IHNjbWVtX2lvcG9ydF9y ZWFkKHZvaWQgKm9wYXF1ZSwgdWludDMyX3QgYWRkcikgewoJc2NtZW1TdGF0ZSAqcyA9IG9wYXF1 ZTsKCXVpbnQzMl90IHJldD0gMHhmZjsKCQoJYWRkciAmPSA3OwoJc3dpdGNoKGFkZHIpIHsKCWNh c2UgMDoKCQlpZihzLT5od19kcml2ZXIpIHsKCgkJCXMtPmRhdGEgPSBjb3NpbSgwLERBVEEsMCk7 CgkJCSNpZmRlZiBTQ0RFQlVHCgkJCXByaW50ZigiUmVhZGluZyBhdCAweDczOCAoZGF0YSByZWcp IHZhbHVlPSAlZFxuIixzLT5kYXRhKTsKCQkJI2VuZGlmCgkJfQoJCXJldCA9IHMtPmRhdGE7CgkJ YnJlYWs7CgljYXNlIDE6CgkJaWYocy0+aHdfZHJpdmVyKSB7CgoJCQlzLT5hZGRyID0gY29zaW0o MCxBRERSLDApOwoJCQkjaWZkZWYgU0NERUJVRwkJCQoJCQlwcmludGYoIlJlYWRpbmcgYXQgMHg3 MzkgKGFkZHIgcmVnKSB2YWx1ZT0gJWRcbiIscy0+YWRkcik7CgkJCSNlbmRpZgoJCX0KCQlyZXQg PSBzLT5hZGRyOwoJCWJyZWFrOwoJY2FzZSAyOgoJCWlmKHMtPmh3X2RyaXZlcikgewoKCQkJcy0+ Y29udHJvbCA9IGNvc2ltKDAsQ09OVFJPTCwwKTsKCQkJI2lmZGVmIFNDREVCVUcJCgkJCXByaW50 ZigiUmVhZGluZyBhdCAweDczYSAoY29udHJvbCByZWcpIHZhbHVlPSAlZFxuIixzLT5jb250cm9s KTsKCQkJI2VuZGlmCgkJfQoJCXJldCA9IHMtPmNvbnRyb2w7CgkJYnJlYWs7CgljYXNlIDM6CgkJ aWYocy0+aHdfZHJpdmVyKSB7CgoJCQlzLT5jb21tID0gY29zaW0oMCxDT01NLDApOwoJCQkjaWZk ZWYgU0NERUJVRwkKCQkJcHJpbnRmKCJSZWFkaW5nIGF0IDB4NzNiIChjb21tIHJlZykgdmFsdWU9 ICVkXG4iLHMtPmNvbW0pOwoJCQkjZW5kaWYKCQl9CgkJcmV0ID0gcy0+Y29tbTsKCQlicmVhazsK CX0KCQogICAgcmV0dXJuIHJldDsKfQoKc3RhdGljIHZvaWQgc2NtZW1faW9wb3J0X3dyaXRlKHZv aWQgKm9wYXF1ZSwgdWludDMyX3QgYWRkciwgdWludDMyX3QgdmFsKSB7CglzY21lbVN0YXRlICpz ID0gb3BhcXVlOwoJYWRkciAmPSA3OwoJc3dpdGNoKGFkZHIpIHsKCWNhc2UgMDoKCQlpZihzLT5o d19kcml2ZXIpIHsKCgkJCWNvc2ltKDEsREFUQSx2YWwpOwoJCQlzLT5kYXRhID0gdmFsOwoJCQkj aWZkZWYgU0NERUJVRwoJCQlwcmludGYoIldyaXRpbmcgYXQgMHg3MzggKGRhdGEgcmVnKSB2YWx1 ZT0gJWRcbiIsdmFsKTsKCQkJI2VuZGlmCgkJfQoJCWJyZWFrOwoJY2FzZSAxOgoJCWlmKHMtPmh3 X2RyaXZlcikgewoJCQljb3NpbSgxLEFERFIsdmFsKTsKCQkJcy0+YWRkciA9IHZhbDsKCQkJI2lm ZGVmIFNDREVCVUcJCgkJCXByaW50ZigiV3JpdGluZyBhdCAweDczOSAoYWRkciByZWcpIHZhbHVl PSAlZFxuIix2YWwpOwoJCQkjZW5kaWYKCQl9CgkJYnJlYWs7CgljYXNlIDI6CgkJaWYocy0+aHdf ZHJpdmVyKSB7CgkJCWNvc2ltKDEsQ09OVFJPTCx2YWwpOwoJCQlzLT5jb250cm9sID0gdmFsOwoJ CQkjaWZkZWYgU0NERUJVRwkKCQkJcHJpbnRmKCJXcml0aW5nIGF0IDB4NzRhIChjb250cm9sIHJl ZykgdmFsdWU9ICVkXG4iLHZhbCk7CgkJCSNlbmRpZgoJCX0KCQlicmVhazsKCWNhc2UgMzoKCQlp ZihzLT5od19kcml2ZXIpIHsKCQkJaWYgKHZhbCA9PSAweDAwMDMpIHsgLy9TQyBzb2NrZXQgY29u bmVjdGlvbiByZXN0b3JlCgkJCQlzY21lbV9yZXN0b3JlKCk7CgkJCX0gZWxzZSB7CgkJCQljb3Np bSgxLENPTU0sdmFsKTsKCQkJCXMtPmNvbW0gPSB2YWw7CgkJCQkjaWZkZWYgU0NERUJVRwkKCQkJ CXByaW50ZigiV3JpdGluZyBhdCAweDc0YiAoY29tbSByZWcpIHZhbHVlPSAlZFxuIix2YWwpOwoJ CQkJI2VuZGlmCgkJCX0KCQl9CgkJYnJlYWs7Cgl9CgkKfQoKc2NtZW1TdGF0ZSAqc2NtZW1faW5p dChpbnQgYmFzZSwgaW50IGlycSwgQ2hhckRyaXZlclN0YXRlICpjaHIpewoJc2NtZW1TdGF0ZSAq czsKCglzPXFlbXVfbWFsbG9jeihzaXplb2Yoc2NtZW1TdGF0ZSkpOwoJcy0+Y2hyID0gY2hyOwoJ cy0+aHdfZHJpdmVyID0gMTsKCXMtPmlycSA9IGlycTsKCXMtPmRhdGEgPSAwOwoJcy0+YWRkciA9 IDA7IC8vY29ycmVjdD8KCXMtPmNvbnRyb2wgPSAwOyAvL2NvcnJlY3Q/CgkKCS8vd3JhcHBlciBp bml0CgoKCW1lbXNldCAoKGNoYXIgKikmcGVlcmFkZHJfaW4sIDAsIHNpemVvZihzdHJ1Y3Qgc29j a2FkZHJfaW4pKTsKCWhwPWdldGhvc3RieW5hbWUoIjEyNy4wLjAuMSIpOwoJcGVlcmFkZHJfaW4u c2luX2ZhbWlseSA9IEFGX0lORVQ7CglwZWVyYWRkcl9pbi5zaW5fYWRkci5zX2FkZHI9KChzdHJ1 Y3QgaW5fYWRkciAqKShocC0+aF9hZGRyKSktPnNfYWRkcjsKCXBlZXJhZGRyX2luLnNpbl9wb3J0 PWh0b25zKDQ0NDkpOwoJdGhlU29ja2V0PXNvY2tldChBRl9JTkVULFNPQ0tfU1RSRUFNLDApOwoJ aWYgKGNvbm5lY3QodGhlU29ja2V0LChzdHJ1Y3Qgc29ja2FkZHIgKikmcGVlcmFkZHJfaW4sc2l6 ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpPT0tMSkgewoJCXBlcnJvcigiQ1JFQVRJT04iKTsKCQlw cmludGYoIkVycm9yZSBuZWxsYSBjcmVhemlvbmUgZGVsIHNvY2tldFxuIik7Cgl9IGVsc2UgewoJ cHJpbnRmKCJTb2NrZXQgY3JlYXRvIFxuIik7Cgl9CgoKCXJlZ2lzdGVyX2lvcG9ydF9yZWFkKGJh c2UsIDgsIDEsIHNjbWVtX2lvcG9ydF9yZWFkLCBzKTsKCXJlZ2lzdGVyX2lvcG9ydF93cml0ZShi YXNlLCA4LCAxLCBzY21lbV9pb3BvcnRfd3JpdGUsIHMpOwogICAgcmV0dXJuIHM7Cn0KCgoKLy9T QyBzb2NrZXQgY29ubmVjdGlvbiByZXN0b3JlIFdBUk5JTkc6IG11c3QgcmVhY3RpdmF0ZSBzYyBw cm9ncmFtIGZpcnN0IQp2b2lkIHNjbWVtX3Jlc3RvcmUoKSB7CgltZW1zZXQgKChjaGFyICopJnBl ZXJhZGRyX2luLCAwLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7CglocD1nZXRob3N0Ynlu YW1lKCIxMjcuMC4wLjEiKTsKCXBlZXJhZGRyX2luLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwoJcGVl cmFkZHJfaW4uc2luX2FkZHIuc19hZGRyPSgoc3RydWN0IGluX2FkZHIgKikoaHAtPmhfYWRkcikp LT5zX2FkZHI7CglwZWVyYWRkcl9pbi5zaW5fcG9ydD1odG9ucyg0NDQ5KTsKCXRoZVNvY2tldD1z b2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSwwKTsKCWlmIChjb25uZWN0KHRoZVNvY2tldCwoc3Ry dWN0IHNvY2thZGRyICopJnBlZXJhZGRyX2luLHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pKT09 LTEpIHsKCQlwZXJyb3IoIkNSRUFUSU9OIik7Cgl9IGVsc2UJcHJpbnRmKCJTb2NrZXQgY3JlYXRv IFxuIik7Cn0K ------=_Part_110282_7802094.1158101478348--