Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=73c8f4441f07dd3b9d198ec0e97ce83138a6224c
Commit:     73c8f4441f07dd3b9d198ec0e97ce83138a6224c
Parent:     9eae9b132cd2cebf98cc45550049d421302b9aba
Author:     Jeff Dike <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 10 01:44:20 2007 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Sun Feb 11 10:51:23 2007 -0800

    [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: Jeff Dike <[EMAIL PROTECTED]>
    Cc: Paolo 'Blaisorblade' Giarrusso <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 arch/um/include/os.h        |    1 -
 arch/um/os-Linux/file.c     |   19 -------------------
 arch/um/os-Linux/start_up.c |   39 ++++++++++++++++++++++++++++-----------
 3 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index 13a86bd..8f60266 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -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);
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index 189fa67..371b433 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -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;
diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c
index 537084f..735d035 100644
--- a/arch/um/os-Linux/start_up.c
+++ b/arch/um/os-Linux/start_up.c
@@ -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);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to