Lines Matching refs:iom
1784 static int rs_write_direct(struct rsocket *rs, struct rs_iomap *iom, uint64_t offset,
1792 addr = iom->sge.addr + offset - iom->offset;
1794 flags, addr, iom->sge.key);
2536 struct rs_iomap iom;
2554 iom.offset = iomr->offset;
2555 iom.sge.addr = (uintptr_t) iomr->mr->addr;
2556 iom.sge.length = iomr->mr->length;
2557 iom.sge.key = iomr->mr->rkey;
2559 iom.offset = bswap_64(iomr->offset);
2560 iom.sge.addr = bswap_64((uintptr_t) iomr->mr->addr);
2561 iom.sge.length = bswap_32(iomr->mr->length);
2562 iom.sge.key = bswap_32(iomr->mr->rkey);
2565 if (rs->sq_inline >= sizeof iom) {
2566 sge.addr = (uintptr_t) &iom;
2567 sge.length = sizeof iom;
2570 } else if (rs_sbuf_left(rs) >= sizeof iom) {
2571 memcpy((void *) (uintptr_t) rs->ssgl[0].addr, &iom, sizeof iom);
2572 rs->ssgl[0].length = sizeof iom;
2574 if (rs_sbuf_left(rs) > sizeof iom)
2575 rs->ssgl[0].addr += sizeof iom;
2580 memcpy((void *) (uintptr_t) rs->ssgl[0].addr, &iom,
2582 rs->ssgl[1].length = sizeof iom - rs->ssgl[0].length;
2583 memcpy(rs->sbuf, ((void *) &iom) + rs->ssgl[0].length,
3864 struct rs_iomap *iom = NULL;
3878 if (!iom || offset > iom->offset + iom->sge.length) {
3879 iom = rs_find_iomap(rs, offset);
3880 if (!iom)
3905 if (xfer_size > iom->offset + iom->sge.length - offset)
3906 xfer_size = iom->offset + iom->sge.length - offset;
3912 ret = rs_write_direct(rs, iom, offset, &sge, 1,
3917 ret = rs_write_direct(rs, iom, offset, rs->ssgl, 1, xfer_size, 0);
3928 ret = rs_write_direct(rs, iom, offset, rs->ssgl, 2, xfer_size, 0);