hans-2.4.0.0: src/Hans/Device/Xen.hs
module Hans.Device.Xen where
import Hans.Layer.Ethernet
import XenDevice.NIC as Xen
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
-- Xen NIC ---------------------------------------------------------------------
xenSend :: NIC -> L.ByteString -> IO ()
xenSend = Xen.sendPacket
xenReceiveLoop :: NIC -> EthernetHandle -> IO ()
xenReceiveLoop nic eh = Xen.setReceiveHandler nic k
where
k bs | L.length bs <= 14 = return ()
| otherwise = queueEthernet eh (S.concat (L.toChunks bs))