>-----Original Message-----
>From: [email protected] [mailto:meta-arago-
>[email protected]] On Behalf Of Monk, Roger
>Sent: Thursday, October 10, 2013 11:02 AM
>To: [email protected]
>Subject: [meta-arago] [PATCHv2 11/11] ti-connectivity/uim: Add
>Usermode Init Mgr for TI Wilink Shared Transport
>
>   * New recipe pulling latest git version
>   * Patched to allow sysfs node to be passed via command line
>argument
>   * UIM Daemon plumbed to rcS.S03
>
>Signed-off-by: Roger Monk <[email protected]>
>---
> ...mand-line-args-for-passing-sysfs-node-pat.patch |  135
>++++++++++++++++++++
> .../recipes-connectivity/uim/files/uim-sysfs       |   34 +++++
> .../recipes-connectivity/uim/uim_git.bb            |   28 ++++
> 3 files changed, 197 insertions(+)
> create mode 100644 meta-arago-extras/recipes-
>connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-
>sysfs-node-pat.patch
> create mode 100755 meta-arago-extras/recipes-
>connectivity/uim/files/uim-sysfs
> create mode 100644 meta-arago-extras/recipes-
>connectivity/uim/uim_git.bb
>
>diff --git a/meta-arago-extras/recipes-
>connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-
>sysfs-node-pat.patch b/meta-arago-extras/recipes-
>connectivity/uim/files/0001-uim-Add-command-line-args-for-passing-
>sysfs-node-pat.patch
>new file mode 100644
>index 0000000..ad6f95f
>--- /dev/null
>+++ b/meta-arago-extras/recipes-connectivity/uim/files/0001-uim-
>Add-command-line-args-for-passing-sysfs-node-pat.patch
>@@ -0,0 +1,135 @@
>+From 0df5f6766722a844162e96777980feee146a3c86 Mon Sep 17 00:00:00
>2001
>+From: Roger Monk <[email protected]>
>+Date: Tue, 1 Oct 2013 17:17:25 +0100
>+Subject: [PATCH] uim:  Add command line args for passing sysfs
>node path
>+
>+   * pass -f <sysfs path> and/or -b <bd address>
>+   * re-mapped DEFINEs to strings
>+      * minimal code changes for minimal instrusion
>+      * could be rewritten for cleaner implementation in the
>future
>+   * default path (no args) remains the same
>+   * users passing bd address via uim <addr> will need to add -b
>+
>+Signed-off-by: Roger Monk <[email protected]>
>+---
>+ uim.c |   61
>+++++++++++++++++++++++++++++++++++++++++++++++++++++--------
>+ uim.h |   10 +++++-----
>+ 2 files changed, 58 insertions(+), 13 deletions(-)
>+
>+diff --git a/uim.c b/uim.c
>+index 3775dda..4dfdbd7 100644
>+--- a/uim.c
>++++ b/uim.c
>+@@ -38,6 +38,11 @@ static int exiting;
>+ static int line_discipline;
>+ static int dev_fd;
>+
>++static char install_sysfs_entry[48];
>++static char dev_name_sysfs[48];
>++static char baud_rate_sysfs[48];
>++static char flow_cntrl_sysfs[48];
>++
>+ /* BD address as string and a pointer to array of hex bytes */
>+ char uim_bd_address[BD_ADDR_LEN];
>+ bdaddr_t *bd_addr;
>+@@ -455,9 +460,17 @@ bdaddr_t *strtoba(const char *str)
>+         return (bdaddr_t *) ba;
>+ }
>+
>++void usage(void)
>++{
>++     UIM_ERR("Invalid arguments");
>++     UIM_ERR("Usage: uim [ -f <path-to-sysfs-kim> ] [ -b <bd
>address XX:XX:XX:XX:XX:XX> ]");
>++}
>++
>+
>/*****************************************************************
>************/
>+ int main(int argc, char *argv[])
>+ {
>++     int opt;
>++     char *arg_kim_path = NULL, *arg_bd_addr = NULL, *temp_path =
>KIM_SYSFS_BASE;
>+      int st_fd, err;
>+      unsigned char install;
>+      struct pollfd   p;
>+@@ -466,18 +479,50 @@ int main(int argc, char *argv[])
>+      err = 0;
>+
>+      /* Parse the user input */
>+-     if ((argc > 2)) {
>+-             UIM_ERR("Invalid arguements");
>+-             UIM_ERR("Usage: uim <bd address>");
>+-             return -1;
>++     while ((opt = getopt (argc, argv, "f:b:")) != -1) {
>++             switch (opt) {
>++                     case 'f':
>++                             arg_kim_path = optarg;
>++                             break;
>++                     case 'b':
>++                             arg_bd_addr = optarg;
>++                             break;
>++                     default:
>++                             usage();
>++                             return -1;
>++             }
>++     }
>++
>++     if (arg_kim_path != NULL) {
>++             temp_path = arg_kim_path;
>++             if( strlen(temp_path) > (sizeof(install_sysfs_entry)-
>10) ) {
>++                     UIM_ERR("Path to sysfs node too long");
>++                     return -1;
>++             }
>+      }
>+-     if (argc == 2) {
>+-             if (strlen(argv[2]) != BD_ADDR_LEN) {
>+-                     UIM_ERR("Usage: uim XX:XX:XX:XX:XX:XX");
>++     strcpy(install_sysfs_entry, temp_path);
>++     strcpy(dev_name_sysfs, temp_path);
>++     strcpy(baud_rate_sysfs, temp_path);
>++     strcpy(flow_cntrl_sysfs, temp_path);
>++
>++     strcat(install_sysfs_entry, "/install");
>++     strcat(dev_name_sysfs, "/dev_name");
>++     strcat(baud_rate_sysfs, "/baud_rate");
>++     strcat(flow_cntrl_sysfs, "/flow_cntrl");
>++
>++     UIM_DBG("install = %s", install_sysfs_entry);
>++     UIM_DBG("dev_name = %s", dev_name_sysfs);
>++     UIM_DBG("baud_rate = %s", baud_rate_sysfs);
>++     UIM_DBG("flow_cntrl = %s", flow_cntrl_sysfs);
>++
>++     if (arg_bd_addr != NULL) {
>++             if (strlen(arg_bd_addr) != BD_ADDR_LEN) {
>++                     usage();
>+                      return -1;
>+              }
>++             UIM_DBG("Address = %s", arg_bd_addr);
>+              /* BD address passed as string in xx:xx:xx:xx:xx:xx
>format */
>+-             strncpy(uim_bd_address, argv[2],
>sizeof(uim_bd_address));
>++             strncpy(uim_bd_address, arg_bd_addr,
>sizeof(uim_bd_address));
>+              bd_addr = strtoba(uim_bd_address);
>+      }
>+
>+diff --git a/uim.h b/uim.h
>+index a8ef699..32a8fe0 100644
>+--- a/uim.h
>++++ b/uim.h
>+@@ -65,11 +65,11 @@
>+ /* the sysfs entries with device configuration set by
>+  * shared transport driver
>+  */
>+-#define INSTALL_SYSFS_ENTRY "/sys/devices/platform/kim/install"
>+-#define DEV_NAME_SYSFS "/sys/devices/platform/kim/dev_name"
>+-#define BAUD_RATE_SYSFS "/sys/devices/platform/kim/baud_rate"
>+-#define FLOW_CTRL_SYSFS "/sys/devices/platform/kim/flow_cntrl"
>+-
>++#define KIM_SYSFS_BASE               "/sys/devices/platform/kim"
>++#define INSTALL_SYSFS_ENTRY  install_sysfs_entry
>++#define DEV_NAME_SYSFS               dev_name_sysfs
>++#define BAUD_RATE_SYSFS              baud_rate_sysfs
>++#define FLOW_CTRL_SYSFS              flow_cntrl_sysfs
>+
>+ #define VERBOSE
>+ /*Debug logs*/
>+--
>+1.7.9.5
>+
>diff --git a/meta-arago-extras/recipes-connectivity/uim/files/uim-
>sysfs b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
>new file mode 100755
>index 0000000..44b95c6
>--- /dev/null
>+++ b/meta-arago-extras/recipes-connectivity/uim/files/uim-sysfs
>@@ -0,0 +1,34 @@
>+#! /bin/sh
>+
>+NODE=`cd /sys; find . | grep kim | grep install`
>+if [ $NODE ]
>+then
>+    echo UIM SYSFS Node Found at /sys/$NODE
>+else
>+    echo UIM SYSFS Node Not Found
>+    exit 0
>+fi
>+
>+uim="/usr/bin/uim"
>+uim_args="-f `dirname /sys/$NODE`"
>+
>+test -x "$uim" || exit 0
>+
>+case "$1" in
>+  start)
>+    echo -n "Starting uim-sysfs daemon"
>+    start-stop-daemon --start --quiet --pidfile /var/run/uim.pid
>--make-pidfile --exec $uim -- $uim_args &
>+    echo "."
>+    ;;
>+  stop)
>+    echo -n "Stopping uim-sysfs daemon"
>+    start-stop-daemon --stop --quiet --pidfile /var/run/uim.pid
>+    echo "."
>+    ;;
>+  *)
>+    echo "Usage: /etc/init.d/uim-sysfs.sh {start|stop}"
>+    exit 1
>+esac
>+
>+exit 0
>+
>diff --git a/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
>b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
>new file mode 100644
>index 0000000..7f3203f
>--- /dev/null
>+++ b/meta-arago-extras/recipes-connectivity/uim/uim_git.bb
>@@ -0,0 +1,28 @@
>+DESCRIPTION = "Shared Transport Line Discipline User Mode
>initialisation Manager Daemon"
>+LICENSE = "GPLv2"
>+LIC_FILES_CHKSUM =
>"file://uim.c;beginline=1;endline=18;md5=9f0bbfbc10c67689e81a523e2
>976c31e"
>+
>+COMPATIBLE_MACHINE = "(omap-a15)"
>+
>+PR ="r1"
>+PR_append = "+gitr${SRCPV}"

Why not combine these lines?

>+
>+SRCREV = "c73894456df5def97111cb33d2106b684b8b7959"
>+SRC_URI = "git://gitorious.org/uim/uim.git \
>+           file://0001-uim-Add-command-line-args-for-passing-
>sysfs-node-pat.patch \
>+           file://uim-sysfs \
>+"
>+
>+S = "${WORKDIR}/git"
>+
>+EXTRA_OEMAKE = "CC=${TARGET_PREFIX}gcc"
>+
>+do_install() {
>+        install -d ${D}${bindir}
>+        install -m 0755 uim ${D}${bindir}
>+        install -d ${D}${sysconfdir}/init.d
>+        install -m 0755 ${WORKDIR}/uim-sysfs
>${D}${sysconfdir}/init.d
>+        install -d ${D}${sysconfdir}/rcS.d
>+        ln -sf  ../init.d/uim-sysfs
>${D}${sysconfdir}/rcS.d/S03uim-sysfs
>+}
>+
>--
>1.7.9.5
>
>_______________________________________________
>meta-arago mailing list
>[email protected]
>http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to