Commit | Line | Data |
---|---|---|
e5a2072b DG |
1 | #ifndef _PPC_BOOT_REG_H |
2 | #define _PPC_BOOT_REG_H | |
3 | /* | |
4 | * Copyright 2007 Davud Gibson, IBM Corporation. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU General Public License | |
8 | * as published by the Free Software Foundation; either version | |
9 | * 2 of the License, or (at your option) any later version. | |
10 | */ | |
11 | ||
12 | static inline u32 mfpvr(void) | |
13 | { | |
14 | u32 pvr; | |
15 | asm volatile ("mfpvr %0" : "=r"(pvr)); | |
16 | return pvr; | |
17 | } | |
18 | ||
ee41eea9 BH |
19 | #define __stringify_1(x) #x |
20 | #define __stringify(x) __stringify_1(x) | |
21 | ||
22 | #define mfspr(rn) ({unsigned long rval; \ | |
23 | asm volatile("mfspr %0," __stringify(rn) \ | |
24 | : "=r" (rval)); rval; }) | |
25 | #define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : : "r" (v)) | |
26 | ||
e5a2072b DG |
27 | register void *__stack_pointer asm("r1"); |
28 | #define get_sp() (__stack_pointer) | |
29 | ||
30 | #endif /* _PPC_BOOT_REG_H */ |