Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef0470c0 authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds
Browse files

uml: tidy libc code



This patch lays some groundwork for the next one, which converts calls to
os_{read,write}_file into {read,write}, by doing some tidying in the affected
areas.

do_not_aio gets restructured to make the final result a bit cleaner.

There are also whitespace and other formatting fixes, fixes in error messages,
and a typo fix.

Signed-off-by: default avatarJeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3d564047
Loading
Loading
Loading
Loading
+6 −14
Original line number Diff line number Diff line
@@ -146,28 +146,21 @@ static int aio_thread(void *arg)
static int do_not_aio(struct aio_thread_req *req)
{
	char c;
	unsigned long long actual;
	int err;

	actual = lseek64(req->io_fd, req->offset, SEEK_SET);
	if(actual != req->offset)
		return -errno;

	switch(req->type){
	case AIO_READ:
		err = os_seek_file(req->io_fd, req->offset);
		if(err)
			goto out;

		err = os_read_file(req->io_fd, req->buf, req->len);
		break;
	case AIO_WRITE:
		err = os_seek_file(req->io_fd, req->offset);
		if(err)
			goto out;

		err = os_write_file(req->io_fd, req->buf, req->len);
		break;
	case AIO_MMAP:
		err = os_seek_file(req->io_fd, req->offset);
		if(err)
			goto out;

		err = os_read_file(req->io_fd, &c, sizeof(c));
		break;
	default:
@@ -176,7 +169,6 @@ static int do_not_aio(struct aio_thread_req *req)
		break;
	}

out:
	return err;
}

+7 −3
Original line number Diff line number Diff line
@@ -49,8 +49,11 @@ static void etap_change(int op, unsigned char *addr, unsigned char *netmask,
	memcpy(change.addr, addr, sizeof(change.addr));
	memcpy(change.netmask, netmask, sizeof(change.netmask));
	n = os_write_file(fd, &change, sizeof(change));
	if(n != sizeof(change))
	if(n != sizeof(change)){
		printk("etap_change - request failed, err = %d\n", -n);
		return;
	}

	output = um_kmalloc(UM_KERN_PAGE_SIZE);
	if(output == NULL)
		printk("etap_change : Failed to allocate output buffer\n");
@@ -116,7 +119,8 @@ static int etap_tramp(char *dev, char *gate, int control_me,
	pe_data.data_me = data_me;
	pid = run_helper(etap_pre_exec, &pe_data, args, NULL);

	if(pid < 0) err = pid;
	if(pid < 0)
		err = pid;
	os_close_file(data_remote);
	os_close_file(control_remote);
	n = os_read_file(control_me, &c, sizeof(c));
+6 −3
Original line number Diff line number Diff line
@@ -34,7 +34,8 @@ static int helper_child(void *arg)
	if (data->pre_exec != NULL)
		(*data->pre_exec)(data->pre_data);
	errval = execvp_noalloc(data->buf, argv[0], argv);
	printk("helper_child - execvp of '%s' failed - errno = %d\n", argv[0], -errval);
	printk("helper_child - execvp of '%s' failed - errno = %d\n", argv[0],
	       -errval);
	os_write_file(data->fd, &errval, sizeof(errval));
	kill(os_getpid(), SIGKILL);
	return 0;
@@ -87,8 +88,10 @@ int run_helper(void (*pre_exec)(void *), void *pre_data, char **argv,
	close(fds[1]);
	fds[1] = -1;

	/* Read the errno value from the child, if the exec failed, or get 0 if
	 * the exec succeeded because the pipe fd was set as close-on-exec. */
	/*
	 * Read the errno value from the child, if the exec failed, or get 0 if
	 * the exec succeeded because the pipe fd was set as close-on-exec.
	 */
	n = os_read_file(fds[0], &ret, sizeof(ret));
	if (n == 0) {
		ret = pid;
+15 −14
Original line number Diff line number Diff line
@@ -40,14 +40,14 @@ unsigned long os_process_pc(int pid)
	if(fd < 0){
		printk("os_process_pc - couldn't open '%s', err = %d\n",
		       proc_stat, -fd);
		return(ARBITRARY_ADDR);
		return ARBITRARY_ADDR;
	}
	err = os_read_file(fd, buf, sizeof(buf));
	if(err < 0){
		printk("os_process_pc - couldn't read '%s', err = %d\n",
		       proc_stat, -err);
		os_close_file(fd);
		return(ARBITRARY_ADDR);
		return ARBITRARY_ADDR;
	}
	os_close_file(fd);
	pc = ARBITRARY_ADDR;
@@ -56,7 +56,7 @@ unsigned long os_process_pc(int pid)
		  "%*d %*d %*d %*d %*d %lu", &pc) != 1){
		printk("os_process_pc - couldn't find pc in '%s'\n", buf);
	}
	return(pc);
	return pc;
}

int os_process_parent(int pid)
@@ -65,13 +65,14 @@ int os_process_parent(int pid)
	char data[256];
	int parent, n, fd;

	if(pid == -1) return(-1);
	if(pid == -1)
		return -1;

	snprintf(stat, sizeof(stat), "/proc/%d/stat", pid);
	fd = os_open_file(stat, of_read(OPENFLAGS()), 0);
	if(fd < 0){
		printk("Couldn't open '%s', err = %d\n", stat, -fd);
		return(FAILURE_PID);
		return FAILURE_PID;
	}

	n = os_read_file(fd, data, sizeof(data));
@@ -79,7 +80,7 @@ int os_process_parent(int pid)

	if(n < 0){
		printk("Couldn't read '%s', err = %d\n", stat, -n);
		return(FAILURE_PID);
		return FAILURE_PID;
	}

	parent = FAILURE_PID;
@@ -87,7 +88,7 @@ int os_process_parent(int pid)
	if(n != 1)
		printk("Failed to scan '%s'\n", data);

	return(parent);
	return parent;
}

void os_stop_process(int pid)
@@ -145,7 +146,7 @@ void os_usr1_process(int pid)

int os_getpid(void)
{
	return(syscall(__NR_getpid));
	return syscall(__NR_getpid);
}

int os_getpgrp(void)
@@ -165,8 +166,8 @@ int os_map_memory(void *virt, int fd, unsigned long long off, unsigned long len,
	loc = mmap64((void *) virt, len, prot, MAP_SHARED | MAP_FIXED,
		     fd, off);
	if(loc == MAP_FAILED)
		return(-errno);
	return(0);
		return -errno;
	return 0;
}

int os_protect_memory(void *addr, unsigned long len, int r, int w, int x)
@@ -175,8 +176,8 @@ int os_protect_memory(void *addr, unsigned long len, int r, int w, int x)
		    (x ? PROT_EXEC : 0));

        if(mprotect(addr, len, prot) < 0)
		return(-errno);
        return(0);
		return -errno;
        return 0;
}

int os_unmap_memory(void *addr, int len)
@@ -185,8 +186,8 @@ int os_unmap_memory(void *addr, int len)

        err = munmap(addr, len);
	if(err < 0)
		return(-errno);
        return(0);
		return -errno;
        return 0;
}

#ifndef MADV_REMOVE
+4 −3
Original line number Diff line number Diff line
@@ -461,15 +461,16 @@ static void tty_output(int master, int slave)

	while(os_write_file(master, buf, sizeof(buf)) > 0) ;
	if(errno != EAGAIN)
		panic("check_sigio : write failed, errno = %d\n", errno);
		panic("tty_output : write failed, errno = %d\n", errno);
	while(((n = os_read_file(slave, buf, sizeof(buf))) > 0) && !got_sigio) ;

	if(got_sigio){
		printk("Yes\n");
		pty_output_sigio = 1;
	}
	else if(n == -EAGAIN) printk("No, enabling workaround\n");
	else panic("check_sigio : read failed, err = %d\n", n);
	else if(n == -EAGAIN)
		printk("No, enabling workaround\n");
	else panic("tty_output : read failed, err = %d\n", n);
}

static void tty_close(int master, int slave)
Loading