OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "nacl_io/kernel_intercept.h" | 5 #include "nacl_io/kernel_intercept.h" |
6 | 6 |
7 #include <assert.h> | 7 #include <assert.h> |
8 #include <errno.h> | 8 #include <errno.h> |
9 #include <string.h> | 9 #include <string.h> |
10 | 10 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 s_state.kp_owned = false; | 47 s_state.kp_owned = false; |
48 return 0; | 48 return 0; |
49 } | 49 } |
50 | 50 |
51 int ki_init(void* kp) { | 51 int ki_init(void* kp) { |
52 LOG_TRACE("ki_init: %p", kp); | 52 LOG_TRACE("ki_init: %p", kp); |
53 return ki_init_ppapi(kp, 0, NULL); | 53 return ki_init_ppapi(kp, 0, NULL); |
54 } | 54 } |
55 | 55 |
56 int ki_init_ppapi(void* kp, | 56 int ki_init_ppapi(void* kp, |
57 PP_Instance instance, | 57 PP_Instance instance, |
58 PPB_GetInterface get_browser_interface) { | 58 PPB_GetInterface get_browser_interface) { |
59 assert(!s_state.kp); | 59 assert(!s_state.kp); |
60 if (s_state.kp != NULL) | 60 if (s_state.kp != NULL) |
61 return 1; | 61 return 1; |
62 PepperInterface* ppapi = NULL; | 62 PepperInterface* ppapi = NULL; |
63 if (instance && get_browser_interface) { | 63 if (instance && get_browser_interface) { |
64 ppapi = new RealPepperInterface(instance, get_browser_interface); | 64 ppapi = new RealPepperInterface(instance, get_browser_interface); |
65 s_state.ppapi = ppapi; | 65 s_state.ppapi = ppapi; |
66 } | 66 } |
67 int rtn = ki_init_interface(kp, ppapi); | 67 int rtn = ki_init_interface(kp, ppapi); |
68 return rtn; | 68 return rtn; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 int ki_dup(int oldfd) { | 156 int ki_dup(int oldfd) { |
157 ON_NOSYS_RETURN(-1); | 157 ON_NOSYS_RETURN(-1); |
158 return s_state.kp->dup(oldfd); | 158 return s_state.kp->dup(oldfd); |
159 } | 159 } |
160 | 160 |
161 int ki_dup2(int oldfd, int newfd) { | 161 int ki_dup2(int oldfd, int newfd) { |
162 ON_NOSYS_RETURN(-1); | 162 ON_NOSYS_RETURN(-1); |
163 return s_state.kp->dup2(oldfd, newfd); | 163 return s_state.kp->dup2(oldfd, newfd); |
164 } | 164 } |
165 | 165 |
166 int ki_chmod(const char *path, mode_t mode) { | 166 int ki_chmod(const char* path, mode_t mode) { |
167 ON_NOSYS_RETURN(-1); | 167 ON_NOSYS_RETURN(-1); |
168 return s_state.kp->chmod(path, mode); | 168 return s_state.kp->chmod(path, mode); |
169 } | 169 } |
170 | 170 |
171 int ki_fchdir(int fd) { | 171 int ki_fchdir(int fd) { |
172 ON_NOSYS_RETURN(-1); | 172 ON_NOSYS_RETURN(-1); |
173 return s_state.kp->fchdir(fd); | 173 return s_state.kp->fchdir(fd); |
174 } | 174 } |
175 | 175 |
176 int ki_fchmod(int fd, mode_t mode) { | 176 int ki_fchmod(int fd, mode_t mode) { |
177 ON_NOSYS_RETURN(-1); | 177 ON_NOSYS_RETURN(-1); |
178 return s_state.kp->fchmod(fd, mode); | 178 return s_state.kp->fchmod(fd, mode); |
179 } | 179 } |
180 | 180 |
181 int ki_stat(const char *path, struct stat *buf) { | 181 int ki_stat(const char* path, struct stat* buf) { |
182 ON_NOSYS_RETURN(-1); | 182 ON_NOSYS_RETURN(-1); |
183 return s_state.kp->stat(path, buf); | 183 return s_state.kp->stat(path, buf); |
184 } | 184 } |
185 | 185 |
186 int ki_mkdir(const char *path, mode_t mode) { | 186 int ki_mkdir(const char* path, mode_t mode) { |
187 ON_NOSYS_RETURN(-1); | 187 ON_NOSYS_RETURN(-1); |
188 return s_state.kp->mkdir(path, mode); | 188 return s_state.kp->mkdir(path, mode); |
189 } | 189 } |
190 | 190 |
191 int ki_rmdir(const char *path) { | 191 int ki_rmdir(const char* path) { |
192 ON_NOSYS_RETURN(-1); | 192 ON_NOSYS_RETURN(-1); |
193 return s_state.kp->rmdir(path); | 193 return s_state.kp->rmdir(path); |
194 } | 194 } |
195 | 195 |
196 int ki_mount(const char *source, const char *target, const char *filesystemtype, | 196 int ki_mount(const char* source, |
197 unsigned long mountflags, const void *data) { | 197 const char* target, |
| 198 const char* filesystemtype, |
| 199 unsigned long mountflags, |
| 200 const void* data) { |
198 ON_NOSYS_RETURN(-1); | 201 ON_NOSYS_RETURN(-1); |
199 return s_state.kp->mount(source, target, filesystemtype, mountflags, data); | 202 return s_state.kp->mount(source, target, filesystemtype, mountflags, data); |
200 } | 203 } |
201 | 204 |
202 int ki_umount(const char *path) { | 205 int ki_umount(const char* path) { |
203 ON_NOSYS_RETURN(-1); | 206 ON_NOSYS_RETURN(-1); |
204 return s_state.kp->umount(path); | 207 return s_state.kp->umount(path); |
205 } | 208 } |
206 | 209 |
207 int ki_open(const char *path, int oflag) { | 210 int ki_open(const char* path, int oflag) { |
208 ON_NOSYS_RETURN(-1); | 211 ON_NOSYS_RETURN(-1); |
209 return s_state.kp->open(path, oflag); | 212 return s_state.kp->open(path, oflag); |
210 } | 213 } |
211 | 214 |
212 int ki_pipe(int pipefds[2]) { | 215 int ki_pipe(int pipefds[2]) { |
213 ON_NOSYS_RETURN(-1); | 216 ON_NOSYS_RETURN(-1); |
214 return s_state.kp->pipe(pipefds); | 217 return s_state.kp->pipe(pipefds); |
215 } | 218 } |
216 | 219 |
217 ssize_t ki_read(int fd, void *buf, size_t nbyte) { | 220 ssize_t ki_read(int fd, void* buf, size_t nbyte) { |
218 ON_NOSYS_RETURN(-1); | 221 ON_NOSYS_RETURN(-1); |
219 return s_state.kp->read(fd, buf, nbyte); | 222 return s_state.kp->read(fd, buf, nbyte); |
220 } | 223 } |
221 | 224 |
222 ssize_t ki_write(int fd, const void *buf, size_t nbyte) { | 225 ssize_t ki_write(int fd, const void* buf, size_t nbyte) { |
223 ON_NOSYS_RETURN(-1); | 226 ON_NOSYS_RETURN(-1); |
224 return s_state.kp->write(fd, buf, nbyte); | 227 return s_state.kp->write(fd, buf, nbyte); |
225 } | 228 } |
226 | 229 |
227 int ki_fstat(int fd, struct stat *buf){ | 230 int ki_fstat(int fd, struct stat* buf) { |
228 ON_NOSYS_RETURN(-1); | 231 ON_NOSYS_RETURN(-1); |
229 return s_state.kp->fstat(fd, buf); | 232 return s_state.kp->fstat(fd, buf); |
230 } | 233 } |
231 | 234 |
232 int ki_getdents(int fd, void *buf, unsigned int count) { | 235 int ki_getdents(int fd, void* buf, unsigned int count) { |
233 ON_NOSYS_RETURN(-1); | 236 ON_NOSYS_RETURN(-1); |
234 return s_state.kp->getdents(fd, buf, count); | 237 return s_state.kp->getdents(fd, buf, count); |
235 } | 238 } |
236 | 239 |
237 int ki_ftruncate(int fd, off_t length) { | 240 int ki_ftruncate(int fd, off_t length) { |
238 ON_NOSYS_RETURN(-1); | 241 ON_NOSYS_RETURN(-1); |
239 return s_state.kp->ftruncate(fd, length); | 242 return s_state.kp->ftruncate(fd, length); |
240 } | 243 } |
241 | 244 |
242 int ki_fsync(int fd) { | 245 int ki_fsync(int fd) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
297 int ki_symlink(const char* oldpath, const char* newpath) { | 300 int ki_symlink(const char* oldpath, const char* newpath) { |
298 ON_NOSYS_RETURN(-1); | 301 ON_NOSYS_RETURN(-1); |
299 return s_state.kp->symlink(oldpath, newpath); | 302 return s_state.kp->symlink(oldpath, newpath); |
300 } | 303 } |
301 | 304 |
302 int ki_access(const char* path, int amode) { | 305 int ki_access(const char* path, int amode) { |
303 ON_NOSYS_RETURN(-1); | 306 ON_NOSYS_RETURN(-1); |
304 return s_state.kp->access(path, amode); | 307 return s_state.kp->access(path, amode); |
305 } | 308 } |
306 | 309 |
307 int ki_readlink(const char *path, char *buf, size_t count) { | 310 int ki_readlink(const char* path, char* buf, size_t count) { |
308 ON_NOSYS_RETURN(-1); | 311 ON_NOSYS_RETURN(-1); |
309 return s_state.kp->readlink(path, buf, count); | 312 return s_state.kp->readlink(path, buf, count); |
310 } | 313 } |
311 | 314 |
312 int ki_utimes(const char *path, const struct timeval times[2]) { | 315 int ki_utimes(const char* path, const struct timeval times[2]) { |
313 ON_NOSYS_RETURN(-1); | 316 ON_NOSYS_RETURN(-1); |
314 return s_state.kp->utimes(path, times); | 317 return s_state.kp->utimes(path, times); |
315 } | 318 } |
316 | 319 |
317 void* ki_mmap(void* addr, size_t length, int prot, int flags, int fd, | 320 void* ki_mmap(void* addr, |
| 321 size_t length, |
| 322 int prot, |
| 323 int flags, |
| 324 int fd, |
318 off_t offset) { | 325 off_t offset) { |
319 ON_NOSYS_RETURN(MAP_FAILED); | 326 ON_NOSYS_RETURN(MAP_FAILED); |
320 return s_state.kp->mmap(addr, length, prot, flags, fd, offset); | 327 return s_state.kp->mmap(addr, length, prot, flags, fd, offset); |
321 } | 328 } |
322 | 329 |
323 int ki_munmap(void* addr, size_t length) { | 330 int ki_munmap(void* addr, size_t length) { |
324 ON_NOSYS_RETURN(-1); | 331 ON_NOSYS_RETURN(-1); |
325 return s_state.kp->munmap(addr, length); | 332 return s_state.kp->munmap(addr, length); |
326 } | 333 } |
327 | 334 |
328 int ki_open_resource(const char* file) { | 335 int ki_open_resource(const char* file) { |
329 ON_NOSYS_RETURN(-1); return s_state.kp->open_resource(file); | 336 ON_NOSYS_RETURN(-1); |
| 337 return s_state.kp->open_resource(file); |
330 } | 338 } |
331 | 339 |
332 int ki_fcntl(int d, int request, va_list args) { | 340 int ki_fcntl(int d, int request, va_list args) { |
333 ON_NOSYS_RETURN(-1); | 341 ON_NOSYS_RETURN(-1); |
334 return s_state.kp->fcntl(d, request, args); | 342 return s_state.kp->fcntl(d, request, args); |
335 } | 343 } |
336 | 344 |
337 int ki_ioctl(int d, int request, va_list args) { | 345 int ki_ioctl(int d, int request, va_list args) { |
338 ON_NOSYS_RETURN(-1); | 346 ON_NOSYS_RETURN(-1); |
339 return s_state.kp->ioctl(d, request, args); | 347 return s_state.kp->ioctl(d, request, args); |
(...skipping 12 matching lines...) Expand all Loading... |
352 int ki_lchown(const char* path, uid_t owner, gid_t group) { | 360 int ki_lchown(const char* path, uid_t owner, gid_t group) { |
353 ON_NOSYS_RETURN(-1); | 361 ON_NOSYS_RETURN(-1); |
354 return s_state.kp->lchown(path, owner, group); | 362 return s_state.kp->lchown(path, owner, group); |
355 } | 363 } |
356 | 364 |
357 int ki_utime(const char* filename, const struct utimbuf* times) { | 365 int ki_utime(const char* filename, const struct utimbuf* times) { |
358 ON_NOSYS_RETURN(-1); | 366 ON_NOSYS_RETURN(-1); |
359 return s_state.kp->utime(filename, times); | 367 return s_state.kp->utime(filename, times); |
360 } | 368 } |
361 | 369 |
362 int ki_poll(struct pollfd *fds, nfds_t nfds, int timeout) { | 370 int ki_poll(struct pollfd* fds, nfds_t nfds, int timeout) { |
363 return s_state.kp->poll(fds, nfds, timeout); | 371 return s_state.kp->poll(fds, nfds, timeout); |
364 } | 372 } |
365 | 373 |
366 int ki_select(int nfds, fd_set* readfds, fd_set* writefds, | 374 int ki_select(int nfds, |
367 fd_set* exceptfds, struct timeval* timeout) { | 375 fd_set* readfds, |
| 376 fd_set* writefds, |
| 377 fd_set* exceptfds, |
| 378 struct timeval* timeout) { |
368 return s_state.kp->select(nfds, readfds, writefds, exceptfds, timeout); | 379 return s_state.kp->select(nfds, readfds, writefds, exceptfds, timeout); |
369 } | 380 } |
370 | 381 |
371 int ki_tcflush(int fd, int queue_selector) { | 382 int ki_tcflush(int fd, int queue_selector) { |
372 ON_NOSYS_RETURN(-1); | 383 ON_NOSYS_RETURN(-1); |
373 return s_state.kp->tcflush(fd, queue_selector); | 384 return s_state.kp->tcflush(fd, queue_selector); |
374 } | 385 } |
375 | 386 |
376 int ki_tcgetattr(int fd, struct termios* termios_p) { | 387 int ki_tcgetattr(int fd, struct termios* termios_p) { |
377 ON_NOSYS_RETURN(-1); | 388 ON_NOSYS_RETURN(-1); |
378 return s_state.kp->tcgetattr(fd, termios_p); | 389 return s_state.kp->tcgetattr(fd, termios_p); |
379 } | 390 } |
380 | 391 |
381 int ki_tcsetattr(int fd, int optional_actions, | 392 int ki_tcsetattr(int fd, |
382 const struct termios *termios_p) { | 393 int optional_actions, |
| 394 const struct termios* termios_p) { |
383 ON_NOSYS_RETURN(-1); | 395 ON_NOSYS_RETURN(-1); |
384 return s_state.kp->tcsetattr(fd, optional_actions, termios_p); | 396 return s_state.kp->tcsetattr(fd, optional_actions, termios_p); |
385 } | 397 } |
386 | 398 |
387 int ki_kill(pid_t pid, int sig) { | 399 int ki_kill(pid_t pid, int sig) { |
388 ON_NOSYS_RETURN(-1); | 400 ON_NOSYS_RETURN(-1); |
389 return s_state.kp->kill(pid, sig); | 401 return s_state.kp->kill(pid, sig); |
390 } | 402 } |
391 | 403 |
392 int ki_killpg(pid_t pid, int sig) { | 404 int ki_killpg(pid_t pid, int sig) { |
393 errno = ENOSYS; | 405 errno = ENOSYS; |
394 return -1; | 406 return -1; |
395 } | 407 } |
396 | 408 |
397 int ki_sigaction(int signum, const struct sigaction* action, | 409 int ki_sigaction(int signum, |
| 410 const struct sigaction* action, |
398 struct sigaction* oaction) { | 411 struct sigaction* oaction) { |
399 ON_NOSYS_RETURN(-1); | 412 ON_NOSYS_RETURN(-1); |
400 return s_state.kp->sigaction(signum, action, oaction); | 413 return s_state.kp->sigaction(signum, action, oaction); |
401 } | 414 } |
402 | 415 |
403 int ki_sigpause(int sigmask) { | 416 int ki_sigpause(int sigmask) { |
404 errno = ENOSYS; | 417 errno = ENOSYS; |
405 return -1; | 418 return -1; |
406 } | 419 } |
407 | 420 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 int ki_connect(int fd, const struct sockaddr* addr, socklen_t len) { | 461 int ki_connect(int fd, const struct sockaddr* addr, socklen_t len) { |
449 ON_NOSYS_RETURN(-1); | 462 ON_NOSYS_RETURN(-1); |
450 return s_state.kp->connect(fd, addr, len); | 463 return s_state.kp->connect(fd, addr, len); |
451 } | 464 } |
452 | 465 |
453 struct hostent* ki_gethostbyname(const char* name) { | 466 struct hostent* ki_gethostbyname(const char* name) { |
454 ON_NOSYS_RETURN(NULL); | 467 ON_NOSYS_RETURN(NULL); |
455 return s_state.kp->gethostbyname(name); | 468 return s_state.kp->gethostbyname(name); |
456 } | 469 } |
457 | 470 |
458 int ki_getaddrinfo(const char *node, const char *service, | 471 int ki_getaddrinfo(const char* node, |
459 const struct addrinfo *hints, | 472 const char* service, |
460 struct addrinfo **res) { | 473 const struct addrinfo* hints, |
| 474 struct addrinfo** res) { |
461 ON_NOSYS_RETURN(EAI_SYSTEM); | 475 ON_NOSYS_RETURN(EAI_SYSTEM); |
462 return s_state.kp->getaddrinfo(node, service, hints, res); | 476 return s_state.kp->getaddrinfo(node, service, hints, res); |
463 } | 477 } |
464 | 478 |
465 void ki_freeaddrinfo(struct addrinfo *res) { | 479 void ki_freeaddrinfo(struct addrinfo* res) { |
466 s_state.kp->freeaddrinfo(res); | 480 s_state.kp->freeaddrinfo(res); |
467 } | 481 } |
468 | 482 |
469 int ki_getpeername(int fd, struct sockaddr* addr, socklen_t* len) { | 483 int ki_getpeername(int fd, struct sockaddr* addr, socklen_t* len) { |
470 ON_NOSYS_RETURN(-1); | 484 ON_NOSYS_RETURN(-1); |
471 return s_state.kp->getpeername(fd, addr, len); | 485 return s_state.kp->getpeername(fd, addr, len); |
472 } | 486 } |
473 | 487 |
474 int ki_getsockname(int fd, struct sockaddr* addr, socklen_t* len) { | 488 int ki_getsockname(int fd, struct sockaddr* addr, socklen_t* len) { |
475 ON_NOSYS_RETURN(-1); | 489 ON_NOSYS_RETURN(-1); |
476 return s_state.kp->getsockname(fd, addr, len); | 490 return s_state.kp->getsockname(fd, addr, len); |
477 } | 491 } |
478 | 492 |
479 int ki_getsockopt(int fd, int lvl, int optname, void* optval, socklen_t* len) { | 493 int ki_getsockopt(int fd, int lvl, int optname, void* optval, socklen_t* len) { |
480 ON_NOSYS_RETURN(-1); | 494 ON_NOSYS_RETURN(-1); |
481 return s_state.kp->getsockopt(fd, lvl, optname, optval, len); | 495 return s_state.kp->getsockopt(fd, lvl, optname, optval, len); |
482 } | 496 } |
483 | 497 |
484 int ki_listen(int fd, int backlog) { | 498 int ki_listen(int fd, int backlog) { |
485 ON_NOSYS_RETURN(-1); | 499 ON_NOSYS_RETURN(-1); |
486 return s_state.kp->listen(fd, backlog); | 500 return s_state.kp->listen(fd, backlog); |
487 } | 501 } |
488 | 502 |
489 ssize_t ki_recv(int fd, void* buf, size_t len, int flags) { | 503 ssize_t ki_recv(int fd, void* buf, size_t len, int flags) { |
490 ON_NOSYS_RETURN(-1); | 504 ON_NOSYS_RETURN(-1); |
491 return s_state.kp->recv(fd, buf, len, flags); | 505 return s_state.kp->recv(fd, buf, len, flags); |
492 } | 506 } |
493 | 507 |
494 ssize_t ki_recvfrom(int fd, void* buf, size_t len, int flags, | 508 ssize_t ki_recvfrom(int fd, |
495 struct sockaddr* addr, socklen_t* addrlen) { | 509 void* buf, |
| 510 size_t len, |
| 511 int flags, |
| 512 struct sockaddr* addr, |
| 513 socklen_t* addrlen) { |
496 ON_NOSYS_RETURN(-1); | 514 ON_NOSYS_RETURN(-1); |
497 return s_state.kp->recvfrom(fd, buf, len, flags, addr, addrlen); | 515 return s_state.kp->recvfrom(fd, buf, len, flags, addr, addrlen); |
498 } | 516 } |
499 | 517 |
500 ssize_t ki_recvmsg(int fd, struct msghdr* msg, int flags) { | 518 ssize_t ki_recvmsg(int fd, struct msghdr* msg, int flags) { |
501 ON_NOSYS_RETURN(-1); | 519 ON_NOSYS_RETURN(-1); |
502 return s_state.kp->recvmsg(fd, msg, flags); | 520 return s_state.kp->recvmsg(fd, msg, flags); |
503 } | 521 } |
504 | 522 |
505 ssize_t ki_send(int fd, const void* buf, size_t len, int flags) { | 523 ssize_t ki_send(int fd, const void* buf, size_t len, int flags) { |
506 ON_NOSYS_RETURN(-1); | 524 ON_NOSYS_RETURN(-1); |
507 return s_state.kp->send(fd, buf, len, flags); | 525 return s_state.kp->send(fd, buf, len, flags); |
508 } | 526 } |
509 | 527 |
510 ssize_t ki_sendto(int fd, const void* buf, size_t len, int flags, | 528 ssize_t ki_sendto(int fd, |
511 const struct sockaddr* addr, socklen_t addrlen) { | 529 const void* buf, |
| 530 size_t len, |
| 531 int flags, |
| 532 const struct sockaddr* addr, |
| 533 socklen_t addrlen) { |
512 ON_NOSYS_RETURN(-1); | 534 ON_NOSYS_RETURN(-1); |
513 return s_state.kp->sendto(fd, buf, len, flags, addr, addrlen); | 535 return s_state.kp->sendto(fd, buf, len, flags, addr, addrlen); |
514 } | 536 } |
515 | 537 |
516 ssize_t ki_sendmsg(int fd, const struct msghdr* msg, int flags) { | 538 ssize_t ki_sendmsg(int fd, const struct msghdr* msg, int flags) { |
517 ON_NOSYS_RETURN(-1); | 539 ON_NOSYS_RETURN(-1); |
518 return s_state.kp->sendmsg(fd, msg, flags); | 540 return s_state.kp->sendmsg(fd, msg, flags); |
519 } | 541 } |
520 | 542 |
521 int ki_setsockopt(int fd, int lvl, int optname, const void* optval, | 543 int ki_setsockopt(int fd, |
| 544 int lvl, |
| 545 int optname, |
| 546 const void* optval, |
522 socklen_t len) { | 547 socklen_t len) { |
523 ON_NOSYS_RETURN(-1); | 548 ON_NOSYS_RETURN(-1); |
524 return s_state.kp->setsockopt(fd, lvl, optname, optval, len); | 549 return s_state.kp->setsockopt(fd, lvl, optname, optval, len); |
525 } | 550 } |
526 | 551 |
527 int ki_shutdown(int fd, int how) { | 552 int ki_shutdown(int fd, int how) { |
528 ON_NOSYS_RETURN(-1); | 553 ON_NOSYS_RETURN(-1); |
529 return s_state.kp->shutdown(fd, how); | 554 return s_state.kp->shutdown(fd, how); |
530 } | 555 } |
531 | 556 |
532 int ki_socket(int domain, int type, int protocol) { | 557 int ki_socket(int domain, int type, int protocol) { |
533 ON_NOSYS_RETURN(-1); | 558 ON_NOSYS_RETURN(-1); |
534 return s_state.kp->socket(domain, type, protocol); | 559 return s_state.kp->socket(domain, type, protocol); |
535 } | 560 } |
536 | 561 |
537 int ki_socketpair(int domain, int type, int protocol, int* sv) { | 562 int ki_socketpair(int domain, int type, int protocol, int* sv) { |
538 ON_NOSYS_RETURN(-1); | 563 ON_NOSYS_RETURN(-1); |
539 return s_state.kp->socketpair(domain, type, protocol, sv); | 564 return s_state.kp->socketpair(domain, type, protocol, sv); |
540 } | 565 } |
541 #endif // PROVIDES_SOCKET_API | 566 #endif // PROVIDES_SOCKET_API |
OLD | NEW |