aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/um/drivers/net_user.c70
-rw-r--r--arch/um/drivers/tty.c31
-rw-r--r--arch/um/os-Linux/file.c137
3 files changed, 110 insertions, 128 deletions
diff --git a/arch/um/drivers/net_user.c b/arch/um/drivers/net_user.c
index 0a7786e00cfb..8cd851be0e4d 100644
--- a/arch/um/drivers/net_user.c
+++ b/arch/um/drivers/net_user.c
@@ -22,13 +22,14 @@ int tap_open_common(void *dev, char *gate_addr)
22{ 22{
23 int tap_addr[4]; 23 int tap_addr[4];
24 24
25 if(gate_addr == NULL) return(0); 25 if(gate_addr == NULL)
26 return 0;
26 if(sscanf(gate_addr, "%d.%d.%d.%d", &tap_addr[0], 27 if(sscanf(gate_addr, "%d.%d.%d.%d", &tap_addr[0],
27 &tap_addr[1], &tap_addr[2], &tap_addr[3]) != 4){ 28 &tap_addr[1], &tap_addr[2], &tap_addr[3]) != 4){
28 printk("Invalid tap IP address - '%s'\n", gate_addr); 29 printk("Invalid tap IP address - '%s'\n", gate_addr);
29 return(-EINVAL); 30 return -EINVAL;
30 } 31 }
31 return(0); 32 return 0;
32} 33}
33 34
34void tap_check_ips(char *gate_addr, unsigned char *eth_addr) 35void tap_check_ips(char *gate_addr, unsigned char *eth_addr)
@@ -94,10 +95,10 @@ int net_read(int fd, void *buf, int len)
94 n = os_read_file(fd, buf, len); 95 n = os_read_file(fd, buf, len);
95 96
96 if(n == -EAGAIN) 97 if(n == -EAGAIN)
97 return(0); 98 return 0;
98 else if(n == 0) 99 else if(n == 0)
99 return(-ENOTCONN); 100 return -ENOTCONN;
100 return(n); 101 return n;
101} 102}
102 103
103int net_recvfrom(int fd, void *buf, int len) 104int net_recvfrom(int fd, void *buf, int len)
@@ -108,11 +109,13 @@ int net_recvfrom(int fd, void *buf, int len)
108 (errno == EINTR)) ; 109 (errno == EINTR)) ;
109 110
110 if(n < 0){ 111 if(n < 0){
111 if(errno == EAGAIN) return(0); 112 if(errno == EAGAIN)
112 return(-errno); 113 return 0;
114 return -errno;
113 } 115 }
114 else if(n == 0) return(-ENOTCONN); 116 else if(n == 0)
115 return(n); 117 return -ENOTCONN;
118 return n;
116} 119}
117 120
118int net_write(int fd, void *buf, int len) 121int net_write(int fd, void *buf, int len)
@@ -122,10 +125,10 @@ int net_write(int fd, void *buf, int len)
122 n = os_write_file(fd, buf, len); 125 n = os_write_file(fd, buf, len);
123 126
124 if(n == -EAGAIN) 127 if(n == -EAGAIN)
125 return(0); 128 return 0;
126 else if(n == 0) 129 else if(n == 0)
127 return(-ENOTCONN); 130 return -ENOTCONN;
128 return(n); 131 return n;
129} 132}
130 133
131int net_send(int fd, void *buf, int len) 134int net_send(int fd, void *buf, int len)
@@ -134,11 +137,13 @@ int net_send(int fd, void *buf, int len)
134 137
135 while(((n = send(fd, buf, len, 0)) < 0) && (errno == EINTR)) ; 138 while(((n = send(fd, buf, len, 0)) < 0) && (errno == EINTR)) ;
136 if(n < 0){ 139 if(n < 0){
137 if(errno == EAGAIN) return(0); 140 if(errno == EAGAIN)
138 return(-errno); 141 return 0;
142 return -errno;
139 } 143 }
140 else if(n == 0) return(-ENOTCONN); 144 else if(n == 0)
141 return(n); 145 return -ENOTCONN;
146 return n;
142} 147}
143 148
144int net_sendto(int fd, void *buf, int len, void *to, int sock_len) 149int net_sendto(int fd, void *buf, int len, void *to, int sock_len)
@@ -148,11 +153,13 @@ int net_sendto(int fd, void *buf, int len, void *to, int sock_len)
148 while(((n = sendto(fd, buf, len, 0, (struct sockaddr *) to, 153 while(((n = sendto(fd, buf, len, 0, (struct sockaddr *) to,
149 sock_len)) < 0) && (errno == EINTR)) ; 154 sock_len)) < 0) && (errno == EINTR)) ;
150 if(n < 0){ 155 if(n < 0){
151 if(errno == EAGAIN) return(0); 156 if(errno == EAGAIN)
152 return(-errno); 157 return 0;
158 return -errno;
153 } 159 }
154 else if(n == 0) return(-ENOTCONN); 160 else if(n == 0)
155 return(n); 161 return -ENOTCONN;
162 return n;
156} 163}
157 164
158struct change_pre_exec_data { 165struct change_pre_exec_data {
@@ -176,7 +183,7 @@ static int change_tramp(char **argv, char *output, int output_len)
176 err = os_pipe(fds, 1, 0); 183 err = os_pipe(fds, 1, 0);
177 if(err < 0){ 184 if(err < 0){
178 printk("change_tramp - pipe failed, err = %d\n", -err); 185 printk("change_tramp - pipe failed, err = %d\n", -err);
179 return(err); 186 return err;
180 } 187 }
181 pe_data.close_me = fds[0]; 188 pe_data.close_me = fds[0];
182 pe_data.stdout = fds[1]; 189 pe_data.stdout = fds[1];
@@ -190,7 +197,7 @@ static int change_tramp(char **argv, char *output, int output_len)
190 197
191 if (pid > 0) 198 if (pid > 0)
192 CATCH_EINTR(err = waitpid(pid, NULL, 0)); 199 CATCH_EINTR(err = waitpid(pid, NULL, 0));
193 return(pid); 200 return pid;
194} 201}
195 202
196static void change(char *dev, char *what, unsigned char *addr, 203static void change(char *dev, char *what, unsigned char *addr,
@@ -241,26 +248,15 @@ char *split_if_spec(char *str, ...)
241 va_start(ap, str); 248 va_start(ap, str);
242 while((arg = va_arg(ap, char **)) != NULL){ 249 while((arg = va_arg(ap, char **)) != NULL){
243 if(*str == '\0') 250 if(*str == '\0')
244 return(NULL); 251 return NULL;
245 end = strchr(str, ','); 252 end = strchr(str, ',');
246 if(end != str) 253 if(end != str)
247 *arg = str; 254 *arg = str;
248 if(end == NULL) 255 if(end == NULL)
249 return(NULL); 256 return NULL;
250 *end++ = '\0'; 257 *end++ = '\0';
251 str = end; 258 str = end;
252 } 259 }
253 va_end(ap); 260 va_end(ap);
254 return(str); 261 return str;
255} 262}
256
257/*
258 * Overrides for Emacs so that we follow Linus's tabbing style.
259 * Emacs will notice this stuff at the end of the file and automatically
260 * adjust the settings for this buffer only. This must remain at the end
261 * of the file.
262 * ---------------------------------------------------------------------------
263 * Local variables:
264 * c-file-style: "linux"
265 * End:
266 */
diff --git a/arch/um/drivers/tty.c b/arch/um/drivers/tty.c
index 94c9265a4f2c..9f70edf5d8ef 100644
--- a/arch/um/drivers/tty.c
+++ b/arch/um/drivers/tty.c
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (C) 2001 Jeff Dike (jdike@karaya.com) 2 * Copyright (C) 2001 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL 3 * Licensed under the GPL
4 */ 4 */
@@ -25,17 +25,17 @@ static void *tty_chan_init(char *str, int device, struct chan_opts *opts)
25 if(*str != ':'){ 25 if(*str != ':'){
26 printk("tty_init : channel type 'tty' must specify " 26 printk("tty_init : channel type 'tty' must specify "
27 "a device\n"); 27 "a device\n");
28 return(NULL); 28 return NULL;
29 } 29 }
30 str++; 30 str++;
31 31
32 data = um_kmalloc(sizeof(*data)); 32 data = um_kmalloc(sizeof(*data));
33 if(data == NULL) 33 if(data == NULL)
34 return(NULL); 34 return NULL;
35 *data = ((struct tty_chan) { .dev = str, 35 *data = ((struct tty_chan) { .dev = str,
36 .raw = opts->raw }); 36 .raw = opts->raw });
37 37
38 return(data); 38 return data;
39} 39}
40 40
41static int tty_open(int input, int output, int primary, void *d, 41static int tty_open(int input, int output, int primary, void *d,
@@ -45,19 +45,21 @@ static int tty_open(int input, int output, int primary, void *d,
45 int fd, err; 45 int fd, err;
46 46
47 fd = os_open_file(data->dev, of_set_rw(OPENFLAGS(), input, output), 0); 47 fd = os_open_file(data->dev, of_set_rw(OPENFLAGS(), input, output), 0);
48 if(fd < 0) return(fd); 48 if(fd < 0)
49 return fd;
50
49 if(data->raw){ 51 if(data->raw){
50 CATCH_EINTR(err = tcgetattr(fd, &data->tt)); 52 CATCH_EINTR(err = tcgetattr(fd, &data->tt));
51 if(err) 53 if(err)
52 return(err); 54 return err;
53 55
54 err = raw(fd); 56 err = raw(fd);
55 if(err) 57 if(err)
56 return(err); 58 return err;
57 } 59 }
58 60
59 *dev_out = data->dev; 61 *dev_out = data->dev;
60 return(fd); 62 return fd;
61} 63}
62 64
63struct chan_ops tty_ops = { 65struct chan_ops tty_ops = {
@@ -72,14 +74,3 @@ struct chan_ops tty_ops = {
72 .free = generic_free, 74 .free = generic_free,
73 .winch = 0, 75 .winch = 0,
74}; 76};
75
76/*
77 * Overrides for Emacs so that we follow Linus's tabbing style.
78 * Emacs will notice this stuff at the end of the file and automatically
79 * adjust the settings for this buffer only. This must remain at the end
80 * of the file.
81 * ---------------------------------------------------------------------------
82 * Local variables:
83 * c-file-style: "linux"
84 * End:
85 */
diff --git a/arch/um/os-Linux/file.c b/arch/um/os-Linux/file.c
index 09251338d99e..367ac33c566d 100644
--- a/arch/um/os-Linux/file.c
+++ b/arch/um/os-Linux/file.c
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) 2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL 3 * Licensed under the GPL
4 */ 4 */
@@ -47,11 +47,11 @@ int os_stat_fd(const int fd, struct uml_stat *ubuf)
47 } while((err < 0) && (errno == EINTR)) ; 47 } while((err < 0) && (errno == EINTR)) ;
48 48
49 if(err < 0) 49 if(err < 0)
50 return(-errno); 50 return -errno;
51 51
52 if(ubuf != NULL) 52 if(ubuf != NULL)
53 copy_stat(ubuf, &sbuf); 53 copy_stat(ubuf, &sbuf);
54 return(err); 54 return err;
55} 55}
56 56
57int os_stat_file(const char *file_name, struct uml_stat *ubuf) 57int os_stat_file(const char *file_name, struct uml_stat *ubuf)
@@ -64,11 +64,11 @@ int os_stat_file(const char *file_name, struct uml_stat *ubuf)
64 } while((err < 0) && (errno == EINTR)) ; 64 } while((err < 0) && (errno == EINTR)) ;
65 65
66 if(err < 0) 66 if(err < 0)
67 return(-errno); 67 return -errno;
68 68
69 if(ubuf != NULL) 69 if(ubuf != NULL)
70 copy_stat(ubuf, &sbuf); 70 copy_stat(ubuf, &sbuf);
71 return(err); 71 return err;
72} 72}
73 73
74int os_access(const char* file, int mode) 74int os_access(const char* file, int mode)
@@ -80,9 +80,9 @@ int os_access(const char* file, int mode)
80 80
81 err = access(file, amode); 81 err = access(file, amode);
82 if(err < 0) 82 if(err < 0)
83 return(-errno); 83 return -errno;
84 84
85 return(0); 85 return 0;
86} 86}
87 87
88void os_print_error(int error, const char* str) 88void os_print_error(int error, const char* str)
@@ -99,9 +99,9 @@ int os_ioctl_generic(int fd, unsigned int cmd, unsigned long arg)
99 99
100 err = ioctl(fd, cmd, arg); 100 err = ioctl(fd, cmd, arg);
101 if(err < 0) 101 if(err < 0)
102 return(-errno); 102 return -errno;
103 103
104 return(err); 104 return err;
105} 105}
106 106
107int os_window_size(int fd, int *rows, int *cols) 107int os_window_size(int fd, int *rows, int *cols)
@@ -109,12 +109,12 @@ int os_window_size(int fd, int *rows, int *cols)
109 struct winsize size; 109 struct winsize size;
110 110
111 if(ioctl(fd, TIOCGWINSZ, &size) < 0) 111 if(ioctl(fd, TIOCGWINSZ, &size) < 0)
112 return(-errno); 112 return -errno;
113 113
114 *rows = size.ws_row; 114 *rows = size.ws_row;
115 *cols = size.ws_col; 115 *cols = size.ws_col;
116 116
117 return(0); 117 return 0;
118} 118}
119 119
120int os_new_tty_pgrp(int fd, int pid) 120int os_new_tty_pgrp(int fd, int pid)
@@ -125,16 +125,16 @@ int os_new_tty_pgrp(int fd, int pid)
125 if(tcsetpgrp(fd, pid) < 0) 125 if(tcsetpgrp(fd, pid) < 0)
126 return -errno; 126 return -errno;
127 127
128 return(0); 128 return 0;
129} 129}
130 130
131/* FIXME: ensure namebuf in os_get_if_name is big enough */ 131/* FIXME: ensure namebuf in os_get_if_name is big enough */
132int os_get_ifname(int fd, char* namebuf) 132int os_get_ifname(int fd, char* namebuf)
133{ 133{
134 if(ioctl(fd, SIOCGIFNAME, namebuf) < 0) 134 if(ioctl(fd, SIOCGIFNAME, namebuf) < 0)
135 return(-errno); 135 return -errno;
136 136
137 return(0); 137 return 0;
138} 138}
139 139
140int os_set_slip(int fd) 140int os_set_slip(int fd)
@@ -149,7 +149,7 @@ int os_set_slip(int fd)
149 if(ioctl(fd, SIOCSIFENCAP, &sencap) < 0) 149 if(ioctl(fd, SIOCSIFENCAP, &sencap) < 0)
150 return -errno; 150 return -errno;
151 151
152 return(0); 152 return 0;
153} 153}
154 154
155int os_set_owner(int fd, int pid) 155int os_set_owner(int fd, int pid)
@@ -158,10 +158,10 @@ int os_set_owner(int fd, int pid)
158 int save_errno = errno; 158 int save_errno = errno;
159 159
160 if(fcntl(fd, F_GETOWN, 0) != pid) 160 if(fcntl(fd, F_GETOWN, 0) != pid)
161 return(-save_errno); 161 return -save_errno;
162 } 162 }
163 163
164 return(0); 164 return 0;
165} 165}
166 166
167/* FIXME? moved wholesale from sigio_user.c to get fcntls out of that file */ 167/* FIXME? moved wholesale from sigio_user.c to get fcntls out of that file */
@@ -192,9 +192,9 @@ int os_mode_fd(int fd, int mode)
192 } while((err < 0) && (errno==EINTR)) ; 192 } while((err < 0) && (errno==EINTR)) ;
193 193
194 if(err < 0) 194 if(err < 0)
195 return(-errno); 195 return -errno;
196 196
197 return(0); 197 return 0;
198} 198}
199 199
200int os_file_type(char *file) 200int os_file_type(char *file)
@@ -204,15 +204,21 @@ int os_file_type(char *file)
204 204
205 err = os_stat_file(file, &buf); 205 err = os_stat_file(file, &buf);
206 if(err < 0) 206 if(err < 0)
207 return(err); 207 return err;
208 208
209 if(S_ISDIR(buf.ust_mode)) return(OS_TYPE_DIR); 209 if(S_ISDIR(buf.ust_mode))
210 else if(S_ISLNK(buf.ust_mode)) return(OS_TYPE_SYMLINK); 210 return OS_TYPE_DIR;
211 else if(S_ISCHR(buf.ust_mode)) return(OS_TYPE_CHARDEV); 211 else if(S_ISLNK(buf.ust_mode))
212 else if(S_ISBLK(buf.ust_mode)) return(OS_TYPE_BLOCKDEV); 212 return OS_TYPE_SYMLINK;
213 else if(S_ISFIFO(buf.ust_mode)) return(OS_TYPE_FIFO); 213 else if(S_ISCHR(buf.ust_mode))
214 else if(S_ISSOCK(buf.ust_mode)) return(OS_TYPE_SOCK); 214 return OS_TYPE_CHARDEV;
215 else return(OS_TYPE_FILE); 215 else if(S_ISBLK(buf.ust_mode))
216 return OS_TYPE_BLOCKDEV;
217 else if(S_ISFIFO(buf.ust_mode))
218 return OS_TYPE_FIFO;
219 else if(S_ISSOCK(buf.ust_mode))
220 return OS_TYPE_SOCK;
221 else return OS_TYPE_FILE;
216} 222}
217 223
218int os_file_mode(char *file, struct openflags *mode_out) 224int os_file_mode(char *file, struct openflags *mode_out)
@@ -302,8 +308,8 @@ int os_seek_file(int fd, __u64 offset)
302 308
303 actual = lseek64(fd, offset, SEEK_SET); 309 actual = lseek64(fd, offset, SEEK_SET);
304 if(actual != offset) 310 if(actual != offset)
305 return(-errno); 311 return -errno;
306 return(0); 312 return 0;
307} 313}
308 314
309static int fault_buffer(void *start, int len, 315static int fault_buffer(void *start, int len,
@@ -314,13 +320,13 @@ static int fault_buffer(void *start, int len,
314 320
315 for(i = 0; i < len; i += page){ 321 for(i = 0; i < len; i += page){
316 if((*copy_proc)(start + i, &c, sizeof(c))) 322 if((*copy_proc)(start + i, &c, sizeof(c)))
317 return(-EFAULT); 323 return -EFAULT;
318 } 324 }
319 if((len % page) != 0){ 325 if((len % page) != 0){
320 if((*copy_proc)(start + len - 1, &c, sizeof(c))) 326 if((*copy_proc)(start + len - 1, &c, sizeof(c)))
321 return(-EFAULT); 327 return -EFAULT;
322 } 328 }
323 return(0); 329 return 0;
324} 330}
325 331
326static int file_io(int fd, void *buf, int len, 332static int file_io(int fd, void *buf, int len,
@@ -334,26 +340,26 @@ static int file_io(int fd, void *buf, int len,
334 if((n < 0) && (errno == EFAULT)){ 340 if((n < 0) && (errno == EFAULT)){
335 err = fault_buffer(buf, len, copy_user_proc); 341 err = fault_buffer(buf, len, copy_user_proc);
336 if(err) 342 if(err)
337 return(err); 343 return err;
338 n = (*io_proc)(fd, buf, len); 344 n = (*io_proc)(fd, buf, len);
339 } 345 }
340 } while((n < 0) && (errno == EINTR)); 346 } while((n < 0) && (errno == EINTR));
341 347
342 if(n < 0) 348 if(n < 0)
343 return(-errno); 349 return -errno;
344 return(n); 350 return n;
345} 351}
346 352
347int os_read_file(int fd, void *buf, int len) 353int os_read_file(int fd, void *buf, int len)
348{ 354{
349 return(file_io(fd, buf, len, (int (*)(int, void *, int)) read, 355 return file_io(fd, buf, len, (int (*)(int, void *, int)) read,
350 copy_from_user_proc)); 356 copy_from_user_proc);
351} 357}
352 358
353int os_write_file(int fd, const void *buf, int len) 359int os_write_file(int fd, const void *buf, int len)
354{ 360{
355 return(file_io(fd, (void *) buf, len, 361 return file_io(fd, (void *) buf, len,
356 (int (*)(int, void *, int)) write, copy_to_user_proc)); 362 (int (*)(int, void *, int)) write, copy_to_user_proc);
357} 363}
358 364
359int os_file_size(char *file, unsigned long long *size_out) 365int os_file_size(char *file, unsigned long long *size_out)
@@ -398,11 +404,11 @@ int os_file_modtime(char *file, unsigned long *modtime)
398 err = os_stat_file(file, &buf); 404 err = os_stat_file(file, &buf);
399 if(err < 0){ 405 if(err < 0){
400 printk("Couldn't stat \"%s\" : err = %d\n", file, -err); 406 printk("Couldn't stat \"%s\" : err = %d\n", file, -err);
401 return(err); 407 return err;
402 } 408 }
403 409
404 *modtime = buf.ust_mtime; 410 *modtime = buf.ust_mtime;
405 return(0); 411 return 0;
406} 412}
407 413
408int os_get_exec_close(int fd, int* close_on_exec) 414int os_get_exec_close(int fd, int* close_on_exec)
@@ -455,7 +461,7 @@ int os_pipe(int *fds, int stream, int close_on_exec)
455 if(err < 0) 461 if(err < 0)
456 goto error; 462 goto error;
457 463
458 return(0); 464 return 0;
459 465
460 error: 466 error:
461 printk("os_pipe : Setting FD_CLOEXEC failed, err = %d\n", -err); 467 printk("os_pipe : Setting FD_CLOEXEC failed, err = %d\n", -err);
@@ -486,12 +492,12 @@ int os_set_fd_async(int fd, int owner)
486 (fcntl(fd, F_SETOWN, owner) < 0)){ 492 (fcntl(fd, F_SETOWN, owner) < 0)){
487 err = -errno; 493 err = -errno;
488 printk("os_set_fd_async : Failed to fcntl F_SETOWN " 494 printk("os_set_fd_async : Failed to fcntl F_SETOWN "
489 "(or F_SETSIG) fd %d to pid %d, errno = %d\n", fd, 495 "(or F_SETSIG) fd %d to pid %d, errno = %d\n", fd,
490 owner, errno); 496 owner, errno);
491 return err; 497 return err;
492 } 498 }
493 499
494 return(0); 500 return 0;
495} 501}
496 502
497int os_clear_fd_async(int fd) 503int os_clear_fd_async(int fd)
@@ -500,8 +506,8 @@ int os_clear_fd_async(int fd)
500 506
501 flags &= ~(O_ASYNC | O_NONBLOCK); 507 flags &= ~(O_ASYNC | O_NONBLOCK);
502 if(fcntl(fd, F_SETFL, flags) < 0) 508 if(fcntl(fd, F_SETFL, flags) < 0)
503 return(-errno); 509 return -errno;
504 return(0); 510 return 0;
505} 511}
506 512
507int os_set_fd_block(int fd, int blocking) 513int os_set_fd_block(int fd, int blocking)
@@ -516,7 +522,7 @@ int os_set_fd_block(int fd, int blocking)
516 if(fcntl(fd, F_SETFL, flags) < 0) 522 if(fcntl(fd, F_SETFL, flags) < 0)
517 return -errno; 523 return -errno;
518 524
519 return(0); 525 return 0;
520} 526}
521 527
522int os_accept_connection(int fd) 528int os_accept_connection(int fd)
@@ -524,9 +530,9 @@ int os_accept_connection(int fd)
524 int new; 530 int new;
525 531
526 new = accept(fd, NULL, 0); 532 new = accept(fd, NULL, 0);
527 if(new < 0) 533 if(new < 0)
528 return(-errno); 534 return -errno;
529 return(new); 535 return new;
530} 536}
531 537
532#ifndef SHUT_RD 538#ifndef SHUT_RD
@@ -550,12 +556,12 @@ int os_shutdown_socket(int fd, int r, int w)
550 else if(w) what = SHUT_WR; 556 else if(w) what = SHUT_WR;
551 else { 557 else {
552 printk("os_shutdown_socket : neither r or w was set\n"); 558 printk("os_shutdown_socket : neither r or w was set\n");
553 return(-EINVAL); 559 return -EINVAL;
554 } 560 }
555 err = shutdown(fd, what); 561 err = shutdown(fd, what);
556 if(err < 0) 562 if(err < 0)
557 return(-errno); 563 return -errno;
558 return(0); 564 return 0;
559} 565}
560 566
561int os_rcv_fd(int fd, int *helper_pid_out) 567int os_rcv_fd(int fd, int *helper_pid_out)
@@ -578,7 +584,7 @@ int os_rcv_fd(int fd, int *helper_pid_out)
578 584
579 n = recvmsg(fd, &msg, 0); 585 n = recvmsg(fd, &msg, 0);
580 if(n < 0) 586 if(n < 0)
581 return(-errno); 587 return -errno;
582 588
583 else if(n != sizeof(iov.iov_len)) 589 else if(n != sizeof(iov.iov_len))
584 *helper_pid_out = -1; 590 *helper_pid_out = -1;
@@ -586,16 +592,16 @@ int os_rcv_fd(int fd, int *helper_pid_out)
586 cmsg = CMSG_FIRSTHDR(&msg); 592 cmsg = CMSG_FIRSTHDR(&msg);
587 if(cmsg == NULL){ 593 if(cmsg == NULL){
588 printk("rcv_fd didn't receive anything, error = %d\n", errno); 594 printk("rcv_fd didn't receive anything, error = %d\n", errno);
589 return(-1); 595 return -1;
590 } 596 }
591 if((cmsg->cmsg_level != SOL_SOCKET) || 597 if((cmsg->cmsg_level != SOL_SOCKET) ||
592 (cmsg->cmsg_type != SCM_RIGHTS)){ 598 (cmsg->cmsg_type != SCM_RIGHTS)){
593 printk("rcv_fd didn't receive a descriptor\n"); 599 printk("rcv_fd didn't receive a descriptor\n");
594 return(-1); 600 return -1;
595 } 601 }
596 602
597 new = ((int *) CMSG_DATA(cmsg))[0]; 603 new = ((int *) CMSG_DATA(cmsg))[0];
598 return(new); 604 return new;
599} 605}
600 606
601int os_create_unix_socket(char *file, int len, int close_on_exec) 607int os_create_unix_socket(char *file, int len, int close_on_exec)
@@ -623,7 +629,7 @@ int os_create_unix_socket(char *file, int len, int close_on_exec)
623 if(err < 0) 629 if(err < 0)
624 return -errno; 630 return -errno;
625 631
626 return(sock); 632 return sock;
627} 633}
628 634
629void os_flush_stdout(void) 635void os_flush_stdout(void)
@@ -654,16 +660,5 @@ int os_lock_file(int fd, int excl)
654 printk("F_SETLK failed, file already locked by pid %d\n", lock.l_pid); 660 printk("F_SETLK failed, file already locked by pid %d\n", lock.l_pid);
655 err = save; 661 err = save;
656 out: 662 out:
657 return(err); 663 return err;
658} 664}
659
660/*
661 * Overrides for Emacs so that we follow Linus's tabbing style.
662 * Emacs will notice this stuff at the end of the file and automatically
663 * adjust the settings for this buffer only. This must remain at the end
664 * of the file.
665 * ---------------------------------------------------------------------------
666 * Local variables:
667 * c-file-style: "linux"
668 * End:
669 */