cache-sh2.c

来自「linux 内核源代码」· C语言 代码 · 共 58 行

C
58
字号
/* * arch/sh/mm/cache-sh2.c * * Copyright (C) 2002 Paul Mundt * * Released under the terms of the GNU GPL v2.0. */#include <linux/init.h>#include <linux/mm.h>#include <asm/cache.h>#include <asm/addrspace.h>#include <asm/processor.h>#include <asm/cacheflush.h>#include <asm/io.h>void __flush_wback_region(void *start, int size){	unsigned long v;	unsigned long begin, end;	begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);	end = ((unsigned long)start + size + L1_CACHE_BYTES-1)		& ~(L1_CACHE_BYTES-1);	for (v = begin; v < end; v+=L1_CACHE_BYTES) {		/* FIXME cache purge */		ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);	}}void __flush_purge_region(void *start, int size){	unsigned long v;	unsigned long begin, end;	begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);	end = ((unsigned long)start + size + L1_CACHE_BYTES-1)		& ~(L1_CACHE_BYTES-1);	for (v = begin; v < end; v+=L1_CACHE_BYTES) {		ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);	}}void __flush_invalidate_region(void *start, int size){	unsigned long v;	unsigned long begin, end;	begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);	end = ((unsigned long)start + size + L1_CACHE_BYTES-1)		& ~(L1_CACHE_BYTES-1);	for (v = begin; v < end; v+=L1_CACHE_BYTES) {		ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?