diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-08-01 16:36:55 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-08-09 23:02:43 +0200 |
commit | c6c998b000afa2a221de6dc02a82a36f5652ef06 (patch) | |
tree | bc1fe5e4c178af4d0a1693e50109a6557c96a822 /c/src/lib/libcpu/powerpc/shared | |
parent | score: Per-CPU thread dispatch disable level (diff) | |
download | rtems-c6c998b000afa2a221de6dc02a82a36f5652ef06.tar.bz2 |
bsps/powerpc: Per-CPU thread dispatch disable
Interrupt support for per-CPU thread dispatch disable level.
Diffstat (limited to 'c/src/lib/libcpu/powerpc/shared')
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h index 71567d5814..3994255080 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h +++ b/c/src/lib/libcpu/powerpc/shared/include/powerpc-utility.h @@ -8,12 +8,13 @@ */ /* - * Copyright (c) 2008, 2010, 2011 - * Embedded Brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * rtems@embedded-brains.de + * Copyright (c) 2008-2013 embedded brains GmbH. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> * * access function for Device Control Registers inspired by "ppc405common.h" * from Michael Hamel ADInstruments May 2008 @@ -893,6 +894,19 @@ void ppc_code_copy(void *dest, const void *src, size_t n); mtmsr \level .endm +.macro GET_SELF_CPU_CONTROL reg +#if defined(RTEMS_SMP) + /* Use Book E Processor ID Register (PIR) */ + mfspr \reg, 286 + slwi \reg, \reg, PER_CPU_CONTROL_SIZE_LOG2 + addis \reg, \reg, _Per_CPU_Information@ha + addi \reg, \reg, _Per_CPU_Information@l +#else + lis \reg, _Per_CPU_Information@h + ori \reg, \reg, _Per_CPU_Information@l +#endif +.endm + #define LINKER_SYMBOL(sym) .extern sym #endif /* ASM */ |