Commit | Line | Data |
---|---|---|
14e865ba DW |
1 | /* Copyright (C) 2007, Red Hat, Inc. */ |
2 | ||
3 | #ifndef _LBS_CMD_H_ | |
4 | #define _LBS_CMD_H_ | |
5 | ||
6 | #include "hostcmd.h" | |
7 | #include "dev.h" | |
8 | ||
f15ebb63 DW |
9 | /* lbs_cmd() infers the size of the buffer to copy data back into, from |
10 | the size of the target of the pointer. Since the command to be sent | |
11 | may often be smaller, that size is set in cmd->size by the caller.*/ | |
12 | #define lbs_cmd(priv, cmdnr, cmd, cb, cb_arg) ({ \ | |
13 | uint16_t __sz = le16_to_cpu((cmd)->hdr.size); \ | |
14 | (cmd)->hdr.size = cpu_to_le16(sizeof(*(cmd))); \ | |
15 | __lbs_cmd(priv, cmdnr, &(cmd)->hdr, __sz, cb, cb_arg); \ | |
16 | }) | |
14e865ba | 17 | |
689442dc DW |
18 | #define lbs_cmd_with_response(priv, cmdnr, cmd) \ |
19 | lbs_cmd(priv, cmdnr, cmd, lbs_cmd_copyback, (unsigned long) (cmd)) | |
7e226272 | 20 | |
8db4a2b9 HS |
21 | void lbs_cmd_async(struct lbs_private *priv, uint16_t command, |
22 | struct cmd_header *in_cmd, int in_cmd_size); | |
23 | ||
7ad994de | 24 | int __lbs_cmd(struct lbs_private *priv, uint16_t command, |
7e226272 | 25 | struct cmd_header *in_cmd, int in_cmd_size, |
7ad994de | 26 | int (*callback)(struct lbs_private *, unsigned long, struct cmd_header *), |
14e865ba DW |
27 | unsigned long callback_arg); |
28 | ||
a8bdcd71 DW |
29 | int lbs_cmd_copyback(struct lbs_private *priv, unsigned long extra, |
30 | struct cmd_header *resp); | |
31 | ||
6e66f03f DW |
32 | int lbs_update_hw_spec(struct lbs_private *priv); |
33 | ||
301eacbf DW |
34 | int lbs_mesh_access(struct lbs_private *priv, uint16_t cmd_action, |
35 | struct cmd_ds_mesh_access *cmd); | |
36 | ||
8e3c91bb DW |
37 | int lbs_set_data_rate(struct lbs_private *priv, u8 rate); |
38 | ||
2dd4b262 DW |
39 | int lbs_get_channel(struct lbs_private *priv); |
40 | int lbs_set_channel(struct lbs_private *priv, u8 channel); | |
41 | ||
edaea5ce JC |
42 | int lbs_mesh_config_send(struct lbs_private *priv, |
43 | struct cmd_ds_mesh_config *cmd, | |
44 | uint16_t action, uint16_t type); | |
86062134 | 45 | int lbs_mesh_config(struct lbs_private *priv, uint16_t enable, uint16_t chan); |
23a397ac | 46 | |
506e9025 | 47 | int lbs_host_sleep_cfg(struct lbs_private *priv, uint32_t criteria); |
ab25ecae | 48 | int lbs_suspend(struct lbs_private *priv); |
a63e5cb2 | 49 | void lbs_resume(struct lbs_private *priv); |
6ce4fd2a | 50 | |
6e5cc4fb DW |
51 | int lbs_cmd_802_11_inactivity_timeout(struct lbs_private *priv, |
52 | uint16_t cmd_action, uint16_t *timeout); | |
3fbe104c DW |
53 | int lbs_cmd_802_11_sleep_params(struct lbs_private *priv, uint16_t cmd_action, |
54 | struct sleep_params *sp); | |
f70dd451 DW |
55 | int lbs_cmd_802_11_set_wep(struct lbs_private *priv, uint16_t cmd_action, |
56 | struct assoc_request *assoc); | |
4f59abf1 DW |
57 | int lbs_cmd_802_11_enable_rsn(struct lbs_private *priv, uint16_t cmd_action, |
58 | uint16_t *enable); | |
9e1228d0 DW |
59 | int lbs_cmd_802_11_key_material(struct lbs_private *priv, uint16_t cmd_action, |
60 | struct assoc_request *assoc); | |
6e5cc4fb | 61 | |
14e865ba | 62 | #endif /* _LBS_CMD_H */ |