Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 1a595394b241504ff370a8d12ebfcea7 > files > 1336

kernel-doc-3.11.10-100.fc18.noarch.rpm

<?xml version="1.0" encoding="ANSI_X3.4-1968" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968" /><title>printk</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1" /><link rel="home" href="index.html" title="Linux Device Drivers" /><link rel="up" href="ch01s09.html" title="Kernel utility functions" /><link rel="prev" href="API-container-of.html" title="container_of" /><link rel="next" href="API-console-lock.html" title="console_lock" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">printk</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-container-of.html">Prev</a>&#160;</td><th width="60%" align="center">Kernel utility functions</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-console-lock.html">Next</a></td></tr></table><hr /></div><div class="refentry"><a id="API-printk"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>printk &#8212; 
  print a kernel message
 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <strong class="fsfunc">printk </strong>(</code></td><td>const char * <var class="pdparam">fmt</var>, </td></tr><tr><td>&#160;</td><td> <var class="pdparam">...</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a id="idm140404966128464"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>fmt</code></em></span></dt><dd><p>
     format string
    </p></dd><dt><span class="term"><em class="parameter"><code>...</code></em></span></dt><dd><p>
     variable arguments
    </p></dd></dl></div></div><div class="refsect1"><a id="idm140404966123312"></a><h2>Description</h2><p>
   This is <code class="function">printk</code>. It can be called from any context. We want it to work.
   </p><p>

   We try to grab the console_lock. If we succeed, it's easy - we log the
   output and call the console drivers.  If we fail to get the semaphore, we
   place the output into the log buffer and return. The current holder of
   the console_sem will notice the new output in <code class="function">console_unlock</code>; and will
   send it to the consoles before releasing the lock.
   </p><p>

   One effect of this deferred printing is that code which calls <code class="function">printk</code> and
   then changes console_loglevel may break. This is because console_loglevel
   is inspected when the actual printing occurs.
</p></div><div class="refsect1"><a id="idm140404966118848"></a><h2>See also</h2><p>
   printf(3)
   </p><p>

   See the <code class="function">vsnprintf</code> documentation for format string extensions over C99.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-container-of.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch01s09.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-console-lock.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">container_of</span>&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">console_lock</span></td></tr></table></div></body></html>