- Timestamp:
- Apr 24, 2020, 2:44:44 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 038be32
- Parents:
- d384787
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io.cfa
rd384787 r0ea6c5a 412 412 // I/O Interface 413 413 //============================================================================================= 414 extern "C" {415 #define __USE_GNU416 #define _GNU_SOURCE417 #include <fcntl.h>418 #include <sys/uio.h>419 #include <sys/socket.h>420 #include <sys/stat.h>421 }422 423 414 #if defined(HAVE_LINUX_IO_URING_H) 424 415 #define __submit_prelude \ … … 437 428 #endif 438 429 430 // Some forward declarations 431 extern "C" { 432 #include <sys/types.h> 433 struct iovec; 434 extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 435 extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 436 437 extern int fsync(int fd); 438 extern int sync_file_range(int fd, int64_t offset, int64_t nbytes, unsigned int flags); 439 440 struct msghdr; 441 struct sockaddr; 442 extern ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); 443 extern ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags); 444 extern ssize_t send(int sockfd, const void *buf, size_t len, int flags); 445 extern ssize_t recv(int sockfd, void *buf, size_t len, int flags); 446 extern int accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags); 447 extern int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 448 449 extern int fallocate(int fd, int mode, uint64_t offset, uint64_t len); 450 extern int posix_fadvise(int fd, uint64_t offset, uint64_t len, int advice); 451 extern int madvise(void *addr, size_t length, int advice); 452 453 extern int openat(int dirfd, const char *pathname, int flags, mode_t mode); 454 extern int close(int fd); 455 456 struct statx; 457 extern int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf); 458 459 extern ssize_t read (int fd, void *buf, size_t count); 460 } 461 439 462 //----------------------------------------------------------------------------- 440 463 // Asynchronous operations … … 549 572 int cfa_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags) { 550 573 #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_ACCEPT) 551 #pragma GCC diagnostic push 552 #pragma GCC diagnostic ignored "-Wattributes" 553 __SOCKADDR_ARG _addr; 554 _addr.__sockaddr__ = addr; 555 return accept4( sockfd, _addr, addrlen, flags ); 556 #pragma GCC diagnostic pop 574 return accept4( sockfd, addr, addrlen, flags ); 557 575 #else 558 576 __submit_prelude … … 569 587 int cfa_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) { 570 588 #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_CONNECT) 571 #pragma GCC diagnostic push 572 #pragma GCC diagnostic ignored "-Wattributes" 573 __CONST_SOCKADDR_ARG _addr; 574 _addr.__sockaddr__ = addr; 575 return connect( sockfd, _addr, addrlen ); 576 #pragma GCC diagnostic pop 589 return connect( sockfd, addr, addrlen ); 577 590 #else 578 591 __submit_prelude … … 766 779 return IS_DEFINED(IORING_OP_FALLOCATE); 767 780 768 if( /*func == (fptr_t) fadvise || */781 if( /*func == (fptr_t)posix_fadvise || */ 769 782 func == (fptr_t)cfa_fadvise ) 770 783 #define _CFA_IO_FEATURE_IORING_OP_FADVISE ,
Note: See TracChangeset
for help on using the changeset viewer.