forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arch/tile: support <asm/cachectl.h> header for cacheflush() syscall
We already had a syscall that did some dcache flushing, but it was not used in practice. Make it MIPS compatible instead so it can do both the DCACHE and ICACHE actions. We have code that wants to be able to use the ICACHE flush mode from userspace so this change enables that. Signed-off-by: Chris Metcalf <[email protected]>
- Loading branch information
1 parent
d5d14ed
commit cd6f32a
Showing
6 changed files
with
55 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
/* | ||
* Copyright 2011 Tilera Corporation. All Rights Reserved. | ||
* | ||
* This program is free software; you can redistribute it and/or | ||
* modify it under the terms of the GNU General Public License | ||
* as published by the Free Software Foundation, version 2. | ||
* | ||
* This program is distributed in the hope that it will be useful, but | ||
* WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | ||
* NON INFRINGEMENT. See the GNU General Public License for | ||
* more details. | ||
*/ | ||
|
||
#ifndef _ASM_TILE_CACHECTL_H | ||
#define _ASM_TILE_CACHECTL_H | ||
|
||
/* | ||
* Options for cacheflush system call. | ||
* | ||
* The ICACHE flush is performed on all cores currently running the | ||
* current process's address space. The intent is for user | ||
* applications to be able to modify code, invoke the system call, | ||
* then allow arbitrary other threads in the same address space to see | ||
* the newly-modified code. Passing a length of CHIP_L1I_CACHE_SIZE() | ||
* or more invalidates the entire icache on all cores in the address | ||
* spaces. (Note: currently this option invalidates the entire icache | ||
* regardless of the requested address and length, but we may choose | ||
* to honor the arguments at some point.) | ||
* | ||
* Flush and invalidation of memory can normally be performed with the | ||
* __insn_flush(), __insn_inv(), and __insn_finv() instructions from | ||
* userspace. The DCACHE option to the system call allows userspace | ||
* to flush the entire L1+L2 data cache from the core. In this case, | ||
* the address and length arguments are not used. The DCACHE flush is | ||
* restricted to the current core, not all cores in the address space. | ||
*/ | ||
#define ICACHE (1<<0) /* invalidate L1 instruction cache */ | ||
#define DCACHE (1<<1) /* flush and invalidate data cache */ | ||
#define BCACHE (ICACHE|DCACHE) /* flush both caches */ | ||
|
||
#endif /* _ASM_TILE_CACHECTL_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters