]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blob - drivers/staging/slicoss/slicinc.h
Staging: add Alacritech slicoss network driver
[linux-2.6-omap-h63xx.git] / drivers / staging / slicoss / slicinc.h
1 /**************************************************************************
2  *
3  * Copyright (c) 2000-2002 Alacritech, Inc.  All rights reserved.
4  *
5  * $Id: slicinc.h,v 1.4 2006/07/14 16:42:56 mook Exp $
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above
14  *    copyright notice, this list of conditions and the following
15  *    disclaimer in the documentation and/or other materials provided
16  *    with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY ALACRITECH, INC. ``AS IS'' AND ANY
19  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL ALACRITECH, INC. OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
25  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
28  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29  * SUCH DAMAGE.
30  *
31  * The views and conclusions contained in the software and documentation
32  * are those of the authors and should not be interpreted as representing
33  * official policies, either expressed or implied, of Alacritech, Inc.
34  *
35  **************************************************************************/
36
37 /*
38  * FILENAME: slicinc.h
39  *
40  * This file contains all other include files and prototype definitions
41  * for the SLICOSS driver.
42  */
43 #ifndef _SLIC_INCLUDE_H_
44 #define _SLIC_INCLUDE_H_
45
46 #include "slic_os.h"
47 #include "slicdbg.h"
48 #include "slichw.h"
49 #include "slic.h"
50
51 int slic_entry_probe(struct pci_dev              *pcidev,
52                         const struct pci_device_id  *ent);
53 int slic_init(struct pci_dev           *pcidev,
54         const struct pci_device_id     *pci_tbl_entry,
55         long                      memaddr,
56         int                       chip_idx,
57         int                       acpi_idle_state);
58 void slic_entry_remove(struct pci_dev *pcidev);
59
60 void slic_init_driver(void);
61 int  slic_entry_open(struct net_device *dev);
62 int  slic_entry_halt(struct net_device *dev);
63 int  slic_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
64 int  slic_xmit_start(struct sk_buff *skb, struct net_device *dev);
65 void slic_xmit_fail(p_adapter_t        adapter,
66                         struct sk_buff   *skb,
67                         pvoid              cmd,
68                         ulong32              skbtype,
69                         ulong32              status);
70 void slic_xmit_timeout(struct net_device *dev);
71 void slic_config_pci(struct pci_dev *pcidev);
72 struct sk_buff *slic_rcvqueue_getnext(p_adapter_t  adapter);
73
74 inline void slic_reg32_write(void __iomem *reg, ulong32 value, uint flush);
75 inline void slic_reg64_write(p_adapter_t adapter, void __iomem *reg,
76         ulong32 value, void __iomem *regh, ulong32 paddrh, uint flush);
77 inline ulong32 slic_reg32_read(pulong32 reg, uint flush);
78 inline ulong32 slic_reg16_read(pulong32 reg, uint flush);
79
80 #if SLIC_GET_STATS_ENABLED
81 struct net_device_stats *slic_get_stats(struct net_device *dev);
82 #endif
83
84 int slic_mac_set_address(struct net_device *dev, pvoid ptr);
85
86 int slicproc_card_read(char *page, char **start, off_t off, int count,
87                         int *eof, void *data);
88 int slicproc_card_write(struct file *file, const char __user *buffer,
89                         ulong count, void *data);
90 void slicproc_card_create(p_sliccard_t card);
91 void slicproc_card_destroy(p_sliccard_t card);
92 int slicproc_adapter_read(char *page, char **start, off_t off, int count,
93                         int *eof, void *data);
94 int slicproc_adapter_write(struct file *file, const char __user *buffer,
95                         ulong count, void *data);
96 void slicproc_adapter_create(p_adapter_t adapter);
97 void slicproc_adapter_destroy(p_adapter_t adapter);
98 void slicproc_create(void);
99 void slicproc_destroy(void);
100
101 void slic_interrupt_process(p_adapter_t  adapter, ulong32 isr);
102 void slic_rcv_handler(p_adapter_t  adapter);
103 void slic_upr_handler(p_adapter_t  adapter);
104 void slic_link_event_handler(p_adapter_t  adapter);
105 void slic_xmit_complete(p_adapter_t  adapter);
106 void slic_upr_request_complete(p_adapter_t  adapter, ulong32 isr);
107 int   slic_rspqueue_init(p_adapter_t  adapter);
108 int   slic_rspqueue_reset(p_adapter_t  adapter);
109 void  slic_rspqueue_free(p_adapter_t  adapter);
110 p_slic_rspbuf_t slic_rspqueue_getnext(p_adapter_t  adapter);
111 void  slic_cmdqmem_init(p_adapter_t  adapter);
112 void  slic_cmdqmem_free(p_adapter_t  adapter);
113 pulong32 slic_cmdqmem_addpage(p_adapter_t  adapter);
114 int   slic_cmdq_init(p_adapter_t  adapter);
115 void  slic_cmdq_free(p_adapter_t  adapter);
116 void  slic_cmdq_reset(p_adapter_t  adapter);
117 void  slic_cmdq_addcmdpage(p_adapter_t  adapter, pulong32 page);
118 void  slic_cmdq_getdone(p_adapter_t  adapter);
119 void  slic_cmdq_putdone(p_adapter_t  adapter, p_slic_hostcmd_t cmd);
120 void  slic_cmdq_putdone_irq(p_adapter_t  adapter, p_slic_hostcmd_t cmd);
121 p_slic_hostcmd_t slic_cmdq_getfree(p_adapter_t  adapter);
122 int   slic_rcvqueue_init(p_adapter_t  adapter);
123 int   slic_rcvqueue_reset(p_adapter_t  adapter);
124 int   slic_rcvqueue_fill(p_adapter_t  adapter);
125 ulong32 slic_rcvqueue_reinsert(p_adapter_t adapter, struct sk_buff *skb);
126 void  slic_rcvqueue_free(p_adapter_t  adapter);
127 void slic_rcv_handle_error(p_adapter_t adapter, p_slic_rcvbuf_t    rcvbuf);
128 void slic_adapter_set_hwaddr(p_adapter_t adapter);
129 void slic_card_halt(p_sliccard_t card, p_adapter_t adapter);
130 int slic_card_init(p_sliccard_t card, p_adapter_t adapter);
131 void slic_intagg_set(p_adapter_t  adapter, ulong32 value);
132 int  slic_card_download(p_adapter_t  adapter);
133 ulong32 slic_card_locate(p_adapter_t  adapter);
134 int  slic_card_removeadapter(p_adapter_t  adapter);
135 void slic_card_remaster(p_adapter_t  adapter);
136 void slic_card_softreset(p_adapter_t  adapter);
137 void slic_card_up(p_adapter_t  adapter);
138 void slic_card_down(p_adapter_t  adapter);
139
140 void slic_if_stop_queue(p_adapter_t adapter);
141 void slic_if_start_queue(p_adapter_t adapter);
142 int  slic_if_init(p_adapter_t  adapter);
143 void slic_adapter_close(p_adapter_t  adapter);
144 int  slic_adapter_allocresources(p_adapter_t  adapter);
145 void slic_adapter_freeresources(p_adapter_t  adapter);
146 void slic_link_config(p_adapter_t  adapter, ulong32 linkspeed,
147                         ulong32 linkduplex);
148 void slic_unmap_mmio_space(p_adapter_t adapter);
149 void slic_card_cleanup(p_sliccard_t card);
150 void slic_init_cleanup(p_adapter_t adapter);
151 void slic_card_reclaim_buffers(p_adapter_t adapter);
152 void slic_soft_reset(p_adapter_t adapter);
153 void slic_card_reset(p_adapter_t adapter);
154 boolean slic_mac_filter(p_adapter_t  adapter, p_ether_header ether_frame);
155 void slic_mac_address_config(p_adapter_t  adapter);
156 void slic_mac_config(p_adapter_t  adapter);
157 void slic_mcast_set_mask(p_adapter_t  adapter);
158 void slic_mac_setmcastaddrs(p_adapter_t  adapter);
159 int slic_mcast_add_list(p_adapter_t adapter, pchar address);
160 uchar slic_mcast_get_mac_hash(pchar macaddr);
161 void  slic_mcast_set_bit(p_adapter_t adapter, pchar address);
162 void slic_config_set(p_adapter_t adapter, boolean linkchange);
163 void slic_config_clear(p_adapter_t  adapter);
164 void slic_config_get(p_adapter_t  adapter, ulong32 config, ulong32 configh);
165 void slic_timer_get_stats(ulong device);
166 void slic_timer_load_check(ulong context);
167 void slic_timer_ping(ulong dev);
168 void slic_stall_msec(int stall);
169 void slic_stall_usec(int stall);
170 void slic_assert_fail(void);
171 ushort slic_eeprom_cksum(pchar m, int len);
172 /* upr */
173 void slic_upr_start(p_adapter_t  adapter);
174 void slic_link_upr_complete(p_adapter_t  adapter, ulong32 Isr);
175 int  slic_upr_request(p_adapter_t      adapter,
176                         ulong32            upr_request,
177                         ulong32            upr_data,
178                         ulong32            upr_data_h,
179                         ulong32            upr_buffer,
180                         ulong32            upr_buffer_h);
181 int  slic_upr_queue_request(p_adapter_t      adapter,
182                                 ulong32            upr_request,
183                                 ulong32            upr_data,
184                                 ulong32            upr_data_h,
185                                 ulong32            upr_buffer,
186                                 ulong32            upr_buffer_h);
187 void slic_mcast_set_list(struct net_device *dev);
188 void  slic_mcast_init_crc32(void);
189
190 #if SLIC_DUMP_ENABLED
191 int   slic_dump_thread(void *context);
192 uint  slic_init_dump_thread(p_sliccard_t card);
193 uchar slic_get_dump_index(pchar path);
194 ulong32 slic_dump_card(p_sliccard_t card, boolean resume);
195 ulong32 slic_dump_halt(p_sliccard_t card, uchar proc);
196 ulong32 slic_dump_reg(p_sliccard_t card, uchar proc);
197 ulong32 slic_dump_data(p_sliccard_t card, ulong32 addr,
198                         ushort count, uchar desc);
199 ulong32 slic_dump_queue(p_sliccard_t card, ulong32 buf_phys,
200                         ulong32 buf_physh, ulong32 queue);
201 ulong32 slic_dump_load_queue(p_sliccard_t card, ulong32 data, ulong32 queue);
202 ulong32 slic_dump_cam(p_sliccard_t card, ulong32 addr,
203                         ulong32 count, uchar desc);
204
205 ulong32 slic_dump_resume(p_sliccard_t card, uchar proc);
206 ulong32 slic_dump_send_cmd(p_sliccard_t card, ulong32 cmd_phys,
207                                 ulong32 cmd_physh, ulong32 buf_phys,
208                                 ulong32 buf_physh);
209
210 #define create_file(x)         STATUS_SUCCESS
211 #define write_file(w, x, y, z) STATUS_SUCCESS
212 #define close_file(x)          STATUS_SUCCESS
213 #define read_file(w, x, y, z)  STATUS_SUCCESS
214 #define open_file(x)           STATUS_SUCCESS
215
216 /* PAGE_SIZE * 16 */
217 #define DUMP_PAGE_SIZE         0xFFFF
218 #define DUMP_PAGE_SIZE_HALF    0x7FFE
219 #endif
220
221 #endif /* _SLIC_INCLUDE_H_ */