Chromium Code Reviews| 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 <sys/types.h> // Include something that will define __GLIBC__. | 5 #include <sys/types.h> // Include something that will define __GLIBC__. |
| 6 | 6 |
| 7 // The entire file is wrapped in this #if. We do this so this .cc file can be | 7 // The entire file is wrapped in this #if. We do this so this .cc file can be |
| 8 // compiled, even on a non-glibc build. | 8 // compiled, even on a non-glibc build. |
| 9 #if defined(__native_client__) && defined(__GLIBC__) | 9 #if defined(__native_client__) && defined(__GLIBC__) |
| 10 | 10 |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 321 *nwrote = static_cast<size_t>(signed_nwrote); | 321 *nwrote = static_cast<size_t>(signed_nwrote); |
| 322 RTN_ERRNO_IF(signed_nwrote < 0); | 322 RTN_ERRNO_IF(signed_nwrote < 0); |
| 323 return 0; | 323 return 0; |
| 324 } | 324 } |
| 325 | 325 |
| 326 int WRAP(accept)(int sockfd, struct sockaddr* addr, | 326 int WRAP(accept)(int sockfd, struct sockaddr* addr, |
| 327 socklen_t* addrlen, int *sd) { | 327 socklen_t* addrlen, int *sd) { |
| 328 int result = ki_accept(sockfd, addr, addrlen); | 328 int result = ki_accept(sockfd, addr, addrlen); |
| 329 if (result < 0) { | 329 if (result < 0) { |
| 330 *sd = -1; | 330 *sd = -1; |
| 331 return errno; | |
| 332 } else { | 331 } else { |
| 333 *sd = result; | 332 *sd = result; |
| 334 return 0; | |
| 335 } | 333 } |
| 334 RTN_ERRNO_IF(result < 0); | |
| 335 return 0; | |
| 336 } | 336 } |
| 337 | 337 |
| 338 int WRAP(bind)(int sockfd, const struct sockaddr* addr, socklen_t addrlen) { | 338 int WRAP(bind)(int sockfd, const struct sockaddr* addr, socklen_t addrlen) { |
| 339 return (ki_bind(sockfd, addr, addrlen) < 0) ? errno : 0; | 339 RTN_ERRNO_IF(ki_bind(sockfd, addr, addrlen) < 0); |
| 340 return 0; | |
| 340 } | 341 } |
| 341 | 342 |
| 342 int WRAP(connect)(int sockfd, const struct sockaddr* addr, socklen_t addrlen) { | 343 int WRAP(connect)(int sockfd, const struct sockaddr* addr, socklen_t addrlen) { |
| 343 return (ki_connect(sockfd, addr, addrlen) < 0) ? errno : 0; | 344 RTN_ERRNO_IF(ki_connect(sockfd, addr, addrlen) < 0); |
| 345 return 0; | |
| 344 } | 346 } |
| 345 | 347 |
| 346 int WRAP(getpeername)(int sockfd, struct sockaddr* addr, socklen_t* addrlen) { | 348 int WRAP(getpeername)(int sockfd, struct sockaddr* addr, socklen_t* addrlen) { |
| 347 return (ki_getpeername(sockfd, addr, addrlen) < 0) ? errno : 0; | 349 RTN_ERRNO_IF(ki_getpeername(sockfd, addr, addrlen) < 0); |
| 350 return 0; | |
| 348 } | 351 } |
| 349 | 352 |
| 350 int WRAP(getsockname)(int sockfd, struct sockaddr* addr, socklen_t* addrlen) { | 353 int WRAP(getsockname)(int sockfd, struct sockaddr* addr, socklen_t* addrlen) { |
| 351 return (ki_getsockname(sockfd, addr, addrlen) < 0) ? errno : 0; | 354 RTN_ERRNO_IF(ki_getsockname(sockfd, addr, addrlen) < 0); |
| 355 return 0; | |
| 352 } | 356 } |
| 353 | 357 |
| 354 int WRAP(getsockopt)(int sockfd, int level, int optname, void* optval, | 358 int WRAP(getsockopt)(int sockfd, int level, int optname, void* optval, |
| 355 socklen_t* optlen) { | 359 socklen_t* optlen) { |
| 356 return (ki_getsockopt( | 360 RTN_ERRNO_IF(ki_getsockopt(sockfd, level, optname, optval, optlen) < 0); |
| 357 sockfd, level, optname, optval, optlen) < 0) ? errno : 0; | 361 return 0; |
| 358 } | 362 } |
| 359 | 363 |
| 360 int WRAP(setsockopt)(int sockfd, int level, int optname, const void* optval, | 364 int WRAP(setsockopt)(int sockfd, int level, int optname, const void* optval, |
| 361 socklen_t optlen) { | 365 socklen_t optlen) { |
| 362 return (ki_setsockopt( | 366 RTN_ERRNO_IF(ki_setsockopt(sockfd, level, optname, optval, optlen) < 0); |
| 363 sockfd, level, optname, optval, optlen) < 0) ? errno : 0; | 367 return 0; |
| 364 } | 368 } |
| 365 | 369 |
| 366 int WRAP(listen)(int sockfd, int backlog) { | 370 int WRAP(listen)(int sockfd, int backlog) { |
| 367 return (ki_listen(sockfd, backlog) < 0) ? errno : 0; | 371 RTN_ERRNO_IF(ki_listen(sockfd, backlog) < 0); |
| 372 return 0; | |
| 368 } | 373 } |
| 369 | 374 |
| 370 int WRAP(recv)(int sockfd, void* buf, size_t len, int flags, int* count) { | 375 int WRAP(recv)(int sockfd, void* buf, size_t len, int flags, int* count) { |
| 371 ssize_t signed_nread = ki_recv(sockfd, buf, len, flags); | 376 ssize_t signed_nread = ki_recv(sockfd, buf, len, flags); |
| 372 *count = static_cast<int>(signed_nread); | 377 *count = static_cast<int>(signed_nread); |
| 373 return (signed_nread < 0) ? errno : 0; | 378 RTN_ERRNO_IF(signed_nread < 0); |
| 379 return 0; | |
| 374 } | 380 } |
| 375 | 381 |
| 376 int WRAP(recvfrom)(int sockfd, void* buf, size_t len, int flags, | 382 int WRAP(recvfrom)(int sockfd, void* buf, size_t len, int flags, |
| 377 struct sockaddr* addr, socklen_t* addrlen, int* count) { | 383 struct sockaddr* addr, socklen_t* addrlen, int* count) { |
| 378 ssize_t signed_nread = ki_recvfrom(sockfd, buf, len, flags, addr, addrlen); | 384 ssize_t signed_nread = ki_recvfrom(sockfd, buf, len, flags, addr, addrlen); |
| 379 *count = static_cast<int>(signed_nread); | 385 *count = static_cast<int>(signed_nread); |
| 380 return (signed_nread < 0) ? errno : 0; | 386 RTN_ERRNO_IF(signed_nread < 0); |
| 387 return 0; | |
| 381 } | 388 } |
| 382 | 389 |
| 383 int WRAP(recvmsg)(int sockfd, struct msghdr* msg, int flags, int *count) { | 390 int WRAP(recvmsg)(int sockfd, struct msghdr* msg, int flags, int *count) { |
| 384 ssize_t signed_nread = ki_recvmsg(sockfd, msg, flags); | 391 ssize_t signed_nread = ki_recvmsg(sockfd, msg, flags); |
| 385 *count = static_cast<int>(signed_nread); | 392 *count = static_cast<int>(signed_nread); |
| 386 return (signed_nread < 0) ? errno : 0; | 393 RTN_ERRNO_IF(signed_nread < 0); |
| 394 return 0; | |
| 387 } | 395 } |
| 388 | 396 |
| 389 ssize_t WRAP(send)(int sockfd, const void* buf, size_t len, int flags, | 397 ssize_t WRAP(send)(int sockfd, const void* buf, size_t len, int flags, |
| 390 int* count) { | 398 int* count) { |
| 391 ssize_t signed_nread = ki_send(sockfd, buf, len, flags); | 399 ssize_t signed_nread = ki_send(sockfd, buf, len, flags); |
| 392 *count = static_cast<int>(signed_nread); | 400 *count = static_cast<int>(signed_nread); |
| 393 return (signed_nread < 0) ? errno : 0; | 401 RTN_ERRNO_IF(signed_nread < 0); |
| 402 return 0; | |
| 394 } | 403 } |
| 395 | 404 |
| 396 ssize_t WRAP(sendto)(int sockfd, const void* buf, size_t len, int flags, | 405 ssize_t WRAP(sendto)(int sockfd, const void* buf, size_t len, int flags, |
| 397 const struct sockaddr* addr, socklen_t addrlen, | 406 const struct sockaddr* addr, socklen_t addrlen, |
| 398 int* count) { | 407 int* count) { |
| 399 ssize_t signed_nread = ki_sendto(sockfd, buf, len, flags, addr, addrlen); | 408 ssize_t signed_nread = ki_sendto(sockfd, buf, len, flags, addr, addrlen); |
| 400 *count = static_cast<int>(signed_nread); | 409 *count = static_cast<int>(signed_nread); |
| 401 return (signed_nread < 0) ? errno : 0; | 410 RTN_ERRNO_IF(signed_nread < 0); |
| 411 return 0; | |
| 402 } | 412 } |
| 403 | 413 |
| 404 ssize_t WRAP(sendmsg)(int sockfd, const struct msghdr* msg, int flags, | 414 ssize_t WRAP(sendmsg)(int sockfd, const struct msghdr* msg, int flags, |
| 405 int* count) { | 415 int* count) { |
| 406 ssize_t signed_nread = ki_sendmsg(sockfd, msg, flags); | 416 ssize_t signed_nread = ki_sendmsg(sockfd, msg, flags); |
| 407 *count = static_cast<int>(signed_nread); | 417 *count = static_cast<int>(signed_nread); |
| 408 return (signed_nread < 0) ? errno : 0; | 418 RTN_ERRNO_IF(signed_nread < 0); |
| 419 return 0; | |
| 409 } | 420 } |
| 410 | 421 |
| 411 int WRAP(shutdown)(int sockfd, int how) { | 422 int WRAP(shutdown)(int sockfd, int how) { |
| 412 return (ki_shutdown(sockfd, how) < 0) ? errno : 0; | 423 RTN_ERRNO_IF(ki_shutdown(sockfd, how) < 0); |
| 424 return 0; | |
| 413 } | 425 } |
| 414 | 426 |
| 415 int WRAP(socket)(int domain, int type, int protocol, int* sd) { | 427 int WRAP(socket)(int domain, int type, int protocol, int* sd) { |
| 416 int result = ki_socket(domain, type, protocol); | 428 int result = ki_socket(domain, type, protocol); |
| 417 if (result < 0) { | 429 if (result < 0) { |
| 418 *sd = -1; | 430 *sd = -1; |
| 419 return errno; | |
| 420 } else { | 431 } else { |
| 421 *sd = result; | 432 *sd = result; |
| 422 return 0; | |
| 423 } | 433 } |
| 434 RTN_ERRNO_IF(result < 0); | |
|
Sam Clegg
2014/05/16 20:29:53
Can you just move this up above the 'if' and then
bradn
2014/05/16 20:52:54
Merged to match the others.
| |
| 435 return 0; | |
| 424 } | 436 } |
| 425 | 437 |
| 426 int WRAP(socketpair)(int domain, int type, int protocol, int* sv) { | 438 int WRAP(socketpair)(int domain, int type, int protocol, int* sv) { |
| 427 return (ki_socketpair(domain, type, protocol, sv) < 0) ? errno : 0; | 439 RTN_ERRNO_IF(ki_socketpair(domain, type, protocol, sv) < 0); |
| 440 return 0; | |
| 428 } | 441 } |
| 429 | 442 |
| 430 static void assign_real_pointers() { | 443 static void assign_real_pointers() { |
| 431 static bool assigned = false; | 444 static bool assigned = false; |
| 432 if (!assigned) { | 445 if (!assigned) { |
| 433 EXPAND_SYMBOL_LIST_OPERATION(ASSIGN_REAL_PTR) | 446 EXPAND_SYMBOL_LIST_OPERATION(ASSIGN_REAL_PTR) |
| 434 assigned = true; | 447 assigned = true; |
| 435 } | 448 } |
| 436 } | 449 } |
| 437 | 450 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 554 if (s_wrapped) { | 567 if (s_wrapped) { |
| 555 LOG_TRACE("kernel_wrap_uninit"); | 568 LOG_TRACE("kernel_wrap_uninit"); |
| 556 EXPAND_SYMBOL_LIST_OPERATION(USE_REAL) | 569 EXPAND_SYMBOL_LIST_OPERATION(USE_REAL) |
| 557 s_wrapped = false; | 570 s_wrapped = false; |
| 558 } | 571 } |
| 559 } | 572 } |
| 560 | 573 |
| 561 EXTERN_C_END | 574 EXTERN_C_END |
| 562 | 575 |
| 563 #endif // defined(__native_client__) && defined(__GLIBC__) | 576 #endif // defined(__native_client__) && defined(__GLIBC__) |
| OLD | NEW |