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;
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);
}
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;
term_read_noncano(struct term* tdev)
{
struct device* chdev = tdev->chdev;
- return do_read_raw(tdev);;
+ return do_read_raw(tdev);
}
static 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;
}