Merge branch 'master' of github.com:Minep/lunaix-os
[lunaix-os.git] / lunaix-os / hal / term / term_io.c
index 94e61d6cc3ff23f71d22e743c4d1bd8a1e9c806e..835659dec048a70c61a2b14a8043e581e31c635c 100644 (file)
@@ -20,7 +20,7 @@ do_read_raw(struct term* tdev)
 
     char* inbuffer = line_in->current->buffer;
     size_t min = tdev->cc[_VMIN] - 1;
-    size_t sz = chdev->ops.read(chdev, inbuffer, 0, max_lb_sz);
+    size_t sz = chdev->ops.read_async(chdev, inbuffer, 0, max_lb_sz);
     time_t t = clock_systime(), dt = 0;
     time_t expr = (tdev->cc[_VTIME] * 100) - 1;
 
@@ -33,8 +33,7 @@ do_read_raw(struct term* tdev)
         max_lb_sz -= sz;
 
         // TODO pass a flags to read to indicate it is non blocking ops
-        sz +=
-        chdev->ops.read(chdev, inbuffer, sz, max_lb_sz);
+        sz += chdev->ops.read_async(chdev, &inbuffer[sz], 0, max_lb_sz);
     }
 
     rbuffer_puts(line_in->next, inbuffer, sz);
@@ -44,7 +43,8 @@ do_read_raw(struct term* tdev)
 }
 
 static int
-do_read_raw_canno(struct term* tdev) {
+do_read_raw_canno(struct term* tdev)
+{
     struct device* chdev = tdev->chdev;
     struct linebuffer* line_in = &tdev->line_in;
     struct rbuffer* current_buf = line_in->current;
@@ -60,7 +60,7 @@ static int
 term_read_noncano(struct term* tdev)
 {
     struct device* chdev = tdev->chdev;
-    return do_read_raw(tdev);;
+    return do_read_raw(tdev);
 }
 
 static int
@@ -94,19 +94,19 @@ int
 term_flush(struct term* tdev)
 {
     if ((tdev->oflags & _OPOST)) {
-        lcntl_transform_inseq(tdev);
+        lcntl_transform_outseq(tdev);
     }
 
     struct linebuffer* line_out = &tdev->line_out;
     size_t xmit_len = line_out->current->len;
-    void* xmit_buf = line_out->next->buffer;
+    char* xmit_buf = line_out->next->buffer;
 
     rbuffer_gets(line_out->current, xmit_buf, xmit_len);
 
     off_t off = 0;
     int ret = 0;
     while (xmit_len && ret >= 0) {
-        ret = tdev->chdev->ops.write(tdev->chdev, xmit_buf, off, xmit_len);
+        ret = tdev->chdev->ops.write(tdev->chdev, &xmit_buf[off], 0, xmit_len);
         xmit_len -= ret;
         off += ret;
     }