diff options
Diffstat (limited to 'runtime/docs/html/io_8c-source.html')
-rw-r--r-- | runtime/docs/html/io_8c-source.html | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/runtime/docs/html/io_8c-source.html b/runtime/docs/html/io_8c-source.html index a152c946..246f36d8 100644 --- a/runtime/docs/html/io_8c-source.html +++ b/runtime/docs/html/io_8c-source.html @@ -1,13 +1,21 @@ <!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> +<title>SystemTap: io.c Source File</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.4.1 --> -<h1>io.c</h1><a href="io_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 -<a name="l00011"></a><a class="code" href="io_8c.html#a4">00011</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a4">dlog</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...) +<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a></div> +<h1>io.c</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">/** Logs data.</span> +00002 <span class="comment"> * This function is compatible with printk. In fact it currently</span> +00003 <span class="comment"> * sends all output to vprintk, after sending "STP: ". This allows</span> +00004 <span class="comment"> * us to easily detect SystemTap output in the log file.</span> +00005 <span class="comment"> *</span> +00006 <span class="comment"> * @param fmt A variable number of args.</span> +00007 <span class="comment"> * @bug Lines are limited in length by printk buffer.</span> +00008 <span class="comment"> * @todo Needs replaced with something much faster that does not</span> +00009 <span class="comment"> * use the system log.</span> +00010 <span class="comment"> */</span> +00011 <span class="keywordtype">void</span> dlog (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...) 00012 { 00013 va_list args; 00014 printk(<span class="stringliteral">"STP: "</span>); @@ -23,17 +31,17 @@ 00024 <span class="keywordtype">char</span> **modname, <span class="keywordtype">char</span> *namebuf)=(<span class="keywordtype">void</span> *)KALLSYMS_LOOKUP; 00025 00026 -<a name="l00027"></a><a class="code" href="io_8c.html#a0">00027</a> <span class="preprocessor">#define STP_BUF_LEN 8191</span> +00027 <span class="preprocessor">#define STP_BUF_LEN 8191</span> 00028 <span class="preprocessor"></span> 00029 <span class="comment">/* FIXME. These need to be per-cpu */</span> -00030 <span class="keyword">static</span> <span class="keywordtype">char</span> _stp_pbuf[<a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>+1]; -00031 <span class="keyword">static</span> <span class="keywordtype">int</span> _stp_pbuf_len = <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>; +00030 <span class="keyword">static</span> <span class="keywordtype">char</span> _stp_pbuf[STP_BUF_LEN+1]; +00031 <span class="keyword">static</span> <span class="keywordtype">int</span> _stp_pbuf_len = STP_BUF_LEN; 00032 -<a name="l00033"></a><a class="code" href="io_8c.html#a5">00033</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a5">_stp_print_buf</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...) +00033 <span class="keywordtype">void</span> _stp_print_buf (<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...) 00034 { 00035 <span class="keywordtype">int</span> num; 00036 va_list args; -00037 <span class="keywordtype">char</span> *buf = _stp_pbuf + <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a> - _stp_pbuf_len; +00037 <span class="keywordtype">char</span> *buf = _stp_pbuf + STP_BUF_LEN - _stp_pbuf_len; 00038 va_start(args, fmt); 00039 num = vscnprintf(buf, _stp_pbuf_len, fmt, args); 00040 va_end(args); @@ -41,13 +49,13 @@ 00042 _stp_pbuf_len -= num; 00043 } 00044 -<a name="l00045"></a><a class="code" href="io_8c.html#a6">00045</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a6">_stp_print_buf_init</a> (<span class="keywordtype">void</span>) +00045 <span class="keywordtype">void</span> _stp_print_buf_init (<span class="keywordtype">void</span>) 00046 { -00047 _stp_pbuf_len = <a class="code" href="io_8c.html#a0">STP_BUF_LEN</a>; +00047 _stp_pbuf_len = STP_BUF_LEN; 00048 _stp_pbuf[0] = 0; 00049 } 00050 -<a name="l00051"></a><a class="code" href="io_8c.html#a7">00051</a> <span class="keywordtype">void</span> <a class="code" href="io_8c.html#a7">_stp_print_symbol</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> address) +00051 <span class="keywordtype">void</span> _stp_print_symbol(<span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> address) 00052 { 00053 <span class="keywordtype">char</span> *modname; 00054 <span class="keyword">const</span> <span class="keywordtype">char</span> *name; @@ -57,18 +65,18 @@ 00058 name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf); 00059 00060 <span class="keywordflow">if</span> (!name) -00061 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"0x%lx"</span>, address); -00062 <span class="keywordflow">else</span> { +00061 _stp_print_buf("0x%lx", address); +00062 else { 00063 <span class="keywordflow">if</span> (modname) -00064 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"%s+%#lx/%#lx [%s]"</span>, name, offset, +00064 _stp_print_buf("%s+%#lx/%#lx [%s]", name, offset, 00065 size, modname); -00066 <span class="keywordflow">else</span> -00067 <a class="code" href="io_8c.html#a5">_stp_print_buf</a>(<span class="stringliteral">"%s+%#lx/%#lx"</span>, name, offset, size); +00066 else +00067 _stp_print_buf("%s+%#lx/%#lx", name, offset, size); 00068 } 00069 } 00070 00071 -<a name="l00072"></a><a class="code" href="io_8c.html#a8">00072</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="io_8c.html#a8">cur_ret_addr</a> (<span class="keyword">struct</span> pt_regs *regs) +00072 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> cur_ret_addr (struct pt_regs *regs) 00073 { 00074 <span class="preprocessor">#ifdef __x86_64__</span> 00075 <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *ra = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)regs->rsp; @@ -76,12 +84,10 @@ 00077 <span class="preprocessor"></span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *ra = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *)regs->esp; 00078 <span class="preprocessor">#endif</span> 00079 <span class="preprocessor"></span> <span class="keywordflow">if</span> (ra) -00080 <span class="keywordflow">return</span> *ra; -00081 <span class="keywordflow">else</span> -00082 <span class="keywordflow">return</span> 0; +00080 return *ra; +00081 else +00082 return 0; 00083 } -</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Mar 21 13:29:45 2005 for SystemTap by -<a href="http://www.doxygen.org/index.html"> -<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address> -</body> +</pre></div><hr size="1"><address style="align: right;"><small> +Generated on Tue Mar 22 00:32:02 2005 for SystemTap.</small></body> </html> |