 9560b6dea8
			
		
	
	
		9560b6dea8
		
	
	
	
	
		
			
			- 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
		
			
				
	
	
		
			28 lines
		
	
	
		
			531 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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];
 | |
| };
 |