summaryrefslogtreecommitdiff
path: root/contrib/libdha/kernelhelper/dhahelper.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libdha/kernelhelper/dhahelper.h')
-rw-r--r--contrib/libdha/kernelhelper/dhahelper.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/contrib/libdha/kernelhelper/dhahelper.h b/contrib/libdha/kernelhelper/dhahelper.h
new file mode 100644
index 000000000..7db56abb5
--- /dev/null
+++ b/contrib/libdha/kernelhelper/dhahelper.h
@@ -0,0 +1,105 @@
+/*
+ Direct Hardware Access kernel helper
+
+ (C) 2002 Alex Beregszaszi <alex@naxine.org>
+ (C) 2002-2003 Nick Kurshev <nickols_k@mail.ru>
+*/
+
+#ifndef DHAHELPER_H
+#define DHAHELPER_H
+
+/* #include <linux/ioctl.h> */
+
+/* feel free to change */
+#define DEFAULT_MAJOR 252 /* 240-254 LOCAL/EXPERIMENTAL USE */
+
+#define API_VERSION 0x30 /* 3.0*/
+
+typedef struct dhahelper_port_s
+{
+#define PORT_OP_READ 1
+#define PORT_OP_WRITE 2
+ int operation;
+ int size;
+ int addr; // FIXME - switch to void* (64bit)
+ int value;
+} dhahelper_port_t;
+
+typedef struct dhahelper_mtrr_s
+{
+#define MTRR_OP_ADD 1
+#define MTRR_OP_DEL 2
+ int operation;
+ long start;
+ long size;
+ int type;
+ int privat;
+} dhahelper_mtrr_t;
+
+typedef struct dhahelper_pci_config_s
+{
+#define PCI_OP_READ 0
+#define PCI_OP_WRITE 1
+ int operation;
+ int bus;
+ int dev;
+ int func;
+ int cmd;
+ int size;
+ long ret;
+} dhahelper_pci_config_t;
+
+typedef struct dhahelper_vmi_s
+{
+ void * virtaddr;
+ unsigned long length;
+ unsigned long *realaddr;
+}dhahelper_vmi_t;
+
+typedef struct dhahelper_mem_s
+{
+ void * addr;
+ unsigned long length;
+}dhahelper_mem_t;
+
+typedef struct dhahelper_irq_s
+{
+ unsigned num;
+ int bus, dev, func;
+ int ack_region;
+ unsigned long ack_offset;
+ unsigned int ack_data;
+}dhahelper_irq_t;
+
+typedef struct dhahelper_cpu_flush_s
+{
+ void *va;
+ unsigned long length;
+}dhahelper_cpu_flush_t;
+
+typedef struct dhahelper_pci_device_s
+{
+ int bus,card,func; /* PCI/AGP bus:card:func */
+ unsigned short vendor,device; /* Card vendor+device ID */
+ unsigned long base0,base1,base2,baserom; /* Memory and I/O base addresses */
+ unsigned long base3,base4,base5; /* Memory and I/O base addresses */
+ unsigned char irq,ipin,gnt,lat; /* assigned IRQ parameters for this card */
+}dhahelper_pci_device_t;
+
+#define DHAHELPER_GET_VERSION _IOW('D', 0, int)
+#define DHAHELPER_PORT _IOWR('D', 1, dhahelper_port_t)
+#define DHAHELPER_MTRR _IOWR('D', 2, dhahelper_mtrr_t)
+#define DHAHELPER_PCI_CONFIG _IOWR('D', 3, dhahelper_pci_config_t)
+#define DHAHELPER_VIRT_TO_PHYS _IOWR('D', 4, dhahelper_vmi_t)
+#define DHAHELPER_VIRT_TO_BUS _IOWR('D', 5, dhahelper_vmi_t)
+#define DHAHELPER_ALLOC_PA _IOWR('D', 6, dhahelper_mem_t)
+#define DHAHELPER_FREE_PA _IOWR('D', 7, dhahelper_mem_t)
+#define DHAHELPER_LOCK_MEM _IOWR('D', 8, dhahelper_mem_t)
+#define DHAHELPER_UNLOCK_MEM _IOWR('D', 9, dhahelper_mem_t)
+#define DHAHELPER_INSTALL_IRQ _IOWR('D', 10, dhahelper_irq_t)
+#define DHAHELPER_ACK_IRQ _IOWR('D', 11, dhahelper_irq_t)
+#define DHAHELPER_FREE_IRQ _IOWR('D', 12, dhahelper_irq_t)
+#define DHAHELPER_CPU_FLUSH _IOWR('D', 13, dhahelper_cpu_flush_t)
+#define DHAHELPER_PCI_FIND _IOWR('D', 14, dhahelper_pci_device_t)
+
+#endif /* DHAHELPER_H */