summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2005-08-30 00:27:35 +0000
committerhunt <hunt>2005-08-30 00:27:35 +0000
commit55a030a179fdfd1e887d95d5c0050004bee27fcf (patch)
treeb77687481aa40fb2fcced58bbf63f66c7a27b050
parent10fcd0060d7b88bbf0503f85ecaf8c8660abeaaf (diff)
downloadsystemtap-steved-55a030a179fdfd1e887d95d5c0050004bee27fcf.tar.gz
systemtap-steved-55a030a179fdfd1e887d95d5c0050004bee27fcf.tar.xz
systemtap-steved-55a030a179fdfd1e887d95d5c0050004bee27fcf.zip
2005-08-29 Martin Hunt <hunt@redhat.com>
* list.c (_stp_copy_argv_from_user): Move to here. * copy.c (_stp_copy_argv_from_user): Delete. * runtime.h: Always include copy.h.
-rw-r--r--runtime/ChangeLog6
-rw-r--r--runtime/copy.c33
-rw-r--r--runtime/list.c36
-rw-r--r--runtime/runtime.h1
4 files changed, 43 insertions, 33 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog
index 014ba13b..727862b4 100644
--- a/runtime/ChangeLog
+++ b/runtime/ChangeLog
@@ -1,3 +1,9 @@
+2005-08-29 Martin Hunt <hunt@redhat.com>
+
+ * list.c (_stp_copy_argv_from_user): Move to here.
+ * copy.c (_stp_copy_argv_from_user): Delete.
+ * runtime.h: Always include copy.h.
+
2005-08-25 Roland McGrath <roland@redhat.com>
* loc2c-runtime.h (deref_string): Rewritten using deref.
diff --git a/runtime/copy.c b/runtime/copy.c
index ef5f094d..71f69335 100644
--- a/runtime/copy.c
+++ b/runtime/copy.c
@@ -141,38 +141,5 @@ _stp_copy_from_user (char *dst, const char __user *src, unsigned long count)
return __copy_from_user_inatomic(dst, src, count);
}
-/** Copy an argv from user space to a List.
- *
- * @param list A list.
- * @param argv Source argv, in user space.
- * @return number of elements in <i>list</i>
- *
- * @b Example:
- * @include argv.c
- */
-
-int _stp_copy_argv_from_user (MAP list, char __user *__user *argv)
-{
- char str[128];
- char __user *vstr;
- int len;
-
- if (argv)
- argv++;
-
- while (argv != NULL) {
- if (get_user (vstr, argv))
- break;
-
- if (vstr == NULL)
- break;
-
- len = _stp_strncpy_from_user(str, vstr, 128);
- str[len] = 0;
- _stp_list_add_str (list, str);
- argv++;
- }
- return list->num;
-}
/** @} */
#endif /* _COPY_C_ */
diff --git a/runtime/list.c b/runtime/list.c
index 4643634b..c504ed36 100644
--- a/runtime/list.c
+++ b/runtime/list.c
@@ -10,6 +10,7 @@
#endif
#include "map.c"
+#include "copy.c"
/********************** List Functions *********************/
/** @file list.c
@@ -123,5 +124,40 @@ inline int _stp_list_size(MAP map)
{
return map->num;
}
+
+/** Copy an argv from user space to a List.
+ *
+ * @param list A list.
+ * @param argv Source argv, in user space.
+ * @return number of elements in <i>list</i>
+ *
+ * @b Example:
+ * @include argv.c
+ */
+
+int _stp_copy_argv_from_user (MAP list, char __user *__user *argv)
+{
+ char str[128];
+ char __user *vstr;
+ int len;
+
+ if (argv)
+ argv++;
+
+ while (argv != NULL) {
+ if (get_user (vstr, argv))
+ break;
+
+ if (vstr == NULL)
+ break;
+
+ len = _stp_strncpy_from_user(str, vstr, 128);
+ str[len] = 0;
+ _stp_list_add_str (list, str);
+ argv++;
+ }
+ return list->num;
+}
+
/** @} */
#endif /* _LIST_C_ */
diff --git a/runtime/runtime.h b/runtime/runtime.h
index 44873ee9..5e77505b 100644
--- a/runtime/runtime.h
+++ b/runtime/runtime.h
@@ -59,6 +59,7 @@ static struct
#include "print.c"
#include "string.c"
#include "arith.c"
+#include "copy.c"
/************* Module Stuff ********************/
int probe_start(void);