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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? proc-arm2,3.s

?? 該文件是rt_linux
?? S
字號:
/* *  linux/arch/arm/mm/proc-arm2,3.S * *  Copyright (C) 1997-1999 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. * *  MMU functions for ARM2,3 * *  These are the low level assembler for performing cache *  and memory functions on ARM2, ARM250 and ARM3 processors. */#include <linux/linkage.h>#include <asm/assembler.h>#include <asm/constants.h>#include <asm/procinfo.h>/* * MEMC workhorse code.  It's both a horse which things it's a pig. *//* * Function: cpu_memc_update_entry(pgd_t *pgd, unsigned long phys_pte, unsigned long addr) * Params  : pgd	Page tables/MEMC mapping *         : phys_pte	physical address, or PTE *         : addr	virtual address */ENTRY(cpu_memc_update_entry)		tst	r1, #PAGE_PRESENT		@ is the page present		orreq	r1, r1, #PAGE_OLD | PAGE_CLEAN		moveq	r2, #0x01f00000		mov	r3, r1, lsr #13			@ convert to physical page nr		and	r3, r3, #0x3fc		adr	ip, memc_phys_table_32		ldr	r3, [ip, r3]		tst	r1, #PAGE_OLD | PAGE_NOT_USER		biceq	r3, r3, #0x200		tsteq	r1, #PAGE_READONLY | PAGE_CLEAN		biceq	r3, r3, #0x300		mov	r2, r2, lsr #15			@ virtual -> nr		orr	r3, r3, r2, lsl #15		and	r2, r2, #0x300		orr	r3, r3, r2, lsl #2		and	r2, r3, #255		sub	r0, r0, #256 * 4		str	r3, [r0, r2, lsl #2]		strb	r3, [r3]		movs	pc, lr/* * Params  : r0 = preserved *         : r1 = memc table base (preserved) *         : r2 = page table entry *         : r3 = preserved *         : r4 = unused *         : r5 = memc physical address translation table *         : ip = virtual address (preserved) */update_pte:		mov	r4, r2, lsr #13		and	r4, r4, #0x3fc		ldr	r4, [r5, r4]			@ covert to MEMC page		tst	r2, #PAGE_OLD | PAGE_NOT_USER	@ check for MEMC read		biceq	r4, r4, #0x200		tsteq	r2, #PAGE_READONLY | PAGE_CLEAN	@ check for MEMC write		biceq	r4, r4, #0x300		orr	r4, r4, ip		and	r2, ip, #0x01800000		orr	r4, r4, r2, lsr #13		and	r2, r4, #255		str	r4, [r1, r2, lsl #2]		movs	pc, lr/* * Params  : r0 = preserved *         : r1 = memc table base (preserved) *         : r2 = page table base *         : r3 = preserved *         : r4 = unused *         : r5 = memc physical address translation table *         : ip = virtual address (updated) */update_pte_table:		stmfd	sp!, {r0, lr}		bic	r0, r2, #31:		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		ldr	r2, [r0], #4			@ get entry		tst	r2, #PAGE_PRESENT		@ page present		blne	update_pte			@ process pte		add	ip, ip, #32768			@ increment virt addr		tst	ip, #32768 * 31			@ finished?		bne	1b		ldmfd	sp!, {r0, pc}^/* * Function: cpu_memc_update_all(pgd_t *pgd) * Params  : pgd	Page tables/MEMC mapping * Notes   : this is optimised for 32k pages */ENTRY(cpu_memc_update_all)		stmfd	sp!, {r4, r5, lr}		bl	clear_tables		sub	r1, r0, #256 * 4		@ start of MEMC tables		adr	r5, memc_phys_table_32		@ Convert to logical page number		mov	ip, #0				@ virtual address1:		ldmia	r0!, {r2, r3}		tst	r2, #PAGE_PRESENT		addeq	ip, ip, #1048576		blne	update_pte_table		mov	r2, r3		tst	r2, #PAGE_PRESENT		addeq	ip, ip, #1048576		blne	update_pte_table		teq	ip, #32 * 1048576		bne	1b		ldmfd	sp!, {r4, r5, pc}^/* * Build the table to map from physical page number to memc page number */		.type	memc_phys_table_32, #objectmemc_phys_table_32:		.irp	b7, 0x00, 0x80		.irp	b6, 0x00, 0x02		.irp	b5, 0x00, 0x04		.irp	b4, 0x00, 0x01		.irp	b3, 0x00, 0x40		.irp	b2, 0x00, 0x20		.irp	b1, 0x00, 0x10		.irp	b0, 0x00, 0x08		.long	0x03800300 + \b7 + \b6 + \b5 + \b4 + \b3 + \b2 + \b1 + \b0		.endr		.endr		.endr		.endr		.endr		.endr		.endr		.endr		.size	memc_phys_table_32, . - memc_phys_table_32/* * helper for cpu_memc_update_all, this clears out all * mappings, setting them close to the top of memory, * and inaccessible (0x01f00000). * Params  : r0 = page table pointer */clear_tables:	ldr	r1, _arm3_set_pgd - 4		ldr	r2, [r1]		sub	r1, r0, #256 * 4		@ start of MEMC tables		add	r2, r1, r2, lsl #2		@ end of tables		mov	r3, #0x03f00000			@ Default mapping (null mapping)		orr	r3, r3, #0x00000f00		orr	r4, r3, #1		orr	r5, r3, #2		orr	ip, r3, #31:		stmia	r1!, {r3, r4, r5, ip}		add	r3, r3, #4		add	r4, r4, #4		add	r5, r5, #4		add	ip, ip, #4		stmia	r1!, {r3, r4, r5, ip}		add	r3, r3, #4		add	r4, r4, #4		add	r5, r5, #4		add	ip, ip, #4		teq	r1, r2		bne	1b		mov	pc, lr/* * Function: *_set_pgd(pgd_t *pgd) * Params  : pgd	New page tables/MEMC mapping * Purpose : update MEMC hardware with new mapping */		.word	SYMBOL_NAME(page_nr)_arm3_set_pgd:	mcr	p15, 0, r1, c1, c0, 0		@ flush cache_arm2_set_pgd:	stmfd	sp!, {lr}		ldr	r1, _arm3_set_pgd - 4		ldr	r2, [r1]		sub	r0, r0, #256 * 4		@ start of MEMC tables		add	r1, r0, r2, lsl #2		@ end of tables1:		ldmia	r0!, {r2, r3, ip, lr}		strb	r2, [r2]		strb	r3, [r3]		strb	ip, [ip]		strb	lr, [lr]		ldmia	r0!, {r2, r3, ip, lr}		strb	r2, [r2]		strb	r3, [r3]		strb	ip, [ip]		strb	lr, [lr]		teq	r0, r1		bne	1b		ldmfd	sp!, {pc}^/* * Function: *_proc_init (void) * Purpose : Initialise the cache control registers */_arm3_proc_init:		mov	r0, #0x001f0000		orr	r0, r0, #0x0000ff00		orr	r0, r0, #0x000000ff		mcr	p15, 0, r0, c3, c0		@ ARM3 Cacheable		mcr     p15, 0, r0, c4, c0		@ ARM3 Updateable		mov	r0, #0		mcr     p15, 0, r0, c5, c0		@ ARM3 Disruptive		mcr     p15, 0, r0, c1, c0		@ ARM3 Flush		mov	r0, #3		mcr     p15, 0, r0, c2, c0		@ ARM3 Control_arm2_proc_init:		movs	pc, lr/* * Function: *_proc_fin (void) * Purpose : Finalise processor (disable caches) */_arm3_proc_fin:	mov	r0, #2		mcr	p15, 0, r0, c2, c0_arm2_proc_fin:	orrs	pc, lr, #I_BIT|F_BIT/* * Function: *_xchg_1 (int new, volatile void *ptr) * Params  : new	New value to store at... *	   : ptr	pointer to byte-wide location * Purpose : Performs an exchange operation * Returns : Original byte data at 'ptr' */_arm2_xchg_1:	mov	r2, pc		orr	r2, r2, #I_BIT		teqp	r2, #0		ldrb	r2, [r1]		strb	r0, [r1]		mov	r0, r2		movs	pc, lr_arm3_xchg_1:	swpb	r0, r0, [r1]		movs	pc, lr/* * Function: *_xchg_4 (int new, volatile void *ptr) * Params  : new	New value to store at... *	   : ptr	pointer to word-wide location * Purpose : Performs an exchange operation * Returns : Original word data at 'ptr' */_arm2_xchg_4:	mov	r2, pc		orr	r2, r2, #I_BIT		teqp	r2, #0		ldr	r2, [r1]		str	r0, [r1]		mov	r0, r2		movs	pc, lr_arm3_xchg_4:	swp	r0, r0, [r1]		movs	pc, lr_arm2_3_check_bugs:		bics	pc, lr, #0x04000000		@ Clear FIQ disable bitarmvlsi_name:	.asciz	"ARM/VLSI"_arm2_name:	.asciz	"ARM 2"_arm250_name:	.asciz	"ARM 250"_arm3_name:	.asciz	"ARM 3"		.section ".text.init", #alloc, #execinstr/* * Purpose : Function pointers used to access above functions - all calls *	     come through these */		.globl	SYMBOL_NAME(arm2_processor_functions)SYMBOL_NAME(arm2_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm2_proc_init		.word	_arm2_proc_fin		.word	_arm2_set_pgd		.word	_arm2_xchg_1		.word	_arm2_xchg_4cpu_arm2_info:		.long	armvlsi_name		.long	_arm2_name		.globl	SYMBOL_NAME(arm250_processor_functions)SYMBOL_NAME(arm250_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm2_proc_init		.word	_arm2_proc_fin		.word	_arm2_set_pgd		.word	_arm3_xchg_1		.word	_arm3_xchg_4cpu_arm250_info:		.long	armvlsi_name		.long	_arm250_name		.globl	SYMBOL_NAME(arm3_processor_functions)SYMBOL_NAME(arm3_processor_functions):		.word	_arm2_3_check_bugs		.word	_arm3_proc_init		.word	_arm3_proc_fin		.word	_arm3_set_pgd		.word	_arm3_xchg_1		.word	_arm3_xchg_4cpu_arm3_info:		.long	armvlsi_name		.long	_arm3_namearm2_arch_name:	.asciz	"armv1"arm3_arch_name:	.asciz	"armv2"arm2_elf_name:	.asciz	"v1"arm3_elf_name:	.asciz	"v2"		.align		.section ".proc.info", #alloc, #execinstr		.long	0x41560200		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm2_arch_name		.long	arm2_elf_name		.long	0		.long	cpu_arm2_info		.long	SYMBOL_NAME(arm2_processor_functions)		.long	0x41560250		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm3_arch_name		.long	arm3_elf_name		.long	0		.long	cpu_arm250_info		.long	SYMBOL_NAME(arm250_processor_functions)		.long	0x41560300		.long	0xfffffff0		.long	0		mov	pc, lr		.long	arm3_arch_name		.long	arm3_elf_name		.long	0		.long	cpu_arm3_info		.long	SYMBOL_NAME(arm3_processor_functions)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美天天综合网| **网站欧美大片在线观看| 亚洲精品欧美二区三区中文字幕| 一区二区三区四区在线播放| 国产在线不卡视频| 欧美综合一区二区| 国产精品福利在线播放| 蜜臀久久99精品久久久久宅男| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲三级在线看| 久久草av在线| 欧美日韩一级黄| 亚洲黄色免费网站| 成人黄色一级视频| 国产网站一区二区三区| 久久99国产精品尤物| 91精品国产综合久久精品麻豆 | 久久久久久日产精品| 日本伊人精品一区二区三区观看方式| 日本精品视频一区二区三区| 国产精品成人免费在线| 国产露脸91国语对白| 欧美电视剧免费观看| 青青草视频一区| 欧美久久久久久久久久| 亚洲成人一区在线| 欧美另类高清zo欧美| 亚洲影院理伦片| 欧美最猛性xxxxx直播| 亚洲精品国产成人久久av盗摄 | 日韩视频免费观看高清完整版 | 亚洲视频狠狠干| 91丨九色丨国产丨porny| 国产精品久久影院| av激情综合网| 一区二区三区不卡在线观看 | 精品久久久久久亚洲综合网| 丝袜美腿亚洲色图| 91精品国产色综合久久不卡蜜臀| 日一区二区三区| 欧美一区二区三区系列电影| 蜜桃av一区二区三区电影| 欧美电影免费观看高清完整版在线| 日韩精品高清不卡| 久久久三级国产网站| 成人黄色片在线观看| 一区二区日韩av| 欧美美女bb生活片| 国产米奇在线777精品观看| 国产欧美一区视频| 日本精品视频一区二区三区| 五月婷婷久久综合| 久久久久99精品一区| 91蝌蚪porny成人天涯| 亚洲第一在线综合网站| 欧美电视剧在线看免费| 国产成人综合网| 亚洲欧美日本在线| 日韩区在线观看| 99国产精品99久久久久久| 性做久久久久久免费观看欧美| 精品国产一区二区精华| 成人免费毛片a| 五月婷婷久久丁香| 国产精品免费免费| 欧美日本精品一区二区三区| 国产精品亚洲综合一区在线观看| 一区二区三区在线影院| 精品国产精品一区二区夜夜嗨| 99免费精品在线观看| 日本欧美加勒比视频| 亚洲欧洲av在线| 日韩免费看网站| 在线这里只有精品| 国产69精品久久久久777| 五月激情综合婷婷| 亚洲视频一区二区在线观看| 日韩视频免费观看高清完整版| 91天堂素人约啪| 国产成人午夜精品5599| 日本午夜精品一区二区三区电影| 国产精品久久久久四虎| 精品国产伦一区二区三区观看体验| 色综合久久精品| 国产精品69毛片高清亚洲| 五月天中文字幕一区二区| 亚洲男人都懂的| 国产亚洲一本大道中文在线| 日韩三区在线观看| 欧美日韩午夜影院| 91论坛在线播放| 不卡一区在线观看| 国产一区91精品张津瑜| 免费不卡在线观看| 五月天激情小说综合| 一区二区三区欧美激情| 国产精品不卡在线| 国产精品情趣视频| 国产嫩草影院久久久久| 久久久亚洲国产美女国产盗摄| 日韩一级精品视频在线观看| 欧美精品粉嫩高潮一区二区| 在线观看视频欧美| 在线免费亚洲电影| 一本到不卡精品视频在线观看| 国产精品123区| 国产成人综合视频| 高清国产一区二区| 成人午夜电影小说| 丁香网亚洲国际| 顶级嫩模精品视频在线看| 国产福利一区二区| 豆国产96在线|亚洲| 成人听书哪个软件好| 成熟亚洲日本毛茸茸凸凹| 国产成人精品综合在线观看| 国产福利精品导航| 99久久99久久久精品齐齐| 91蜜桃传媒精品久久久一区二区| 色悠久久久久综合欧美99| 色婷婷亚洲精品| 欧美午夜精品久久久久久超碰| 欧美写真视频网站| 69精品人人人人| 精品电影一区二区| 国产日产精品一区| 亚洲丝袜自拍清纯另类| 一区二区三区在线播放| 亚洲一区欧美一区| 美女在线视频一区| 国产精品91一区二区| 成人av免费在线观看| 在线观看日韩毛片| 91精品福利在线一区二区三区 | 亚洲品质自拍视频| 亚洲午夜久久久久久久久久久| 亚洲va欧美va人人爽午夜| 久久av老司机精品网站导航| 国产精品影音先锋| 日本韩国一区二区三区| 9191成人精品久久| 久久久91精品国产一区二区精品| 国产精品久久久久精k8| 午夜av一区二区三区| 国内国产精品久久| 色综合天天性综合| 欧美日韩的一区二区| 国产日韩欧美一区二区三区综合| 亚洲三级电影网站| 久久精品国产秦先生| 成人午夜av电影| 欧美一区二区福利在线| 国产精品伦理在线| 亚洲成av人片| 成人午夜精品在线| 91精品国产高清一区二区三区| 日本一区二区成人在线| 午夜精品久久久久久久99水蜜桃 | 欧美日韩精品一区二区三区四区| 欧美videossexotv100| 亚洲精品国产一区二区三区四区在线| 成人黄色av网站在线| 欧美一区二区三区在线| 综合网在线视频| 精品无码三级在线观看视频 | 欧美一级二级三级乱码| 国产精品久久久久一区| 久久成人免费电影| 欧美精品18+| 中文字幕一区三区| 国产在线一区二区| 3d动漫精品啪啪一区二区竹菊| 国产精品妹子av| 韩国理伦片一区二区三区在线播放| 在线观看免费亚洲| 国产精品美女久久久久aⅴ | 精品乱人伦一区二区三区| 亚洲一区二区五区| 99久久精品国产网站| 国产日韩欧美电影| 国产专区综合网| 日韩免费高清av| 亚洲444eee在线观看| 日本高清不卡视频| 国产精品黄色在线观看| 夫妻av一区二区| 国产人伦精品一区二区| 国产一区二区三区四| 欧美大胆人体bbbb| 秋霞电影一区二区| 91精品国产黑色紧身裤美女| 亚洲成人在线观看视频| 欧亚洲嫩模精品一区三区| 一区二区三区av电影| 99精品欧美一区| 中文字幕一区二区三区色视频| 成人app网站| 最新欧美精品一区二区三区| 99久久精品免费| 亚洲精品中文在线观看|