snap: consequently use ulong for page index and count
This commit is contained in:
parent
5692788724
commit
3363693205
2 changed files with 8 additions and 7 deletions
|
@ -134,9 +134,9 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
|
||||||
{
|
{
|
||||||
Seg *s;
|
Seg *s;
|
||||||
Page **pp;
|
Page **pp;
|
||||||
int i, npg;
|
|
||||||
int t;
|
int t;
|
||||||
int n, len;
|
int n, len;
|
||||||
|
ulong i, npg;
|
||||||
ulong pid;
|
ulong pid;
|
||||||
uvlong off;
|
uvlong off;
|
||||||
char buf[Pagesize];
|
char buf[Pagesize];
|
||||||
|
@ -160,13 +160,13 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
|
||||||
len = Pagesize;
|
len = Pagesize;
|
||||||
for(i=0; i<npg; i++) {
|
for(i=0; i<npg; i++) {
|
||||||
if(i == npg-1)
|
if(i == npg-1)
|
||||||
len = s->len - i*Pagesize;
|
len = s->len - (uvlong)i*Pagesize;
|
||||||
|
|
||||||
switch(t = Bgetc(b)) {
|
switch(t = Bgetc(b)) {
|
||||||
case 'z':
|
case 'z':
|
||||||
pp[i] = datapage(zero, len);
|
pp[i] = datapage(zero, len);
|
||||||
if(debug)
|
if(debug)
|
||||||
fprint(2, "0x%.8llux all zeros\n", s->offset+i*Pagesize);
|
fprint(2, "0x%.8llux all zeros\n", s->offset+(uvlong)i*Pagesize);
|
||||||
break;
|
break;
|
||||||
case 'm':
|
case 'm':
|
||||||
case 't':
|
case 't':
|
||||||
|
@ -177,14 +177,15 @@ readseg(Seg **ps, Biobuf *b, Proc *plist)
|
||||||
if(pp[i] == nil)
|
if(pp[i] == nil)
|
||||||
panic("bad page reference in snapshot");
|
panic("bad page reference in snapshot");
|
||||||
if(debug)
|
if(debug)
|
||||||
fprint(2, "0x%.8llux same as %s pid %lud 0x%.8llux\n", s->offset+i*Pagesize, t=='m'?"mem":"text", pid, off);
|
fprint(2, "0x%.8llux same as %s pid %lud 0x%.8llux\n",
|
||||||
|
s->offset+(uvlong)i*Pagesize, t=='m'?"mem":"text", pid, off);
|
||||||
break;
|
break;
|
||||||
case 'r':
|
case 'r':
|
||||||
if((n=Bread(b, buf, len)) != len)
|
if((n=Bread(b, buf, len)) != len)
|
||||||
sysfatal("short read of segment %d/%d at %llx: %r", n, len, Boffset(b));
|
sysfatal("short read of segment %d/%d at %llx: %r", n, len, Boffset(b));
|
||||||
pp[i] = datapage(buf, len);
|
pp[i] = datapage(buf, len);
|
||||||
if(debug)
|
if(debug)
|
||||||
fprint(2, "0x%.8llux is raw data\n", s->offset+i*Pagesize);
|
fprint(2, "0x%.8llux is raw data\n", s->offset+(uvlong)i*Pagesize);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
fprint(2, "bad type char %#.2ux\n", t);
|
fprint(2, "bad type char %#.2ux\n", t);
|
||||||
|
|
|
@ -18,7 +18,7 @@ char *pfile[Npfile] = {
|
||||||
static void
|
static void
|
||||||
writeseg(Biobuf *b, Proc *proc, Seg *s)
|
writeseg(Biobuf *b, Proc *proc, Seg *s)
|
||||||
{
|
{
|
||||||
int i, npg;
|
ulong i, npg;
|
||||||
Page **pp, *p;
|
Page **pp, *p;
|
||||||
int type;
|
int type;
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ writeseg(Biobuf *b, Proc *proc, Seg *s)
|
||||||
abort();
|
abort();
|
||||||
p->written = 1;
|
p->written = 1;
|
||||||
p->type = type;
|
p->type = type;
|
||||||
p->offset = s->offset + i*Pagesize;
|
p->offset = s->offset + (uvlong)i*Pagesize;
|
||||||
p->pid = proc->pid;
|
p->pid = proc->pid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue