Tomas Hruby 9560b6dea8 ACPI driver
- 99% of the code is Intel's ACPICA. The license is compliant with BSD
  and GNU and virtually all systems that use ACPI use this code, For
  instance it is part of the Linux kernel.

- The only minix specific files are

  acpi.c
  osminixxf.c
  platform/acminix.h

  and

  include/minix/acpi.h

- At the moment the driver does not register interrupt hooks which I
  believe is mainly for handling PnP, events like "battery level is
  low" and power management. Should not be difficult to add it if need
  be.

- The interface to the outside world is virtually non-existent except
  a trivial message based service for PCI driver to query which device
  is connected to what IRQ line. This will evolve as more components
  start using this driver. VM, Scheduler and IOMMU are the possible
  users right now.

- because of dependency on a native 64bit (long long, part of c99) it
  is compiled only with a gnu-like compilers which in case of Minix
  includes gcc llvm-gcc and clang
2010-09-02 15:44:04 +00:00

28 lines
531 B
C

#include <minix/types.h>
#include <minix/ipc.h>
#define ACPI_REQ_GET_IRQ 1
struct acpi_request_hdr {
endpoint_t m_source; /* message header */
u32_t request;
};
/*
* Message to request dev/pin translation to IRQ by acpi using the acpi routing
* tables
*/
struct acpi_get_irq_req {
struct acpi_request_hdr hdr;
u32_t dev;
u32_t pin;
u32_t __padding[5];
};
/* response from acpi to acpi_get_irq_req */
struct acpi_get_irq_resp {
endpoint_t m_source; /* message header */
i32_t irq;
u32_t __padding[7];
};