Changeset 7328ff4 in mainline for kernel/arch/ia64
- Timestamp:
- 2018-09-06T18:18:52Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ffa73c6
- Parents:
- d51cca8
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-13 01:29:17)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-09-06 18:18:52)
- Location:
- kernel/arch/ia64
- Files:
-
- 4 edited
- 1 moved
-
Makefile.inc (modified) (1 diff)
-
include/arch/barrier.h (modified) (2 diffs)
-
include/arch/cpu.h (modified) (1 diff)
-
src/mm/vhpt.c (modified) (1 diff)
-
src/smc.c (moved) (moved from kernel/arch/abs32le/include/arch/barrier.h ) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/Makefile.inc
rd51cca8 r7328ff4 58 58 arch/$(KARCH)/src/proc/scheduler.c \ 59 59 arch/$(KARCH)/src/ddi/ddi.c \ 60 arch/$(KARCH)/src/smc.c \ 60 61 arch/$(KARCH)/src/smp/smp.c \ 61 62 arch/$(KARCH)/src/smp/smp_call.c \ -
kernel/arch/ia64/include/arch/barrier.h
rd51cca8 r7328ff4 36 36 #define KERN_ia64_BARRIER_H_ 37 37 38 /* 39 * TODO: Implement true IA-64 memory barriers for macros below. 40 */ 41 #define CS_ENTER_BARRIER() memory_barrier() 42 #define CS_LEAVE_BARRIER() memory_barrier() 43 44 #define memory_barrier() asm volatile ("mf\n" ::: "memory") 45 #define read_barrier() memory_barrier() 46 #define write_barrier() memory_barrier() 38 #define mf() asm volatile ("mf\n" ::: "memory") 47 39 48 40 #define srlz_i() \ … … 56 48 asm volatile (";; sync.i\n" ::: "memory") 57 49 58 #ifdef KERNEL59 60 #define FC_INVAL_MIN 3261 #define smc_coherence(a, l) \62 { \63 unsigned long i; \64 for (i = 0; i < (l); i += FC_INVAL_MIN) \65 fc_i((void *)(a) + i); \66 sync_i(); \67 srlz_i(); \68 }69 70 #endif /* KERNEL */71 72 50 #endif 73 51 -
kernel/arch/ia64/include/arch/cpu.h
rd51cca8 r7328ff4 38 38 #include <arch/register.h> 39 39 #include <arch/asm.h> 40 #include <arch/barrier.h> 40 41 #include <arch/bootinfo.h> 41 42 #include <stdint.h> -
kernel/arch/ia64/src/mm/vhpt.c
rd51cca8 r7328ff4 34 34 35 35 #include <mem.h> 36 #include <arch/barrier.h> 36 37 #include <arch/mm/vhpt.h> 37 38 #include <mm/frame.h> -
kernel/arch/ia64/src/smc.c
rd51cca8 r7328ff4 27 27 */ 28 28 29 /** @addtogroup abs32le 30 * @{ 31 */ 32 /** @file 33 */ 29 #include <barrier.h> 30 #include <arch/barrier.h> 34 31 35 #ifndef KERN_abs32le_BARRIER_H_ 36 #define KERN_abs32le_BARRIER_H_ 32 #define FC_INVAL_MIN 32 37 33 38 /* 39 * Provisions are made to prevent compiler from reordering instructions itself. 40 */ 34 void smc_coherence(void *a, size_t l) 35 { 36 unsigned long i; 37 for (i = 0; i < (l); i += FC_INVAL_MIN) 38 fc_i(a + i); 39 sync_i(); 40 srlz_i(); 41 } 41 42 42 #define CS_ENTER_BARRIER()43 #define CS_LEAVE_BARRIER()44 45 #define memory_barrier()46 #define read_barrier()47 #define write_barrier()48 49 #ifdef KERNEL50 51 #define smc_coherence(addr, size)52 53 #endif /* KERNEL*/54 55 #endif56 57 /** @}58 */
Note:
See TracChangeset
for help on using the changeset viewer.
