Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/concurrency/iocall.cfa

    r5751a56 refc171d1  
    2020//=============================================================================================
    2121
    22 #if defined(CFA_HAVE_LINUX_IO_URING_H)
     22#if defined(HAVE_LINUX_IO_URING_H)
    2323        #include <stdint.h>
    2424        #include <linux/io_uring.h>
     
    122122#if defined(HAVE_PREADV2)
    123123        ssize_t cfa_preadv2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags) {
    124                 #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_READV)
     124                #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_READV)
    125125                        return preadv2(fd, iov, iovcnt, offset, flags);
    126126                #else
     
    134134
    135135        ssize_t cfa_preadv2_fixed(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags) {
    136                 #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_READV)
     136                #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_READV)
    137137                        return preadv2(fd, iov, iovcnt, offset, flags);
    138138                #else
     
    149149#if defined(HAVE_PWRITEV2)
    150150        ssize_t cfa_pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags) {
    151                 #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_WRITEV)
     151                #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_WRITEV)
    152152                        return pwritev2(fd, iov, iovcnt, offset, flags);
    153153                #else
     
    162162
    163163int cfa_fsync(int fd) {
    164         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_FSYNC)
     164        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_FSYNC)
    165165                return fsync(fd);
    166166        #else
     
    174174
    175175int cfa_sync_file_range(int fd, int64_t offset, int64_t nbytes, unsigned int flags) {
    176         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_SYNC_FILE_RANGE)
     176        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_SYNC_FILE_RANGE)
    177177                return sync_file_range(fd, offset, nbytes, flags);
    178178        #else
     
    190190
    191191ssize_t cfa_sendmsg(int sockfd, const struct msghdr *msg, int flags) {
    192         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_SENDMSG)
     192        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_SENDMSG)
    193193                return sendmsg(sockfd, msg, flags);
    194194        #else
     
    203203
    204204ssize_t cfa_recvmsg(int sockfd, struct msghdr *msg, int flags) {
    205         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_RECVMSG)
     205        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_RECVMSG)
    206206                return recvmsg(sockfd, msg, flags);
    207207        #else
     
    216216
    217217ssize_t cfa_send(int sockfd, const void *buf, size_t len, int flags) {
    218         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_SEND)
     218        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_SEND)
    219219                return send( sockfd, buf, len, flags );
    220220        #else
     
    231231
    232232ssize_t cfa_recv(int sockfd, void *buf, size_t len, int flags) {
    233         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_RECV)
     233        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_RECV)
    234234                return recv( sockfd, buf, len, flags );
    235235        #else
     
    246246
    247247int cfa_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, int flags) {
    248         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_ACCEPT)
     248        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_ACCEPT)
    249249                return accept4( sockfd, addr, addrlen, flags );
    250250        #else
     
    261261
    262262int cfa_connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
    263         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_CONNECT)
     263        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_CONNECT)
    264264                return connect( sockfd, addr, addrlen );
    265265        #else
     
    275275
    276276int cfa_fallocate(int fd, int mode, uint64_t offset, uint64_t len) {
    277         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_FALLOCATE)
     277        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_FALLOCATE)
    278278                return fallocate( fd, mode, offset, len );
    279279        #else
     
    290290
    291291int cfa_fadvise(int fd, uint64_t offset, uint64_t len, int advice) {
    292         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_FADVISE)
     292        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_FADVISE)
    293293                return posix_fadvise( fd, offset, len, advice );
    294294        #else
     
    305305
    306306int cfa_madvise(void *addr, size_t length, int advice) {
    307         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_MADVISE)
     307        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_MADVISE)
    308308                return madvise( addr, length, advice );
    309309        #else
     
    320320
    321321int cfa_openat(int dirfd, const char *pathname, int flags, mode_t mode) {
    322         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_OPENAT)
     322        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_OPENAT)
    323323                return openat( dirfd, pathname, flags, mode );
    324324        #else
     
    335335
    336336int cfa_close(int fd) {
    337         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_CLOSE)
     337        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_CLOSE)
    338338                return close( fd );
    339339        #else
     
    349349struct statx;
    350350int cfa_statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf) {
    351         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_STATX)
     351        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_STATX)
    352352                #if defined(__NR_statx)
    353353                        return syscall( __NR_statx, dirfd, pathname, flags, mask, statxbuf );
     
    367367
    368368ssize_t cfa_read(int fd, void *buf, size_t count) {
    369         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_READ)
     369        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_READ)
    370370                return read( fd, buf, count );
    371371        #else
     
    379379
    380380ssize_t cfa_write(int fd, void *buf, size_t count) {
    381         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_WRITE)
     381        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_WRITE)
    382382                return read( fd, buf, count );
    383383        #else
     
    391391
    392392ssize_t cfa_splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags) {
    393         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_SPLICE)
     393        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_SPLICE)
    394394                return splice( fd_in, off_in, fd_out, off_out, len, flags );
    395395        #else
     
    405405}
    406406
    407 ssize_t cfa_splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags, int in_flags, int out_flags) {
    408         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_SPLICE)
    409                 return splice( fd_in, off_in, fd_out, off_out, len, flags );
    410         #else
    411                 __submit_prelude
    412 
    413                 (*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };
    414                 sqe->splice_fd_in  = fd_in;
    415                 sqe->splice_off_in = off_in;
    416                 sqe->splice_flags  = flags | out_flags;
    417                 sqe->flags = in_flags;
    418 
    419                 __submit_wait
    420         #endif
    421 }
    422 
    423407ssize_t cfa_tee(int fd_in, int fd_out, size_t len, unsigned int flags) {
    424         #if !defined(CFA_HAVE_LINUX_IO_URING_H) || !defined(CFA_HAVE_IORING_OP_TEE)
     408        #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_TEE)
    425409                return tee( fd_in, fd_out, len, flags );
    426410        #else
     
    445429
    446430bool has_user_level_blocking( fptr_t func ) {
    447         #if defined(CFA_HAVE_LINUX_IO_URING_H)
     431        #if defined(HAVE_LINUX_IO_URING_H)
    448432                #if defined(HAVE_PREADV2)
    449433                        if( /*func == (fptr_t)preadv2 || */
    450434                                func == (fptr_t)cfa_preadv2 )
    451                                 #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_READV ,
    452                                 return IS_DEFINED(CFA_HAVE_IORING_OP_READV);
     435                                #define _CFA_IO_FEATURE_IORING_OP_READV ,
     436                                return IS_DEFINED(IORING_OP_READV);
    453437                #endif
    454438
     
    456440                        if( /*func == (fptr_t)pwritev2 || */
    457441                                func == (fptr_t)cfa_pwritev2 )
    458                                 #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_WRITEV ,
    459                                 return IS_DEFINED(CFA_HAVE_IORING_OP_WRITEV);
     442                                #define _CFA_IO_FEATURE_IORING_OP_WRITEV ,
     443                                return IS_DEFINED(IORING_OP_WRITEV);
    460444                #endif
    461445
    462446                if( /*func == (fptr_t)fsync || */
    463447                        func == (fptr_t)cfa_fsync )
    464                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_FSYNC ,
    465                         return IS_DEFINED(CFA_HAVE_IORING_OP_FSYNC);
     448                        #define _CFA_IO_FEATURE_IORING_OP_FSYNC ,
     449                        return IS_DEFINED(IORING_OP_FSYNC);
    466450
    467451                if( /*func == (fptr_t)ync_file_range || */
    468452                        func == (fptr_t)cfa_sync_file_range )
    469                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_SYNC_FILE_RANGE ,
    470                         return IS_DEFINED(CFA_HAVE_IORING_OP_SYNC_FILE_RANGE);
     453                        #define _CFA_IO_FEATURE_IORING_OP_SYNC_FILE_RANGE ,
     454                        return IS_DEFINED(IORING_OP_SYNC_FILE_RANGE);
    471455
    472456                if( /*func == (fptr_t)sendmsg || */
    473457                        func == (fptr_t)cfa_sendmsg )
    474                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_SENDMSG ,
    475                         return IS_DEFINED(CFA_HAVE_IORING_OP_SENDMSG);
     458                        #define _CFA_IO_FEATURE_IORING_OP_SENDMSG ,
     459                        return IS_DEFINED(IORING_OP_SENDMSG);
    476460
    477461                if( /*func == (fptr_t)recvmsg || */
    478462                        func == (fptr_t)cfa_recvmsg )
    479                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_RECVMSG ,
    480                         return IS_DEFINED(CFA_HAVE_IORING_OP_RECVMSG);
     463                        #define _CFA_IO_FEATURE_IORING_OP_RECVMSG ,
     464                        return IS_DEFINED(IORING_OP_RECVMSG);
    481465
    482466                if( /*func == (fptr_t)send || */
    483467                        func == (fptr_t)cfa_send )
    484                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_SEND ,
    485                         return IS_DEFINED(CFA_HAVE_IORING_OP_SEND);
     468                        #define _CFA_IO_FEATURE_IORING_OP_SEND ,
     469                        return IS_DEFINED(IORING_OP_SEND);
    486470
    487471                if( /*func == (fptr_t)recv || */
    488472                        func == (fptr_t)cfa_recv )
    489                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_RECV ,
    490                         return IS_DEFINED(CFA_HAVE_IORING_OP_RECV);
     473                        #define _CFA_IO_FEATURE_IORING_OP_RECV ,
     474                        return IS_DEFINED(IORING_OP_RECV);
    491475
    492476                if( /*func == (fptr_t)accept4 || */
    493477                        func == (fptr_t)cfa_accept4 )
    494                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_ACCEPT ,
    495                         return IS_DEFINED(CFA_HAVE_IORING_OP_ACCEPT);
     478                        #define _CFA_IO_FEATURE_IORING_OP_ACCEPT ,
     479                        return IS_DEFINED(IORING_OP_ACCEPT);
    496480
    497481                if( /*func == (fptr_t)connect || */
    498482                        func == (fptr_t)cfa_connect )
    499                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_CONNECT ,
    500                         return IS_DEFINED(CFA_HAVE_IORING_OP_CONNECT);
     483                        #define _CFA_IO_FEATURE_IORING_OP_CONNECT ,
     484                        return IS_DEFINED(IORING_OP_CONNECT);
    501485
    502486                if( /*func == (fptr_t)fallocate || */
    503487                        func == (fptr_t)cfa_fallocate )
    504                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_FALLOCATE ,
    505                         return IS_DEFINED(CFA_HAVE_IORING_OP_FALLOCATE);
     488                        #define _CFA_IO_FEATURE_IORING_OP_FALLOCATE ,
     489                        return IS_DEFINED(IORING_OP_FALLOCATE);
    506490
    507491                if( /*func == (fptr_t)posix_fadvise || */
    508492                        func == (fptr_t)cfa_fadvise )
    509                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_FADVISE ,
    510                         return IS_DEFINED(CFA_HAVE_IORING_OP_FADVISE);
     493                        #define _CFA_IO_FEATURE_IORING_OP_FADVISE ,
     494                        return IS_DEFINED(IORING_OP_FADVISE);
    511495
    512496                if( /*func == (fptr_t)madvise || */
    513497                        func == (fptr_t)cfa_madvise )
    514                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_MADVISE ,
    515                         return IS_DEFINED(CFA_HAVE_IORING_OP_MADVISE);
     498                        #define _CFA_IO_FEATURE_IORING_OP_MADVISE ,
     499                        return IS_DEFINED(IORING_OP_MADVISE);
    516500
    517501                if( /*func == (fptr_t)openat || */
    518502                        func == (fptr_t)cfa_openat )
    519                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_OPENAT ,
    520                         return IS_DEFINED(CFA_HAVE_IORING_OP_OPENAT);
     503                        #define _CFA_IO_FEATURE_IORING_OP_OPENAT ,
     504                        return IS_DEFINED(IORING_OP_OPENAT);
    521505
    522506                if( /*func == (fptr_t)close || */
    523507                        func == (fptr_t)cfa_close )
    524                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_CLOSE ,
    525                         return IS_DEFINED(CFA_HAVE_IORING_OP_CLOSE);
     508                        #define _CFA_IO_FEATURE_IORING_OP_CLOSE ,
     509                        return IS_DEFINED(IORING_OP_CLOSE);
    526510
    527511                if( /*func == (fptr_t)read || */
    528512                        func == (fptr_t)cfa_read )
    529                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_READ ,
    530                         return IS_DEFINED(CFA_HAVE_IORING_OP_READ);
     513                        #define _CFA_IO_FEATURE_IORING_OP_READ ,
     514                        return IS_DEFINED(IORING_OP_READ);
    531515
    532516                if( /*func == (fptr_t)write || */
    533517                        func == (fptr_t)cfa_write )
    534                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_WRITE ,
    535                         return IS_DEFINED(CFA_HAVE_IORING_OP_WRITE);
     518                        #define _CFA_IO_FEATURE_IORING_OP_WRITE ,
     519                        return IS_DEFINED(IORING_OP_WRITE);
    536520
    537521                if( /*func == (fptr_t)splice || */
    538                         func == (fptr_t)(ssize_t (*)(int, loff_t *, int, loff_t *, size_t, unsigned int))cfa_splice,
    539                         func == (fptr_t)(ssize_t (*)(int, loff_t *, int, loff_t *, size_t, unsigned int, int, int))cfa_splice )
    540                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_SPLICE ,
    541                         return IS_DEFINED(CFA_HAVE_IORING_OP_SPLICE);
     522                        func == (fptr_t)cfa_splice )
     523                        #define _CFA_IO_FEATURE_IORING_OP_SPLICE ,
     524                        return IS_DEFINED(IORING_OP_SPLICE);
    542525
    543526                if( /*func == (fptr_t)tee || */
    544527                        func == (fptr_t)cfa_tee )
    545                         #define _CFA_IO_FEATURE_CFA_HAVE_IORING_OP_TEE ,
    546                         return IS_DEFINED(CFA_HAVE_IORING_OP_TEE);
     528                        #define _CFA_IO_FEATURE_IORING_OP_TEE ,
     529                        return IS_DEFINED(IORING_OP_TEE);
    547530        #endif
    548531
Note: See TracChangeset for help on using the changeset viewer.