diff options
Diffstat (limited to 'linux/arch/cris/include/arch-v10/arch/system.h')
-rw-r--r-- | linux/arch/cris/include/arch-v10/arch/system.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/linux/arch/cris/include/arch-v10/arch/system.h b/linux/arch/cris/include/arch-v10/arch/system.h new file mode 100644 index 00000000..9b5580f5 --- /dev/null +++ b/linux/arch/cris/include/arch-v10/arch/system.h @@ -0,0 +1,39 @@ +#ifndef __ASM_CRIS_ARCH_SYSTEM_H +#define __ASM_CRIS_ARCH_SYSTEM_H + + +/* read the CPU version register */ + +static inline unsigned long rdvr(void) { + unsigned char vr; + __asm__ volatile ("move $vr,%0" : "=rm" (vr)); + return vr; +} + +#define cris_machine_name "cris" + +/* read/write the user-mode stackpointer */ + +static inline unsigned long rdusp(void) { + unsigned long usp; + __asm__ __volatile__("move $usp,%0" : "=rm" (usp)); + return usp; +} + +#define wrusp(usp) \ + __asm__ __volatile__("move %0,$usp" : /* no outputs */ : "rm" (usp)) + +/* read the current stackpointer */ + +static inline unsigned long rdsp(void) { + unsigned long sp; + __asm__ __volatile__("move.d $sp,%0" : "=rm" (sp)); + return sp; +} + +static inline unsigned long _get_base(char * addr) +{ + return 0; +} + +#endif |