diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-06-06 15:23:50 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-06-06 15:23:50 +0200 |
commit | 6184a4ef2eba1d49f0386e9ce94f4877d3d9edb2 (patch) | |
tree | 9384da1347976c340dc0cec456723d991ac5a23e /sys/src/9/pc/vga.c | |
parent | 182e18ecffa579b06d88b4d9bdd1b87f257b5936 (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.c | 9 |
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); } |