MCPcopy Create free account
hub / github.com/axboe/liburing / br_setup

Function br_setup

src/setup.c:634–667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

632
633#if defined(__hppa__)
634static struct io_uring_buf_ring *br_setup(struct io_uring *ring,
635 unsigned int nentries, int bgid,
636 unsigned int flags, int *err)
637{
638 struct io_uring_buf_ring *br;
639 struct io_uring_buf_reg reg;
640 size_t ring_size;
641 off_t off;
642 int lret;
643
644 memset(&reg, 0, sizeof(reg));
645 reg.ring_entries = nentries;
646 reg.bgid = bgid;
647 reg.flags = IOU_PBUF_RING_MMAP;
648
649 *err = 0;
650 lret = io_uring_register_buf_ring(ring, &reg, flags);
651 if (lret) {
652 *err = lret;
653 return NULL;
654 }
655
656 off = IORING_OFF_PBUF_RING | (unsigned long long) bgid << IORING_OFF_PBUF_SHIFT;
657 ring_size = nentries * sizeof(struct io_uring_buf);
658 br = __sys_mmap(NULL, ring_size, PROT_READ | PROT_WRITE,
659 MAP_SHARED | MAP_POPULATE, ring->ring_fd, off);
660 if (IS_ERR(br)) {
661 *err = PTR_ERR(br);
662 io_uring_unregister_buf_ring(ring, bgid);
663 return NULL;
664 }
665
666 return br;
667}
668#else
669static struct io_uring_buf_ring *br_setup(struct io_uring *ring,
670 unsigned int nentries, int bgid,

Callers 1

io_uring_setup_buf_ringFunction · 0.85

Calls 6

IS_ERRFunction · 0.85
PTR_ERRFunction · 0.85
__sys_mmapFunction · 0.50
__sys_munmapFunction · 0.50

Tested by

no test coverage detected