%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.149 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-4.4.0-210/arch/mn10300/include/asm/ |
Upload File : |
/* MN10300 SMP support * * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) * * Modified by Matsushita Electric Industrial Co., Ltd. * Modifications: * 13-Nov-2006 MEI Define IPI-IRQ number and add inline/macro function * for SMP support. * 22-Jan-2007 MEI Add the define related to SMP_BOOT_IRQ. * 23-Feb-2007 MEI Add the define related to SMP icahce invalidate. * 23-Jun-2008 MEI Delete INTC_IPI. * 22-Jul-2008 MEI Add smp_nmi_call_function and related defines. * 04-Aug-2008 MEI Delete USE_DOIRQ_CACHE_IPI. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public Licence * as published by the Free Software Foundation; either version * 2 of the Licence, or (at your option) any later version. */ #ifndef _ASM_SMP_H #define _ASM_SMP_H #ifndef __ASSEMBLY__ #include <linux/threads.h> #include <linux/cpumask.h> #include <linux/thread_info.h> #endif #ifdef CONFIG_SMP #include <proc/smp-regs.h> #define RESCHEDULE_IPI 63 #define CALL_FUNC_SINGLE_IPI 192 #define LOCAL_TIMER_IPI 193 #define FLUSH_CACHE_IPI 194 #define CALL_FUNCTION_NMI_IPI 195 #define DEBUGGER_NMI_IPI 196 #define SMP_BOOT_IRQ 195 #define RESCHEDULE_GxICR_LV GxICR_LEVEL_6 #define CALL_FUNCTION_GxICR_LV GxICR_LEVEL_4 #define LOCAL_TIMER_GxICR_LV GxICR_LEVEL_4 #define FLUSH_CACHE_GxICR_LV GxICR_LEVEL_0 #define SMP_BOOT_GxICR_LV GxICR_LEVEL_0 #define DEBUGGER_GxICR_LV CONFIG_DEBUGGER_IRQ_LEVEL #define TIME_OUT_COUNT_BOOT_IPI 100 #define DELAY_TIME_BOOT_IPI 75000 #ifndef __ASSEMBLY__ /** * raw_smp_processor_id - Determine the raw CPU ID of the CPU running it * * What we really want to do is to use the CPUID hardware CPU register to get * this information, but accesses to that aren't cached, and run at system bus * speed, not CPU speed. A copy of this value is, however, stored in the * thread_info struct, and that can be cached. * * An alternate way of dealing with this could be to use the EPSW.S bits to * cache this information for systems with up to four CPUs. */ #define arch_smp_processor_id() (CPUID) #if 0 #define raw_smp_processor_id() (arch_smp_processor_id()) #else #define raw_smp_processor_id() (current_thread_info()->cpu) #endif static inline int cpu_logical_map(int cpu) { return cpu; } static inline int cpu_number_map(int cpu) { return cpu; } extern cpumask_t cpu_boot_map; extern void smp_init_cpus(void); extern void smp_cache_interrupt(void); extern void send_IPI_allbutself(int irq); extern int smp_nmi_call_function(void (*func)(void *), void *info, int wait); extern void arch_send_call_function_single_ipi(int cpu); extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); #ifdef CONFIG_HOTPLUG_CPU extern int __cpu_disable(void); extern void __cpu_die(unsigned int cpu); #endif /* CONFIG_HOTPLUG_CPU */ #endif /* __ASSEMBLY__ */ #else /* CONFIG_SMP */ #ifndef __ASSEMBLY__ static inline void smp_init_cpus(void) {} #define raw_smp_processor_id() 0 #endif /* __ASSEMBLY__ */ #endif /* CONFIG_SMP */ #endif /* _ASM_SMP_H */