summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/vga.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 15:23:50 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-06-06 15:23:50 +0200
commit6184a4ef2eba1d49f0386e9ce94f4877d3d9edb2 (patch)
tree9384da1347976c340dc0cec456723d991ac5a23e /sys/src/9/pc/vga.c
parent182e18ecffa579b06d88b4d9bdd1b87f257b5936 (diff)
devvga: use 64-bit physical addresses for framebuffer
Diffstat (limited to 'sys/src/9/pc/vga.c')
-rw-r--r--sys/src/9/pc/vga.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/src/9/pc/vga.c b/sys/src/9/pc/vga.c
index 2cfbd8078..6eb1e965a 100644
--- a/sys/src/9/pc/vga.c
+++ b/sys/src/9/pc/vga.c
@@ -252,14 +252,19 @@ vgablank(VGAscr*, int blank)
}
void
-addvgaseg(char *name, ulong pa, ulong size)
+addvgaseg(char *name, uvlong pa, ulong size)
{
Physseg seg;
+ if((uintptr)pa != pa || size == 0 || -(uintptr)pa < size){
+ print("addvgaseg %s: bad address %llux-%llux pc %#p\n",
+ name, pa, pa+size, getcallerpc(&name));
+ return;
+ }
memset(&seg, 0, sizeof seg);
seg.attr = SG_PHYSICAL | SG_DEVICE | SG_NOEXEC;
seg.name = name;
- seg.pa = pa;
+ seg.pa = (uintptr)pa;
seg.size = size;
addphysseg(&seg);
}