smp.h 983 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * include/asm-sh/smp.h
  3. *
  4. * Copyright (C) 2002, 2003 Paul Mundt
  5. *
  6. * This file is subject to the terms and conditions of the GNU General Public
  7. * License. See the file "COPYING" in the main directory of this archive for
  8. * more details.
  9. */
  10. #ifndef __ASM_SH_SMP_H
  11. #define __ASM_SH_SMP_H
  12. #include <linux/bitops.h>
  13. #include <linux/cpumask.h>
  14. #ifdef CONFIG_SMP
  15. #include <asm/spinlock.h>
  16. #include <asm/atomic.h>
  17. #include <asm/current.h>
  18. extern cpumask_t cpu_online_map;
  19. extern cpumask_t cpu_possible_map;
  20. #define cpu_online(cpu) cpu_isset(cpu, cpu_online_map)
  21. #define raw_smp_processor_id() (current_thread_info()->cpu)
  22. /* I've no idea what the real meaning of this is */
  23. #define PROC_CHANGE_PENALTY 20
  24. #define NO_PROC_ID (-1)
  25. struct smp_fn_call_struct {
  26. spinlock_t lock;
  27. atomic_t finished;
  28. void (*fn)(void *);
  29. void *data;
  30. };
  31. extern struct smp_fn_call_struct smp_fn_call;
  32. #define SMP_MSG_RESCHEDULE 0x0001
  33. #endif /* CONFIG_SMP */
  34. #endif /* __ASM_SH_SMP_H */