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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
typedef union { int ioport; volatile char *maddr; } bus_space_handle_t;
struct scb { unsigned short *hscb; };
struct ahd_softc
{
int tags[2];
bus_space_handle_t bshs[2];
int dst_mode;
int src_mode;
int flags;
};
void outb(int, int);
int foo_inb(struct ahd_softc*);
int foo_int_int (int, int);
int ahd_inb(struct ahd_softc*);
int ahd_scb_active_in_fifo (void);
void ahd_flush_qoutfifo (struct ahd_softc *ahd, struct scb *scb)
{
int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;
int bb, p;
if (ahd->src_mode == 1)
{ int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;}
foo_int_int (ahd->src_mode, ahd->dst_mode);
p = 1;
if (ahd->src_mode == 2 && ahd->dst_mode == p)
{
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
ahd->src_mode = 1;
ahd->dst_mode = 2;
while ((ahd_inb (ahd) & 0x01) != 0)
{
p = 1;
if (ahd->src_mode == 2 && ahd->dst_mode == p)
{
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
ahd->src_mode = 1;
ahd->dst_mode = 2;
if (ahd_scb_active_in_fifo () == 0)
continue;
p = 1;
if (ahd->src_mode == 2 && ahd->dst_mode == p)
{
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
ahd->src_mode = 1;
ahd->dst_mode = 2;
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if ((ahd->flags & 1) != 0)
foo_inb (ahd);
if ((ahd->flags & 1) != 0)
foo_inb (ahd);
if ((ahd->flags & 1) != 0)
foo_inb (ahd);
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if ((ahd->flags & 1) != 0)
foo_inb (ahd);
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
bb = (*(scb->hscb));
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
bb = (*(scb->hscb));
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
p = 1;
if (ahd->src_mode == 2 && ahd->dst_mode == p)
{
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
ahd->src_mode = 1;
ahd->dst_mode = 2;
if (ahd->src_mode == 2 && ahd->dst_mode == dst)
{
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr);
outb (1, ahd->bshs[0].ioport );
}
ahd->src_mode = 1;
ahd->dst_mode = 2;
ahd->flags |= 1;
}
|