<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >smp_processor_id()/cpu_[number/logical]_map() include/asm/smp.h</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="Unreliable Guide To Hacking The Linux Kernel" HREF="book1.html"><LINK REL="UP" TITLE="Common Routines" HREF="c141.html"><LINK REL="PREVIOUS" TITLE="local_bh_disable()/local_bh_enable() include/asm/softirq.h" HREF="x260.html"><LINK REL="NEXT" TITLE="__init/__exit/__initdata include/linux/init.h" HREF="x277.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Unreliable Guide To Hacking The Linux Kernel</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x260.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Common Routines</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="x277.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="ROUTINES-PROCESSORIDS" ></A ><TT CLASS="FUNCTION" >smp_processor_id</TT >()/<TT CLASS="FUNCTION" >cpu_[number/logical]_map()</TT > <TT CLASS="FILENAME" >include/asm/smp.h</TT ></H1 ><P > <TT CLASS="FUNCTION" >smp_processor_id()</TT > returns the current processor number, between 0 and <SPAN CLASS="SYMBOL" >NR_CPUS</SPAN > (the maximum number of CPUs supported by Linux, currently 32). These values are not necessarily continuous: to get a number between 0 and <TT CLASS="FUNCTION" >smp_num_cpus()</TT > (the number of actual processors in this machine), the <TT CLASS="FUNCTION" >cpu_number_map()</TT > function is used to map the processor id to a logical number. <TT CLASS="FUNCTION" >cpu_logical_map()</TT > does the reverse. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x260.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x277.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><TT CLASS="FUNCTION" >local_bh_disable()</TT >/<TT CLASS="FUNCTION" >local_bh_enable()</TT > <TT CLASS="FILENAME" >include/asm/softirq.h</TT ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c141.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><SPAN CLASS="TYPE" >__init</SPAN >/<SPAN CLASS="TYPE" >__exit</SPAN >/<SPAN CLASS="TYPE" >__initdata</SPAN > <TT CLASS="FILENAME" >include/linux/init.h</TT ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >