Changeset a35b458 in mainline for kernel/arch/riscv64/include
- Timestamp:
- 2018-03-02T20:10:49Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- Location:
- kernel/arch/riscv64/include/arch
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/riscv64/include/arch/asm.h
r3061bc1 ra35b458 45 45 { 46 46 ipl_t ipl; 47 47 48 48 asm volatile ( 49 49 "csrrsi %[ipl], sstatus, " STRING(SSTATUS_SIE_MASK) "\n" 50 50 : [ipl] "=r" (ipl) 51 51 ); 52 52 53 53 return ipl; 54 54 } … … 57 57 { 58 58 ipl_t ipl; 59 59 60 60 asm volatile ( 61 61 "csrrci %[ipl], sstatus, " STRING(SSTATUS_SIE_MASK) "\n" 62 62 : [ipl] "=r" (ipl) 63 63 ); 64 64 65 65 return ipl; 66 66 } … … 77 77 { 78 78 ipl_t ipl; 79 79 80 80 asm volatile ( 81 81 "csrr %[ipl], sstatus\n" 82 82 : [ipl] "=r" (ipl) 83 83 ); 84 84 85 85 return ipl; 86 86 } … … 94 94 { 95 95 uintptr_t base; 96 96 97 97 asm volatile ( 98 98 "and %[base], sp, %[mask]\n" … … 100 100 : [mask] "r" (~(STACK_SIZE - 1)) 101 101 ); 102 102 103 103 return base; 104 104 } -
kernel/arch/riscv64/include/arch/atomic.h
r3061bc1 ra35b458 59 59 { 60 60 atomic_count_t orig; 61 61 62 62 asm volatile ( 63 63 "amoadd.d %[orig], %[inc], %[addr]\n" … … 65 65 : [inc] "r" (1) 66 66 ); 67 67 68 68 return orig; 69 69 } … … 72 72 { 73 73 atomic_count_t orig; 74 74 75 75 asm volatile ( 76 76 "amoadd.d %[orig], %[inc], %[addr]\n" … … 78 78 : [inc] "r" (-1) 79 79 ); 80 80 81 81 return orig; 82 82 } … … 85 85 { 86 86 atomic_count_t orig; 87 87 88 88 asm volatile ( 89 89 "amoadd.d %[orig], %[inc], %[addr]\n" … … 91 91 : [inc] "r" (1) 92 92 ); 93 93 94 94 return orig - 1; 95 95 } … … 98 98 { 99 99 atomic_count_t orig; 100 100 101 101 asm volatile ( 102 102 "amoadd.d %[orig], %[inc], %[addr]\n" … … 104 104 : [inc] "r" (-1) 105 105 ); 106 106 107 107 return orig + 1; 108 108 } -
kernel/arch/riscv64/include/arch/cycle.h
r3061bc1 ra35b458 41 41 { 42 42 uint64_t cycle; 43 43 44 44 asm volatile ( 45 45 "rdcycle %[cycle]\n" 46 46 : [cycle] "=r" (cycle) 47 47 ); 48 48 49 49 return cycle; 50 50 } -
kernel/arch/riscv64/include/arch/mm/page.h
r3061bc1 ra35b458 182 182 { 183 183 pte_t *entry = &pt[i]; 184 184 185 185 return (((!entry->valid) << PAGE_PRESENT_SHIFT) | 186 186 (entry->user << PAGE_USER_SHIFT) | … … 194 194 { 195 195 pte_t *entry = &pt[i]; 196 196 197 197 entry->valid = !(flags & PAGE_NOT_PRESENT); 198 198 entry->readable = (flags & PAGE_READ) != 0;
Note:
See TracChangeset
for help on using the changeset viewer.
