1 /* SPDX-License-Identifier: GPL-2.0 */
2 /******************************************************************************
3  *
4  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
5  *
6  ******************************************************************************/
7 
8 #ifndef __OSDEP_INTF_H_
9 #define __OSDEP_INTF_H_
10 
11 
12 struct intf_priv {
13 
14 	u8 *intf_dev;
15 	u32 max_iosz;	/* USB2.0: 128, USB1.1: 64, SDIO:64 */
16 	u32 max_xmitsz; /* USB2.0: unlimited, SDIO:512 */
17 	u32 max_recvsz; /* USB2.0: unlimited, SDIO:512 */
18 
19 	volatile u8 *io_rwmem;
20 	volatile u8 *allocated_io_rwmem;
21 	u32 io_wsz; /* unit: 4bytes */
22 	u32 io_rsz;/* unit: 4bytes */
23 	u8 intf_status;
24 
25 	void (*_bus_io)(u8 *priv);
26 
27 /*
28 Under Sync. IRP (SDIO/USB)
29 A protection mechanism is necessary for the io_rwmem(read/write protocol)
30 
31 Under Async. IRP (SDIO/USB)
32 The protection mechanism is through the pending queue.
33 */
34 
35 	struct mutex ioctl_mutex;
36 };
37 
38 struct dvobj_priv *devobj_init(void);
39 void devobj_deinit(struct dvobj_priv *pdvobj);
40 
41 u8 rtw_init_drv_sw(struct adapter *padapter);
42 u8 rtw_free_drv_sw(struct adapter *padapter);
43 void rtw_reset_drv_sw(struct adapter *padapter);
44 void rtw_dev_unload(struct adapter *padapter);
45 
46 u32 rtw_start_drv_threads(struct adapter *padapter);
47 void rtw_stop_drv_threads(struct adapter *padapter);
48 void rtw_cancel_all_timer(struct adapter *padapter);
49 
50 int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
51 
52 int rtw_init_netdev_name(struct net_device *pnetdev, const char *ifname);
53 struct net_device *rtw_init_netdev(struct adapter *padapter);
54 void rtw_unregister_netdevs(struct dvobj_priv *dvobj);
55 
56 u16 rtw_recv_select_queue(struct sk_buff *skb);
57 
58 int rtw_ndev_notifier_register(void);
59 void rtw_ndev_notifier_unregister(void);
60 
61 void rtw_ips_dev_unload(struct adapter *padapter);
62 
63 int rtw_ips_pwr_up(struct adapter *padapter);
64 void rtw_ips_pwr_down(struct adapter *padapter);
65 
66 int rtw_drv_register_netdev(struct adapter *padapter);
67 void rtw_ndev_destructor(struct net_device *ndev);
68 
69 void rtw_suspend_common(struct adapter *padapter);
70 int rtw_resume_common(struct adapter *padapter);
71 
72 int netdev_open(struct net_device *pnetdev);
73 
74 #endif	/* _OSDEP_INTF_H_ */
75