⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial-non-block

📁 xen虚拟机源代码安装包
💻
字号:
Index: ioemu/vl.c===================================================================--- ioemu.orig/vl.c	2007-05-03 19:15:06.000000000 +0100+++ ioemu/vl.c	2007-05-03 19:15:58.000000000 +0100@@ -1298,19 +1298,34 @@  static int unix_write(int fd, const uint8_t *buf, int len1) {-    int ret, len;+    int ret, sel_ret, len;+    int max_fd;+    fd_set writefds;+    struct timeval timeout;++    max_fd = fd;      len = len1;     while (len > 0) {-        ret = write(fd, buf, len);-        if (ret < 0) {-            if (errno != EINTR && errno != EAGAIN)-                return -1;-        } else if (ret == 0) {-            break;+        FD_ZERO(&writefds);+        FD_SET(fd, &writefds);+        timeout.tv_sec = 0;+        timeout.tv_usec = 0;+        sel_ret = select(max_fd + 1, NULL, &writefds, 0, &timeout);+        if (sel_ret <= 0) {+            /* Timeout or select error */+            return -1;         } else {-            buf += ret;-            len -= ret;+            ret = write(fd, buf, len);+            if (ret < 0) {+                if (errno != EINTR && errno != EAGAIN)+                    return -1;+            } else if (ret == 0) {+                break;+            } else {+                buf += ret;+                len -= ret;+            }         }     }     return len1 - len;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -