summaryrefslogtreecommitdiffstats
path: root/include/asm-s390/chandev.h
blob: c9e7d2d542d17261733643986e7ad6a4c04d91c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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;
};