[PATCH] rio driver rework continued #5
[linux-2.6] / drivers / char / rio / link.h
1 /****************************************************************************
2  *******                                                              *******
3  *******                      L I N K
4  *******                                                              *******
5  ****************************************************************************
6
7  Author  : Ian Nandhra / Jeremy Rolls
8  Date    :
9
10  *
11  *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK.
12  *
13  *      This program is free software; you can redistribute it and/or modify
14  *      it under the terms of the GNU General Public License as published by
15  *      the Free Software Foundation; either version 2 of the License, or
16  *      (at your option) any later version.
17  *
18  *      This program is distributed in the hope that it will be useful,
19  *      but WITHOUT ANY WARRANTY; without even the implied warranty of
20  *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21  *      GNU General Public License for more details.
22  *
23  *      You should have received a copy of the GNU General Public License
24  *      along with this program; if not, write to the Free Software
25  *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26
27  Version : 0.01
28
29
30                             Mods
31  ----------------------------------------------------------------------------
32   Date     By                Description
33  ----------------------------------------------------------------------------
34
35  ***************************************************************************/
36
37 #ifndef _link_h
38 #define _link_h 1
39
40 /*************************************************
41  * Define the Link Status stuff
42  ************************************************/
43 /* Boot request stuff */
44 #define BOOT_REQUEST       ((ushort) 0) /* Request for a boot */
45 #define BOOT_ABORT         ((ushort) 1) /* Abort a boot */
46 #define BOOT_SEQUENCE      ((ushort) 2) /* Packet with the number of packets
47                                            and load address */
48 #define BOOT_COMPLETED     ((ushort) 3) /* Boot completed */
49
50
51 struct LPB {
52         u16 link_number;        /* Link Number */
53         Channel_ptr in_ch;      /* Link In Channel */
54         Channel_ptr out_ch;     /* Link Out Channel */
55         u8 attached_serial[4];  /* Attached serial number */
56         u8 attached_host_serial[4];
57         /* Serial number of Host who
58            booted the other end */
59         u16 descheduled;        /* Currently Descheduled */
60         u16 state;              /* Current state */
61         u16 send_poll;          /* Send a Poll Packet */
62         Process_ptr ltt_p;      /* Process Descriptor */
63         Process_ptr lrt_p;      /* Process Descriptor */
64         u16 lrt_status;         /* Current lrt status */
65         u16 ltt_status;         /* Current ltt status */
66         u16 timeout;            /* Timeout value */
67         u16 topology;           /* Topology bits */
68         u16 mon_ltt;
69         u16 mon_lrt;
70         u16 WaitNoBoot; /* Secs to hold off booting */
71         u16 add_packet_list;    /* Add packets to here */
72         u16 remove_packet_list; /* Send packets from here */
73
74         Channel_ptr lrt_fail_chan;      /* Lrt's failure channel */
75         Channel_ptr ltt_fail_chan;      /* Ltt's failure channel */
76
77         /* RUP structure for HOST to driver communications */
78         struct RUP rup;
79         struct RUP link_rup;    /* RUP for the link (POLL,
80                                    topology etc.) */
81         u16 attached_link;      /* Number of attached link */
82         u16 csum_errors;        /* csum errors */
83         u16 num_disconnects;    /* number of disconnects */
84         u16 num_sync_rcvd;      /* # sync's received */
85         u16 num_sync_rqst;      /* # sync requests */
86         u16 num_tx;             /* Num pkts sent */
87         u16 num_rx;             /* Num pkts received */
88         u16 module_attached;    /* Module tpyes of attached */
89         u16 led_timeout;        /* LED timeout */
90         u16 first_port;         /* First port to service */
91         u16 last_port;          /* Last port to service */
92 };
93
94 #endif
95
96 /*********** end of file ***********/