[freenos] r294 committed - DeviceServer now correctly updates FileDescriptor::position....

  • From: codesite-noreply@xxxxxxxxxx
  • To: freenos@xxxxxxxxxxxxx
  • Date: Mon, 03 Aug 2009 21:29:42 +0000

Revision: 294
Author: nieklinnenbank
Date: Mon Aug  3 14:28:50 2009
Log: DeviceServer now correctly updates FileDescriptor::position.
Additionally, this patchs makes 'cat /dev/vga0' execute correctly.

http://code.google.com/p/freenos/source/detail?r=294

Modified:
 /trunk/srv/DeviceServer.h

=======================================
--- /trunk/srv/DeviceServer.h   Sun Aug  2 04:48:54 2009
+++ /trunk/srv/DeviceServer.h   Mon Aug  3 14:28:50 2009
@@ -360,7 +360,7 @@
            result = dev->read(buffer, msg->size, msg->offset);

            /* Did it complete successfully? */
-           if (result > 0)
+           if (result >= 0)
            {
                msg->result = ESUCCESS;
                msg->size   = result;
@@ -377,9 +377,10 @@
                /* Take care that we may need to try again. */
                msg->result = result;
            }
-           /* Send a reply if processed. */
+           /* Update FileDescriptor and send a reply if processed. */
            if (msg->result != EAGAIN)
            {
+               getFileDescriptor(files, msg->from, msg->fd)->position += 
msg->size;
                msg->ipc(msg->from, Send, sizeof(*msg));
            }
            /* Release memory. And return. */
@@ -416,7 +417,7 @@
                result = dev->write(buffer, msg->size, msg->offset);

                /* Did it complete successfully? */
-               if (result > 0)
+               if (result >= 0)
                {
                    msg->result = ESUCCESS;
                    msg->size   = result;
@@ -430,6 +431,7 @@
            /* Send a reply if processed. */
            if (msg->result != EAGAIN)
            {
+               getFileDescriptor(files, msg->from, msg->fd)->position += 
msg->size;
                msg->ipc(msg->from, Send, sizeof(*msg));
            }
            /* Release memory. And return. */

Other related posts:

  • » [freenos] r294 committed - DeviceServer now correctly updates FileDescriptor::position.... - codesite-noreply