diff options
-rw-r--r-- | arch/um/drivers/chan_kern.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/chan_user.c | 10 | ||||
-rw-r--r-- | arch/um/drivers/cow_sys.h | 2 | ||||
-rw-r--r-- | arch/um/drivers/daemon_user.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/harddog_user.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/hostaudio_kern.c | 4 | ||||
-rw-r--r-- | arch/um/drivers/net_user.c | 8 | ||||
-rw-r--r-- | arch/um/drivers/port_kern.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/random.c | 2 | ||||
-rw-r--r-- | arch/um/drivers/ubd_kern.c | 20 | ||||
-rw-r--r-- | arch/um/include/os.h | 2 | ||||
-rw-r--r-- | arch/um/kernel/initrd.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/ksyms.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/physmem.c | 4 | ||||
-rw-r--r-- | arch/um/kernel/sigio.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/smp.c | 12 | ||||
-rw-r--r-- | arch/um/kernel/tt/process_kern.c | 6 | ||||
-rw-r--r-- | arch/um/kernel/tt/ptproxy/proxy.c | 8 | ||||
-rw-r--r-- | arch/um/kernel/tt/tracer.c | 2 | ||||
-rw-r--r-- | arch/um/os-Linux/file.c | 50 | ||||
-rw-r--r-- | arch/um/sys-i386/bugs.c | 4 | ||||
-rw-r--r-- | arch/um/sys-i386/ldt.c | 2 |
22 files changed, 51 insertions, 105 deletions
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c index 92e069e8253f..3aa351611763 100644 --- a/arch/um/drivers/chan_kern.c +++ b/arch/um/drivers/chan_kern.c | |||
@@ -98,7 +98,7 @@ int generic_read(int fd, char *c_out, void *unused) | |||
98 | { | 98 | { |
99 | int n; | 99 | int n; |
100 | 100 | ||
101 | n = os_read_file_k(fd, c_out, sizeof(*c_out)); | 101 | n = os_read_file(fd, c_out, sizeof(*c_out)); |
102 | 102 | ||
103 | if(n == -EAGAIN) | 103 | if(n == -EAGAIN) |
104 | return 0; | 104 | return 0; |
@@ -111,7 +111,7 @@ int generic_read(int fd, char *c_out, void *unused) | |||
111 | 111 | ||
112 | int generic_write(int fd, const char *buf, int n, void *unused) | 112 | int generic_write(int fd, const char *buf, int n, void *unused) |
113 | { | 113 | { |
114 | return os_write_file_k(fd, buf, n); | 114 | return os_write_file(fd, buf, n); |
115 | } | 115 | } |
116 | 116 | ||
117 | int generic_window_size(int fd, void *unused, unsigned short *rows_out, | 117 | int generic_window_size(int fd, void *unused, unsigned short *rows_out, |
diff --git a/arch/um/drivers/chan_user.c b/arch/um/drivers/chan_user.c index a15be1720e03..13f0bf852b2a 100644 --- a/arch/um/drivers/chan_user.c +++ b/arch/um/drivers/chan_user.c | |||
@@ -85,7 +85,7 @@ static int winch_thread(void *arg) | |||
85 | 85 | ||
86 | pty_fd = data->pty_fd; | 86 | pty_fd = data->pty_fd; |
87 | pipe_fd = data->pipe_fd; | 87 | pipe_fd = data->pipe_fd; |
88 | count = os_write_file_k(pipe_fd, &c, sizeof(c)); | 88 | count = os_write_file(pipe_fd, &c, sizeof(c)); |
89 | if(count != sizeof(c)) | 89 | if(count != sizeof(c)) |
90 | printk("winch_thread : failed to write synchronization " | 90 | printk("winch_thread : failed to write synchronization " |
91 | "byte, err = %d\n", -count); | 91 | "byte, err = %d\n", -count); |
@@ -120,7 +120,7 @@ static int winch_thread(void *arg) | |||
120 | * host - since they are not different kernel threads, we cannot use | 120 | * host - since they are not different kernel threads, we cannot use |
121 | * kernel semaphores. We don't use SysV semaphores because they are | 121 | * kernel semaphores. We don't use SysV semaphores because they are |
122 | * persistent. */ | 122 | * persistent. */ |
123 | count = os_read_file_k(pipe_fd, &c, sizeof(c)); | 123 | count = os_read_file(pipe_fd, &c, sizeof(c)); |
124 | if(count != sizeof(c)) | 124 | if(count != sizeof(c)) |
125 | printk("winch_thread : failed to read synchronization byte, " | 125 | printk("winch_thread : failed to read synchronization byte, " |
126 | "err = %d\n", -count); | 126 | "err = %d\n", -count); |
@@ -130,7 +130,7 @@ static int winch_thread(void *arg) | |||
130 | * are blocked.*/ | 130 | * are blocked.*/ |
131 | sigsuspend(&sigs); | 131 | sigsuspend(&sigs); |
132 | 132 | ||
133 | count = os_write_file_k(pipe_fd, &c, sizeof(c)); | 133 | count = os_write_file(pipe_fd, &c, sizeof(c)); |
134 | if(count != sizeof(c)) | 134 | if(count != sizeof(c)) |
135 | printk("winch_thread : write failed, err = %d\n", | 135 | printk("winch_thread : write failed, err = %d\n", |
136 | -count); | 136 | -count); |
@@ -162,7 +162,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out) | |||
162 | } | 162 | } |
163 | 163 | ||
164 | *fd_out = fds[0]; | 164 | *fd_out = fds[0]; |
165 | n = os_read_file_k(fds[0], &c, sizeof(c)); | 165 | n = os_read_file(fds[0], &c, sizeof(c)); |
166 | if(n != sizeof(c)){ | 166 | if(n != sizeof(c)){ |
167 | printk("winch_tramp : failed to read synchronization byte\n"); | 167 | printk("winch_tramp : failed to read synchronization byte\n"); |
168 | printk("read failed, err = %d\n", -n); | 168 | printk("read failed, err = %d\n", -n); |
@@ -195,7 +195,7 @@ void register_winch(int fd, struct tty_struct *tty) | |||
195 | if(thread > 0){ | 195 | if(thread > 0){ |
196 | register_winch_irq(thread_fd, fd, thread, tty); | 196 | register_winch_irq(thread_fd, fd, thread, tty); |
197 | 197 | ||
198 | count = os_write_file_k(thread_fd, &c, sizeof(c)); | 198 | count = os_write_file(thread_fd, &c, sizeof(c)); |
199 | if(count != sizeof(c)) | 199 | if(count != sizeof(c)) |
200 | printk("register_winch : failed to write " | 200 | printk("register_winch : failed to write " |
201 | "synchronization byte, err = %d\n", | 201 | "synchronization byte, err = %d\n", |
diff --git a/arch/um/drivers/cow_sys.h b/arch/um/drivers/cow_sys.h index aa7bef9c38d9..15453845d2ba 100644 --- a/arch/um/drivers/cow_sys.h +++ b/arch/um/drivers/cow_sys.h | |||
@@ -35,7 +35,7 @@ static inline int cow_file_size(char *file, unsigned long long *size_out) | |||
35 | 35 | ||
36 | static inline int cow_write_file(int fd, void *buf, int size) | 36 | static inline int cow_write_file(int fd, void *buf, int size) |
37 | { | 37 | { |
38 | return os_write_file_k(fd, buf, size); | 38 | return os_write_file(fd, buf, size); |
39 | } | 39 | } |
40 | 40 | ||
41 | #endif | 41 | #endif |
diff --git a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c index e1fd26c1b728..b869e3899683 100644 --- a/arch/um/drivers/daemon_user.c +++ b/arch/um/drivers/daemon_user.c | |||
@@ -94,7 +94,7 @@ static int connect_to_switch(struct daemon_data *pri) | |||
94 | req.version = SWITCH_VERSION; | 94 | req.version = SWITCH_VERSION; |
95 | req.type = REQ_NEW_CONTROL; | 95 | req.type = REQ_NEW_CONTROL; |
96 | req.sock = *local_addr; | 96 | req.sock = *local_addr; |
97 | n = os_write_file_k(pri->control, &req, sizeof(req)); | 97 | n = os_write_file(pri->control, &req, sizeof(req)); |
98 | if(n != sizeof(req)){ | 98 | if(n != sizeof(req)){ |
99 | printk("daemon_open : control setup request failed, err = %d\n", | 99 | printk("daemon_open : control setup request failed, err = %d\n", |
100 | -n); | 100 | -n); |
@@ -102,7 +102,7 @@ static int connect_to_switch(struct daemon_data *pri) | |||
102 | goto out_free; | 102 | goto out_free; |
103 | } | 103 | } |
104 | 104 | ||
105 | n = os_read_file_k(pri->control, sun, sizeof(*sun)); | 105 | n = os_read_file(pri->control, sun, sizeof(*sun)); |
106 | if(n != sizeof(*sun)){ | 106 | if(n != sizeof(*sun)){ |
107 | printk("daemon_open : read of data socket failed, err = %d\n", | 107 | printk("daemon_open : read of data socket failed, err = %d\n", |
108 | -n); | 108 | -n); |
diff --git a/arch/um/drivers/harddog_user.c b/arch/um/drivers/harddog_user.c index 0fbb1615171e..5eeecf8917c3 100644 --- a/arch/um/drivers/harddog_user.c +++ b/arch/um/drivers/harddog_user.c | |||
@@ -79,7 +79,7 @@ int start_watchdog(int *in_fd_ret, int *out_fd_ret, char *sock) | |||
79 | goto out_close_out; | 79 | goto out_close_out; |
80 | } | 80 | } |
81 | 81 | ||
82 | n = os_read_file_k(in_fds[0], &c, sizeof(c)); | 82 | n = os_read_file(in_fds[0], &c, sizeof(c)); |
83 | if(n == 0){ | 83 | if(n == 0){ |
84 | printk("harddog_open - EOF on watchdog pipe\n"); | 84 | printk("harddog_open - EOF on watchdog pipe\n"); |
85 | helper_wait(pid); | 85 | helper_wait(pid); |
@@ -118,7 +118,7 @@ int ping_watchdog(int fd) | |||
118 | int n; | 118 | int n; |
119 | char c = '\n'; | 119 | char c = '\n'; |
120 | 120 | ||
121 | n = os_write_file_k(fd, &c, sizeof(c)); | 121 | n = os_write_file(fd, &c, sizeof(c)); |
122 | if(n != sizeof(c)){ | 122 | if(n != sizeof(c)){ |
123 | printk("ping_watchdog - write failed, err = %d\n", -n); | 123 | printk("ping_watchdog - write failed, err = %d\n", -n); |
124 | if(n < 0) | 124 | if(n < 0) |
diff --git a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_kern.c index bd6688ea96de..10e08a8c17c3 100644 --- a/arch/um/drivers/hostaudio_kern.c +++ b/arch/um/drivers/hostaudio_kern.c | |||
@@ -84,7 +84,7 @@ static ssize_t hostaudio_read(struct file *file, char __user *buffer, | |||
84 | if(kbuf == NULL) | 84 | if(kbuf == NULL) |
85 | return(-ENOMEM); | 85 | return(-ENOMEM); |
86 | 86 | ||
87 | err = os_read_file_k(state->fd, kbuf, count); | 87 | err = os_read_file(state->fd, kbuf, count); |
88 | if(err < 0) | 88 | if(err < 0) |
89 | goto out; | 89 | goto out; |
90 | 90 | ||
@@ -115,7 +115,7 @@ static ssize_t hostaudio_write(struct file *file, const char __user *buffer, | |||
115 | if(copy_from_user(kbuf, buffer, count)) | 115 | if(copy_from_user(kbuf, buffer, count)) |
116 | goto out; | 116 | goto out; |
117 | 117 | ||
118 | err = os_write_file_k(state->fd, kbuf, count); | 118 | err = os_write_file(state->fd, kbuf, count); |
119 | if(err < 0) | 119 | if(err < 0) |
120 | goto out; | 120 | goto out; |
121 | *ppos += err; | 121 | *ppos += err; |
diff --git a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c index 8bc6688c4f0f..3503cff867c3 100644 --- a/arch/um/drivers/net_user.c +++ b/arch/um/drivers/net_user.c | |||
@@ -63,7 +63,7 @@ void read_output(int fd, char *output, int len) | |||
63 | } | 63 | } |
64 | 64 | ||
65 | *output = '\0'; | 65 | *output = '\0'; |
66 | ret = os_read_file_k(fd, &remain, sizeof(remain)); | 66 | ret = os_read_file(fd, &remain, sizeof(remain)); |
67 | 67 | ||
68 | if (ret != sizeof(remain)) { | 68 | if (ret != sizeof(remain)) { |
69 | expected = sizeof(remain); | 69 | expected = sizeof(remain); |
@@ -73,7 +73,7 @@ void read_output(int fd, char *output, int len) | |||
73 | 73 | ||
74 | while(remain != 0){ | 74 | while(remain != 0){ |
75 | expected = (remain < len) ? remain : len; | 75 | expected = (remain < len) ? remain : len; |
76 | ret = os_read_file_k(fd, output, expected); | 76 | ret = os_read_file(fd, output, expected); |
77 | if (ret != expected) { | 77 | if (ret != expected) { |
78 | str = "data"; | 78 | str = "data"; |
79 | goto err; | 79 | goto err; |
@@ -94,7 +94,7 @@ int net_read(int fd, void *buf, int len) | |||
94 | { | 94 | { |
95 | int n; | 95 | int n; |
96 | 96 | ||
97 | n = os_read_file_k(fd, buf, len); | 97 | n = os_read_file(fd, buf, len); |
98 | 98 | ||
99 | if(n == -EAGAIN) | 99 | if(n == -EAGAIN) |
100 | return 0; | 100 | return 0; |
@@ -122,7 +122,7 @@ int net_write(int fd, void *buf, int len) | |||
122 | { | 122 | { |
123 | int n; | 123 | int n; |
124 | 124 | ||
125 | n = os_write_file_k(fd, buf, len); | 125 | n = os_write_file(fd, buf, len); |
126 | 126 | ||
127 | if(n == -EAGAIN) | 127 | if(n == -EAGAIN) |
128 | return 0; | 128 | return 0; |
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index 75bb40126c2e..1c8efd95c421 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
@@ -113,7 +113,7 @@ static int port_accept(struct port_list *port) | |||
113 | } | 113 | } |
114 | 114 | ||
115 | if(atomic_read(&port->wait_count) == 0){ | 115 | if(atomic_read(&port->wait_count) == 0){ |
116 | os_write_file_k(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG)); | 116 | os_write_file(fd, NO_WAITER_MSG, sizeof(NO_WAITER_MSG)); |
117 | printk("No one waiting for port\n"); | 117 | printk("No one waiting for port\n"); |
118 | } | 118 | } |
119 | list_add(&conn->list, &port->pending); | 119 | list_add(&conn->list, &port->pending); |
diff --git a/arch/um/drivers/random.c b/arch/um/drivers/random.c index 94838f4c1645..e942e836f995 100644 --- a/arch/um/drivers/random.c +++ b/arch/um/drivers/random.c | |||
@@ -44,7 +44,7 @@ static ssize_t rng_dev_read (struct file *filp, char __user *buf, size_t size, | |||
44 | int n, ret = 0, have_data; | 44 | int n, ret = 0, have_data; |
45 | 45 | ||
46 | while(size){ | 46 | while(size){ |
47 | n = os_read_file_k(random_fd, &data, sizeof(data)); | 47 | n = os_read_file(random_fd, &data, sizeof(data)); |
48 | if(n > 0){ | 48 | if(n > 0){ |
49 | have_data = n; | 49 | have_data = n; |
50 | while (have_data && size) { | 50 | while (have_data && size) { |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 614fe25a31bd..70509ddaac03 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -511,8 +511,8 @@ static void ubd_handler(void) | |||
511 | int n; | 511 | int n; |
512 | 512 | ||
513 | while(1){ | 513 | while(1){ |
514 | n = os_read_file_k(thread_fd, &req, | 514 | n = os_read_file(thread_fd, &req, |
515 | sizeof(struct io_thread_req *)); | 515 | sizeof(struct io_thread_req *)); |
516 | if(n != sizeof(req)){ | 516 | if(n != sizeof(req)){ |
517 | if(n == -EAGAIN) | 517 | if(n == -EAGAIN) |
518 | break; | 518 | break; |
@@ -1112,8 +1112,8 @@ static void do_ubd_request(request_queue_t *q) | |||
1112 | (unsigned long long) req->sector << 9, | 1112 | (unsigned long long) req->sector << 9, |
1113 | sg->offset, sg->length, sg->page); | 1113 | sg->offset, sg->length, sg->page); |
1114 | 1114 | ||
1115 | n = os_write_file_k(thread_fd, &io_req, | 1115 | n = os_write_file(thread_fd, &io_req, |
1116 | sizeof(struct io_thread_req *)); | 1116 | sizeof(struct io_thread_req *)); |
1117 | if(n != sizeof(struct io_thread_req *)){ | 1117 | if(n != sizeof(struct io_thread_req *)){ |
1118 | if(n != -EAGAIN) | 1118 | if(n != -EAGAIN) |
1119 | printk("write to io thread failed, " | 1119 | printk("write to io thread failed, " |
@@ -1366,8 +1366,8 @@ static int update_bitmap(struct io_thread_req *req) | |||
1366 | return 1; | 1366 | return 1; |
1367 | } | 1367 | } |
1368 | 1368 | ||
1369 | n = os_write_file_k(req->fds[1], &req->bitmap_words, | 1369 | n = os_write_file(req->fds[1], &req->bitmap_words, |
1370 | sizeof(req->bitmap_words)); | 1370 | sizeof(req->bitmap_words)); |
1371 | if(n != sizeof(req->bitmap_words)){ | 1371 | if(n != sizeof(req->bitmap_words)){ |
1372 | printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, | 1372 | printk("do_io - bitmap update failed, err = %d fd = %d\n", -n, |
1373 | req->fds[1]); | 1373 | req->fds[1]); |
@@ -1411,7 +1411,7 @@ void do_io(struct io_thread_req *req) | |||
1411 | do { | 1411 | do { |
1412 | buf = &buf[n]; | 1412 | buf = &buf[n]; |
1413 | len -= n; | 1413 | len -= n; |
1414 | n = os_read_file_k(req->fds[bit], buf, len); | 1414 | n = os_read_file(req->fds[bit], buf, len); |
1415 | if (n < 0) { | 1415 | if (n < 0) { |
1416 | printk("do_io - read failed, err = %d " | 1416 | printk("do_io - read failed, err = %d " |
1417 | "fd = %d\n", -n, req->fds[bit]); | 1417 | "fd = %d\n", -n, req->fds[bit]); |
@@ -1421,7 +1421,7 @@ void do_io(struct io_thread_req *req) | |||
1421 | } while((n < len) && (n != 0)); | 1421 | } while((n < len) && (n != 0)); |
1422 | if (n < len) memset(&buf[n], 0, len - n); | 1422 | if (n < len) memset(&buf[n], 0, len - n); |
1423 | } else { | 1423 | } else { |
1424 | n = os_write_file_k(req->fds[bit], buf, len); | 1424 | n = os_write_file(req->fds[bit], buf, len); |
1425 | if(n != len){ | 1425 | if(n != len){ |
1426 | printk("do_io - write failed err = %d " | 1426 | printk("do_io - write failed err = %d " |
1427 | "fd = %d\n", -n, req->fds[bit]); | 1427 | "fd = %d\n", -n, req->fds[bit]); |
@@ -1451,7 +1451,7 @@ int io_thread(void *arg) | |||
1451 | 1451 | ||
1452 | ignore_sigwinch_sig(); | 1452 | ignore_sigwinch_sig(); |
1453 | while(1){ | 1453 | while(1){ |
1454 | n = os_read_file_k(kernel_fd, &req, | 1454 | n = os_read_file(kernel_fd, &req, |
1455 | sizeof(struct io_thread_req *)); | 1455 | sizeof(struct io_thread_req *)); |
1456 | if(n != sizeof(struct io_thread_req *)){ | 1456 | if(n != sizeof(struct io_thread_req *)){ |
1457 | if(n < 0) | 1457 | if(n < 0) |
@@ -1465,7 +1465,7 @@ int io_thread(void *arg) | |||
1465 | } | 1465 | } |
1466 | io_count++; | 1466 | io_count++; |
1467 | do_io(req); | 1467 | do_io(req); |
1468 | n = os_write_file_k(kernel_fd, &req, | 1468 | n = os_write_file(kernel_fd, &req, |
1469 | sizeof(struct io_thread_req *)); | 1469 | sizeof(struct io_thread_req *)); |
1470 | if(n != sizeof(struct io_thread_req *)) | 1470 | if(n != sizeof(struct io_thread_req *)) |
1471 | printk("io_thread - write failed, fd = %d, err = %d\n", | 1471 | printk("io_thread - write failed, fd = %d, err = %d\n", |
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index 901804db3c35..d66380908703 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -144,9 +144,7 @@ extern int os_mode_fd(int fd, int mode); | |||
144 | extern int os_seek_file(int fd, __u64 offset); | 144 | extern int os_seek_file(int fd, __u64 offset); |
145 | extern int os_open_file(char *file, struct openflags flags, int mode); | 145 | extern int os_open_file(char *file, struct openflags flags, int mode); |
146 | extern int os_read_file(int fd, void *buf, int len); | 146 | extern int os_read_file(int fd, void *buf, int len); |
147 | extern int os_read_file_k(int fd, void *buf, int len); | ||
148 | extern int os_write_file(int fd, const void *buf, int count); | 147 | extern int os_write_file(int fd, const void *buf, int count); |
149 | extern int os_write_file_k(int fd, const void *buf, int len); | ||
150 | extern int os_file_size(char *file, unsigned long long *size_out); | 148 | extern int os_file_size(char *file, unsigned long long *size_out); |
151 | extern int os_file_modtime(char *file, unsigned long *modtime); | 149 | extern int os_file_modtime(char *file, unsigned long *modtime); |
152 | extern int os_pipe(int *fd, int stream, int close_on_exec); | 150 | extern int os_pipe(int *fd, int stream, int close_on_exec); |
diff --git a/arch/um/kernel/initrd.c b/arch/um/kernel/initrd.c index cff73faae991..16dc43e9d940 100644 --- a/arch/um/kernel/initrd.c +++ b/arch/um/kernel/initrd.c | |||
@@ -63,7 +63,7 @@ int load_initrd(char *filename, void *buf, int size) | |||
63 | printk("Opening '%s' failed - err = %d\n", filename, -fd); | 63 | printk("Opening '%s' failed - err = %d\n", filename, -fd); |
64 | return -1; | 64 | return -1; |
65 | } | 65 | } |
66 | n = os_read_file_k(fd, buf, size); | 66 | n = os_read_file(fd, buf, size); |
67 | if(n != size){ | 67 | if(n != size){ |
68 | printk("Read of %d bytes from '%s' failed, err = %d\n", size, | 68 | printk("Read of %d bytes from '%s' failed, err = %d\n", size, |
69 | filename, -n); | 69 | filename, -n); |
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c index 7c158448b9fd..7b3e53fb8070 100644 --- a/arch/um/kernel/ksyms.c +++ b/arch/um/kernel/ksyms.c | |||
@@ -62,9 +62,7 @@ EXPORT_SYMBOL(os_get_exec_close); | |||
62 | EXPORT_SYMBOL(os_set_exec_close); | 62 | EXPORT_SYMBOL(os_set_exec_close); |
63 | EXPORT_SYMBOL(os_getpid); | 63 | EXPORT_SYMBOL(os_getpid); |
64 | EXPORT_SYMBOL(os_open_file); | 64 | EXPORT_SYMBOL(os_open_file); |
65 | EXPORT_SYMBOL(os_read_file_k); | ||
66 | EXPORT_SYMBOL(os_read_file); | 65 | EXPORT_SYMBOL(os_read_file); |
67 | EXPORT_SYMBOL(os_write_file_k); | ||
68 | EXPORT_SYMBOL(os_write_file); | 66 | EXPORT_SYMBOL(os_write_file); |
69 | EXPORT_SYMBOL(os_seek_file); | 67 | EXPORT_SYMBOL(os_seek_file); |
70 | EXPORT_SYMBOL(os_lock_file); | 68 | EXPORT_SYMBOL(os_lock_file); |
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index 77021a627da6..df1ad3ba130c 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c | |||
@@ -211,7 +211,7 @@ void physmem_forget_descriptor(int fd) | |||
211 | panic("physmem_forget_descriptor - failed to seek " | 211 | panic("physmem_forget_descriptor - failed to seek " |
212 | "to %lld in fd %d, error = %d\n", | 212 | "to %lld in fd %d, error = %d\n", |
213 | offset, fd, -err); | 213 | offset, fd, -err); |
214 | err = os_read_file_k(fd, addr, PAGE_SIZE); | 214 | err = os_read_file(fd, addr, PAGE_SIZE); |
215 | if(err < 0) | 215 | if(err < 0) |
216 | panic("physmem_forget_descriptor - failed to read " | 216 | panic("physmem_forget_descriptor - failed to read " |
217 | "from fd %d to 0x%p, error = %d\n", | 217 | "from fd %d to 0x%p, error = %d\n", |
@@ -341,7 +341,7 @@ void setup_physmem(unsigned long start, unsigned long reserve_end, | |||
341 | * from physmem_fd, so it needs to be written out there. | 341 | * from physmem_fd, so it needs to be written out there. |
342 | */ | 342 | */ |
343 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); | 343 | os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); |
344 | os_write_file_k(physmem_fd, &__syscall_stub_start, PAGE_SIZE); | 344 | os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); |
345 | 345 | ||
346 | bootmap_size = init_bootmem(pfn, pfn + delta); | 346 | bootmap_size = init_bootmem(pfn, pfn + delta); |
347 | free_bootmem(__pa(reserve_end) + bootmap_size, | 347 | free_bootmem(__pa(reserve_end) + bootmap_size, |
diff --git a/arch/um/kernel/sigio.c b/arch/um/kernel/sigio.c index f756e78085e4..89f9866a1354 100644 --- a/arch/um/kernel/sigio.c +++ b/arch/um/kernel/sigio.c | |||
@@ -21,7 +21,7 @@ static irqreturn_t sigio_interrupt(int irq, void *data) | |||
21 | { | 21 | { |
22 | char c; | 22 | char c; |
23 | 23 | ||
24 | os_read_file_k(sigio_irq_fd, &c, sizeof(c)); | 24 | os_read_file(sigio_irq_fd, &c, sizeof(c)); |
25 | reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ); | 25 | reactivate_fd(sigio_irq_fd, SIGIO_WRITE_IRQ); |
26 | return IRQ_HANDLED; | 26 | return IRQ_HANDLED; |
27 | } | 27 | } |
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 9ac562124654..e6a7778006ad 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
@@ -47,7 +47,7 @@ struct task_struct *idle_threads[NR_CPUS]; | |||
47 | 47 | ||
48 | void smp_send_reschedule(int cpu) | 48 | void smp_send_reschedule(int cpu) |
49 | { | 49 | { |
50 | os_write_file_k(cpu_data[cpu].ipi_pipe[1], "R", 1); | 50 | os_write_file(cpu_data[cpu].ipi_pipe[1], "R", 1); |
51 | num_reschedules_sent++; | 51 | num_reschedules_sent++; |
52 | } | 52 | } |
53 | 53 | ||
@@ -59,7 +59,7 @@ void smp_send_stop(void) | |||
59 | for(i = 0; i < num_online_cpus(); i++){ | 59 | for(i = 0; i < num_online_cpus(); i++){ |
60 | if(i == current_thread->cpu) | 60 | if(i == current_thread->cpu) |
61 | continue; | 61 | continue; |
62 | os_write_file_k(cpu_data[i].ipi_pipe[1], "S", 1); | 62 | os_write_file(cpu_data[i].ipi_pipe[1], "S", 1); |
63 | } | 63 | } |
64 | printk("done\n"); | 64 | printk("done\n"); |
65 | } | 65 | } |
@@ -108,8 +108,8 @@ static struct task_struct *idle_thread(int cpu) | |||
108 | { .pid = new_task->thread.mode.tt.extern_pid, | 108 | { .pid = new_task->thread.mode.tt.extern_pid, |
109 | .task = new_task } ); | 109 | .task = new_task } ); |
110 | idle_threads[cpu] = new_task; | 110 | idle_threads[cpu] = new_task; |
111 | CHOOSE_MODE(os_write_file_k(new_task->thread.mode.tt.switch_pipe[1], &c, | 111 | CHOOSE_MODE(os_write_file(new_task->thread.mode.tt.switch_pipe[1], &c, |
112 | sizeof(c)), | 112 | sizeof(c)), |
113 | ({ panic("skas mode doesn't support SMP"); })); | 113 | ({ panic("skas mode doesn't support SMP"); })); |
114 | return new_task; | 114 | return new_task; |
115 | } | 115 | } |
@@ -179,7 +179,7 @@ void IPI_handler(int cpu) | |||
179 | int fd; | 179 | int fd; |
180 | 180 | ||
181 | fd = cpu_data[cpu].ipi_pipe[0]; | 181 | fd = cpu_data[cpu].ipi_pipe[0]; |
182 | while (os_read_file_k(fd, &c, 1) == 1) { | 182 | while (os_read_file(fd, &c, 1) == 1) { |
183 | switch (c) { | 183 | switch (c) { |
184 | case 'C': | 184 | case 'C': |
185 | smp_call_function_slave(cpu); | 185 | smp_call_function_slave(cpu); |
@@ -239,7 +239,7 @@ int smp_call_function(void (*_func)(void *info), void *_info, int nonatomic, | |||
239 | info = _info; | 239 | info = _info; |
240 | 240 | ||
241 | for_each_online_cpu(i) | 241 | for_each_online_cpu(i) |
242 | os_write_file_k(cpu_data[i].ipi_pipe[1], "C", 1); | 242 | os_write_file(cpu_data[i].ipi_pipe[1], "C", 1); |
243 | 243 | ||
244 | while (atomic_read(&scf_started) != cpus) | 244 | while (atomic_read(&scf_started) != cpus) |
245 | barrier(); | 245 | barrier(); |
diff --git a/arch/um/kernel/tt/process_kern.c b/arch/um/kernel/tt/process_kern.c index c81bd2074930..c631303cb800 100644 --- a/arch/um/kernel/tt/process_kern.c +++ b/arch/um/kernel/tt/process_kern.c | |||
@@ -57,14 +57,14 @@ void switch_to_tt(void *prev, void *next) | |||
57 | * nor the value in "to" (since it was the task which stole us the CPU, | 57 | * nor the value in "to" (since it was the task which stole us the CPU, |
58 | * which we don't care about). */ | 58 | * which we don't care about). */ |
59 | 59 | ||
60 | err = os_write_file_k(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); | 60 | err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); |
61 | if(err != sizeof(c)) | 61 | if(err != sizeof(c)) |
62 | panic("write of switch_pipe failed, err = %d", -err); | 62 | panic("write of switch_pipe failed, err = %d", -err); |
63 | 63 | ||
64 | if(from->thread.mode.tt.switch_pipe[0] == -1) | 64 | if(from->thread.mode.tt.switch_pipe[0] == -1) |
65 | os_kill_process(os_getpid(), 0); | 65 | os_kill_process(os_getpid(), 0); |
66 | 66 | ||
67 | err = os_read_file_k(from->thread.mode.tt.switch_pipe[0], &c, | 67 | err = os_read_file(from->thread.mode.tt.switch_pipe[0], &c, |
68 | sizeof(c)); | 68 | sizeof(c)); |
69 | if(err != sizeof(c)) | 69 | if(err != sizeof(c)) |
70 | panic("read of switch_pipe failed, errno = %d", -err); | 70 | panic("read of switch_pipe failed, errno = %d", -err); |
@@ -114,7 +114,7 @@ void suspend_new_thread(int fd) | |||
114 | char c; | 114 | char c; |
115 | 115 | ||
116 | os_stop_process(os_getpid()); | 116 | os_stop_process(os_getpid()); |
117 | err = os_read_file_k(fd, &c, sizeof(c)); | 117 | err = os_read_file(fd, &c, sizeof(c)); |
118 | if(err != sizeof(c)) | 118 | if(err != sizeof(c)) |
119 | panic("read failed in suspend_new_thread, err = %d", -err); | 119 | panic("read failed in suspend_new_thread, err = %d", -err); |
120 | } | 120 | } |
diff --git a/arch/um/kernel/tt/ptproxy/proxy.c b/arch/um/kernel/tt/ptproxy/proxy.c index 007beb6b7c00..420c23f311f3 100644 --- a/arch/um/kernel/tt/ptproxy/proxy.c +++ b/arch/um/kernel/tt/ptproxy/proxy.c | |||
@@ -338,14 +338,14 @@ int start_debugger(char *prog, int startup, int stop, int *fd_out) | |||
338 | "err = %d\n", -fd); | 338 | "err = %d\n", -fd); |
339 | exit(1); | 339 | exit(1); |
340 | } | 340 | } |
341 | os_write_file_k(fd, gdb_init_string, | 341 | os_write_file(fd, gdb_init_string, |
342 | sizeof(gdb_init_string) - 1); | 342 | sizeof(gdb_init_string) - 1); |
343 | if(startup){ | 343 | if(startup){ |
344 | if(stop){ | 344 | if(stop){ |
345 | os_write_file_k(fd, "b start_kernel\n", | 345 | os_write_file(fd, "b start_kernel\n", |
346 | strlen("b start_kernel\n")); | 346 | strlen("b start_kernel\n")); |
347 | } | 347 | } |
348 | os_write_file_k(fd, "c\n", strlen("c\n")); | 348 | os_write_file(fd, "c\n", strlen("c\n")); |
349 | } | 349 | } |
350 | if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){ | 350 | if(ptrace(PTRACE_TRACEME, 0, 0, 0) < 0){ |
351 | printk("start_debugger : PTRACE_TRACEME failed, " | 351 | printk("start_debugger : PTRACE_TRACEME failed, " |
diff --git a/arch/um/kernel/tt/tracer.c b/arch/um/kernel/tt/tracer.c index 264da6c5a5c3..c23588393f6e 100644 --- a/arch/um/kernel/tt/tracer.c +++ b/arch/um/kernel/tt/tracer.c | |||
@@ -44,7 +44,7 @@ static void tracer_winch_handler(int sig) | |||
44 | int n; | 44 | int n; |
45 | char c = 1; | 45 | char c = 1; |
46 | 46 | ||
47 | n = os_write_file_k(tracer_winch[1], &c, sizeof(c)); | 47 | n = os_write_file(tracer_winch[1], &c, sizeof(c)); |
48 | if(n != sizeof(c)) | 48 | if(n != sizeof(c)) |
49 | printk("tracer_winch_handler - write failed, err = %d\n", -n); | 49 | printk("tracer_winch_handler - write failed, err = %d\n", -n); |
50 | } | 50 | } |
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c index 5e9b8dcf34d4..6f92f732d253 100644 --- a/arch/um/os-Linux/file.c +++ b/arch/um/os-Linux/file.c | |||
@@ -290,52 +290,8 @@ int os_seek_file(int fd, __u64 offset) | |||
290 | return 0; | 290 | return 0; |
291 | } | 291 | } |
292 | 292 | ||
293 | static int fault_buffer(void *start, int len, | ||
294 | int (*copy_proc)(void *addr, void *buf, int len)) | ||
295 | { | ||
296 | int page = getpagesize(), i; | ||
297 | char c; | ||
298 | |||
299 | for(i = 0; i < len; i += page){ | ||
300 | if((*copy_proc)(start + i, &c, sizeof(c))) | ||
301 | return -EFAULT; | ||
302 | } | ||
303 | if((len % page) != 0){ | ||
304 | if((*copy_proc)(start + len - 1, &c, sizeof(c))) | ||
305 | return -EFAULT; | ||
306 | } | ||
307 | return 0; | ||
308 | } | ||
309 | |||
310 | static int file_io(int fd, void *buf, int len, | ||
311 | int (*io_proc)(int fd, void *buf, int len), | ||
312 | int (*copy_user_proc)(void *addr, void *buf, int len)) | ||
313 | { | ||
314 | int n, err; | ||
315 | |||
316 | do { | ||
317 | n = (*io_proc)(fd, buf, len); | ||
318 | if((n < 0) && (errno == EFAULT)){ | ||
319 | err = fault_buffer(buf, len, copy_user_proc); | ||
320 | if(err) | ||
321 | return err; | ||
322 | n = (*io_proc)(fd, buf, len); | ||
323 | } | ||
324 | } while((n < 0) && (errno == EINTR)); | ||
325 | |||
326 | if(n < 0) | ||
327 | return -errno; | ||
328 | return n; | ||
329 | } | ||
330 | |||
331 | int os_read_file(int fd, void *buf, int len) | 293 | int os_read_file(int fd, void *buf, int len) |
332 | { | 294 | { |
333 | return file_io(fd, buf, len, (int (*)(int, void *, int)) read, | ||
334 | copy_from_user_proc); | ||
335 | } | ||
336 | |||
337 | int os_read_file_k(int fd, void *buf, int len) | ||
338 | { | ||
339 | int n = read(fd, buf, len); | 295 | int n = read(fd, buf, len); |
340 | 296 | ||
341 | if(n < 0) | 297 | if(n < 0) |
@@ -345,12 +301,6 @@ int os_read_file_k(int fd, void *buf, int len) | |||
345 | 301 | ||
346 | int os_write_file(int fd, const void *buf, int len) | 302 | int os_write_file(int fd, const void *buf, int len) |
347 | { | 303 | { |
348 | return file_io(fd, (void *) buf, len, | ||
349 | (int (*)(int, void *, int)) write, copy_to_user_proc); | ||
350 | } | ||
351 | |||
352 | int os_write_file_k(int fd, const void *buf, int len) | ||
353 | { | ||
354 | int n = write(fd, (void *) buf, len); | 304 | int n = write(fd, (void *) buf, len); |
355 | 305 | ||
356 | if(n < 0) | 306 | if(n < 0) |
diff --git a/arch/um/sys-i386/bugs.c b/arch/um/sys-i386/bugs.c index f5dfe49c8442..0393e44813e7 100644 --- a/arch/um/sys-i386/bugs.c +++ b/arch/um/sys-i386/bugs.c | |||
@@ -28,7 +28,7 @@ static char token(int fd, char *buf, int len, char stop) | |||
28 | ptr = buf; | 28 | ptr = buf; |
29 | end = &buf[len]; | 29 | end = &buf[len]; |
30 | do { | 30 | do { |
31 | n = os_read_file_k(fd, ptr, sizeof(*ptr)); | 31 | n = os_read_file(fd, ptr, sizeof(*ptr)); |
32 | c = *ptr++; | 32 | c = *ptr++; |
33 | if(n != sizeof(*ptr)){ | 33 | if(n != sizeof(*ptr)){ |
34 | if(n == 0) | 34 | if(n == 0) |
@@ -67,7 +67,7 @@ static int find_cpuinfo_line(int fd, char *key, char *scratch, int len) | |||
67 | return 1; | 67 | return 1; |
68 | 68 | ||
69 | do { | 69 | do { |
70 | n = os_read_file_k(fd, &c, sizeof(c)); | 70 | n = os_read_file(fd, &c, sizeof(c)); |
71 | if(n != sizeof(c)){ | 71 | if(n != sizeof(c)){ |
72 | printk("Failed to find newline in " | 72 | printk("Failed to find newline in " |
73 | "/proc/cpuinfo, err = %d\n", -n); | 73 | "/proc/cpuinfo, err = %d\n", -n); |
diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-i386/ldt.c index d031a13bd969..a939a7ef0227 100644 --- a/arch/um/sys-i386/ldt.c +++ b/arch/um/sys-i386/ldt.c | |||
@@ -517,7 +517,7 @@ long init_new_ldt(struct mmu_context_skas * new_mm, | |||
517 | .u = | 517 | .u = |
518 | { .copy_segments = | 518 | { .copy_segments = |
519 | from_mm->id.u.mm_fd } } ); | 519 | from_mm->id.u.mm_fd } } ); |
520 | i = os_write_file_k(new_mm->id.u.mm_fd, ©, sizeof(copy)); | 520 | i = os_write_file(new_mm->id.u.mm_fd, ©, sizeof(copy)); |
521 | if(i != sizeof(copy)) | 521 | if(i != sizeof(copy)) |
522 | printk("new_mm : /proc/mm copy_segments failed, " | 522 | printk("new_mm : /proc/mm copy_segments failed, " |
523 | "err = %d\n", -i); | 523 | "err = %d\n", -i); |