提交 89fe6476 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

uml: move userspace code to userspace file

Move some code from a kernelspace file to a userspace file where it fits
better.  This enables some tidying which is the subject of a later patch.
Signed-off-by: NJeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 2090ab05
......@@ -89,54 +89,6 @@ static const struct chan_ops not_configged_ops = {
};
#endif /* CONFIG_NOCONFIG_CHAN */
void generic_close(int fd, void *unused)
{
os_close_file(fd);
}
int generic_read(int fd, char *c_out, void *unused)
{
int n;
n = os_read_file(fd, c_out, sizeof(*c_out));
if(n == -EAGAIN)
return 0;
else if(n == 0)
return -EIO;
return n;
}
/* XXX Trivial wrapper around os_write_file */
int generic_write(int fd, const char *buf, int n, void *unused)
{
return os_write_file(fd, buf, n);
}
int generic_window_size(int fd, void *unused, unsigned short *rows_out,
unsigned short *cols_out)
{
int rows, cols;
int ret;
ret = os_window_size(fd, &rows, &cols);
if(ret < 0)
return ret;
ret = ((*rows_out != rows) || (*cols_out != cols));
*rows_out = rows;
*cols_out = cols;
return ret;
}
void generic_free(void *data)
{
kfree(data);
}
static void tty_receive_char(struct tty_struct *tty, char ch)
{
if(tty == NULL) return;
......
......@@ -19,6 +19,55 @@
#include "os.h"
#include "choose-mode.h"
#include "mode.h"
#include "um_malloc.h"
void generic_close(int fd, void *unused)
{
os_close_file(fd);
}
int generic_read(int fd, char *c_out, void *unused)
{
int n;
n = os_read_file(fd, c_out, sizeof(*c_out));
if(n == -EAGAIN)
return 0;
else if(n == 0)
return -EIO;
return n;
}
/* XXX Trivial wrapper around os_write_file */
int generic_write(int fd, const char *buf, int n, void *unused)
{
return os_write_file(fd, buf, n);
}
int generic_window_size(int fd, void *unused, unsigned short *rows_out,
unsigned short *cols_out)
{
int rows, cols;
int ret;
ret = os_window_size(fd, &rows, &cols);
if(ret < 0)
return ret;
ret = ((*rows_out != rows) || (*cols_out != cols));
*rows_out = rows;
*cols_out = cols;
return ret;
}
void generic_free(void *data)
{
kfree(data);
}
int generic_console_write(int fd, const char *buf, int n)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册