GNU Linux-libre 4.14.259-gnu1
[releases.git] / drivers / staging / rtl8712 / rtl871x_ioctl.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __IOCTL_H
3 #define __IOCTL_H
4
5 #include "osdep_service.h"
6 #include "drv_types.h"
7
8 #ifndef OID_802_11_CAPABILITY
9         #define OID_802_11_CAPABILITY                   0x0d010122
10 #endif
11
12 #ifndef OID_802_11_PMKID
13         #define OID_802_11_PMKID                        0x0d010123
14 #endif
15
16
17 /* For DDK-defined OIDs*/
18 #define OID_NDIS_SEG1   0x00010100
19 #define OID_NDIS_SEG2   0x00010200
20 #define OID_NDIS_SEG3   0x00020100
21 #define OID_NDIS_SEG4   0x01010100
22 #define OID_NDIS_SEG5   0x01020100
23 #define OID_NDIS_SEG6   0x01020200
24 #define OID_NDIS_SEG7   0xFD010100
25 #define OID_NDIS_SEG8   0x0D010100
26 #define OID_NDIS_SEG9   0x0D010200
27 #define OID_NDIS_SEG10  0x0D020200
28 #define SZ_OID_NDIS_SEG1        23
29 #define SZ_OID_NDIS_SEG2        3
30 #define SZ_OID_NDIS_SEG3        6
31 #define SZ_OID_NDIS_SEG4        6
32 #define SZ_OID_NDIS_SEG5        4
33 #define SZ_OID_NDIS_SEG6        8
34 #define SZ_OID_NDIS_SEG7        7
35 #define SZ_OID_NDIS_SEG8        36
36 #define SZ_OID_NDIS_SEG9        24
37 #define SZ_OID_NDIS_SEG10       19
38
39 /* For Realtek-defined OIDs*/
40 #define OID_MP_SEG1     0xFF871100
41 #define OID_MP_SEG2     0xFF818000
42 #define OID_MP_SEG3     0xFF818700
43 #define OID_MP_SEG4     0xFF011100
44
45 enum oid_type {
46         QUERY_OID,
47         SET_OID
48 };
49
50 struct oid_funs_node {
51         unsigned int oid_start; /*the starting number for OID*/
52         unsigned int oid_end; /*the ending number for OID*/
53         struct oid_obj_priv *node_array;
54         unsigned int array_sz; /*the size of node_array*/
55         int query_counter; /*count the number of query hits for this segment*/
56         int set_counter; /*count the number of set hits for this segment*/
57 };
58
59 struct oid_par_priv {
60         void    *adapter_context;
61         uint oid;
62         void *information_buf;
63         unsigned long information_buf_len;
64         unsigned long *bytes_rw;
65         unsigned long *bytes_needed;
66         enum oid_type   type_of_oid;
67         unsigned int dbg;
68 };
69
70 struct oid_obj_priv {
71         unsigned char   dbg; /* 0: without OID debug message
72                               * 1: with OID debug message
73                               */
74         uint (*oidfuns)(struct oid_par_priv *poid_par_priv);
75 };
76
77 uint oid_null_function(struct oid_par_priv *poid_par_priv);
78
79 extern struct iw_handler_def  r871x_handlers_def;
80
81 uint drv_query_info(struct net_device *MiniportAdapterContext,
82                     uint Oid,
83                     void *InformationBuffer,
84                     u32 InformationBufferLength,
85                     u32 *BytesWritten,
86                     u32 *BytesNeeded);
87
88 uint drv_set_info(struct net_device *MiniportAdapterContext,
89                   uint Oid,
90                   void *InformationBuffer,
91                   u32 InformationBufferLength,
92                   u32 *BytesRead,
93                   u32 *BytesNeeded);
94
95 #endif