Line data Source code
1 : #ifndef HEADER_fd_src_util_io_fd_io_uring_register_h 2 : #define HEADER_fd_src_util_io_fd_io_uring_register_h 3 : 4 : /* fd_io_uring_register.h provides APIs to add file descriptors and 5 : sandbox restrictions to an ioring. */ 6 : 7 : #include "fd_io_uring_sys.h" 8 : #include <linux/io_uring.h> 9 : #include <errno.h> 10 : #include "../../util/fd_util_base.h" 11 : 12 : FD_PROTOTYPES_BEGIN 13 : 14 : static inline int 15 : fd_io_uring_register_files( int ring_fd, 16 : int const * fds, 17 0 : ulong fd_cnt ) { 18 0 : if( FD_UNLIKELY( fd_cnt > UINT_MAX ) ) return -EINVAL; 19 0 : return fd_io_uring_register( ring_fd, FD_IORING_REGISTER_FILES, fds, (uint)fd_cnt ); 20 0 : } 21 : 22 : static inline int 23 : fd_io_uring_register_restrictions( int ring_fd, 24 : fd_io_uring_restriction_t * res, 25 0 : uint res_cnt ) { 26 0 : return fd_io_uring_register( ring_fd, FD_IORING_REGISTER_RESTRICTIONS, res, res_cnt ); 27 0 : } 28 : 29 : static inline int 30 0 : fd_io_uring_enable_rings( int ring_fd ) { 31 0 : return fd_io_uring_register( ring_fd, FD_IORING_REGISTER_ENABLE_RINGS, NULL, 0 ); 32 0 : } 33 : 34 : FD_PROTOTYPES_END 35 : 36 : #endif /* HEADER_fd_src_util_io_fd_io_uring_register_h */