亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cache.h

?? linux-2.4.29操作系統(tǒng)的源碼
?? H
字號(hào):
/* *  linux/include/asm-arm/proc-armv/cache.h * *  Copyright (C) 1999-2001 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <asm/mman.h>/* * This flag is used to indicate that the page pointed to by a pte * is dirty and requires cleaning before returning it to the user. */#define PG_dcache_dirty PG_arch_1/* * Cache handling for 32-bit ARM processors. * * Note that on ARM, we have a more accurate specification than that * Linux's "flush".  We therefore do not use "flush" here, but instead * use: * * clean:      the act of pushing dirty cache entries out to memory. * invalidate: the act of discarding data held within the cache, *             whether it is dirty or not. *//* * Generic I + D cache */#define flush_cache_all()						\	do {								\		cpu_cache_clean_invalidate_all();			\	} while (0)/* This is always called for current->mm */#define flush_cache_mm(_mm)						\	do {								\		if ((_mm) == current->active_mm)			\			cpu_cache_clean_invalidate_all();		\	} while (0)#define flush_cache_range(_mm,_start,_end)				\	do {								\		if ((_mm) == current->active_mm)			\			cpu_cache_clean_invalidate_range((_start) & PAGE_MASK, \							 PAGE_ALIGN(_end), 1); \	} while (0)#define flush_cache_page(_vma,_vmaddr)					\	do {								\		if ((_vma)->vm_mm == current->active_mm) {		\			unsigned long _addr = (_vmaddr) & PAGE_MASK;	\			cpu_cache_clean_invalidate_range(_addr,		\				_addr + PAGE_SIZE,			\				((_vma)->vm_flags & VM_EXEC));		\		} \	} while (0)/* * This flushes back any buffered write data.  We have to clean the entries * in the cache for this page.  This does not invalidate either I or D caches. * * Called from: * 1. mm/filemap.c:filemap_nopage * 2. mm/filemap.c:filemap_nopage *    [via do_no_page - ok] * * 3. mm/memory.c:break_cow *    [copy_cow_page doesn't do anything to the cache; insufficient cache *     handling.  Need to add flush_dcache_page() here] * * 4. mm/memory.c:do_swap_page *    [read_swap_cache_async doesn't do anything to the cache: insufficient *     cache handling.  Need to add flush_dcache_page() here] * * 5. mm/memory.c:do_anonymous_page *    [zero page, never written by kernel - ok] * * 6. mm/memory.c:do_no_page *    [we will be calling update_mmu_cache, which will catch on PG_dcache_dirty] * * 7. mm/shmem.c:shmem_nopage * 8. mm/shmem.c:shmem_nopage *    [via do_no_page - ok] * * 9. fs/exec.c:put_dirty_page *    [we call flush_dcache_page prior to this, which will flush out the *     kernel virtual addresses from the dcache - ok] */static __inline__ void flush_page_to_ram(struct page *page){	cpu_flush_ram_page(page_address(page));}/* * D cache only */#define invalidate_dcache_range(_s,_e)	cpu_dcache_invalidate_range((_s),(_e))#define clean_dcache_range(_s,_e)	cpu_dcache_clean_range((_s),(_e))#define flush_dcache_range(_s,_e)	cpu_cache_clean_invalidate_range((_s),(_e),0)/* * flush_dcache_page is used when the kernel has written to the page * cache page at virtual address page->virtual. * * If this page isn't mapped (ie, page->mapping = NULL), or it has * userspace mappings (page->mapping->i_mmap or page->mapping->i_mmap_shared) * then we _must_ always clean + invalidate the dcache entries associated * with the kernel mapping. * * Otherwise we can defer the operation, and clean the cache when we are * about to change to user space.  This is the same method as used on SPARC64. * See update_mmu_cache for the user space part. */#define mapping_mapped(map)	((map)->i_mmap || (map)->i_mmap_shared)static inline void flush_dcache_page(struct page *page){	if (page->mapping && !mapping_mapped(page->mapping))		set_bit(PG_dcache_dirty, &page->flags);	else {		unsigned long virt = (unsigned long)page_address(page);		cpu_cache_clean_invalidate_range(virt, virt + PAGE_SIZE, 0);	}}#define flush_icache_user_range(vma,page,addr,len) \	flush_dcache_page(page)#define clean_dcache_entry(_s)		cpu_dcache_clean_entry((unsigned long)(_s))/* * This function is misnamed IMHO.  There are three places where it * is called, each of which is preceded immediately by a call to * flush_page_to_ram: * *  1. kernel/ptrace.c:access_one_page *     called after we have written to the kernel view of a user page. *     The user page has been expundged from the cache by flush_cache_page. *     [we don't need to do anything here if we add a call to *      flush_dcache_page] * *  2. mm/memory.c:do_swap_page *     called after we have (possibly) written to the kernel view of a *     user page, which has previously been removed (ie, has been through *     the swap cache). *     [if the flush_page_to_ram() conditions are satisfied, then ok] * *  3. mm/memory.c:do_no_page *     [if the flush_page_to_ram() conditions are satisfied, then ok] * * Invalidating the icache at the kernels virtual page isn't really * going to do us much good, since we wouldn't have executed any * instructions there. */#define flush_icache_page(vma,pg)	do { } while (0)/* * I cache coherency stuff. * * This *is not* just icache.  It is to make data written to memory * consistent such that instructions fetched from the region are what * we expect. * * This generally means that we have to clean out the Dcache and write * buffers, and maybe flush the Icache in the specified range. */#define flush_icache_range(_s,_e)					\	do {								\		cpu_icache_invalidate_range((_s), (_e));		\	} while (0)/* * TLB flushing. * *  - flush_tlb_all()			flushes all processes TLBs *  - flush_tlb_mm(mm)			flushes the specified mm context TLB's *  - flush_tlb_page(vma, vmaddr)	flushes TLB for specified page *  - flush_tlb_range(mm, start, end)	flushes TLB for specified range of pages * * We drain the write buffer in here to ensure that the page tables in ram * are really up to date.  It is more efficient to do this here... *//* * Notes: *  current->active_mm is the currently active memory description. *  current->mm == NULL iff we are lazy. */#define flush_tlb_all()							\	do {								\		cpu_tlb_invalidate_all();				\	} while (0)/* * Flush all user virtual address space translations described by `_mm'. * * Currently, this is always called for current->mm, which should be * the same as current->active_mm.  This is currently not be called for * the lazy TLB case. */#define flush_tlb_mm(_mm)						\	do {								\		if ((_mm) == current->active_mm)			\			cpu_tlb_invalidate_all();			\	} while (0)/* * Flush the specified range of user virtual address space translations. * * _mm may not be current->active_mm, but may not be NULL. */#define flush_tlb_range(_mm,_start,_end)				\	do {								\		if ((_mm) == current->active_mm)			\			cpu_tlb_invalidate_range((_start), (_end));	\	} while (0)/* * Flush the specified user virtual address space translation. */#define flush_tlb_page(_vma,_page)					\	do {								\		if ((_vma)->vm_mm == current->active_mm)		\			cpu_tlb_invalidate_page((_page),		\				 ((_vma)->vm_flags & VM_EXEC));		\	} while (0)/* * if PG_dcache_dirty is set for the page, we need to ensure that any * cache entries for the kernels virtual memory range are written * back to the page. */extern void update_mmu_cache(struct vm_area_struct *vma, unsigned long addr, pte_t pte);/* * Old ARM MEMC stuff.  This supports the reversed mapping handling that * we have on the older 26-bit machines.  We don't have a MEMC chip, so... */#define memc_update_all()		do { } while (0)#define memc_update_mm(mm)		do { } while (0)#define memc_update_addr(mm,pte,log)	do { } while (0)#define memc_clear(mm,physaddr)		do { } while (0)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频国产在线观看| 国产免费成人在线视频| 亚洲一区精品在线| 色婷婷国产精品综合在线观看| 国产欧美日韩精品一区| 成人手机在线视频| 亚洲欧洲国产日本综合| 色激情天天射综合网| 亚洲自拍都市欧美小说| 宅男在线国产精品| 国产真实乱偷精品视频免| 欧美激情一区二区在线| 91久久精品网| 老司机一区二区| 国产欧美日韩激情| 在线观看91精品国产入口| 亚洲va韩国va欧美va精品| 欧美一区二区三区免费观看视频| 精品在线播放免费| 国产精品国产自产拍在线| 色综合网色综合| 免费成人在线视频观看| 国产欧美一区在线| 91豆麻精品91久久久久久| 人人狠狠综合久久亚洲| 久久久久久久久97黄色工厂| 成人综合在线网站| 亚洲一区二区三区中文字幕在线| 欧美一级日韩免费不卡| 不卡欧美aaaaa| 日韩1区2区3区| 国产三区在线成人av| 欧美调教femdomvk| 国产精品一区二区在线观看网站| 亚洲激情图片一区| 日韩欧美国产不卡| 日本伦理一区二区| 国产大片一区二区| 天使萌一区二区三区免费观看| 欧美老肥妇做.爰bbww视频| 国产露脸91国语对白| 日韩一区在线免费观看| 日韩欧美成人午夜| 91女厕偷拍女厕偷拍高清| 美国精品在线观看| 国产麻豆精品视频| ...xxx性欧美| 日韩欧美资源站| 日本高清不卡aⅴ免费网站| 美女尤物国产一区| 亚洲色图视频免费播放| 欧美tk—视频vk| 欧美日韩国产首页| 国产精品白丝jk白祙喷水网站| 亚洲精品日韩综合观看成人91| 日韩一区二区免费在线电影| 91蝌蚪porny| 波多野结衣中文字幕一区二区三区| 精品一区精品二区高清| 亚洲免费观看高清| 一区精品在线播放| 国产精品日日摸夜夜摸av| 2014亚洲片线观看视频免费| 777奇米成人网| 欧美日韩精品一区二区在线播放 | 欧美变态tickle挠乳网站| 在线观看成人小视频| 国产精品小仙女| 国产一二精品视频| 国产精品一区二区黑丝| 狠狠色丁香久久婷婷综| 亚洲一区二区欧美| 精品国产凹凸成av人网站| 91麻豆精品国产91久久久更新时间 | 亚洲影视在线播放| 中文字幕在线观看不卡| 久久久久久电影| 国产亚洲一区二区三区在线观看| 欧美成人一区二区三区在线观看| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 成人网在线播放| 国产成人鲁色资源国产91色综| 韩日欧美一区二区三区| 丝袜美腿高跟呻吟高潮一区| 五月天一区二区三区| 五月天丁香久久| 久久精品国产77777蜜臀| 久久精品理论片| 国产麻豆视频一区| 懂色av一区二区三区免费看| 成人性生交大片免费看中文 | 99视频在线观看一区三区| 成人蜜臀av电影| 成人一区二区视频| aaa国产一区| 欧美午夜精品理论片a级按摩| 欧美日韩亚洲不卡| 日韩亚洲欧美一区二区三区| 精品久久国产97色综合| 久久久九九九九| 亚洲精品高清在线| 亚洲成av人片在www色猫咪| 爽好多水快深点欧美视频| 蜜臀久久99精品久久久画质超高清| 国产一区二区导航在线播放| caoporm超碰国产精品| 欧美一卡2卡3卡4卡| 日韩欧美久久久| 国产精品青草综合久久久久99| 一区二区三区在线观看网站| 日韩成人免费在线| 成人手机在线视频| 91麻豆精品国产91久久久久久| 久久精品日产第一区二区三区高清版| 亚洲色图19p| 蜜臀a∨国产成人精品| 盗摄精品av一区二区三区| 欧美特级限制片免费在线观看| 日韩一区二区三区在线| 26uuu国产一区二区三区| 亚洲色图欧美在线| 精品亚洲国产成人av制服丝袜| 本田岬高潮一区二区三区| 8v天堂国产在线一区二区| 国产午夜一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 激情综合一区二区三区| 91麻豆精品一区二区三区| 日韩欧美国产1| 亚洲视频一区二区在线观看| 久久精品久久精品| 色婷婷综合久久久久中文一区二区| 日韩欧美电影在线| 亚洲一区二三区| 成人国产精品免费观看视频| 91精品国产一区二区三区香蕉 | 国产亚洲污的网站| 丝袜亚洲另类欧美综合| 日本高清无吗v一区| 国产精品美女一区二区在线观看| 麻豆成人久久精品二区三区小说| 色狠狠色狠狠综合| 中文字幕在线视频一区| 国产精一品亚洲二区在线视频| 91精品黄色片免费大全| 亚洲精品免费播放| 99国产精品久久久久久久久久| 精品久久国产字幕高潮| 男人的j进女人的j一区| 欧美日韩一区二区三区高清| 亚洲欧洲日韩av| 日韩欧美国产1| 免费成人美女在线观看.| 欧美日产国产精品| 亚洲宅男天堂在线观看无病毒| 国产一区二区三区综合| 日韩一区二区三免费高清| 亚洲成人免费看| 欧美午夜片在线观看| 一区二区免费视频| 色综合视频一区二区三区高清| 久久青草欧美一区二区三区| 狠狠色丁香久久婷婷综合_中| 欧美一区二区三区色| 视频一区二区国产| 8x8x8国产精品| 日本aⅴ精品一区二区三区 | 精品久久久久久久一区二区蜜臀| 青青草国产精品亚洲专区无| 欧美一区二区在线免费观看| 日韩专区一卡二卡| 欧美人伦禁忌dvd放荡欲情| 视频一区在线视频| 666欧美在线视频| 蜜桃精品视频在线观看| 欧美三级日韩三级| 午夜欧美大尺度福利影院在线看| 欧美色欧美亚洲另类二区| 亚洲成a人在线观看| 欧美一区二区三区思思人| 日本欧美肥老太交大片| 制服丝袜亚洲网站| 久久成人免费电影| 国产日韩欧美精品一区| 国产a级毛片一区| 久久久www成人免费毛片麻豆| 99在线精品免费| 亚洲大片一区二区三区| 日韩欧美中文一区| 国产91对白在线观看九色| 中文字幕av一区二区三区免费看| 色综合一个色综合亚洲| 午夜精品久久久久影视| 久久综合色播五月| 91在线码无精品| 日产国产高清一区二区三区| 久久久亚洲精品石原莉奈| 91久久奴性调教| 蜜桃一区二区三区四区| 国产人伦精品一区二区|