[PATCH 07/21] netconsole: use dev_add_param_* helpers

Sascha Hauer s.hauer at pengutronix.de
Sun Apr 7 10:00:41 EDT 2013


For shorter code.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 net/netconsole.c | 50 ++++++--------------------------------------------
 1 file changed, 6 insertions(+), 44 deletions(-)

diff --git a/net/netconsole.c b/net/netconsole.c
index 960de8d..9989194 100644
--- a/net/netconsole.c
+++ b/net/netconsole.c
@@ -43,7 +43,7 @@ struct nc_priv {
 	int busy;
 	struct net_connection *con;
 
-	uint16_t port;
+	unsigned int port;
 	IPaddr_t ip;
 };
 
@@ -123,49 +123,10 @@ static void nc_putc(struct console_device *cdev, char c)
 	priv->busy = 0;
 }
 
-static int nc_port_set(struct device_d *dev, struct param_d *param,
-		const char *val)
+static int nc_port_set(struct param_d *p, void *_priv)
 {
-	struct nc_priv *priv = g_priv;
-	char portstr[16];
-	int port;
-
-	if (!val)
-		dev_param_set_generic(dev, param, NULL);
-
-	port = simple_strtoul(val, NULL, 10);
-	if (port > 65535)
-		return -EINVAL;
-
-	priv->port = port;
 	nc_init();
 
-	sprintf(portstr, "%d", port);
-	dev_param_set_generic(dev, param, portstr);
-
-	return 0;
-}
-
-static int nc_remoteip_set(struct device_d *dev, struct param_d *param,
-		const char *val)
-{
-	struct nc_priv *priv = g_priv;
-	IPaddr_t ip;
-	int ret;
-
-	if (!val)
-		dev_param_set_generic(dev, param, NULL);
-
-	if (string_to_ip(val, &ip))
-		return -EINVAL;
-
-	priv->ip = ip;
-	ret = nc_init();
-	if (ret)
-		return ret;
-
-	dev_param_set_generic(dev, param, val);
-
 	return 0;
 }
 
@@ -192,9 +153,10 @@ static int netconsole_init(void)
 		return ret;
 	}
 
-	dev_add_param(&cdev->class_dev, "ip", nc_remoteip_set, NULL, 0);
-	dev_add_param(&cdev->class_dev, "port", nc_port_set, NULL, 0);
-	dev_set_param(&cdev->class_dev, "port", "6666");
+	priv->port = 6666;
+
+	dev_add_param_ip(&cdev->class_dev, "ip", NULL, NULL, &priv->ip, NULL);
+	dev_add_param_int(&cdev->class_dev, "port", nc_port_set, NULL, &priv->port, "%u", NULL);
 
 	pr_info("registered as %s%d\n", cdev->class_dev.name, cdev->class_dev.id);
 
-- 
1.8.2.rc2




More information about the barebox mailing list