aml: define amlintmask and set it according to DSDT revision (64bit / 32bit)
This commit is contained in:
parent
3ccc8224be
commit
bc2a5d9b1e
4 changed files with 9 additions and 2 deletions
|
@ -36,6 +36,7 @@ void amldrop(void *);
|
||||||
|
|
||||||
void* amlroot;
|
void* amlroot;
|
||||||
int amldebug;
|
int amldebug;
|
||||||
|
uvlong amlintmask;
|
||||||
|
|
||||||
#pragma varargck type "V" void*
|
#pragma varargck type "V" void*
|
||||||
#pragma varargck type "N" void*
|
#pragma varargck type "N" void*
|
||||||
|
|
|
@ -495,6 +495,7 @@ acpiinit(void)
|
||||||
for(i=0; i<ntblmap; i++){
|
for(i=0; i<ntblmap; i++){
|
||||||
t = tblmap[i];
|
t = tblmap[i];
|
||||||
if(memcmp(t->sig, "DSDT", 4) == 0){
|
if(memcmp(t->sig, "DSDT", 4) == 0){
|
||||||
|
amlintmask = (~0ULL) >> (t->rev <= 1)*32;
|
||||||
amlload(t->data, tbldlen(t));
|
amlload(t->data, tbldlen(t));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,8 +69,10 @@ loadacpi(void)
|
||||||
t = realloc(t, sizeof(*t) + l);
|
t = realloc(t, sizeof(*t) + l);
|
||||||
if(readn(fd, t->data, l) != l)
|
if(readn(fd, t->data, l) != l)
|
||||||
return -1;
|
return -1;
|
||||||
if(memcmp("DSDT", t->sig, 4) == 0)
|
if(memcmp("DSDT", t->sig, 4) == 0){
|
||||||
|
amlintmask = (~0ULL) >> (t->rev <= 1)*32;
|
||||||
amlload(t->data, l);
|
amlload(t->data, l);
|
||||||
|
}
|
||||||
else if(memcmp("SSDT", t->sig, 4) == 0)
|
else if(memcmp("SSDT", t->sig, 4) == 0)
|
||||||
amlload(t->data, l);
|
amlload(t->data, l);
|
||||||
else if(memcmp("FACP", t->sig, 4) == 0){
|
else if(memcmp("FACP", t->sig, 4) == 0){
|
||||||
|
|
|
@ -296,7 +296,7 @@ mki(uvlong i)
|
||||||
uvlong *v;
|
uvlong *v;
|
||||||
|
|
||||||
v = mk('i', sizeof(uvlong));
|
v = mk('i', sizeof(uvlong));
|
||||||
*v = i;
|
*v = i & amlintmask;
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2139,6 +2139,9 @@ amlinit(void)
|
||||||
fmtinstall('V', Vfmt);
|
fmtinstall('V', Vfmt);
|
||||||
fmtinstall('N', Nfmt);
|
fmtinstall('N', Nfmt);
|
||||||
|
|
||||||
|
if(!amlintmask)
|
||||||
|
amlintmask = ~0ULL;
|
||||||
|
|
||||||
n = mk('N', sizeof(Name));
|
n = mk('N', sizeof(Name));
|
||||||
n->up = n;
|
n->up = n;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue