uwb: add commands to add/remove IEs to the debug interface

Add the commands UWB_DBG_CMD_IE_ADD and UWB_DBG_CMD_IE_RM to the debug
interface and make them call uwb_rc_ie_add() and uwb_rc_ie_rm().

Signed-off-by: Stefano Panella <stefano.panella@csr.com>
Signed-off-by: David Vrabel <david.vrabel@csr.com>
This commit is contained in:
Stefano Panella 2008-11-04 14:24:57 +00:00 committed by David Vrabel
parent c5995bd281
commit 6d5a681dfb
2 changed files with 28 additions and 1 deletions

View file

@ -168,6 +168,18 @@ static int cmd_rsv_terminate(struct uwb_rc *rc,
return 0; return 0;
} }
static int cmd_ie_add(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_add)
{
return uwb_rc_ie_add(rc,
(const struct uwb_ie_hdr *) ie_to_add->data,
ie_to_add->len);
}
static int cmd_ie_rm(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_rm)
{
return uwb_rc_ie_rm(rc, ie_to_rm->data[0]);
}
static int command_open(struct inode *inode, struct file *file) static int command_open(struct inode *inode, struct file *file)
{ {
file->private_data = inode->i_private; file->private_data = inode->i_private;
@ -195,6 +207,12 @@ static ssize_t command_write(struct file *file, const char __user *buf,
case UWB_DBG_CMD_RSV_TERMINATE: case UWB_DBG_CMD_RSV_TERMINATE:
ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate); ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate);
break; break;
case UWB_DBG_CMD_IE_ADD:
ret = cmd_ie_add(rc, &cmd.ie_add);
break;
case UWB_DBG_CMD_IE_RM:
ret = cmd_ie_rm(rc, &cmd.ie_rm);
break;
default: default:
return -EINVAL; return -EINVAL;
} }
@ -332,7 +350,7 @@ void uwb_dbg_add_rc(struct uwb_rc *rc)
} }
/** /**
* uwb_dbg_add_rc - remove a radio controller's debug interface * uwb_dbg_del_rc - remove a radio controller's debug interface
* @rc: the radio controller * @rc: the radio controller
*/ */
void uwb_dbg_del_rc(struct uwb_rc *rc) void uwb_dbg_del_rc(struct uwb_rc *rc)

View file

@ -32,6 +32,8 @@
enum uwb_dbg_cmd_type { enum uwb_dbg_cmd_type {
UWB_DBG_CMD_RSV_ESTABLISH = 1, UWB_DBG_CMD_RSV_ESTABLISH = 1,
UWB_DBG_CMD_RSV_TERMINATE = 2, UWB_DBG_CMD_RSV_TERMINATE = 2,
UWB_DBG_CMD_IE_ADD = 3,
UWB_DBG_CMD_IE_RM = 4,
}; };
struct uwb_dbg_cmd_rsv_establish { struct uwb_dbg_cmd_rsv_establish {
@ -46,11 +48,18 @@ struct uwb_dbg_cmd_rsv_terminate {
int index; int index;
}; };
struct uwb_dbg_cmd_ie {
__u8 data[128];
int len;
};
struct uwb_dbg_cmd { struct uwb_dbg_cmd {
__u32 type; __u32 type;
union { union {
struct uwb_dbg_cmd_rsv_establish rsv_establish; struct uwb_dbg_cmd_rsv_establish rsv_establish;
struct uwb_dbg_cmd_rsv_terminate rsv_terminate; struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
struct uwb_dbg_cmd_ie ie_add;
struct uwb_dbg_cmd_ie ie_rm;
}; };
}; };