mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 17:54:13 +08:00
edea138584
Tidy kern_util.h. It turns out that most of the function declarations aren't used, so they can go away. os.h no longer includes kern_util.h, so files which got it through os.h now need to include it directly. A number of other files never needed it, so these includes are deleted. The structure which was used to pass signal handlers from the kernel side to the userspace side is gone. Instead, the handlers are declared here, and used directly from libc code. This allows arch/um/os-Linux/trap.c to be deleted, with its remnants being moved to arch/um/os-Linux/skas/trap.c. arch/um/os-Linux/tty.c had its inclusions changed, and it needed some style attention, so it got tidied. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
68 lines
1.3 KiB
C
68 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2000, 2001, 2002 Jeff Dike (jdike@karaya.com)
|
|
* Copyright (C) 2001 Ridgerun,Inc (glonnon@ridgerun.com)
|
|
* Licensed under the GPL
|
|
*/
|
|
|
|
#include <stddef.h>
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <sched.h>
|
|
#include <signal.h>
|
|
#include <string.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/time.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/mman.h>
|
|
#include <sys/param.h>
|
|
#include "asm/types.h"
|
|
#include "user.h"
|
|
#include "ubd_user.h"
|
|
#include "os.h"
|
|
#include "cow.h"
|
|
|
|
#include <endian.h>
|
|
#include <byteswap.h>
|
|
|
|
void ignore_sigwinch_sig(void)
|
|
{
|
|
signal(SIGWINCH, SIG_IGN);
|
|
}
|
|
|
|
int start_io_thread(unsigned long sp, int *fd_out)
|
|
{
|
|
int pid, fds[2], err;
|
|
|
|
err = os_pipe(fds, 1, 1);
|
|
if(err < 0){
|
|
printk("start_io_thread - os_pipe failed, err = %d\n", -err);
|
|
goto out;
|
|
}
|
|
|
|
kernel_fd = fds[0];
|
|
*fd_out = fds[1];
|
|
|
|
err = os_set_fd_block(*fd_out, 0);
|
|
if (err) {
|
|
printk("start_io_thread - failed to set nonblocking I/O.\n");
|
|
goto out_close;
|
|
}
|
|
|
|
pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM, NULL);
|
|
if(pid < 0){
|
|
err = -errno;
|
|
printk("start_io_thread - clone failed : errno = %d\n", errno);
|
|
goto out_close;
|
|
}
|
|
|
|
return(pid);
|
|
|
|
out_close:
|
|
os_close_file(fds[0]);
|
|
os_close_file(fds[1]);
|
|
kernel_fd = -1;
|
|
*fd_out = -1;
|
|
out:
|
|
return err;
|
|
}
|