int target_iomap_size;
void *target_buffer_list;
volatile struct rs_sge *target_sgl;
- volatile struct rs_iomap *target_iomap;
+ struct rs_iomap *target_iomap;
uint32_t rbuf_size;
struct ibv_mr *rmr;
def_wmem = RS_SNDLOWAT << 1;
}
- if ((f = fopen(RS_CONN_DIR "/iomap_size", "r"))) {
+ if ((f = fopen(RS_CONF_DIR "/iomap_size", "r"))) {
fscanf(f, "%hu", &def_iomap_size);
fclose(f);
/* round to supported values */
def_iomap_size = (uint8_t) rs_value_to_scale(
- (uint16_t) rs_scale_to_value(def_iomap_size, 8), 8)
+ (uint16_t) rs_scale_to_value(def_iomap_size, 8), 8);
}
init = 1;
out:
{
struct rsocket *rs;
struct ibv_sge sge;
- size_t left;
+ size_t left = len;
uint32_t xfer_size, olen = RS_OLAP_START_SIZE;
int ret = 0;
if (ret)
goto out;
}
- for (left = len; left; left -= xfer_size, buf += xfer_size) {
+ for (; left; left -= xfer_size, buf += xfer_size) {
if (!rs_can_send(rs)) {
ret = rs_get_comp(rs, rs_nonblocking(rs, flags),
rs_conn_can_send);
len = iov[0].iov_len;
for (i = 1; i < iovcnt; i++)
len += iov[i].iov_len;
+ left = len;
fastlock_acquire(&rs->slock);
if (rs->iomap_pending) {
if (ret)
goto out;
}
- for (left = len; left; left -= xfer_size) {
+ for (; left; left -= xfer_size) {
if (!rs_can_send(rs)) {
ret = rs_get_comp(rs, rs_nonblocking(rs, flags),
rs_conn_can_send);
static struct rs_iomap_mr *rs_get_iomap_mr(struct rsocket *rs)
{
- struct rs_iomap_mr *iomr;
int i;
if (!rs->remote_iomappings) {
}
for (i = 0; i < rs->remote_iomap.length; i++) {
- if (!rs->remote_iomappings[i]->mr)
+ if (!rs->remote_iomappings[i].mr)
return &rs->remote_iomappings[i];
}
return NULL;
{
struct rsocket *rs;
struct rs_iomap_mr *iomr;
- int ret, access = IBV_ACCESS_LOCAL_WRITE;
+ int access = IBV_ACCESS_LOCAL_WRITE;
rs = idm_at(&idm, socket);
if ((rs->state != rs_connect_rdwr) || (prot & ~(PROT_WRITE | PROT_NONE)))
if (offset == -1)
offset = (uintptr_t) buf;
iomr->offset = offset;
- iomr->prot = prot;
atomic_init(&iomr->refcnt);
atomic_set(&iomr->refcnt, 1);
{
struct rsocket *rs;
struct rs_iomap_mr *iomr;
- struct dlist_entry *entry;
+ dlist_entry *entry;
int ret = 0;
rs = idm_at(&idm, socket);
struct rsocket *rs;
struct rs_iomap *iom = NULL;
struct ibv_sge sge;
- size_t left;
+ size_t left = count;
uint32_t xfer_size, olen = RS_OLAP_START_SIZE;
int ret = 0;
if (ret)
goto out;
}
- for (left = count; left;
- left -= xfer_size, buf += xfer_size, offset += xfer_size) {
+ for (; left; left -= xfer_size, buf += xfer_size, offset += xfer_size) {
if (!iom || offset > iom->offset + iom->sge.length) {
iom = rs_find_iomap(rs, offset);
if (!iom)