Commit a6ea4cce authored by Jeff Dike's avatar Jeff Dike Committed by Linus Torvalds

uml: rename os_{read_write}_file_k back to os_{read_write}_file

Rename os_{read_write}_file_k back to os_{read_write}_file, delete
the originals and their bogus infrastructure, and fix all the callers.
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 a2636724
...@@ -98,7 +98,7 @@ int generic_read(int fd, char *c_out, void *unused) ...@@ -98,7 +98,7 @@ int generic_read(int fd, char *c_out, void *unused)
{ {
int n; int n;
n = os_read_file_k(fd, c_out, sizeof(*c_out)); n = os_read_file(fd, c_out, sizeof(*c_out));
if(n == -EAGAIN) if(n == -EAGAIN)
return 0; return 0;
...@@ -111,7 +111,7 @@ int generic_read(int fd, char *c_out, void *unused) ...@@ -111,7 +111,7 @@ int generic_read(int fd, char *c_out, void *unused)
int generic_write(int fd, const char *buf, int n, void *unused) int generic_write(int fd, const char *buf, int n, void *unused)
{ {
return os_write_file_k(fd, buf, n); return os_write_file(fd, buf, n);
} }
int generic_window_size(int fd, void *unused, unsigned short *rows_out, int generic_window_size(int fd, void *unused, unsigned short *rows_out,
......
...@@ -85,7 +85,7 @@ static int winch_thread(void *arg) ...@@ -85,7 +85,7 @@ static int winch_thread(void *arg)
pty_fd = data->pty_fd; pty_fd = data->pty_fd;
pipe_fd = data->pipe_fd; pipe_fd = data->pipe_fd;
count = os_write_file_k(pipe_fd, &c, sizeof(c)); count = os_write_file(pipe_fd, &c, sizeof(c));
if(count != sizeof(c)) if(count != sizeof(c))
printk("winch_thread : failed to write synchronization " printk("winch_thread : failed to write synchronization "
"byte, err = %d\n", -count); "byte, err = %d\n", -count);
...@@ -120,7 +120,7 @@ static int winch_thread(void *arg) ...@@ -120,7 +120,7 @@ static int winch_thread(void *arg)
* host - since they are not different kernel threads, we cannot use * host - since they are not different kernel threads, we cannot use
* kernel semaphores. We don't use SysV semaphores because they are * kernel semaphores. We don't use SysV semaphores because they are
* persistent. */ * persistent. */
count = os_read_file_k(pipe_fd, &c, sizeof(c)); count = os_read_file(pipe_fd, &c, sizeof(c));
if(count != sizeof(c)) if(count != sizeof(c))
printk("winch_thread : failed to read synchronization byte, " printk("winch_thread : failed to read synchronization byte, "
"err = %d\n", -count); "err = %d\n", -count);
...@@ -130,7 +130,7 @@ static int winch_thread(void *arg) ...@@ -130,7 +130,7 @@ static int winch_thread(void *arg)
* are blocked.*/ * are blocked.*/
sigsuspend(&sigs); sigsuspend(&sigs);
count = os_write_file_k(pipe_fd, &c, sizeof(c)); count = os_write_file(pipe_fd, &c, sizeof(c));
if(count != sizeof(c)) if(count != sizeof(c))
printk("winch_thread : write failed, err = %d\n", printk("winch_thread : write failed, err = %d\n",
-count); -count);
...@@ -162,7 +162,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out) ...@@ -162,7 +162,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out)
} }
*fd_out = fds[0]; *fd_out = fds[0];
n = os_read_file_k(fds[0], &c, sizeof(c)); n = os_read_file(fds[0], &c, sizeof(c));
if(n != sizeof(c)){ if(n != sizeof(c)){
printk("winch_tramp : failed to read synchronization byte\n"); printk("winch_tramp : failed to read synchronization byte\n");
printk("read failed, err = %d\n", -n); printk("read failed, err = %d\n", -n);
...@@ -195,7 +195,7 @@ void register_winch(int fd, struct tty_struct *tty) ...@@ -195,7 +195,7 @@ void register_winch(int fd, struct tty_struct *tty)
if(thread > 0){ if(thread > 0){
register_winch_irq(thread_fd, fd, thread, tty); register_winch_irq(thread_fd, fd, thread, tty);
count = os_write_file_k(thread_fd, &c, sizeof(c)); count = os_write_file(thread_fd, &c, sizeof(c));
if(count != sizeof(c)) if(count != sizeof(c))
printk("register_winch : failed to write " printk("register_winch : failed to write "
"synchronization byte, err = %d\n", "synchronization byte, err = %d\n",
......
...@@ -35,7 +35,7 @@ static inline int cow_file_size(char *file, unsigned long long *size_out) ...@@ -35,7 +35,7 @@ static inline int cow_file_size(char *file, unsigned long long *size_out)
static inline int cow_write_file(int fd, void *buf, int size) static inline int cow_write_file(int fd, void *buf, int size)
{ {
return os_write_file_k(fd, buf, size); return os_write_file(fd, buf, size);
} }
#endif #endif
...@@ -94,7 +94,7 @@ static int connect_to_switch(struct daemon_data *pri) ...@@ -94,7 +94,7 @@ static int connect_to_switch(struct daemon_data *pri)
req.version = SWITCH_VERSION; req.version = SWITCH_VERSION;
req.type = REQ_NEW_CONTROL; req.type = REQ_NEW_CONTROL;
req.sock = *local_addr; req.sock = *local_addr;
n = os_write_file_k(pri->control, &req, sizeof(req)); n = os_write_file(pri->control, &req, sizeof(req));
if(n != sizeof(req)){ if(n != sizeof(req)){
printk("daemon_open : control setup request failed, err = %d\n", printk("daemon_open : control setup request failed, err = %d\n",
-n); -n);
...@@ -102,7 +102,7 @@ static int connect_to_switch(struct daemon_data *pri) ...@@ -102,7 +102,7 @@ static int connect_to_switch(struct daemon_data *pri)
goto out_free; goto out_free;
} }
n = os_read_file_k(pri->control, sun, sizeof(*sun)); n = os_read_file(pri->control, sun, sizeof(*sun));
if(n != sizeof(*sun)){ if(n != sizeof(*sun)){
printk("daemon_open : read of data socket failed, err = %d\n", printk("daemon_open : read of data socket failed, err = %d\n",
-n); -n);
......
...@@ -79,7 +79,7 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock) ...@@ -79,7 +79,7 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock)
goto out_close_out; goto out_close_out;
} }
n = os_read_file_k(in_fds[0], &c, sizeof(c)); n = os_read_file(in_fds[0], &c, sizeof(c));
if(n == 0){ if(n == 0){
printk("harddog_open - EOF on watchdog pipe\n"); printk("harddog_open - EOF on watchdog pipe\n");
helper_wait(pid); helper_wait(pid);
...@@ -118,7 +118,7 @@ int ping_watchdog(int fd) ...@@ -118,7 +118,7 @@ int ping_watchdog(int fd)
int n; int n;
char c = '\n'; char c = '\n';
n = os_write_file_k(fd, &c, sizeof(c)); n = os_write_file(fd, &c, sizeof(c));
if(n != sizeof(c)){ if(n != sizeof(c)){
printk("ping_watchdog - write failed, err = %d\n", -n); printk("ping_watchdog - write failed, err = %d\n", -n);
if(n < 0) if(n < 0)
......
...@@ -84,7 +84,7 @@ static ssize_t hostaudio_read(struct file *file, char __user *buffer, ...@@ -84,7 +84,7 @@ static ssize_t hostaudio_read(struct file *file, char __user *buffer,
if(kbuf == NULL) if(kbuf == NULL)
return(-ENOMEM); return(-ENOMEM);
err = os_read_file_k(state->fd, kbuf, count); err = os_read_file(state->fd, kbuf, count);
if(err < 0) if(err < 0)
goto out; goto out;
...@@ -115,7 +115,7 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer, ...@@ -115,7 +115,7 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer,
if(copy_from_user(kbuf, buffer, count)) if(copy_from_user(kbuf, buffer, count))
goto out; goto out;
err = os_write_file_k(state->fd, kbuf, count); err = os_write_file(state->fd, kbuf, count);
if(err < 0) if(err < 0)
goto out; goto out;
*ppos += err; *ppos += err;
......
...@@ -63,7 +63,7 @@ void read_output(int fd, char *output, int len) ...@@ -63,7 +63,7 @@ void read_output(int fd, char *output, int len)
} }
*output = '\0'; *output = '\0';
ret = os_read_file_k(fd, &remain, sizeof(remain)); ret = os_read_file(fd, &remain, sizeof(remain));
if (ret != sizeof(remain)) { if (ret != sizeof(remain)) {
expected = sizeof(remain); expected = sizeof(remain);
...@@ -73,7 +73,7 @@ void read_output(int fd, char *output, int len) ...@@ -73,7 +73,7 @@ void read_output(int fd, char *output, int len)
while(remain != 0){ while(remain != 0){
expected = (remain < len) ? remain : len; expected = (remain < len) ? remain : len;
ret = os_read_file_k(fd, output, expected); ret = os_read_file(fd, output, expected);
if (ret != expected) { if (ret != expected) {
str = "data"; str = "data";
goto err; goto err;
...@@ -94,7 +94,7 @@ int net_read(int fd, void *buf, int len) ...@@ -94,7 +94,7 @@ int net_read(int fd, void *buf, int len)
{ {
int n; int n;
n = os_read_file_k(fd, buf, len); n = os_read_file(fd, buf, len);
if(n == -EAGAIN) if(n == -EAGAIN)
return 0; return 0;
...@@ -122,7 +122,7 @@ int net_write(int fd, void *buf, int len) ...@@ -122,7 +122,7 @@ int net_write(int fd, void *buf, int len)
{ {
int n; int n;
n = os_write_file_k(fd, buf, len); n = os_write_file(fd, buf, len);
if(n == -EAGAIN) if(n == -EAGAIN)
return 0; return 0;
......
...@@ -113,7 +113,7 @@ static int port_accept(struct port_list *port) ...@@ -113,7 +113,7 @@ static int port_accept(struct port_list *port)
} }
if(atomic_read(&port->wait_count) == 0){ if(atomic_read(&port->wait_count) == 0){
os_write_file_k(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG)); os_write_file(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG));
printk("No one waiting for port\n"); printk("No one waiting for port\n");
} }
list_add(&conn->list, &port->pending); list_add(&conn->list, &port->pending);
......
...@@ -44,7 +44,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size, ...@@ -44,7 +44,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size,
int n, ret = 0, have_data; int n, ret = 0, have_data;
while(size){ while(size){
n = os_read_file_k(random_fd, &data, sizeof(data)); n = os_read_file(random_fd, &data, sizeof(data));
if(n > 0){ if(n > 0){
have_data = n; have_data = n;
while (have_data && size) { while (have_data && size) {
......
...@@ -511,8 +511,8 @@ static void ubd_handler(void) ...@@ -511,8 +511,8 @@ static void ubd_handler(void)
int n; int n;
while(1){ while(1){
n = os_read_file_k(thread_fd, &req, n = os_read_file(thread_fd, &req,
sizeof(struct io_thread_req *)); sizeof(struct io_thread_req *));
if(n != sizeof(req)){ if(n != sizeof(req)){
if(n == -EAGAIN) if(n == -EAGAIN)
break; break;
...@@ -1112,8 +1112,8 @@ static void do_ubd_request(request_queue_t *q) ...@@ -1112,8 +1112,8 @@ static void do_ubd_request(request_queue_t *q)
(unsigned long long) req->sector << 9, (unsigned long long) req->sector << 9,
sg->offset, sg->length, sg->page); sg->offset, sg->length, sg->page);
n = os_write_file_k(thread_fd, &io_req, n = os_write_file(thread_fd, &io_req,
sizeof(struct io_thread_req *)); sizeof(struct io_thread_req *));
if(n != sizeof(struct io_thread_req *)){ if(n != sizeof(struct io_thread_req *)){
if(n != -EAGAIN) if(n != -EAGAIN)
printk("write to io thread failed, " printk("write to io thread failed, "
...@@ -1366,8 +1366,8 @@ static int update_bitmap(struct io_thread_req *req) ...@@ -1366,8 +1366,8 @@ static int update_bitmap(struct io_thread_req *req)
return 1; return 1;
} }
n = os_write_file_k(req->fds[1], &req->bitmap_words, n = os_write_file(req->fds[1], &req->bitmap_words,
sizeof(req->bitmap_words)); sizeof(req->bitmap_words));
if(n != sizeof(req->bitmap_words)){ if(n != sizeof(req->bitmap_words)){
printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, printk("do_io - bitmap update failed, err = %d fd = %d\n", -n,
req->fds[1]); req->fds[1]);
...@@ -1411,7 +1411,7 @@ void do_io(struct io_thread_req *req) ...@@ -1411,7 +1411,7 @@ void do_io(struct io_thread_req *req)
do { do {
buf = &buf[n]; buf = &buf[n];
len -= n; len -= n;
n = os_read_file_k(req->fds[bit], buf, len); n = os_read_file(req->fds[bit], buf, len);
if (n < 0) { if (n < 0) {
printk("do_io - read failed, err = %d " printk("do_io - read failed, err = %d "
"fd = %d\n", -n, req->fds[bit]); "fd = %d\n", -n, req->fds[bit]);
...@@ -1421,7 +1421,7 @@ void do_io(struct io_thread_req *req) ...@@ -1421,7 +1421,7 @@ void do_io(struct io_thread_req *req)
} while((n < len) && (n != 0)); } while((n < len) && (n != 0));
if (n < len) memset(&buf[n], 0, len - n); if (n < len) memset(&buf[n], 0, len - n);
} else { } else {
n = os_write_file_k(req->fds[bit], buf, len); n = os_write_file(req->fds[bit], buf, len);
if(n != len){ if(n != len){
printk("do_io - write failed err = %d " printk("do_io - write failed err = %d "
"fd = %d\n", -n, req->fds[bit]); "fd = %d\n", -n, req->fds[bit]);
...@@ -1451,7 +1451,7 @@ int io_thread(void *arg) ...@@ -1451,7 +1451,7 @@ int io_thread(void *arg)
ignore_sigwinch_sig(); ignore_sigwinch_sig();
while(1){ while(1){
n = os_read_file_k(kernel_fd, &req, n = os_read_file(kernel_fd, &req,
sizeof(struct io_thread_req *)); sizeof(struct io_thread_req *));
if(n != sizeof(struct io_thread_req *)){ if(n != sizeof(struct io_thread_req *)){
if(n < 0) if(n < 0)
...@@ -1465,7 +1465,7 @@ int io_thread(void *arg) ...@@ -1465,7 +1465,7 @@ int io_thread(void *arg)
} }
io_count++; io_count++;
do_io(req); do_io(req);
n = os_write_file_k(kernel_fd, &req, n = os_write_file(kernel_fd, &req,
sizeof(struct io_thread_req *)); sizeof(struct io_thread_req *));
if(n != sizeof(struct io_thread_req *)) if(n != sizeof(struct io_thread_req *))
printk("io_thread - write failed, fd = %d, err = %d\n", printk("io_thread - write failed, fd = %d, err = %d\n",
......
...@@ -144,9 +144,7 @@ extern int os_mode_fd(int fd, int mode); ...@@ -144,9 +144,7 @@ extern int os_mode_fd(int fd, int mode);
extern int os_seek_file(int fd, __u64 offset); extern int os_seek_file(int fd, __u64 offset);
extern int os_open_file(char *file, struct openflags flags, int mode); extern int os_open_file(char *file, struct openflags flags, int mode);
extern int os_read_file(int fd, void *buf, int len); extern int os_read_file(int fd, void *buf, int len);
extern int os_read_file_k(int fd, void *buf, int len);
extern int os_write_file(int fd, const void *buf, int count); extern int os_write_file(int fd, const void *buf, int count);
extern int os_write_file_k(int fd, const void *buf, int len);
extern int os_file_size(char *file, unsigned long long *size_out); extern int os_file_size(char *file, unsigned long long *size_out);
extern int os_file_modtime(char *file, unsigned long *modtime); extern int os_file_modtime(char *file, unsigned long *modtime);
extern int os_pipe(int *fd, int stream, int close_on_exec); extern int os_pipe(int *fd, int stream, int close_on_exec);
......
...@@ -63,7 +63,7 @@ int load_initrd(char *filename, void *buf, int size) ...@@ -63,7 +63,7 @@ int load_initrd(char *filename, void *buf, int size)
printk("Opening '%s' failed - err = %d\n", filename, -fd); printk("Opening '%s' failed - err = %d\n", filename, -fd);
return -1; return -1;
} }
n = os_read_file_k(fd, buf, size); n = os_read_file(fd, buf, size);
if(n != size){ if(n != size){
printk("Read of %d bytes from '%s' failed, err = %d\n", size, printk("Read of %d bytes from '%s' failed, err = %d\n", size,
filename, -n); filename, -n);
......
...@@ -62,9 +62,7 @@ EXPORT_SYMBOL(os_get_exec_close); ...@@ -62,9 +62,7 @@ EXPORT_SYMBOL(os_get_exec_close);
EXPORT_SYMBOL(os_set_exec_close); EXPORT_SYMBOL(os_set_exec_close);
EXPORT_SYMBOL(os_getpid); EXPORT_SYMBOL(os_getpid);
EXPORT_SYMBOL(os_open_file); EXPORT_SYMBOL(os_open_file);
EXPORT_SYMBOL(os_read_file_k);
EXPORT_SYMBOL(os_read_file); EXPORT_SYMBOL(os_read_file);
EXPORT_SYMBOL(os_write_file_k);
EXPORT_SYMBOL(os_write_file); EXPORT_SYMBOL(os_write_file);
EXPORT_SYMBOL(os_seek_file); EXPORT_SYMBOL(os_seek_file);
EXPORT_SYMBOL(os_lock_file); EXPORT_SYMBOL(os_lock_file);
......
...@@ -211,7 +211,7 @@ void physmem_forget_descriptor(int fd) ...@@ -211,7 +211,7 @@ void physmem_forget_descriptor(int fd)
panic("physmem_forget_descriptor - failed to seek " panic("physmem_forget_descriptor - failed to seek "
"to %lld in fd %d, error = %d\n", "to %lld in fd %d, error = %d\n",
offset, fd, -err); offset, fd, -err);
err = os_read_file_k(fd, addr, PAGE_SIZE); err = os_read_file(fd, addr, PAGE_SIZE);
if(err < 0) if(err < 0)
panic("physmem_forget_descriptor - failed to read " panic("physmem_forget_descriptor - failed to read "
"from fd %d to 0x%p, error = %d\n", "from fd %d to 0x%p, error = %d\n",
...@@ -341,7 +341,7 @@ void setup_physmem(unsigned long start, unsigned long reserve_end, ...@@ -341,7 +341,7 @@ void setup_physmem(unsigned long start, unsigned long reserve_end,
* from physmem_fd, so it needs to be written out there. * from physmem_fd, so it needs to be written out there.
*/ */
os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); os_seek_file(physmem_fd, __pa(&__syscall_stub_start));
os_write_file_k(physmem_fd, &__syscall_stub_start, PAGE_SIZE); os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE);
bootmap_size = init_bootmem(pfn, pfn + delta); bootmap_size = init_bootmem(pfn, pfn + delta);
free_bootmem(__pa(reserve_end) + bootmap_size, free_bootmem(__pa(reserve_end) + bootmap_size,
......
...@@ -21,7 +21,7 @@ static irqreturn_t sigio_interrupt(int irq, void *data) ...@@ -21,7 +21,7 @@ static irqreturn_t sigio_interrupt(int irq, void *data)
{ {
char c; char c;
os_read_file_k(sigio_irq_fd, &c, sizeof(c)); os_read_file(sigio_irq_fd, &c, sizeof(c));
reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ); reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
...@@ -47,7 +47,7 @@ struct task_struct *idle_threads[NR_CPUS]; ...@@ -47,7 +47,7 @@ struct task_struct *idle_threads[NR_CPUS];
void smp_send_reschedule(int cpu) void smp_send_reschedule(int cpu)
{ {
os_write_file_k(cpu_data[cpu].ipi_pipe[1], "R", 1); os_write_file(cpu_data[cpu].ipi_pipe[1], "R", 1);
num_reschedules_sent++; num_reschedules_sent++;
} }
...@@ -59,7 +59,7 @@ void smp_send_stop(void) ...@@ -59,7 +59,7 @@ void smp_send_stop(void)
for(i = 0; i < num_online_cpus(); i++){ for(i = 0; i < num_online_cpus(); i++){
if(i == current_thread->cpu) if(i == current_thread->cpu)
continue; continue;
os_write_file_k(cpu_data[i].ipi_pipe[1], "S", 1); os_write_file(cpu_data[i].ipi_pipe[1], "S", 1);
} }
printk("done\n"); printk("done\n");
} }
...@@ -108,8 +108,8 @@ static struct task_struct *idle_thread(int cpu) ...@@ -108,8 +108,8 @@ static struct task_struct *idle_thread(int cpu)
{ .pid = new_task->thread.mode.tt.extern_pid, { .pid = new_task->thread.mode.tt.extern_pid,
.task = new_task } ); .task = new_task } );
idle_threads[cpu] = new_task; idle_threads[cpu] = new_task;
CHOOSE_MODE(os_write_file_k(new_task->thread.mode.tt.switch_pipe[1], &c, CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c,
sizeof(c)), sizeof(c)),
({ panic("skas mode doesn't support SMP"); })); ({ panic("skas mode doesn't support SMP"); }));
return new_task; return new_task;
} }
...@@ -179,7 +179,7 @@ void IPI_handler(int cpu) ...@@ -179,7 +179,7 @@ void IPI_handler(int cpu)
int fd; int fd;
fd = cpu_data[cpu].ipi_pipe[0]; fd = cpu_data[cpu].ipi_pipe[0];
while (os_read_file_k(fd, &c, 1) == 1) { while (os_read_file(fd, &c, 1) == 1) {
switch (c) { switch (c) {
case 'C': case 'C':
smp_call_function_slave(cpu); smp_call_function_slave(cpu);
...@@ -239,7 +239,7 @@ int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, ...@@ -239,7 +239,7 @@ int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic,
info = _info; info = _info;
for_each_online_cpu(i) for_each_online_cpu(i)
os_write_file_k(cpu_data[i].ipi_pipe[1], "C", 1); os_write_file(cpu_data[i].ipi_pipe[1], "C", 1);
while (atomic_read(&scf_started) != cpus) while (atomic_read(&scf_started) != cpus)
barrier(); barrier();
......
...@@ -57,14 +57,14 @@ void switch_to_tt(void *prev, void *next) ...@@ -57,14 +57,14 @@ void switch_to_tt(void *prev, void *next)
* nor the value in "to" (since it was the task which stole us the CPU, * nor the value in "to" (since it was the task which stole us the CPU,
* which we don't care about). */ * which we don't care about). */
err = os_write_file_k(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c));
if(err != sizeof(c)) if(err != sizeof(c))
panic("write of switch_pipe failed, err = %d", -err); panic("write of switch_pipe failed, err = %d", -err);
if(from->thread.mode.tt.switch_pipe[0] == -1) if(from->thread.mode.tt.switch_pipe[0] == -1)
os_kill_process(os_getpid(), 0); os_kill_process(os_getpid(), 0);
err = os_read_file_k(from->thread.mode.tt.switch_pipe[0], &c, err = os_read_file(from->thread.mode.tt.switch_pipe[0], &c,
sizeof(c)); sizeof(c));
if(err != sizeof(c)) if(err != sizeof(c))
panic("read of switch_pipe failed, errno = %d", -err); panic("read of switch_pipe failed, errno = %d", -err);
...@@ -114,7 +114,7 @@ void suspend_new_thread(int fd) ...@@ -114,7 +114,7 @@ void suspend_new_thread(int fd)
char c; char c;
os_stop_process(os_getpid()); os_stop_process(os_getpid());
err = os_read_file_k(fd, &c, sizeof(c)); err = os_read_file(fd, &c, sizeof(c));
if(err != sizeof(c)) if(err != sizeof(c))
panic("read failed in suspend_new_thread, err = %d", -err); panic("read failed in suspend_new_thread, err = %d", -err);
} }
......
...@@ -338,14 +338,14 @@ int start_debugger(char *prog, int startup, int stop, int *fd_out) ...@@ -338,14 +338,14 @@ int start_debugger(char *prog, int startup, int stop, int *fd_out)
"err = %d\n", -fd); "err = %d\n", -fd);
exit(1); exit(1);
} }
os_write_file_k(fd, gdb_init_string, os_write_file(fd, gdb_init_string,
sizeof(gdb_init_string) - 1); sizeof(gdb_init_string) - 1);
if(startup){ if(startup){
if(stop){ if(stop){
os_write_file_k(fd, "b start_kernel\n", os_write_file(fd, "b start_kernel\n",
strlen("b start_kernel\n")); strlen("b start_kernel\n"));
} }
os_write_file_k(fd, "c\n", strlen("c\n")); os_write_file(fd, "c\n", strlen("c\n"));
} }
if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){ if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){
printk("start_debugger : PTRACE_TRACEME failed, " printk("start_debugger : PTRACE_TRACEME failed, "
......
...@@ -44,7 +44,7 @@ static void tracer_winch_handler(int sig) ...@@ -44,7 +44,7 @@ static void tracer_winch_handler(int sig)
int n; int n;
char c = 1; char c = 1;
n = os_write_file_k(tracer_winch[1], &c, sizeof(c)); n = os_write_file(tracer_winch[1], &c, sizeof(c));
if(n != sizeof(c)) if(n != sizeof(c))
printk("tracer_winch_handler - write failed, err = %d\n", -n); printk("tracer_winch_handler - write failed, err = %d\n", -n);
} }
......
...@@ -290,51 +290,7 @@ int os_seek_file(int fd, __u64 offset) ...@@ -290,51 +290,7 @@ int os_seek_file(int fd, __u64 offset)
return 0; return 0;
} }
static int fault_buffer(void *start, int len,
int (*copy_proc)(void *addr, void *buf, int len))
{
int page = getpagesize(), i;
char c;
for(i = 0; i < len; i += page){
if((*copy_proc)(start + i, &c, sizeof(c)))
return -EFAULT;
}
if((len % page) != 0){
if((*copy_proc)(start + len - 1, &c, sizeof(c)))
return -EFAULT;
}
return 0;
}
static int file_io(int fd, void *buf, int len,
int (*io_proc)(int fd, void *buf, int len),
int (*copy_user_proc)(void *addr, void *buf, int len))
{
int n, err;
do {
n = (*io_proc)(fd, buf, len);
if((n < 0) && (errno == EFAULT)){
err = fault_buffer(buf, len, copy_user_proc);
if(err)
return err;
n = (*io_proc)(fd, buf, len);
}
} while((n < 0) && (errno == EINTR));
if(n < 0)
return -errno;
return n;
}
int os_read_file(int fd, void *buf, int len) int os_read_file(int fd, void *buf, int len)
{
return file_io(fd, buf, len, (int (*)(int, void *, int)) read,
copy_from_user_proc);
}
int os_read_file_k(int fd, void *buf, int len)
{ {
int n = read(fd, buf, len); int n = read(fd, buf, len);
...@@ -344,12 +300,6 @@ int os_read_file_k(int fd, void *buf, int len) ...@@ -344,12 +300,6 @@ int os_read_file_k(int fd, void *buf, int len)
} }
int os_write_file(int fd, const void *buf, int len) int os_write_file(int fd, const void *buf, int len)
{
return file_io(fd, (void *) buf, len,
(int (*)(int, void *, int)) write, copy_to_user_proc);
}
int os_write_file_k(int fd, const void *buf, int len)
{ {
int n = write(fd, (void *) buf, len); int n = write(fd, (void *) buf, len);
......
...@@ -28,7 +28,7 @@ static char token(int fd, char *buf, int len, char stop) ...@@ -28,7 +28,7 @@ static char token(int fd, char *buf, int len, char stop)
ptr = buf; ptr = buf;
end = &buf[len]; end = &buf[len];
do { do {
n = os_read_file_k(fd, ptr, sizeof(*ptr)); n = os_read_file(fd, ptr, sizeof(*ptr));
c = *ptr++; c = *ptr++;
if(n != sizeof(*ptr)){ if(n != sizeof(*ptr)){
if(n == 0) if(n == 0)
...@@ -67,7 +67,7 @@ static int find_cpuinfo_line(int fd, char *key, char *scratch, int len) ...@@ -67,7 +67,7 @@ static int find_cpuinfo_line(int fd, char *key, char *scratch, int len)
return 1; return 1;
do { do {
n = os_read_file_k(fd, &c, sizeof(c)); n = os_read_file(fd, &c, sizeof(c));
if(n != sizeof(c)){ if(n != sizeof(c)){
printk("Failed to find newline in " printk("Failed to find newline in "
"/proc/cpuinfo, err = %d\n", -n); "/proc/cpuinfo, err = %d\n", -n);
......
...@@ -517,7 +517,7 @@ long init_new_ldt(struct mmu_context_skas * new_mm, ...@@ -517,7 +517,7 @@ long init_new_ldt(struct mmu_context_skas * new_mm,
.u = .u =
{ .copy_segments = { .copy_segments =
from_mm->id.u.mm_fd } } ); from_mm->id.u.mm_fd } } );
i = os_write_file_k(new_mm->id.u.mm_fd, &copy, sizeof(copy)); i = os_write_file(new_mm->id.u.mm_fd, &copy, sizeof(copy));
if(i != sizeof(copy)) if(i != sizeof(copy))
printk("new_mm : /proc/mm copy_segments failed, " printk("new_mm : /proc/mm copy_segments failed, "
"err = %d\n", -i); "err = %d\n", -i);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment