提交 73c8f444 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

[PATCH] uml: libc-dependent code should call libc directly

We shouldn't be using the os wrappers from os code - we can use libc directly.
This patch replaces wrapper calls with libc calls.

It turns out that os_sigio_async had only one caller, which was in startup.c,
so that function is moved there and its name changed.
Signed-off-by: NJeff Dike <jdike@addtoit.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>
上级 9eae9b13
master alk-4.19.24 alk-4.19.30 alk-4.19.34 alk-4.19.36 alk-4.19.43 alk-4.19.48 alk-4.19.57 ck-4.19.67 ck-4.19.81 ck-4.19.91 github/fork/deepanshu1422/fix-typo-in-comment github/fork/haosdent/fix-typo linux-next v4.19.91 v4.19.90 v4.19.89 v4.19.88 v4.19.87 v4.19.86 v4.19.85 v4.19.84 v4.19.83 v4.19.82 v4.19.81 v4.19.80 v4.19.79 v4.19.78 v4.19.77 v4.19.76 v4.19.75 v4.19.74 v4.19.73 v4.19.72 v4.19.71 v4.19.70 v4.19.69 v4.19.68 v4.19.67 v4.19.66 v4.19.65 v4.19.64 v4.19.63 v4.19.62 v4.19.61 v4.19.60 v4.19.59 v4.19.58 v4.19.57 v4.19.56 v4.19.55 v4.19.54 v4.19.53 v4.19.52 v4.19.51 v4.19.50 v4.19.49 v4.19.48 v4.19.47 v4.19.46 v4.19.45 v4.19.44 v4.19.43 v4.19.42 v4.19.41 v4.19.40 v4.19.39 v4.19.38 v4.19.37 v4.19.36 v4.19.35 v4.19.34 v4.19.33 v4.19.32 v4.19.31 v4.19.30 v4.19.29 v4.19.28 v4.19.27 v4.19.26 v4.19.25 v4.19.24 v4.19.23 v4.19.22 v4.19.21 v4.19.20 v4.19.19 v4.19.18 v4.19.17 v4.19.16 v4.19.15 v4.19.14 v4.19.13 v4.19.12 v4.19.11 v4.19.10 v4.19.9 v4.19.8 v4.19.7 v4.19.6 v4.19.5 v4.19.4 v4.19.3 v4.19.2 v4.19.1 v4.19 v4.19-rc8 v4.19-rc7 v4.19-rc6 v4.19-rc5 v4.19-rc4 v4.19-rc3 v4.19-rc2 v4.19-rc1 ck-release-21 ck-release-20 ck-release-19.2 ck-release-19.1 ck-release-19 ck-release-18 ck-release-17.2 ck-release-17.1 ck-release-17 ck-release-16 ck-release-15.1 ck-release-15 ck-release-14 ck-release-13.2 ck-release-13 ck-release-12 ck-release-11 ck-release-10 ck-release-9 ck-release-7 alk-release-15 alk-release-14 alk-release-13.2 alk-release-13 alk-release-12 alk-release-11 alk-release-10 alk-release-9 alk-release-7
无相关合并请求
......@@ -137,7 +137,6 @@ extern int os_new_tty_pgrp(int fd, int pid);
extern int os_get_ifname(int fd, char *namebuf);
extern int os_set_slip(int fd);
extern int os_set_owner(int fd, int pid);
extern int os_sigio_async(int master, int slave);
extern int os_mode_fd(int fd, int mode);
extern int os_seek_file(int fd, __u64 offset);
......
......@@ -162,25 +162,6 @@ int os_set_owner(int fd, int pid)
return 0;
}
/* FIXME? moved wholesale from sigio_user.c to get fcntls out of that file */
int os_sigio_async(int master, int slave)
{
int flags;
flags = fcntl(master, F_GETFL);
if(flags < 0)
return -errno;
if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
(fcntl(master, F_SETOWN, os_getpid()) < 0))
return -errno;
if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0))
return -errno;
return(0);
}
int os_mode_fd(int fd, int mode)
{
int err;
......
......@@ -54,7 +54,7 @@ static int ptrace_child(void *arg)
perror("ptrace");
os_kill_process(pid, 0);
}
os_stop_process(pid);
kill(pid, SIGSTOP);
/*This syscall will be intercepted by the parent. Don't call more than
* once, please.*/
......@@ -417,7 +417,7 @@ static inline void check_skas3_ptrace_ldt(void)
static inline void check_skas3_proc_mm(void)
{
printf(" - /proc/mm...");
if (os_access("/proc/mm", OS_ACC_W_OK) < 0) {
if (access("/proc/mm", W_OK) < 0) {
proc_mm = 0;
printf("not found\n");
}
......@@ -452,9 +452,9 @@ int can_do_skas(void)
int __init parse_iomem(char *str, int *add)
{
struct iomem_region *new;
struct uml_stat buf;
struct stat64 buf;
char *file, *driver;
int fd, err, size;
int fd, size;
driver = str;
file = strchr(str,',');
......@@ -464,15 +464,14 @@ int __init parse_iomem(char *str, int *add)
}
*file = '\0';
file++;
fd = os_open_file(file, of_rdwr(OPENFLAGS()), 0);
fd = open(file, O_RDWR, 0);
if(fd < 0){
os_print_error(fd, "parse_iomem - Couldn't open io file");
goto out;
}
err = os_stat_fd(fd, &buf);
if(err < 0){
os_print_error(err, "parse_iomem - cannot stat_fd file");
if(fstat64(fd, &buf) < 0){
perror("parse_iomem - cannot stat_fd file");
goto out_close;
}
......@@ -482,7 +481,7 @@ int __init parse_iomem(char *str, int *add)
goto out_close;
}
size = (buf.ust_size + UM_KERN_PAGE_SIZE) & ~(UM_KERN_PAGE_SIZE - 1);
size = (buf.st_size + UM_KERN_PAGE_SIZE) & ~(UM_KERN_PAGE_SIZE - 1);
*new = ((struct iomem_region) { .next = iomem_regions,
.driver = driver,
......@@ -495,7 +494,7 @@ int __init parse_iomem(char *str, int *add)
return 0;
out_close:
os_close_file(fd);
close(fd);
out:
return 1;
}
......@@ -528,6 +527,24 @@ static void openpty_cb(void *arg)
info->err = -errno;
}
static int async_pty(int master, int slave)
{
int flags;
flags = fcntl(master, F_GETFL);
if(flags < 0)
return -errno;
if((fcntl(master, F_SETFL, flags | O_NONBLOCK | O_ASYNC) < 0) ||
(fcntl(master, F_SETOWN, os_getpid()) < 0))
return -errno;
if((fcntl(slave, F_SETFL, flags | O_NONBLOCK) < 0))
return -errno;
return(0);
}
static void __init check_one_sigio(void (*proc)(int, int))
{
struct sigaction old, new;
......@@ -553,7 +570,7 @@ static void __init check_one_sigio(void (*proc)(int, int))
if (err < 0)
panic("check_sigio : __raw failed, errno = %d\n", -err);
err = os_sigio_async(master, slave);
err = async_pty(master, slave);
if(err < 0)
panic("tty_fds : sigio_async failed, err = %d\n", -err);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部