Hi again,
Here goes the tiny bit that worked for me.
//AniV: Note this NOT a valid file !!!!!
/* Setup ACPI. Replace DSDT if DSDT.aml is found */
int setupAcpi()
{
int fd, version;
void *new_dsdt;
const char *dsdt_filename;
char dirspec[512];
int len;
boolean_t drop_ssdt=NO;
//DBGDSDT ("Enter setupACPI\n");
//AniV: this will override the DSDT file name. Do not use a full-path-name (e.g. rd(0,0)\Extra\DSDT.aml),it won't work!
if (!getValueForKey("DSDT", &dsdt_filename, &len, &bootInfo->bootConfig))
dsdt_filename="DSDT.aml";
// Check booting partition
sprintf(dirspec,"/%s",dsdt_filename);
fd=open (dirspec,0);
if (fd<0)
{ // Check Extra on booting partition
sprintf(dirspec,"/Extra/%s",dsdt_filename);
fd=open (dirspec,0);
if (fd<0)
{ // Fall back to booter partition
sprintf(dirspec,"bt(0,0)/Extra/%s",dsdt_filename);
fd=open (dirspec,0);
//Aniv: Start ------------------> 18 June 09
//AniV: Have a last look in the ramdisk. Check only at the root, for simplicity!
if (fd < 0)
{
DBGDSDT ("Checking for DSDT replacement in ramdisk\n");
sprintf(dirspec,"rd(0,0)/%s",dsdt_filename);
fd=open (dirspec,0);
}
//Aniv: End <------------------
if (fd < 0)
{
verbose ("No DSDT replacement found. Leaving ACPI data as is\n");
return setupAcpiNoMod();
}
}
}
// continues untouched
//...........
//...........
}
Hope it helps someone out there.
In my opinion, this should be re-written by Zef's staff, etc.
Cheers,
And the lousy snapshot: