From 5bb8203bf6cf2db988fc61ffaf8bf39aa30fabfe Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Wed, 19 Jun 2013 22:26:27 +0200 Subject: acpi: use Tblsz enum instead of sizeof(Tbl) due to alignment, enable use tsc on terminal kernel (thank erik) --- sys/src/cmd/scram.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'sys/src/cmd/scram.c') diff --git a/sys/src/cmd/scram.c b/sys/src/cmd/scram.c index cbbe8d90d..1ce3aa6e8 100644 --- a/sys/src/cmd/scram.c +++ b/sys/src/cmd/scram.c @@ -25,6 +25,10 @@ struct Tbl { uchar data[]; }; +enum { + Tblsz = 4+4+1+1+6+8+4+4+4, +}; + void* amlalloc(int n){ return mallocz(n, 1); @@ -64,15 +68,15 @@ loadacpi(void) amlinit(); for(;;){ t = malloc(sizeof(*t)); - if((n = readn(fd, t, sizeof(*t))) <= 0) + if((n = readn(fd, t, Tblsz)) <= 0) break; - if(n != sizeof(*t)) + if(n != Tblsz) return -1; l = get32(t->len); - if(l < sizeof(*t)) + if(l < Tblsz) return -1; - t = realloc(t, l); - l -= sizeof(*t); + l -= Tblsz; + t = realloc(t, sizeof(*t) + l); if(readn(fd, t->data, l) != l) return -1; if(memcmp("DSDT", t->sig, 4) == 0) -- cgit v1.2.3