summaryrefslogtreecommitdiff
path: root/sys/src/9/port/devsegment.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-04-13 23:35:36 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-04-13 23:35:36 +0200
commit35e1aa1bfa5f1bdb2002b724e636ffe1ddea9a09 (patch)
tree5983f169323c384c086130120230e6a8f129d4a5 /sys/src/9/port/devsegment.c
parent656dd953a85b043c1eb085d5d8e1f7f7f1e4452f (diff)
segment: don't store pointers in a long
Diffstat (limited to 'sys/src/9/port/devsegment.c')
-rw-r--r--sys/src/9/port/devsegment.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/src/9/port/devsegment.c b/sys/src/9/port/devsegment.c
index 0c9a16d6f..2acaa0d76 100644
--- a/sys/src/9/port/devsegment.c
+++ b/sys/src/9/port/devsegment.c
@@ -41,7 +41,7 @@ struct Globalseg
Rendez replywait; /* where requestor waits */
Proc *kproc;
char *data;
- long off;
+ char *addr;
int dlen;
int cmd;
char err[64];
@@ -350,7 +350,7 @@ segmentio(Globalseg *g, void *a, long n, vlong off, int wr)
qunlock(&g->l);
nexterror();
}
- g->off = off + g->s->base;
+ g->addr = (char*)g->s->base + off;
g->data = b;
g->dlen = n;
docmd(g, wr ? Cwrite : Cread);
@@ -571,10 +571,10 @@ segmentkproc(void *arg)
done = 1;
break;
case Cread:
- memmove(g->data, (char*)g->off, g->dlen);
+ memmove(g->data, g->addr, g->dlen);
break;
case Cwrite:
- memmove((char*)g->off, g->data, g->dlen);
+ memmove(g->addr, g->data, g->dlen);
break;
}
poperror();