Added support for changing the access mode using ioctl() and B_SET_(NON)BLOCKING_IO.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9204 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -104,7 +104,20 @@ master_ioctl(void *_cookie, uint32 op, void *buffer, size_t length)
|
|||||||
master_cookie *cookie = (master_cookie *)_cookie;
|
master_cookie *cookie = (master_cookie *)_cookie;
|
||||||
|
|
||||||
TRACE(("master_ioctl: cookie %p, op %lu, buffer %p, length %lu\n", _cookie, op, buffer, length));
|
TRACE(("master_ioctl: cookie %p, op %lu, buffer %p, length %lu\n", _cookie, op, buffer, length));
|
||||||
return tty_ioctl(cookie->tty, op, buffer, length);
|
|
||||||
|
switch (op) {
|
||||||
|
case B_SET_BLOCKING_IO:
|
||||||
|
cookie->open_mode &= ~O_NONBLOCK;
|
||||||
|
break;
|
||||||
|
case B_SET_NONBLOCKING_IO:
|
||||||
|
cookie->open_mode |= O_NONBLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return tty_ioctl(cookie->tty, op, buffer, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,20 @@ slave_ioctl(void *_cookie, uint32 op, void *buffer, size_t length)
|
|||||||
slave_cookie *cookie = (slave_cookie *)_cookie;
|
slave_cookie *cookie = (slave_cookie *)_cookie;
|
||||||
|
|
||||||
TRACE(("slave_ioctl: cookie %p, op %lu, buffer %p, length %lu\n", _cookie, op, buffer, length));
|
TRACE(("slave_ioctl: cookie %p, op %lu, buffer %p, length %lu\n", _cookie, op, buffer, length));
|
||||||
return tty_ioctl(cookie->tty, op, buffer, length);
|
|
||||||
|
switch (op) {
|
||||||
|
case B_SET_BLOCKING_IO:
|
||||||
|
cookie->open_mode &= ~O_NONBLOCK;
|
||||||
|
break;
|
||||||
|
case B_SET_NONBLOCKING_IO:
|
||||||
|
cookie->open_mode |= O_NONBLOCK;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return tty_ioctl(cookie->tty, op, buffer, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user