uwb: add commands to add/remove IEs to the debug interface
Stefano Panella [Tue, 4 Nov 2008 14:24:57 +0000 (14:24 +0000)]
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>

drivers/uwb/uwb-debug.c
include/linux/uwb/debug-cmd.h

index 6db641e..88e6ac7 100644 (file)
@@ -168,6 +168,18 @@ static int cmd_rsv_terminate(struct uwb_rc *rc,
        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)
 {
        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:
                ret = cmd_rsv_terminate(rc, &cmd.rsv_terminate);
                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:
                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
  */
 void uwb_dbg_del_rc(struct uwb_rc *rc)
index 1141f41..6a16566 100644 (file)
@@ -32,6 +32,8 @@
 enum uwb_dbg_cmd_type {
        UWB_DBG_CMD_RSV_ESTABLISH = 1,
        UWB_DBG_CMD_RSV_TERMINATE = 2,
+       UWB_DBG_CMD_IE_ADD = 3,
+       UWB_DBG_CMD_IE_RM = 4,
 };
 
 struct uwb_dbg_cmd_rsv_establish {
@@ -46,11 +48,18 @@ struct uwb_dbg_cmd_rsv_terminate {
        int index;
 };
 
+struct uwb_dbg_cmd_ie {
+       __u8 data[128];
+       int len;
+};
+
 struct uwb_dbg_cmd {
        __u32 type;
        union {
                struct uwb_dbg_cmd_rsv_establish rsv_establish;
                struct uwb_dbg_cmd_rsv_terminate rsv_terminate;
+               struct uwb_dbg_cmd_ie ie_add;
+               struct uwb_dbg_cmd_ie ie_rm;
        };
 };