summaryrefslogtreecommitdiffstats
path: root/include/asm-s390/chandev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-s390/chandev.h')
-rw-r--r--include/asm-s390/chandev.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/include/asm-s390/chandev.h b/include/asm-s390/chandev.h
new file mode 100644
index 000000000..c9e7d2d54
--- /dev/null
+++ b/include/asm-s390/chandev.h
@@ -0,0 +1,87 @@
+/*
+ * include/asm-s390/chandev.h
+ *
+ * S390 version
+ * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation
+ * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
+ *
+ */
+
+#include <asm/types.h>
+
+typedef enum
+{
+ none=0,
+ ctc=1,
+ escon=2,
+ lcs=4,
+ osad=8,
+ claw=16,
+} chandev_type;
+
+typedef struct chandev_model_info chandev_model_info;
+
+struct chandev_model_info
+{
+ struct chandev_model_info *next;
+ chandev_type chan_type;
+ u16 cu_type;
+ u8 cu_model;
+ u8 max_port_no;
+};
+
+typedef struct chandev chandev;
+struct chandev
+{
+ struct chandev *next;
+ chandev_model_info *model_info;
+ u16 devno;
+ int irq;
+};
+
+typedef struct chandev_noauto_range chandev_noauto_range;
+struct chandev_noauto_range
+{
+ struct chandev_noauto_range *next;
+ u16 lo_devno;
+ u16 hi_devno;
+};
+
+typedef struct chandev_force chandev_force;
+struct chandev_force
+{
+ struct chandev_force *next;
+ chandev_type chan_type;
+ s32 devif_num; /* -1 don't care e.g. tr0 implies 0 */
+ u16 read_devno;
+ u16 write_devno;
+ s16 port_no; /* where available e.g. lcs,-1 don't care */
+ u8 do_ip_checksumming;
+ u8 use_hw_stats; /* where available e.g. lcs */
+};
+
+
+
+typedef struct
+{
+ s32 devif_num; /* -1 don't care e.g. tr0 implies 0 */
+ int read_irq;
+ int write_irq;
+ s16 forced_port_no; /* -1 don't care */
+ u8 hint_port_no;
+ u8 max_port_no;
+ u8 do_ip_checksumming;
+ u8 use_hw_stats; /* where available e.g. lcs */
+} chandev_probeinfo;
+
+
+typedef int (*chandev_probefunc)(chandev_probeinfo *probeinfo);
+
+
+typedef struct chandev_probelist chandev_probelist;
+struct chandev_probelist
+{
+ struct chandev_probelist *next;
+ chandev_probefunc probefunc;
+ chandev_type chan_type;
+};