Changes in / [365e423:59f74a2]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/iocall.cfa
r365e423 r59f74a2 108 108 109 109 extern ssize_t read (int fd, void *buf, size_t count); 110 111 extern ssize_t splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags);112 extern ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags);113 110 } 114 111 … … 345 342 } 346 343 344 347 345 ssize_t cfa_read(int fd, void *buf, size_t count) { 348 346 #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_READ) … … 364 362 365 363 (*sqe){ IORING_OP_WRITE, fd, buf, count, 0 }; 366 367 __submit_wait368 #endif369 }370 371 ssize_t cfa_splice(int fd_in, loff_t *off_in, int fd_out, loff_t *off_out, size_t len, unsigned int flags) {372 #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_SPLICE)373 return splice( fd_in, off_in, fd_out, off_out, len, flags );374 #else375 __submit_prelude376 377 (*sqe){ IORING_OP_SPLICE, fd_out, 0p, len, off_out };378 sqe->splice_fd_in = fd_in;379 sqe->splice_off_in = off_in;380 sqe->splice_flags = flags;381 382 __submit_wait383 #endif384 }385 386 ssize_t cfa_tee(int fd_in, int fd_out, size_t len, unsigned int flags) {387 #if !defined(HAVE_LINUX_IO_URING_H) || !defined(IORING_OP_TEE)388 return tee( fd_in, fd_out, len, flags );389 #else390 __submit_prelude391 392 (*sqe){ IORING_OP_TEE, fd_out, 0p, len, 0 };393 sqe->splice_fd_in = fd_in;394 sqe->splice_flags = flags;395 364 396 365 __submit_wait … … 497 466 #define _CFA_IO_FEATURE_IORING_OP_WRITE , 498 467 return IS_DEFINED(IORING_OP_WRITE); 499 500 if( /*func == (fptr_t)splice || */501 func == (fptr_t)cfa_splice )502 #define _CFA_IO_FEATURE_IORING_OP_SPLICE ,503 return IS_DEFINED(IORING_OP_SPLICE);504 505 if( /*func == (fptr_t)tee || */506 func == (fptr_t)cfa_tee )507 #define _CFA_IO_FEATURE_IORING_OP_TEE ,508 return IS_DEFINED(IORING_OP_TEE);509 468 #endif 510 469
Note: See TracChangeset
for help on using the changeset viewer.