~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/smp.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef __LINUX_SMP_H
  2 #define __LINUX_SMP_H
  3 
  4 /*
  5  *      Generic SMP support
  6  *              Alan Cox. <alan@redhat.com>
  7  */
  8 
  9 #include <linux/config.h>
 10 
 11 #ifdef CONFIG_SMP
 12 
 13 #include <linux/kernel.h>
 14 #include <asm/smp.h>
 15 
 16 /*
 17  * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc.
 18  * (defined in asm header):
 19  */ 
 20 
 21 /*
 22  * stops all CPUs but the current one:
 23  */
 24 extern void smp_send_stop(void);
 25 
 26 /*
 27  * sends a 'reschedule' event to another CPU:
 28  */
 29 extern void FASTCALL(smp_send_reschedule(int cpu));
 30 
 31 
 32 /*
 33  * Boot processor call to load the other CPU's
 34  */
 35 extern void smp_boot_cpus(void);
 36 
 37 /*
 38  * Processor call in. Must hold processors until ..
 39  */
 40 extern void smp_callin(void);
 41 
 42 /*
 43  * Multiprocessors may now schedule
 44  */
 45 extern void smp_commence(void);
 46 
 47 /*
 48  * Call a function on all other processors
 49  */
 50 extern int smp_call_function (void (*func) (void *info), void *info,
 51                               int retry, int wait);
 52 
 53 /*
 54  * True once the per process idle is forked
 55  */
 56 extern int smp_threads_ready;
 57 
 58 extern int smp_num_cpus;
 59 
 60 extern volatile unsigned long smp_msg_data;
 61 extern volatile int smp_src_cpu;
 62 extern volatile int smp_msg_id;
 63 
 64 #define MSG_ALL_BUT_SELF        0x8000  /* Assume <32768 CPU's */
 65 #define MSG_ALL                 0x8001
 66 
 67 #define MSG_INVALIDATE_TLB      0x0001  /* Remote processor TLB invalidate */
 68 #define MSG_STOP_CPU            0x0002  /* Sent to shut down slave CPU's
 69                                          * when rebooting
 70                                          */
 71 #define MSG_RESCHEDULE          0x0003  /* Reschedule request from master CPU*/
 72 #define MSG_CALL_FUNCTION       0x0004  /* Call function on all other CPUs */
 73 
 74 #else
 75 
 76 /*
 77  *      These macros fold the SMP functionality into a single CPU system
 78  */
 79  
 80 #define smp_num_cpus                            1
 81 #define smp_processor_id()                      0
 82 #define hard_smp_processor_id()                 0
 83 #define smp_threads_ready                       1
 84 #define kernel_lock()
 85 #define cpu_logical_map(cpu)                    0
 86 #define cpu_number_map(cpu)                     0
 87 #define smp_call_function(func,info,retry,wait) ({ 0; })
 88 #define cpu_online_map                          1
 89 
 90 #endif
 91 #endif
 92 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.