instance Storable AIOCB where<br><br>&nbsp;&nbsp;&nbsp; sizeOf _ = (#const sizeof (struct aiocb))<br><br>&nbsp;&nbsp;&nbsp; alignment _ = 1<br><br>&nbsp;&nbsp;&nbsp; poke p_AIOCB (AIOCB aioFd aioLioOpcode aioReqPrio aioOffset aioBuf aioBytes aioSigevent) = do<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_fildes) p_AIOCB aioFd<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_lio_opcode) p_AIOCB aioLioOpcode<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_reqprio) p_AIOCB aioReqPrio<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_offset) p_AIOCB aioOffset<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_buf) p_AIOCB aioBuf<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_nbytes) p_AIOCB aioBytes<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (#poke struct aiocb, aio_sigevent) p_AIOCB aioSigevent<br><br>&nbsp;&nbsp;&nbsp; peek p_AIOCB = do<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioFd &lt;- (#peek struct aiocb, aio_fildes) p_AIOCB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioLioOpcode &lt;- (#peek struct aiocb, aio_lio_opcode) p_AIOCB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioReqPrio &lt;- (#peek struct aiocb, aio_reqprio) p_AIOCB<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioOffset &lt;- (#peek struct aiocb, aio_offset) p_AIOCB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioBuf &lt;- (#peek struct aiocb, aio_buf) p_AIOCB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioBytes &lt;- (#peek struct aiocb, aio_nbytes) p_AIOCB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aioSigevent &lt;- (#peek struct aiocb, aio_sigevent) p_AIOCB<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (AIOCB aioFd aioLioOpcode aioReqPrio aioOffset aioBuf aioBytes aioSigevent)<br><br><br><br><div class="gmail_quote">On Tue, Jul 1, 2008 at 2:48 AM, Bulat Ziganshin &lt;<a href="mailto:bulat.ziganshin@gmail.com">bulat.ziganshin@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello Vasili,<br>
<br>
Tuesday, July 1, 2008, 11:42:26 AM, you wrote:<br>
<br>
looks ok, show us your peek/poke code<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
&gt; Hello,<br>
<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I am also testing my aio support. The aio_write binding<br>
&gt; seems to work ok .. as well as aio_error, Aio_return is a problem<br>
&gt; child. I think I wrote a really simple binding. I always receive<br>
&gt; nbytes as 0. I have been staring at the code hoping to catch a<br>
&gt; stupid mistake. I put putStrLn&#39;s in the code. .....Here is the code ...<br>
&gt;<br>
&gt; aioReturn :: AIOCB -&gt; IO (AIOCB, ByteCount)<br>
&gt; aioReturn aiocb = do<br>
&gt; &nbsp;&nbsp; allocaBytes (#const sizeof(struct aiocb)) $ \ p_aiocb -&gt; do<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; poke p_aiocb aiocb<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count &lt;- throwErrnoIfMinus1 &quot;aioReturn&quot; (c_aio_return&nbsp; p_aiocb)<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aiocb &lt;- peek p_aiocb<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return (aiocb, fromIntegral count)<br>
<br>
&gt; foreign import ccall safe &quot;aio.h aio_return&quot;<br>
&gt; &nbsp;&nbsp;&nbsp; c_aio_return :: Ptr AIOCB -&gt; IO CInt<br>
<br>
&gt; Maybe someone can spot something that I haven&#39;t.<br>
&gt;<br>
&gt; Thanks, Vasili<br>
&gt;<br>
<br>
<br>
</div></div><font color="#888888">--<br>
Best regards,<br>
&nbsp;Bulat &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;mailto:<a href="mailto:Bulat.Ziganshin@gmail.com">Bulat.Ziganshin@gmail.com</a><br>
<br>
</font></blockquote></div><br>