GNU Linux-libre 4.19.286-gnu1
[releases.git] / drivers / staging / rtl8723bs / include / osdep_intf.h
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         _mutex ioctl_mutex;
36 };
37
38
39 #ifdef CONFIG_R871X_TEST
40 int rtw_start_pseudo_adhoc(struct adapter *padapter);
41 int rtw_stop_pseudo_adhoc(struct adapter *padapter);
42 #endif
43
44 struct dvobj_priv *devobj_init(void);
45 void devobj_deinit(struct dvobj_priv *pdvobj);
46
47 u8 rtw_init_drv_sw(struct adapter *padapter);
48 u8 rtw_free_drv_sw(struct adapter *padapter);
49 u8 rtw_reset_drv_sw(struct adapter *padapter);
50 void rtw_dev_unload(struct adapter *padapter);
51
52 u32 rtw_start_drv_threads(struct adapter *padapter);
53 void rtw_stop_drv_threads (struct adapter *padapter);
54 void rtw_cancel_all_timer(struct adapter *padapter);
55
56 int rtw_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
57
58 int rtw_init_netdev_name(struct net_device *pnetdev, const char *ifname);
59 struct net_device *rtw_init_netdev(struct adapter *padapter);
60 void rtw_unregister_netdevs(struct dvobj_priv *dvobj);
61
62 u16 rtw_recv_select_queue(struct sk_buff *skb);
63
64 int rtw_ndev_notifier_register(void);
65 void rtw_ndev_notifier_unregister(void);
66
67 #include "../os_dep/rtw_proc.h"
68
69 void rtw_ips_dev_unload(struct adapter *padapter);
70
71 int rtw_ips_pwr_up(struct adapter *padapter);
72 void rtw_ips_pwr_down(struct adapter *padapter);
73
74 int rtw_drv_register_netdev(struct adapter *padapter);
75 void rtw_ndev_destructor(_nic_hdl ndev);
76
77 int rtw_suspend_common(struct adapter *padapter);
78 int rtw_resume_common(struct adapter *padapter);
79
80 #endif  /* _OSDEP_INTF_H_ */