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: Jeff Dike <jdike@linux.intel.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									3d564047a5
								
							
						
					
					
						commit
						ef0470c053
					
				| @ -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; | ||||
| } | ||||
| 
 | ||||
| @ -207,7 +199,7 @@ static int not_aio_thread(void *arg) | ||||
| 		} | ||||
| 		err = do_not_aio(&req); | ||||
| 		reply = ((struct aio_thread_reply) { .data 	= req.aio, | ||||
| 					 .err	= err }); | ||||
| 						     .err	= err }); | ||||
| 		err = os_write_file(req.aio->reply_fd, &reply, sizeof(reply)); | ||||
| 		if(err != sizeof(reply)) | ||||
| 			printk("not_aio_thread - write failed, fd = %d, " | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| /*
 | ||||
|  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and  | ||||
|  * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and | ||||
|  * James Leu (jleu@mindspring.net). | ||||
|  * Copyright (C) 2001 by various other people who didn't put their name here. | ||||
|  * Licensed under the GPL. | ||||
| @ -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)); | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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) | ||||
|  | ||||
| @ -409,7 +409,7 @@ int copy_context_skas0(unsigned long new_stack, int pid) | ||||
| 
 | ||||
| /*
 | ||||
|  * This is used only, if stub pages are needed, while proc_mm is | ||||
|  * availabl. Opening /proc/mm creates a new mm_context, which lacks | ||||
|  * available. Opening /proc/mm creates a new mm_context, which lacks | ||||
|  * the stub-pages. Thus, we map them using /proc/mm-fd | ||||
|  */ | ||||
| void map_stub_pages(int fd, unsigned long code, | ||||
|  | ||||
| @ -55,7 +55,7 @@ int open_tty_log(void *tty, void *current_tty) | ||||
| 					       .usec = tv.tv_usec } ); | ||||
| 		os_write_file(tty_log_fd, &data, sizeof(data)); | ||||
| 		os_write_file(tty_log_fd, ¤t_tty, data.len); | ||||
| 		return(tty_log_fd); | ||||
| 		return tty_log_fd; | ||||
| 	} | ||||
| 
 | ||||
| 	sprintf(buf, "%s/%0u-%0u", tty_log_dir, (unsigned int) tv.tv_sec, | ||||
| @ -67,7 +67,7 @@ int open_tty_log(void *tty, void *current_tty) | ||||
| 		printk("open_tty_log : couldn't open '%s', errno = %d\n", | ||||
| 		       buf, -fd); | ||||
| 	} | ||||
| 	return(fd); | ||||
| 	return fd; | ||||
| } | ||||
| 
 | ||||
| void close_tty_log(int fd, void *tty) | ||||
| @ -101,18 +101,18 @@ static int log_chunk(int fd, const char *buf, int len) | ||||
| 		n = os_write_file(fd, chunk, try); | ||||
| 		if(n != try) { | ||||
| 			if(n < 0) | ||||
| 				return(n); | ||||
| 			return(-EIO); | ||||
| 				return n; | ||||
| 			return -EIO; | ||||
| 		} | ||||
| 		if(missed != 0) | ||||
| 			return(-EFAULT); | ||||
| 			return -EFAULT; | ||||
| 
 | ||||
| 		len -= try; | ||||
| 		total += try; | ||||
| 		buf += try; | ||||
| 	} | ||||
| 
 | ||||
| 	return(total); | ||||
| 	return total; | ||||
| } | ||||
| 
 | ||||
| int write_tty_log(int fd, const char *buf, int len, void *tty, int is_read) | ||||
| @ -133,7 +133,7 @@ int write_tty_log(int fd, const char *buf, int len, void *tty, int is_read) | ||||
| 		os_write_file(tty_log_fd, &data, sizeof(data)); | ||||
| 	} | ||||
| 
 | ||||
| 	return(log_chunk(fd, buf, len)); | ||||
| 	return log_chunk(fd, buf, len); | ||||
| } | ||||
| 
 | ||||
| void log_exec(char **argv, void *tty) | ||||
| @ -179,7 +179,7 @@ extern void register_tty_logger(int (*opener)(void *, void *), | ||||
| static int register_logger(void) | ||||
| { | ||||
| 	register_tty_logger(open_tty_log, write_tty_log, close_tty_log); | ||||
| 	return(0); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| __uml_initcall(register_logger); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user