Sfoglia il codice sorgente

Merge pull request #146 from grissiom/rtt-next

Some fix for the portal device
Bernard Xiong 11 anni fa
parent
commit
f7f14cf566
1 ha cambiato i file con 7 aggiunte e 2 eliminazioni
  1. 7 2
      components/drivers/src/portal.c

+ 7 - 2
components/drivers/src/portal.c

@@ -53,6 +53,9 @@ static rt_err_t _portal_open(rt_device_t dev, rt_uint16_t oflag)
 
     RT_ASSERT(dev);
 
+    if (!oflag)
+        return -RT_ERROR;
+
     portal = (struct rt_portal_device*)dev;
 
     if (oflag & RT_DEVICE_OFLAG_RDONLY)
@@ -113,7 +116,8 @@ static rt_err_t _portal_rx_indicate(rt_device_t dev, rt_size_t size)
     pipe = (struct rt_pipe_device*)dev;
 
     if (pipe->read_portal->parent.rx_indicate)
-        return pipe->read_portal->parent.rx_indicate(dev, size);
+        return pipe->read_portal->parent.rx_indicate(
+                (rt_device_t)pipe->read_portal, size);
 
     return -RT_ENOSYS;
 }
@@ -127,7 +131,8 @@ static rt_err_t _portal_tx_complete(rt_device_t dev, void *buf)
     pipe = (struct rt_pipe_device*)dev;
 
     if (pipe->write_portal->parent.tx_complete)
-        return pipe->write_portal->parent.tx_complete(dev, buf);
+        return pipe->write_portal->parent.tx_complete(
+                (rt_device_t)pipe->write_portal, buf);
 
     return -RT_ENOSYS;
 }