summaryrefslogtreecommitdiffstats
path: root/runtime/docs/html/copy_8c-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/docs/html/copy_8c-source.html')
-rw-r--r--runtime/docs/html/copy_8c-source.html111
1 files changed, 111 insertions, 0 deletions
diff --git a/runtime/docs/html/copy_8c-source.html b/runtime/docs/html/copy_8c-source.html
new file mode 100644
index 00000000..2e21314c
--- /dev/null
+++ b/runtime/docs/html/copy_8c-source.html
@@ -0,0 +1,111 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>SystemTap: SystemTap Runtime Library</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<div class="qindex"><a class="qindex" href="index.html">Intro</a> | <a class="qindex" href="globals_func.html">Functions</a> | <a class="qindex" href="globals_defs.html">Defines</a> | <a class="qindex" href="globals_enum.html">Enumerations</a> | <a class="qindex" href="globals_eval.html">Enumeration Values</a></div>
+
+<!-- Generated by Doxygen 1.3.9.1 -->
+<h1>copy.c</h1><a href="copy_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="keywordtype">long</span> <a class="code" href="copy_8c.html#a0">_stp_strncpy_from_user</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> __user *src, <span class="keywordtype">long</span> count);
+00002 <span class="comment">//static long __stp_strncpy_from_user(char *dst, const char __user *src, long count);</span>
+00003
+00004 <span class="preprocessor">#if defined (__i386__)</span>
+00005 <span class="preprocessor"></span><span class="preprocessor">#define __stp_strncpy_from_user(dst,src,count,res) \</span>
+00006 <span class="preprocessor">do { \</span>
+00007 <span class="preprocessor"> int __d0, __d1, __d2; \</span>
+00008 <span class="preprocessor"> __asm__ __volatile__( \</span>
+00009 <span class="preprocessor"> " testl %1,%1\n" \</span>
+00010 <span class="preprocessor"> " jz 2f\n" \</span>
+00011 <span class="preprocessor"> "0: lodsb\n" \</span>
+00012 <span class="preprocessor"> " stosb\n" \</span>
+00013 <span class="preprocessor"> " testb %%al,%%al\n" \</span>
+00014 <span class="preprocessor"> " jz 1f\n" \</span>
+00015 <span class="preprocessor"> " decl %1\n" \</span>
+00016 <span class="preprocessor"> " jnz 0b\n" \</span>
+00017 <span class="preprocessor"> "1: subl %1,%0\n" \</span>
+00018 <span class="preprocessor"> "2:\n" \</span>
+00019 <span class="preprocessor"> ".section .fixup,\"ax\"\n" \</span>
+00020 <span class="preprocessor"> "3: movl %5,%0\n" \</span>
+00021 <span class="preprocessor"> " jmp 2b\n" \</span>
+00022 <span class="preprocessor"> ".previous\n" \</span>
+00023 <span class="preprocessor"> ".section __ex_table,\"a\"\n" \</span>
+00024 <span class="preprocessor"> " .align 4\n" \</span>
+00025 <span class="preprocessor"> " .long 0b,3b\n" \</span>
+00026 <span class="preprocessor"> ".previous" \</span>
+00027 <span class="preprocessor"> : "=d"(res), "=c"(count), "=&amp;a" (__d0), "=&amp;S" (__d1), \</span>
+00028 <span class="preprocessor"> "=&amp;D" (__d2) \</span>
+00029 <span class="preprocessor"> : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \</span>
+00030 <span class="preprocessor"> : "memory"); \</span>
+00031 <span class="preprocessor">} while (0)</span>
+00032 <span class="preprocessor"></span><span class="preprocessor">#elif defined (__x86_64__)</span>
+00033 <span class="preprocessor"></span><span class="preprocessor">#define __stp_strncpy_from_user(dst,src,count,res) \</span>
+00034 <span class="preprocessor">do { \</span>
+00035 <span class="preprocessor"> long __d0, __d1, __d2; \</span>
+00036 <span class="preprocessor"> __asm__ __volatile__( \</span>
+00037 <span class="preprocessor"> " testq %1,%1\n" \</span>
+00038 <span class="preprocessor"> " jz 2f\n" \</span>
+00039 <span class="preprocessor"> "0: lodsb\n" \</span>
+00040 <span class="preprocessor"> " stosb\n" \</span>
+00041 <span class="preprocessor"> " testb %%al,%%al\n" \</span>
+00042 <span class="preprocessor"> " jz 1f\n" \</span>
+00043 <span class="preprocessor"> " decq %1\n" \</span>
+00044 <span class="preprocessor"> " jnz 0b\n" \</span>
+00045 <span class="preprocessor"> "1: subq %1,%0\n" \</span>
+00046 <span class="preprocessor"> "2:\n" \</span>
+00047 <span class="preprocessor"> ".section .fixup,\"ax\"\n" \</span>
+00048 <span class="preprocessor"> "3: movq %5,%0\n" \</span>
+00049 <span class="preprocessor"> " jmp 2b\n" \</span>
+00050 <span class="preprocessor"> ".previous\n" \</span>
+00051 <span class="preprocessor"> ".section __ex_table,\"a\"\n" \</span>
+00052 <span class="preprocessor"> " .align 8\n" \</span>
+00053 <span class="preprocessor"> " .quad 0b,3b\n" \</span>
+00054 <span class="preprocessor"> ".previous" \</span>
+00055 <span class="preprocessor"> : "=r"(res), "=c"(count), "=&amp;a" (__d0), "=&amp;S" (__d1), \</span>
+00056 <span class="preprocessor"> "=&amp;D" (__d2) \</span>
+00057 <span class="preprocessor"> : "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \</span>
+00058 <span class="preprocessor"> : "memory"); \</span>
+00059 <span class="preprocessor">} while (0)</span>
+00060 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+00061 <span class="preprocessor"></span>
+00078 <span class="keywordtype">long</span>
+<a name="l00079"></a><a class="code" href="copy_8c.html#a0">00079</a> <a class="code" href="copy_8c.html#a0">_stp_strncpy_from_user</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> __user *src, <span class="keywordtype">long</span> count)
+00080 {
+00081 <span class="keywordtype">long</span> res;
+00082 __stp_strncpy_from_user(dst, src, count, res);
+00083 <span class="keywordflow">return</span> res;
+00084 }
+00085
+00099 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keyword">inline</span>
+<a name="l00100"></a><a class="code" href="copy_8c.html#a1">00100</a> <a class="code" href="copy_8c.html#a1">_stp_copy_from_user</a> (<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> __user *src, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> count)
+00101 {
+00102 <span class="keywordflow">return</span> __copy_from_user_inatomic(dst, src, count);
+00103 }
+00104
+<a name="l00115"></a><a class="code" href="copy_8c.html#a2">00115</a> <span class="keywordtype">int</span> <a class="code" href="copy_8c.html#a2">_stp_copy_argv_from_user</a> (<a class="code" href="structmap__root.html">MAP</a> list, <span class="keywordtype">char</span> __user *__user *argv)
+00116 {
+00117 <span class="keywordtype">char</span> str[128];
+00118 <span class="keywordtype">char</span> __user *vstr;
+00119 <span class="keywordtype">int</span> len;
+00120
+00121 <span class="keywordflow">if</span> (argv)
+00122 argv++;
+00123
+00124 <span class="keywordflow">while</span> (argv != NULL) {
+00125 <span class="keywordflow">if</span> (get_user (vstr, argv))
+00126 <span class="keywordflow">break</span>;
+00127
+00128 <span class="keywordflow">if</span> (vstr == NULL)
+00129 <span class="keywordflow">break</span>;
+00130
+00131 len = <a class="code" href="copy_8c.html#a0">_stp_strncpy_from_user</a>(str, vstr, 128);
+00132 str[len] = 0;
+00133 <a class="code" href="map_8c.html#a25">_stp_list_add_str</a> (list, str);
+00134 argv++;
+00135 }
+00136 <span class="keywordflow">return</span> list-&gt;<a class="code" href="structmap__root.html#o1">num</a>;
+00137 }
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Mar 9 13:21:28 2005 for SystemTap by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>