Catch up with ACPI-CA 20051021 import

This commit is contained in:
jkim 2005-11-01 22:44:08 +00:00
parent 2e9142f013
commit e72362d4d0
14 changed files with 343 additions and 259 deletions

View File

@ -229,7 +229,7 @@ madt_probe(void)
* the version 1.0 portion of the RSDP. Version 2.0 has
* an additional checksum that we verify first.
*/
if (AcpiTbChecksum(rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0) {
if (AcpiTbGenerateChecksum(rsdp, ACPI_RSDP_XCHECKSUM_LENGTH)) {
if (bootverbose)
printf("MADT: RSDP failed extended checksum\n");
return (ENXIO);

View File

@ -208,6 +208,7 @@ contrib/dev/acpica/nsxfeval.c optional acpi
contrib/dev/acpica/nsxfname.c optional acpi
contrib/dev/acpica/nsxfobj.c optional acpi
contrib/dev/acpica/psargs.c optional acpi
contrib/dev/acpica/psloop.c optional acpi
contrib/dev/acpica/psopcode.c optional acpi
contrib/dev/acpica/psparse.c optional acpi
contrib/dev/acpica/psscope.c optional acpi
@ -219,6 +220,7 @@ contrib/dev/acpica/rsaddr.c optional acpi
contrib/dev/acpica/rscalc.c optional acpi
contrib/dev/acpica/rscreate.c optional acpi
contrib/dev/acpica/rsdump.c optional acpi
contrib/dev/acpica/rsinfo.c optional acpi
contrib/dev/acpica/rsio.c optional acpi
contrib/dev/acpica/rsirq.c optional acpi
contrib/dev/acpica/rslist.c optional acpi
@ -235,6 +237,8 @@ contrib/dev/acpica/tbutils.c optional acpi
contrib/dev/acpica/tbxface.c optional acpi
contrib/dev/acpica/tbxfroot.c optional acpi
contrib/dev/acpica/utalloc.c optional acpi
contrib/dev/acpica/utcache.c optional acpi \
compile-with "${NORMAL_C} -DACPI_USE_LOCAL_CACHE"
contrib/dev/acpica/utclib.c optional acpi
contrib/dev/acpica/utcopy.c optional acpi
contrib/dev/acpica/utdebug.c optional acpi
@ -244,7 +248,9 @@ contrib/dev/acpica/utglobal.c optional acpi
contrib/dev/acpica/utinit.c optional acpi
contrib/dev/acpica/utmath.c optional acpi
contrib/dev/acpica/utmisc.c optional acpi
contrib/dev/acpica/utmutex.c optional acpi
contrib/dev/acpica/utobject.c optional acpi
contrib/dev/acpica/utstate.c optional acpi
contrib/dev/acpica/utxface.c optional acpi
contrib/dev/ath/freebsd/ah_osdep.c optional ath_hal \
compile-with "${NORMAL_C} -I$S/contrib/dev/ath/freebsd"

View File

@ -351,18 +351,19 @@ AcpiOsDeleteLock (ACPI_HANDLE Handle)
* (and thus can't block) but since we have ithreads, we don't worry
* about potentially blocking.
*/
void
AcpiOsAcquireLock (ACPI_HANDLE Handle, UINT32 Flags)
ACPI_NATIVE_UINT
AcpiOsAcquireLock (ACPI_HANDLE Handle)
{
struct mtx *m = (struct mtx *)Handle;
if (Handle == NULL)
return;
return (0);
mtx_lock(m);
return (0);
}
void
AcpiOsReleaseLock (ACPI_HANDLE Handle, UINT32 Flags)
AcpiOsReleaseLock (ACPI_HANDLE Handle, ACPI_NATIVE_UINT Flags)
{
struct mtx *m = (struct mtx *)Handle;

View File

@ -104,7 +104,8 @@ AcpiOsTableOverride (
sprintf(fake_ssdt.AslCompilerId, "%.4s", "FBSD");
fake_ssdt.AslCompilerRevision = htole32(1);
fake_ssdt.no_op = htole32(0x005c0310); /* Scope(\) */
fake_ssdt.Checksum -= AcpiTbChecksum(&fake_ssdt, sizeof(fake_ssdt));
fake_ssdt.Checksum -= AcpiTbGenerateChecksum(&fake_ssdt,
sizeof(fake_ssdt));
}
*NewTable = (void *)&fake_ssdt;
}

View File

@ -1957,7 +1957,7 @@ acpi_FindIndexedResource(ACPI_BUFFER *buf, int index, ACPI_RESOURCE **resp)
return (AE_BAD_PARAMETER);
/* Check for terminator */
if (rp->Id == ACPI_RSTYPE_END_TAG || rp->Length == 0)
if (rp->Type == ACPI_RESOURCE_TYPE_END_TAG || rp->Length == 0)
return (AE_NOT_FOUND);
rp = ACPI_NEXT_RESOURCE(rp);
}
@ -1989,7 +1989,7 @@ acpi_AppendBufferResource(ACPI_BUFFER *buf, ACPI_RESOURCE *res)
if ((buf->Pointer = AcpiOsAllocate(buf->Length)) == NULL)
return (AE_NO_MEMORY);
rp = (ACPI_RESOURCE *)buf->Pointer;
rp->Id = ACPI_RSTYPE_END_TAG;
rp->Type = ACPI_RESOURCE_TYPE_END_TAG;
rp->Length = 0;
}
if (res == NULL)
@ -2005,7 +2005,7 @@ acpi_AppendBufferResource(ACPI_BUFFER *buf, ACPI_RESOURCE *res)
/* Range check, don't go outside the buffer */
if (rp >= (ACPI_RESOURCE *)((u_int8_t *)buf->Pointer + buf->Length))
return (AE_BAD_PARAMETER);
if (rp->Id == ACPI_RSTYPE_END_TAG || rp->Length == 0)
if (rp->Type == ACPI_RESOURCE_TYPE_END_TAG || rp->Length == 0)
break;
rp = ACPI_NEXT_RESOURCE(rp);
}
@ -2022,8 +2022,8 @@ acpi_AppendBufferResource(ACPI_BUFFER *buf, ACPI_RESOURCE *res)
* for some reason we are stuffing a *really* huge resource.
*/
while ((((u_int8_t *)rp - (u_int8_t *)buf->Pointer) +
res->Length + ACPI_RESOURCE_LENGTH_NO_DATA +
ACPI_RESOURCE_LENGTH) >= buf->Length) {
res->Length + ACPI_RS_SIZE_NO_DATA +
ACPI_RS_SIZE_MIN) >= buf->Length) {
if ((newp = AcpiOsAllocate(buf->Length * 2)) == NULL)
return (AE_NO_MEMORY);
bcopy(buf->Pointer, newp, buf->Length);
@ -2035,11 +2035,11 @@ acpi_AppendBufferResource(ACPI_BUFFER *buf, ACPI_RESOURCE *res)
}
/* Insert the new resource. */
bcopy(res, rp, res->Length + ACPI_RESOURCE_LENGTH_NO_DATA);
bcopy(res, rp, res->Length + ACPI_RS_SIZE_NO_DATA);
/* And add the terminator. */
rp = ACPI_NEXT_RESOURCE(rp);
rp->Id = ACPI_RSTYPE_END_TAG;
rp->Type = ACPI_RESOURCE_TYPE_END_TAG;
rp->Length = 0;
return (AE_OK);

View File

@ -168,8 +168,8 @@ acpi_count_irq_resources(ACPI_RESOURCE *res, void *context)
struct link_count_request *req;
req = (struct link_count_request *)context;
switch (res->Id) {
case ACPI_RSTYPE_START_DPF:
switch (res->Type) {
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
switch (req->in_dpf) {
case DPF_OUTSIDE:
/* We've started the first DPF. */
@ -181,14 +181,14 @@ acpi_count_irq_resources(ACPI_RESOURCE *res, void *context)
break;
}
break;
case ACPI_RSTYPE_END_DPF:
case ACPI_RESOURCE_TYPE_END_DEPENDENT:
/* We are finished with DPF parsing. */
KASSERT(req->in_dpf != DPF_OUTSIDE,
("%s: end dpf when not parsing a dpf", __func__));
req->in_dpf = DPF_OUTSIDE;
break;
case ACPI_RSTYPE_IRQ:
case ACPI_RSTYPE_EXT_IRQ:
case ACPI_RESOURCE_TYPE_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
/*
* Don't count resources if we are in a DPF set that we are
* ignoring.
@ -207,8 +207,8 @@ link_add_crs(ACPI_RESOURCE *res, void *context)
ACPI_SERIAL_ASSERT(pci_link);
req = (struct link_res_request *)context;
switch (res->Id) {
case ACPI_RSTYPE_START_DPF:
switch (res->Type) {
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
switch (req->in_dpf) {
case DPF_OUTSIDE:
/* We've started the first DPF. */
@ -222,14 +222,14 @@ link_add_crs(ACPI_RESOURCE *res, void *context)
break;
}
break;
case ACPI_RSTYPE_END_DPF:
case ACPI_RESOURCE_TYPE_END_DEPENDENT:
/* We are finished with DPF parsing. */
KASSERT(req->in_dpf != DPF_OUTSIDE,
("%s: end dpf when not parsing a dpf", __func__));
req->in_dpf = DPF_OUTSIDE;
break;
case ACPI_RSTYPE_IRQ:
case ACPI_RSTYPE_EXT_IRQ:
case ACPI_RESOURCE_TYPE_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
KASSERT(req->link_index < req->sc->pl_num_links,
("%s: array boundary violation", __func__));
link = &req->sc->pl_links[req->link_index];
@ -242,10 +242,10 @@ link_add_crs(ACPI_RESOURCE *res, void *context)
* systems return multiple IRQs (which is nonsense for _CRS)
* when the link hasn't been programmed.
*/
if (res->Id == ACPI_RSTYPE_IRQ) {
if (res->Data.Irq.NumberOfInterrupts == 1)
if (res->Type == ACPI_RESOURCE_TYPE_IRQ) {
if (res->Data.Irq.InterruptCount == 1)
link->l_irq = res->Data.Irq.Interrupts[0];
} else if (res->Data.ExtendedIrq.NumberOfInterrupts == 1)
} else if (res->Data.ExtendedIrq.InterruptCount == 1)
link->l_irq = res->Data.ExtendedIrq.Interrupts[0];
/*
@ -268,13 +268,14 @@ link_add_prs(ACPI_RESOURCE *res, void *context)
{
struct link_res_request *req;
struct link *link;
UINT32 *irqs;
int i;
UINT8 *irqs = NULL;
UINT32 *ext_irqs = NULL;
int i, is_ext_irq = 1;
ACPI_SERIAL_ASSERT(pci_link);
req = (struct link_res_request *)context;
switch (res->Id) {
case ACPI_RSTYPE_START_DPF:
switch (res->Type) {
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
switch (req->in_dpf) {
case DPF_OUTSIDE:
/* We've started the first DPF. */
@ -286,14 +287,16 @@ link_add_prs(ACPI_RESOURCE *res, void *context)
break;
}
break;
case ACPI_RSTYPE_END_DPF:
case ACPI_RESOURCE_TYPE_END_DEPENDENT:
/* We are finished with DPF parsing. */
KASSERT(req->in_dpf != DPF_OUTSIDE,
("%s: end dpf when not parsing a dpf", __func__));
req->in_dpf = DPF_OUTSIDE;
break;
case ACPI_RSTYPE_IRQ:
case ACPI_RSTYPE_EXT_IRQ:
case ACPI_RESOURCE_TYPE_IRQ:
is_ext_irq = 0;
/* fall through */
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
/*
* Don't parse resources if we are in a DPF set that we are
* ignoring.
@ -317,13 +320,13 @@ link_add_prs(ACPI_RESOURCE *res, void *context)
* _SRS.
*/
bcopy(res, &link->l_prs_template, sizeof(ACPI_RESOURCE));
if (res->Id == ACPI_RSTYPE_IRQ) {
link->l_num_irqs = res->Data.Irq.NumberOfInterrupts;
irqs = res->Data.Irq.Interrupts;
} else {
if (is_ext_irq) {
link->l_num_irqs =
res->Data.ExtendedIrq.NumberOfInterrupts;
irqs = res->Data.ExtendedIrq.Interrupts;
res->Data.ExtendedIrq.InterruptCount;
ext_irqs = res->Data.ExtendedIrq.Interrupts;
} else {
link->l_num_irqs = res->Data.Irq.InterruptCount;
irqs = res->Data.Irq.Interrupts;
}
if (link->l_num_irqs == 0)
break;
@ -337,10 +340,16 @@ link_add_prs(ACPI_RESOURCE *res, void *context)
link->l_irqs = malloc(sizeof(int) * link->l_num_irqs,
M_PCI_LINK, M_WAITOK | M_ZERO);
for (i = 0; i < link->l_num_irqs; i++) {
if (is_ext_irq) {
link->l_irqs[i] = ext_irqs[i];
if (ext_irqs[i] >= NUM_ISA_INTERRUPTS)
link->l_isa_irq = FALSE;
} else {
link->l_irqs[i] = irqs[i];
if (irqs[i] >= NUM_ISA_INTERRUPTS)
link->l_isa_irq = FALSE;
}
}
break;
default:
if (req->in_dpf == DPF_IGNORE)
@ -669,8 +678,8 @@ acpi_pci_link_srs_from_crs(struct acpi_pci_link_softc *sc, ACPI_BUFFER *srsbuf)
resource = (ACPI_RESOURCE *)crsbuf.Pointer;
end = (ACPI_RESOURCE *)((char *)crsbuf.Pointer + crsbuf.Length);
for (;;) {
switch (resource->Id) {
case ACPI_RSTYPE_START_DPF:
switch (resource->Type) {
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
switch (in_dpf) {
case DPF_OUTSIDE:
/* We've started the first DPF. */
@ -685,19 +694,19 @@ acpi_pci_link_srs_from_crs(struct acpi_pci_link_softc *sc, ACPI_BUFFER *srsbuf)
}
resptr = NULL;
break;
case ACPI_RSTYPE_END_DPF:
case ACPI_RESOURCE_TYPE_END_DEPENDENT:
/* We are finished with DPF parsing. */
KASSERT(in_dpf != DPF_OUTSIDE,
("%s: end dpf when not parsing a dpf", __func__));
in_dpf = DPF_OUTSIDE;
resptr = NULL;
break;
case ACPI_RSTYPE_IRQ:
case ACPI_RESOURCE_TYPE_IRQ:
MPASS(i < sc->pl_num_links);
MPASS(link->l_prs_template.Id == ACPI_RSTYPE_IRQ);
MPASS(link->l_prs_template.Type == ACPI_RESOURCE_TYPE_IRQ);
newres = link->l_prs_template;
resptr = &newres;
resptr->Data.Irq.NumberOfInterrupts = 1;
resptr->Data.Irq.InterruptCount = 1;
if (PCI_INTERRUPT_VALID(link->l_irq)) {
KASSERT(link->l_irq < NUM_ISA_INTERRUPTS,
("%s: can't put non-ISA IRQ %d in legacy IRQ resource type",
@ -708,12 +717,12 @@ acpi_pci_link_srs_from_crs(struct acpi_pci_link_softc *sc, ACPI_BUFFER *srsbuf)
link++;
i++;
break;
case ACPI_RSTYPE_EXT_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
MPASS(i < sc->pl_num_links);
MPASS(link->l_prs_template.Id == ACPI_RSTYPE_EXT_IRQ);
MPASS(link->l_prs_template.Type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ);
newres = link->l_prs_template;
resptr = &newres;
resptr->Data.ExtendedIrq.NumberOfInterrupts = 1;
resptr->Data.ExtendedIrq.InterruptCount = 1;
if (PCI_INTERRUPT_VALID(link->l_irq))
resptr->Data.ExtendedIrq.Interrupts[0] =
link->l_irq;
@ -737,7 +746,7 @@ acpi_pci_link_srs_from_crs(struct acpi_pci_link_softc *sc, ACPI_BUFFER *srsbuf)
return (status);
}
}
if (resource->Id == ACPI_RSTYPE_END_TAG)
if (resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
break;
resource = ACPI_NEXT_RESOURCE(resource);
if (resource >= end)
@ -764,10 +773,10 @@ acpi_pci_link_srs_from_links(struct acpi_pci_link_softc *sc,
/* Add a new IRQ resource from each link. */
link = &sc->pl_links[i];
newres = link->l_prs_template;
if (newres.Id == ACPI_RSTYPE_IRQ) {
if (newres.Type == ACPI_RESOURCE_TYPE_IRQ) {
/* Build an IRQ resource. */
newres.Data.Irq.NumberOfInterrupts = 1;
newres.Data.Irq.InterruptCount = 1;
if (PCI_INTERRUPT_VALID(link->l_irq)) {
KASSERT(link->l_irq < NUM_ISA_INTERRUPTS,
("%s: can't put non-ISA IRQ %d in legacy IRQ resource type",
@ -778,7 +787,7 @@ acpi_pci_link_srs_from_links(struct acpi_pci_link_softc *sc,
} else {
/* Build an ExtIRQ resuorce. */
newres.Data.ExtendedIrq.NumberOfInterrupts = 1;
newres.Data.ExtendedIrq.InterruptCount = 1;
if (PCI_INTERRUPT_VALID(link->l_irq))
newres.Data.ExtendedIrq.Interrupts[0] =
link->l_irq;
@ -835,11 +844,11 @@ acpi_pci_link_route_irqs(device_t dev)
resource = (ACPI_RESOURCE *)srsbuf.Pointer;
end = (ACPI_RESOURCE *)((char *)srsbuf.Pointer + srsbuf.Length);
for (;;) {
if (resource->Id == ACPI_RSTYPE_END_TAG)
if (resource->Type == ACPI_RESOURCE_TYPE_END_TAG)
break;
switch (resource->Id) {
case ACPI_RSTYPE_IRQ:
case ACPI_RSTYPE_EXT_IRQ:
switch (resource->Type) {
case ACPI_RESOURCE_TYPE_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
MPASS(i < sc->pl_num_links);
/*

View File

@ -60,14 +60,14 @@ acpi_lookup_irq_handler(ACPI_RESOURCE *res, void *context)
struct lookup_irq_request *req;
u_int irqnum, irq;
switch (res->Id) {
case ACPI_RSTYPE_IRQ:
case ACPI_RSTYPE_EXT_IRQ:
if (res->Id == ACPI_RSTYPE_IRQ) {
irqnum = res->Data.Irq.NumberOfInterrupts;
switch (res->Type) {
case ACPI_RESOURCE_TYPE_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
if (res->Type == ACPI_RESOURCE_TYPE_IRQ) {
irqnum = res->Data.Irq.InterruptCount;
irq = res->Data.Irq.Interrupts[0];
} else {
irqnum = res->Data.ExtendedIrq.NumberOfInterrupts;
irqnum = res->Data.ExtendedIrq.InterruptCount;
irq = res->Data.ExtendedIrq.Interrupts[0];
}
if (irqnum != 1)
@ -111,23 +111,23 @@ acpi_config_intr(device_t dev, ACPI_RESOURCE *res)
u_int irq;
int pol, trig;
switch (res->Id) {
case ACPI_RSTYPE_IRQ:
KASSERT(res->Data.Irq.NumberOfInterrupts == 1,
switch (res->Type) {
case ACPI_RESOURCE_TYPE_IRQ:
KASSERT(res->Data.Irq.InterruptCount == 1,
("%s: multiple interrupts", __func__));
irq = res->Data.Irq.Interrupts[0];
trig = res->Data.Irq.EdgeLevel;
pol = res->Data.Irq.ActiveHighLow;
trig = res->Data.Irq.Triggering;
pol = res->Data.Irq.Polarity;
break;
case ACPI_RSTYPE_EXT_IRQ:
KASSERT(res->Data.ExtendedIrq.NumberOfInterrupts == 1,
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
KASSERT(res->Data.ExtendedIrq.InterruptCount == 1,
("%s: multiple interrupts", __func__));
irq = res->Data.ExtendedIrq.Interrupts[0];
trig = res->Data.ExtendedIrq.EdgeLevel;
pol = res->Data.ExtendedIrq.ActiveHighLow;
trig = res->Data.ExtendedIrq.Triggering;
pol = res->Data.ExtendedIrq.Polarity;
break;
default:
panic("%s: bad resource type %u", __func__, res->Id);
panic("%s: bad resource type %u", __func__, res->Type);
}
BUS_CONFIG_INTR(dev, irq, (trig == ACPI_EDGE_SENSITIVE) ?
INTR_TRIGGER_EDGE : INTR_TRIGGER_LEVEL, (pol == ACPI_ACTIVE_HIGH) ?
@ -186,129 +186,129 @@ acpi_parse_resources(device_t dev, ACPI_HANDLE handle,
curr += res->Length;
/* Handle the individual resource types */
switch(res->Id) {
case ACPI_RSTYPE_END_TAG:
switch(res->Type) {
case ACPI_RESOURCE_TYPE_END_TAG:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "EndTag\n"));
curr = last;
break;
case ACPI_RSTYPE_FIXED_IO:
if (res->Data.FixedIo.RangeLength <= 0)
case ACPI_RESOURCE_TYPE_FIXED_IO:
if (res->Data.FixedIo.AddressLength <= 0)
break;
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "FixedIo 0x%x/%d\n",
res->Data.FixedIo.BaseAddress,
res->Data.FixedIo.RangeLength));
res->Data.FixedIo.Address,
res->Data.FixedIo.AddressLength));
set->set_ioport(dev, context,
res->Data.FixedIo.BaseAddress,
res->Data.FixedIo.RangeLength);
res->Data.FixedIo.Address,
res->Data.FixedIo.AddressLength);
break;
case ACPI_RSTYPE_IO:
if (res->Data.Io.RangeLength <= 0)
case ACPI_RESOURCE_TYPE_IO:
if (res->Data.Io.AddressLength <= 0)
break;
if (res->Data.Io.MinBaseAddress == res->Data.Io.MaxBaseAddress) {
if (res->Data.Io.Minimum == res->Data.Io.Maximum) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Io 0x%x/%d\n",
res->Data.Io.MinBaseAddress,
res->Data.Io.RangeLength));
res->Data.Io.Minimum,
res->Data.Io.AddressLength));
set->set_ioport(dev, context,
res->Data.Io.MinBaseAddress,
res->Data.Io.RangeLength);
res->Data.Io.Minimum,
res->Data.Io.AddressLength);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Io 0x%x-0x%x/%d\n",
res->Data.Io.MinBaseAddress,
res->Data.Io.MaxBaseAddress,
res->Data.Io.RangeLength));
res->Data.Io.Minimum,
res->Data.Io.Maximum,
res->Data.Io.AddressLength));
set->set_iorange(dev, context,
res->Data.Io.MinBaseAddress,
res->Data.Io.MaxBaseAddress,
res->Data.Io.RangeLength,
res->Data.Io.Minimum,
res->Data.Io.Maximum,
res->Data.Io.AddressLength,
res->Data.Io.Alignment);
}
break;
case ACPI_RSTYPE_FIXED_MEM32:
if (res->Data.FixedMemory32.RangeLength <= 0)
case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
if (res->Data.FixedMemory32.AddressLength <= 0)
break;
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "FixedMemory32 0x%x/%d\n",
res->Data.FixedMemory32.RangeBaseAddress,
res->Data.FixedMemory32.RangeLength));
res->Data.FixedMemory32.Address,
res->Data.FixedMemory32.AddressLength));
set->set_memory(dev, context,
res->Data.FixedMemory32.RangeBaseAddress,
res->Data.FixedMemory32.RangeLength);
res->Data.FixedMemory32.Address,
res->Data.FixedMemory32.AddressLength);
break;
case ACPI_RSTYPE_MEM32:
if (res->Data.Memory32.RangeLength <= 0)
case ACPI_RESOURCE_TYPE_MEMORY32:
if (res->Data.Memory32.AddressLength <= 0)
break;
if (res->Data.Memory32.MinBaseAddress ==
res->Data.Memory32.MaxBaseAddress) {
if (res->Data.Memory32.Minimum ==
res->Data.Memory32.Maximum) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory32 0x%x/%d\n",
res->Data.Memory32.MinBaseAddress,
res->Data.Memory32.RangeLength));
res->Data.Memory32.Minimum,
res->Data.Memory32.AddressLength));
set->set_memory(dev, context,
res->Data.Memory32.MinBaseAddress,
res->Data.Memory32.RangeLength);
res->Data.Memory32.Minimum,
res->Data.Memory32.AddressLength);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory32 0x%x-0x%x/%d\n",
res->Data.Memory32.MinBaseAddress,
res->Data.Memory32.MaxBaseAddress,
res->Data.Memory32.RangeLength));
res->Data.Memory32.Minimum,
res->Data.Memory32.Maximum,
res->Data.Memory32.AddressLength));
set->set_memoryrange(dev, context,
res->Data.Memory32.MinBaseAddress,
res->Data.Memory32.MaxBaseAddress,
res->Data.Memory32.RangeLength,
res->Data.Memory32.Minimum,
res->Data.Memory32.Maximum,
res->Data.Memory32.AddressLength,
res->Data.Memory32.Alignment);
}
break;
case ACPI_RSTYPE_MEM24:
if (res->Data.Memory24.RangeLength <= 0)
case ACPI_RESOURCE_TYPE_MEMORY24:
if (res->Data.Memory24.AddressLength <= 0)
break;
if (res->Data.Memory24.MinBaseAddress ==
res->Data.Memory24.MaxBaseAddress) {
if (res->Data.Memory24.Minimum ==
res->Data.Memory24.Maximum) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory24 0x%x/%d\n",
res->Data.Memory24.MinBaseAddress,
res->Data.Memory24.RangeLength));
set->set_memory(dev, context, res->Data.Memory24.MinBaseAddress,
res->Data.Memory24.RangeLength);
res->Data.Memory24.Minimum,
res->Data.Memory24.AddressLength));
set->set_memory(dev, context, res->Data.Memory24.Minimum,
res->Data.Memory24.AddressLength);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory24 0x%x-0x%x/%d\n",
res->Data.Memory24.MinBaseAddress,
res->Data.Memory24.MaxBaseAddress,
res->Data.Memory24.RangeLength));
res->Data.Memory24.Minimum,
res->Data.Memory24.Maximum,
res->Data.Memory24.AddressLength));
set->set_memoryrange(dev, context,
res->Data.Memory24.MinBaseAddress,
res->Data.Memory24.MaxBaseAddress,
res->Data.Memory24.RangeLength,
res->Data.Memory24.Minimum,
res->Data.Memory24.Maximum,
res->Data.Memory24.AddressLength,
res->Data.Memory24.Alignment);
}
break;
case ACPI_RSTYPE_IRQ:
case ACPI_RESOURCE_TYPE_IRQ:
/*
* from 1.0b 6.4.2
* "This structure is repeated for each separate interrupt
* required"
*/
set->set_irq(dev, context, res->Data.Irq.Interrupts,
res->Data.Irq.NumberOfInterrupts, res->Data.Irq.EdgeLevel,
res->Data.Irq.ActiveHighLow);
res->Data.Irq.InterruptCount, res->Data.Irq.Triggering,
res->Data.Irq.Polarity);
break;
case ACPI_RSTYPE_DMA:
case ACPI_RESOURCE_TYPE_DMA:
/*
* from 1.0b 6.4.3
* "This structure is repeated for each separate dma channel
* required"
*/
set->set_drq(dev, context, res->Data.Dma.Channels,
res->Data.Dma.NumberOfChannels);
res->Data.Dma.ChannelCount);
break;
case ACPI_RSTYPE_START_DPF:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "start dependant functions\n"));
set->set_start_dependant(dev, context,
case ACPI_RESOURCE_TYPE_START_DEPENDENT:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "start dependent functions\n"));
set->set_start_dependent(dev, context,
res->Data.StartDpf.CompatibilityPriority);
break;
case ACPI_RSTYPE_END_DPF:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "end dependant functions\n"));
set->set_end_dependant(dev, context);
case ACPI_RESOURCE_TYPE_END_DEPENDENT:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "end dependent functions\n"));
set->set_end_dependent(dev, context);
break;
case ACPI_RSTYPE_ADDRESS32:
case ACPI_RESOURCE_TYPE_ADDRESS32:
if (res->Data.Address32.AddressLength <= 0)
break;
if (res->Data.Address32.ProducerConsumer != ACPI_CONSUMER) {
@ -331,47 +331,47 @@ acpi_parse_resources(device_t dev, ACPI_HANDLE handle,
if (res->Data.Address32.ResourceType == ACPI_MEMORY_RANGE) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address32/Memory 0x%x/%d\n",
res->Data.Address32.MinAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.AddressLength));
set->set_memory(dev, context,
res->Data.Address32.MinAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.AddressLength);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address32/IO 0x%x/%d\n",
res->Data.Address32.MinAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.AddressLength));
set->set_ioport(dev, context,
res->Data.Address32.MinAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.AddressLength);
}
} else {
if (res->Data.Address32.ResourceType == ACPI_MEMORY_RANGE) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address32/Memory 0x%x-0x%x/%d\n",
res->Data.Address32.MinAddressRange,
res->Data.Address32.MaxAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.Maximum,
res->Data.Address32.AddressLength));
set->set_memoryrange(dev, context,
res->Data.Address32.MinAddressRange,
res->Data.Address32.MaxAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.Maximum,
res->Data.Address32.AddressLength,
res->Data.Address32.Granularity);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address32/IO 0x%x-0x%x/%d\n",
res->Data.Address32.MinAddressRange,
res->Data.Address32.MaxAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.Maximum,
res->Data.Address32.AddressLength));
set->set_iorange(dev, context,
res->Data.Address32.MinAddressRange,
res->Data.Address32.MaxAddressRange,
res->Data.Address32.Minimum,
res->Data.Address32.Maximum,
res->Data.Address32.AddressLength,
res->Data.Address32.Granularity);
}
}
break;
case ACPI_RSTYPE_ADDRESS16:
case ACPI_RESOURCE_TYPE_ADDRESS16:
if (res->Data.Address16.AddressLength <= 0)
break;
if (res->Data.Address16.ProducerConsumer != ACPI_CONSUMER) {
@ -394,62 +394,62 @@ acpi_parse_resources(device_t dev, ACPI_HANDLE handle,
if (res->Data.Address16.ResourceType == ACPI_MEMORY_RANGE) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address16/Memory 0x%x/%d\n",
res->Data.Address16.MinAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.AddressLength));
set->set_memory(dev, context,
res->Data.Address16.MinAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.AddressLength);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address16/IO 0x%x/%d\n",
res->Data.Address16.MinAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.AddressLength));
set->set_ioport(dev, context,
res->Data.Address16.MinAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.AddressLength);
}
} else {
if (res->Data.Address16.ResourceType == ACPI_MEMORY_RANGE) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address16/Memory 0x%x-0x%x/%d\n",
res->Data.Address16.MinAddressRange,
res->Data.Address16.MaxAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.Maximum,
res->Data.Address16.AddressLength));
set->set_memoryrange(dev, context,
res->Data.Address16.MinAddressRange,
res->Data.Address16.MaxAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.Maximum,
res->Data.Address16.AddressLength,
res->Data.Address16.Granularity);
} else {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"Address16/IO 0x%x-0x%x/%d\n",
res->Data.Address16.MinAddressRange,
res->Data.Address16.MaxAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.Maximum,
res->Data.Address16.AddressLength));
set->set_iorange(dev, context,
res->Data.Address16.MinAddressRange,
res->Data.Address16.MaxAddressRange,
res->Data.Address16.Minimum,
res->Data.Address16.Maximum,
res->Data.Address16.AddressLength,
res->Data.Address16.Granularity);
}
}
break;
case ACPI_RSTYPE_ADDRESS64:
case ACPI_RESOURCE_TYPE_ADDRESS64:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"unimplemented Address64 resource\n"));
break;
case ACPI_RSTYPE_EXT_IRQ:
case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
if (res->Data.ExtendedIrq.ProducerConsumer != ACPI_CONSUMER) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"ignored ExtIRQ producer\n"));
break;
}
set->set_irq(dev, context,res->Data.ExtendedIrq.Interrupts,
res->Data.ExtendedIrq.NumberOfInterrupts,
res->Data.ExtendedIrq.EdgeLevel,
res->Data.ExtendedIrq.ActiveHighLow);
set->set_ext_irq(dev, context, res->Data.ExtendedIrq.Interrupts,
res->Data.ExtendedIrq.InterruptCount,
res->Data.ExtendedIrq.Triggering,
res->Data.ExtendedIrq.Polarity);
break;
case ACPI_RSTYPE_VENDOR:
case ACPI_RESOURCE_TYPE_VENDOR:
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
"unimplemented VendorSpecific resource\n"));
break;
@ -479,13 +479,15 @@ static void acpi_res_set_memory(device_t dev, void *context,
static void acpi_res_set_memoryrange(device_t dev, void *context,
u_int32_t low, u_int32_t high,
u_int32_t length, u_int32_t align);
static void acpi_res_set_irq(device_t dev, void *context, u_int32_t *irq,
static void acpi_res_set_irq(device_t dev, void *context, u_int8_t *irq,
int count, int trig, int pol);
static void acpi_res_set_drq(device_t dev, void *context, u_int32_t *drq,
static void acpi_res_set_ext_irq(device_t dev, void *context,
u_int32_t *irq, int count, int trig, int pol);
static void acpi_res_set_drq(device_t dev, void *context, u_int8_t *drq,
int count);
static void acpi_res_set_start_dependant(device_t dev, void *context,
static void acpi_res_set_start_dependent(device_t dev, void *context,
int preference);
static void acpi_res_set_end_dependant(device_t dev, void *context);
static void acpi_res_set_end_dependent(device_t dev, void *context);
struct acpi_parse_resource_set acpi_res_parse_set = {
acpi_res_set_init,
@ -495,9 +497,10 @@ struct acpi_parse_resource_set acpi_res_parse_set = {
acpi_res_set_memory,
acpi_res_set_memoryrange,
acpi_res_set_irq,
acpi_res_set_ext_irq,
acpi_res_set_drq,
acpi_res_set_start_dependant,
acpi_res_set_end_dependant
acpi_res_set_start_dependent,
acpi_res_set_end_dependent
};
struct acpi_res_context {
@ -576,7 +579,7 @@ acpi_res_set_memoryrange(device_t dev, void *context, u_int32_t low,
}
static void
acpi_res_set_irq(device_t dev, void *context, u_int32_t *irq, int count,
acpi_res_set_irq(device_t dev, void *context, u_int8_t *irq, int count,
int trig, int pol)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@ -592,7 +595,23 @@ acpi_res_set_irq(device_t dev, void *context, u_int32_t *irq, int count,
}
static void
acpi_res_set_drq(device_t dev, void *context, u_int32_t *drq, int count)
acpi_res_set_ext_irq(device_t dev, void *context, u_int32_t *irq, int count,
int trig, int pol)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
if (cp == NULL || irq == NULL)
return;
/* This implements no resource relocation. */
if (count != 1)
return;
bus_set_resource(dev, SYS_RES_IRQ, cp->ar_nirq++, *irq, 1);
}
static void
acpi_res_set_drq(device_t dev, void *context, u_int8_t *drq, int count)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@ -607,23 +626,23 @@ acpi_res_set_drq(device_t dev, void *context, u_int32_t *drq, int count)
}
static void
acpi_res_set_start_dependant(device_t dev, void *context, int preference)
acpi_res_set_start_dependent(device_t dev, void *context, int preference)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
if (cp == NULL)
return;
device_printf(dev, "dependant functions not supported\n");
device_printf(dev, "dependent functions not supported\n");
}
static void
acpi_res_set_end_dependant(device_t dev, void *context)
acpi_res_set_end_dependent(device_t dev, void *context)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
if (cp == NULL)
return;
device_printf(dev, "dependant functions not supported\n");
device_printf(dev, "dependent functions not supported\n");
}
/*

View File

@ -323,13 +323,15 @@ struct acpi_parse_resource_set {
uint32_t length);
void (*set_memoryrange)(device_t dev, void *context, uint32_t low,
uint32_t high, uint32_t length, uint32_t align);
void (*set_irq)(device_t dev, void *context, u_int32_t *irq,
void (*set_irq)(device_t dev, void *context, u_int8_t *irq,
int count, int trig, int pol);
void (*set_drq)(device_t dev, void *context, u_int32_t *drq,
void (*set_ext_irq)(device_t dev, void *context, u_int32_t *irq,
int count, int trig, int pol);
void (*set_drq)(device_t dev, void *context, u_int8_t *drq,
int count);
void (*set_start_dependant)(device_t dev, void *context,
void (*set_start_dependent)(device_t dev, void *context,
int preference);
void (*set_end_dependant)(device_t dev, void *context);
void (*set_end_dependent)(device_t dev, void *context);
};
extern struct acpi_parse_resource_set acpi_res_parse_set;

View File

@ -229,7 +229,7 @@ madt_probe(void)
* the version 1.0 portion of the RSDP. Version 2.0 has
* an additional checksum that we verify first.
*/
if (AcpiTbChecksum(rsdp, ACPI_RSDP_XCHECKSUM_LENGTH) != 0) {
if (AcpiTbGenerateChecksum(rsdp, ACPI_RSDP_XCHECKSUM_LENGTH)) {
if (bootverbose)
printf("MADT: RSDP failed extended checksum\n");
return (ENXIO);

View File

@ -24,15 +24,15 @@ SRCS+= hwacpi.c hwgpe.c hwregs.c hwsleep.c hwtimer.c
SRCS+= nsaccess.c nsalloc.c nsdump.c nseval.c nsinit.c
SRCS+= nsload.c nsnames.c nsobject.c nsparse.c nssearch.c
SRCS+= nsutils.c nswalk.c nsxfeval.c nsxfname.c nsxfobj.c
SRCS+= psargs.c psopcode.c psparse.c psscope.c
SRCS+= psargs.c psloop.c psopcode.c psparse.c psscope.c
SRCS+= pstree.c psutils.c pswalk.c psxface.c
SRCS+= rsaddr.c rscalc.c rscreate.c rsdump.c rsio.c
SRCS+= rsaddr.c rscalc.c rscreate.c rsdump.c rsinfo.c rsio.c
SRCS+= rsirq.c rslist.c rsmemory.c rsmisc.c rsutils.c
SRCS+= rsxface.c tbconvrt.c tbget.c tbgetall.c tbinstal.c
SRCS+= tbrsdt.c tbutils.c tbxface.c tbxfroot.c utalloc.c
SRCS+= utclib.c utcopy.c utdebug.c utdelete.c uteval.c
SRCS+= utglobal.c utinit.c utmath.c utmisc.c utobject.c
SRCS+= utxface.c
SRCS+= utcache.c utclib.c utcopy.c utdebug.c utdelete.c
SRCS+= uteval.c utglobal.c utinit.c utmath.c utmisc.c
SRCS+= utmutex.c utobject.c utstate.c utxface.c
# OSPM layer and core hardware drivers
SRCS+= acpi.c acpi_button.c acpi_isab.c
@ -64,6 +64,7 @@ DBSRC+= dbinput.c dbstats.c dbutils.c dbxface.c
DBSRC+= dmbuffer.c dmnames.c dmopcode.c dmobject.c dmresrc.c dmresrcl.c
DBSRC+= dmresrcs.c dmutils.c dmwalk.c
CFLAGS+=-DACPI_USE_LOCAL_CACHE
.if !defined(KERNBUILDDIR)
.if ACPI_MAX_THREADS
CFLAGS+=-DACPI_MAX_THREADS=${ACPI_MAX_THREADS}

View File

@ -2,7 +2,7 @@
# $FreeBSD$
ACPICA_DIR= ${.CURDIR}/../../../sys/contrib/dev/acpica
CFLAGS+= -I${.CURDIR}/../../../sys -I${ACPICA_DIR} -I${ACPICA_DIR}/compiler
CFLAGS+= -I${.CURDIR}/../../../sys
.if exists(${.CURDIR}/../../Makefile.inc)
.include "${.CURDIR}/../../Makefile.inc"

View File

@ -1,38 +1,61 @@
# $FreeBSD$
PROG= acpidb
SRCS+= acpidb.c
SRCS= acpidb.c
SRCS+= osunixxf.c
SRCS+= dbcmds.c dbdisply.c dbexec.c dbfileio.c \
dbhistry.c dbinput.c dbstats.c dbutils.c \
dbxface.c dmbuffer.c dmnames.c dmobject.c \
dmopcode.c dmresrc.c dmresrcl.c dmresrcs.c \
dmutils.c dmwalk.c dsfield.c dsinit.c \
dsmethod.c dsmthdat.c dsobject.c dsopcode.c \
dsutils.c dswexec.c dswload.c dswscope.c dswstate.c \
evevent.c evgpe.c evgpeblk.c evmisc.c \
evregion.c evrgnini.c evsci.c evxface.c \
evxfevnt.c evxfregn.c exconfig.c exconvrt.c \
excreate.c exdump.c exfield.c exfldio.c \
exmisc.c exmutex.c exnames.c exoparg1.c \
exoparg2.c exoparg3.c exoparg6.c exprep.c \
exregion.c exresnte.c exresolv.c exresop.c \
exstore.c exstoren.c exstorob.c exsystem.c exutils.c \
hwacpi.c hwgpe.c hwregs.c hwsleep.c \
nsaccess.c nsalloc.c nsdump.c nseval.c \
nsinit.c nsload.c nsnames.c nsobject.c \
nsparse.c nssearch.c nsutils.c nswalk.c \
nsxfeval.c nsxfname.c nsxfobj.c \
psargs.c psopcode.c psparse.c psscope.c \
pstree.c psutils.c pswalk.c psxface.c \
rsaddr.c rscalc.c rscreate.c rsdump.c \
rsio.c rsirq.c rslist.c rsmemory.c \
rsmisc.c rsutils.c rsxface.c \
tbconvrt.c tbget.c tbgetall.c tbinstal.c \
tbrsdt.c tbutils.c tbxface.c tbxfroot.c \
utalloc.c utcopy.c utdebug.c utdelete.c \
uteval.c utglobal.c utinit.c utmath.c \
utmisc.c utobject.c utxface.c
# debugger
SRCS+= dbcmds.c dbdisply.c dbexec.c dbfileio.c dbhistry.c \
dbinput.c dbstats.c dbutils.c dbxface.c
# disassembler
SRCS+= dmbuffer.c dmnames.c dmobject.c dmopcode.c dmresrc.c \
dmresrcl.c dmresrcs.c dmutils.c dmwalk.c
# events
SRCS+= evevent.c evgpe.c evgpeblk.c evmisc.c evregion.c \
evrgnini.c evsci.c evxface.c evxfevnt.c evxfregn.c
# hardware
SRCS+= hwacpi.c hwgpe.c hwregs.c hwsleep.c
# interpreter/dispatcher
SRCS+= dsfield.c dsinit.c dsmethod.c dsmthdat.c dsobject.c \
dsopcode.c dsutils.c dswexec.c dswload.c dswscope.c \
dswstate.c
# interpreter/executer
SRCS+= exconfig.c exconvrt.c excreate.c exdump.c exfield.c \
exfldio.c exmisc.c exmutex.c exnames.c exoparg1.c \
exoparg2.c exoparg3.c exoparg6.c exprep.c exregion.c \
exresnte.c exresolv.c exresop.c exstore.c exstoren.c \
exstorob.c exsystem.c exutils.c
# interpreter/parser
SRCS+= psargs.c psloop.c psopcode.c psparse.c psscope.c \
pstree.c psutils.c pswalk.c psxface.c
# namespace
SRCS+= nsaccess.c nsalloc.c nsdump.c nseval.c nsinit.c \
nsload.c nsnames.c nsobject.c nsparse.c nssearch.c \
nsutils.c nswalk.c nsxfeval.c nsxfname.c nsxfobj.c
# resources
SRCS+= rsaddr.c rscalc.c rscreate.c rsdump.c rsinfo.c \
rsio.c rsirq.c rslist.c rsmemory.c rsmisc.c \
rsutils.c rsxface.c
# tables
SRCS+= tbconvrt.c tbget.c tbgetall.c tbinstal.c tbrsdt.c \
tbutils.c tbxface.c tbxfroot.c
# tools/acpiexec
SRCS+= aeexec.c
# utilities
SRCS+= utalloc.c utcache.c utcopy.c utdebug.c utdelete.c \
uteval.c utglobal.c utinit.c utmath.c utmisc.c \
utmutex.c utobject.c utstate.c utxface.c
MAN= acpidb.8
WARNS?= 2

View File

@ -41,9 +41,9 @@
#include <stdlib.h>
#include <unistd.h>
#include <acpi.h>
#include <acnamesp.h>
#include <acdebug.h>
#include <contrib/dev/acpica/acpi.h>
#include <contrib/dev/acpica/acnamesp.h>
#include <contrib/dev/acpica/acdebug.h>
/*
* Dummy DSDT Table Header

View File

@ -1,35 +1,57 @@
# $FreeBSD$
PROG= iasl
SRCS= aslcompiler.y.h aslcompilerlex.l aslcompilerparse.y \
aslanalyze.c aslcodegen.c \
aslcompile.c aslerror.c aslfiles.c asllength.c \
asllisting.c aslload.c asllookup.c aslmain.c \
aslmap.c aslopcodes.c asloperands.c aslresource.c \
aslrestype1.c aslrestype2.c asltree.c aslutils.c \
asltransform.c aslfold.c aslstubs.c aslopt.c
SRCS+= adisasm.c getopt.c osunixxf.c
SRCS+= dbfileio.c dmbuffer.c dmnames.c dmopcode.c dmobject.c \
dmresrc.c dmresrcl.c dmresrcs.c dmutils.c dmwalk.c \
dsopcode.c dsutils.c dswexec.c dswload.c \
dswscope.c dswstate.c dsfield.c dsobject.c \
exconvrt.c excreate.c exdump.c exmisc.c \
exmutex.c exnames.c exoparg1.c exoparg2.c \
exoparg3.c exoparg6.c exprep.c exregion.c \
exresnte.c exresolv.c exresop.c exstore.c \
exstoren.c exstorob.c exsystem.c exutils.c \
nsaccess.c nsalloc.c nsdump.c nsnames.c nsobject.c \
nsparse.c nssearch.c nsutils.c nswalk.c nsxfobj.c \
psargs.c psopcode.c psparse.c psscope.c \
pstree.c psutils.c pswalk.c \
tbinstal.c tbutils.c \
utalloc.c utcopy.c utdebug.c utdelete.c \
utglobal.c utobject.c utmisc.c utmath.c
SRCS= adisasm.c
SRCS+= osunixxf.c
# common
SRCS+= getopt.c
# compiler
SRCS+= aslanalyze.c aslcodegen.c aslcompile.c aslcompiler.y.h \
aslcompilerlex.l aslcompilerparse.y aslerror.c \
aslfiles.c aslfold.c asllength.c asllisting.c \
aslload.c asllookup.c aslmain.c aslmap.c aslopcodes.c \
asloperands.c aslopt.c aslresource.c aslrestype1.c \
aslrestype2.c aslstubs.c asltransform.c asltree.c \
aslutils.c
# debugger
SRCS+= dbfileio.c
# disassembler
SRCS+= dmbuffer.c dmnames.c dmobject.c dmopcode.c dmresrc.c \
dmresrcl.c dmresrcs.c dmutils.c dmwalk.c
# interpreter/dispatcher
SRCS+= dsfield.c dsobject.c dsopcode.c dsutils.c dswexec.c \
dswload.c dswscope.c dswstate.c
# interpreter/executer
SRCS+= exconvrt.c excreate.c exdump.c exmisc.c exmutex.c \
exnames.c exoparg1.c exoparg2.c exoparg3.c exoparg6.c \
exprep.c exregion.c exresnte.c exresolv.c exresop.c \
exstore.c exstoren.c exstorob.c exsystem.c exutils.c
# interpreter/parser
SRCS+= psargs.c psloop.c psopcode.c psparse.c psscope.c \
pstree.c psutils.c pswalk.c
# namespace
SRCS+= nsaccess.c nsalloc.c nsdump.c nsnames.c nsobject.c \
nsparse.c nssearch.c nsutils.c nswalk.c nsxfobj.c
# tables
SRCS+= tbinstal.c tbutils.c
# utilities
SRCS+= utalloc.c utcache.c utcopy.c utdebug.c utdelete.c \
utglobal.c utmath.c utmisc.c utmutex.c utobject.c \
utstate.c
MAN= iasl.8
CFLAGS+= -D_ACPI_ASL_COMPILER -I.
CFLAGS+= -DACPI_ASL_COMPILER -I.
CFLAGS+= -D_USE_BERKELEY_YACC
LFLAGS= -i -PAslCompiler
YFLAGS= -d -pAslCompiler