1 #include <xen/mm.h> 2 #include <asm/system.h> 3 #include <asm/smp.h> 4 #include <asm/page.h> 5 #include <asm/gic.h> 6 #include <asm/flushtlb.h> 7 arch_flush_tlb_mask(const cpumask_t * mask)8void arch_flush_tlb_mask(const cpumask_t *mask) 9 { 10 /* No need to IPI other processors on ARM, the processor takes care of it. */ 11 flush_all_guests_tlb(); 12 } 13 smp_send_event_check_mask(const cpumask_t * mask)14void smp_send_event_check_mask(const cpumask_t *mask) 15 { 16 send_SGI_mask(mask, GIC_SGI_EVENT_CHECK); 17 } 18 smp_send_call_function_mask(const cpumask_t * mask)19void smp_send_call_function_mask(const cpumask_t *mask) 20 { 21 cpumask_t target_mask; 22 23 cpumask_andnot(&target_mask, mask, cpumask_of(smp_processor_id())); 24 25 send_SGI_mask(&target_mask, GIC_SGI_CALL_FUNCTION); 26 27 if ( cpumask_test_cpu(smp_processor_id(), mask) ) 28 { 29 local_irq_disable(); 30 smp_call_function_interrupt(); 31 local_irq_enable(); 32 } 33 } 34 35 /* 36 * Local variables: 37 * mode: C 38 * c-file-style: "BSD" 39 * c-basic-offset: 4 40 * indent-tabs-mode: nil 41 * End: 42 */ 43