Changeset b994a60 in mainline for arch/ia64/include
- Timestamp:
- 2006-03-09T12:44:27Z (20 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 901122b
- Parents:
- cd373bb
- Location:
- arch/ia64/include
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/include/asm.h
rcd373bb rb994a60 49 49 } 50 50 51 /** Return Processor State Register. 52 * 53 * @return PSR. 54 */ 55 static inline __u64 psr_read(void) 56 { 57 __u64 v; 58 59 __asm__ volatile ("mov %0 = psr\n" : "=r" (v)); 60 61 return v; 62 } 63 51 64 /** Read IVA (Interruption Vector Address). 52 65 * … … 233 246 static inline ipl_t interrupts_read(void) 234 247 { 235 __u64 v; 236 237 __asm__ volatile ("mov %0 = psr\n" : "=r" (v)); 238 239 return (ipl_t) v; 248 return (ipl_t) psr_read(); 240 249 } 241 250 … … 250 259 extern void asm_delay_loop(__u32 t); 251 260 261 extern void switch_to_userspace(__address entry, __address sp, __address bsp, __u64 ipsr, __u64 rsc); 262 252 263 #endif -
arch/ia64/include/context.h
rcd373bb rb994a60 31 31 32 32 #include <arch/types.h> 33 #include <arch/register.h> 33 34 #include <typedefs.h> 34 35 #include <align.h> … … 42 43 */ 43 44 #define SP_DELTA (0+ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 44 45 #define PFM_MASK (~0x3fffffffff)46 45 47 46 #ifdef context_set -
arch/ia64/include/mm/as.h
rcd373bb rb994a60 32 32 #include <arch/types.h> 33 33 34 #define KERNEL_ADDRESS_SPACE_START_ARCH (__address) 0x 800000000000000035 #define KERNEL_ADDRESS_SPACE_END_ARCH (__address) 0xffffffffffffffff 36 #define USER_ADDRESS_SPACE_START_ARCH (__address) 0x0000000000000000 37 #define USER_ADDRESS_SPACE_END_ARCH (__address) 0x 7fffffffffffffff34 #define KERNEL_ADDRESS_SPACE_START_ARCH (__address) 0xe000000000000000ULL 35 #define KERNEL_ADDRESS_SPACE_END_ARCH (__address) 0xffffffffffffffffULL 36 #define USER_ADDRESS_SPACE_START_ARCH (__address) 0x0000000000000000ULL 37 #define USER_ADDRESS_SPACE_END_ARCH (__address) 0xdfffffffffffffffULL 38 38 39 #define UTEXT_ADDRESS_ARCH 0x00000000000 0100040 #define USTACK_ADDRESS_ARCH (0x7fffffffffffffff-(PAGE_SIZE-1))41 #define UDATA_ADDRESS_ARCH 0x00000000010 0100039 #define UTEXT_ADDRESS_ARCH 0x0000000000010000ULL 40 #define USTACK_ADDRESS_ARCH 0x0000000ff0000000ULL 41 #define UDATA_ADDRESS_ARCH 0x0000000001010000ULL 42 42 43 43 extern void as_arch_init(void); -
arch/ia64/include/register.h
rcd373bb rb994a60 30 30 #define __ia64_REGISTER_H__ 31 31 32 #ifndef __ASM__33 #include <arch/types.h>34 #endif35 36 32 #define CR_IVR_MASK 0xf 37 33 #define PSR_IC_MASK 0x2000 … … 45 41 #define PSR_CPL_SHIFT 32 46 42 #define PSR_CPL_MASK_SHIFTED 3 43 44 #define PFM_MASK (~0x3fffffffff) 45 46 #define RSC_MODE_MASK 3 47 #define RSC_PL_MASK 12 47 48 48 49 /** Application registers. */ … … 121 122 122 123 #ifndef __ASM__ 124 125 #include <arch/types.h> 126 127 /** Processor Status Register. */ 128 union psr { 129 __u64 value; 130 struct { 131 unsigned : 1; 132 unsigned be : 1; /**< Big-Endian data accesses. */ 133 unsigned up : 1; /**< User Performance monitor enable. */ 134 unsigned ac : 1; /**< Alignment Check. */ 135 unsigned mfl : 1; /**< Lower floating-point register written. */ 136 unsigned mfh : 1; /**< Upper floating-point register written. */ 137 unsigned : 7; 138 unsigned ic : 1; /**< Interruption Collection. */ 139 unsigned i : 1; /**< Interrupt Bit. */ 140 unsigned pk : 1; /**< Protection Key enable. */ 141 unsigned : 1; 142 unsigned dt : 1; /**< Data address Translation. */ 143 unsigned dfl : 1; /**< Disabled Floating-point Low register set. */ 144 unsigned dfh : 1; /**< Disabled Floating-point High register set. */ 145 unsigned sp : 1; /**< Secure Performance monitors. */ 146 unsigned pp : 1; /**< Privileged Performance monitor enable. */ 147 unsigned di : 1; /**< Disable Instruction set transition. */ 148 unsigned si : 1; /**< Secure Interval timer. */ 149 unsigned db : 1; /**< Debug Breakpoint fault. */ 150 unsigned lp : 1; /**< Lower Privilege transfer trap. */ 151 unsigned tb : 1; /**< Taken Branch trap. */ 152 unsigned rt : 1; /**< Register Stack Translation. */ 153 unsigned : 4; 154 unsigned cpl : 2; /**< Current Privilege Level. */ 155 unsigned is : 1; /**< Instruction Set. */ 156 unsigned mc : 1; /**< Machine Check abort mask. */ 157 unsigned it : 1; /**< Instruction address Translation. */ 158 unsigned id : 1; /**< Instruction Debug fault disable. */ 159 unsigned da : 1; /**< Disable Data Access and Dirty-bit faults. */ 160 unsigned dd : 1; /**< Data Debug fault disable. */ 161 unsigned ss : 1; /**< Single Step enable. */ 162 unsigned ri : 2; /**< Restart Instruction. */ 163 unsigned ed : 1; /**< Exception Deferral. */ 164 unsigned bn : 1; /**< Register Bank. */ 165 unsigned ia : 1; /**< Disable Instruction Access-bit faults. */ 166 } __attribute__ ((packed)); 167 }; 168 typedef union psr psr_t; 169 170 /** Register Stack Configuration Register */ 171 union rsc { 172 __u64 value; 173 struct { 174 unsigned mode : 2; 175 unsigned pl : 2; /**< Privilege Level. */ 176 unsigned be : 1; /**< Big-endian. */ 177 unsigned : 11; 178 unsigned loadrs : 14; 179 } __attribute__ ((packed)); 180 }; 181 typedef union rsc rsc_t; 182 123 183 /** External Interrupt Vector Register */ 124 184 union cr_ivr {
Note:
See TracChangeset
for help on using the changeset viewer.
