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

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

?? proc-arm2,3.s

?? linux-2.4.29操作系統的源碼
?? 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 bit_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	0		.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	0		.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	0		.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一区二区三区免费野_久草精品视频
欧美性大战久久久| 蜜臀av一区二区在线免费观看| 国产在线国偷精品免费看| 欧美一区二区视频免费观看| 日本va欧美va瓶| 久久综合九色欧美综合狠狠 | 亚洲摸摸操操av| 色狠狠色狠狠综合| 日本视频一区二区| 久久精品视频一区二区三区| 成人天堂资源www在线| 日韩毛片精品高清免费| 色婷婷亚洲综合| 午夜天堂影视香蕉久久| 日韩精品综合一本久道在线视频| 国产在线日韩欧美| 中文字幕在线不卡国产视频| 欧美三级一区二区| 久久不见久久见免费视频1| 国产精品午夜电影| 欧美性猛交一区二区三区精品| 日韩经典一区二区| 国产午夜精品理论片a级大结局| 99国产精品一区| 精品制服美女丁香| 亚洲欧美日韩电影| 精品国产乱码久久久久久浪潮| 成人晚上爱看视频| 欧美aⅴ一区二区三区视频| 国产精品国产三级国产aⅴ原创| 欧美色综合网站| 国产一区二区三区观看| 一区二区三区日韩在线观看| 欧美不卡一区二区| 日韩和欧美的一区| 国产精品久久久久一区| 欧美日本乱大交xxxxx| 精品综合免费视频观看| 亚洲精品视频免费看| 欧美在线观看视频一区二区三区| 奇米影视一区二区三区| 日韩精品一区二区三区在线| av电影一区二区| 日韩精品一二三区| 国产亚洲欧美一级| 欧美日韩中文字幕精品| 国产综合久久久久久久久久久久 | 久久九九99视频| 在线亚洲高清视频| 精品一区二区三区在线播放| 亚洲人成影院在线观看| 欧美一级久久久| 盗摄精品av一区二区三区| 亚洲电影视频在线| 久久久久久97三级| 欧美精品视频www在线观看 | 成人永久aaa| 香蕉成人啪国产精品视频综合网 | 91精品黄色片免费大全| 狠狠色2019综合网| 亚洲午夜在线视频| 久久久精品天堂| 91精品婷婷国产综合久久竹菊| 处破女av一区二区| 免费亚洲电影在线| 亚洲啪啪综合av一区二区三区| 精品免费国产一区二区三区四区| 欧美在线短视频| 国产91精品精华液一区二区三区| 蜜臀av一区二区三区| 亚洲一二三区不卡| 一区在线中文字幕| 久久久久久久久蜜桃| 欧美一区二区三区免费在线看| av电影在线观看不卡| 国产高清不卡一区二区| 激情综合色综合久久| 视频在线观看一区| 亚洲成av人片在www色猫咪| 久久久91精品国产一区二区精品| 久久久五月婷婷| 精品国免费一区二区三区| 欧美日韩大陆在线| 欧美三级电影精品| 欧美性生活影院| 欧美影院午夜播放| 色嗨嗨av一区二区三区| 91捆绑美女网站| 91一区二区三区在线观看| 国产精品99久久久久久有的能看| 国产精品综合二区| 国产一区二三区好的| 男女性色大片免费观看一区二区| 午夜在线成人av| 亚洲va欧美va天堂v国产综合| 亚洲一区二区三区在线| 亚洲精品乱码久久久久| 亚洲综合丝袜美腿| 亚洲综合免费观看高清完整版| 亚洲精品久久嫩草网站秘色| 一区二区三区影院| 成人欧美一区二区三区视频网页| 亚洲欧美激情插| 中文字幕日本乱码精品影院| 亚洲日本乱码在线观看| 亚洲美女视频一区| 亚洲va欧美va国产va天堂影院| 亚洲妇女屁股眼交7| 国产精品剧情在线亚洲| 综合久久一区二区三区| 亚洲在线视频一区| 午夜精品久久一牛影视| 美女一区二区在线观看| 国产suv精品一区二区6| 成人av在线网| 在线视频中文字幕一区二区| 欧美精品高清视频| 久久伊99综合婷婷久久伊| 国产精品视频免费| 一区二区久久久久| 日本午夜一区二区| 成人妖精视频yjsp地址| 色av一区二区| 日韩一级大片在线观看| 在线成人av影院| 亚洲欧洲三级电影| 午夜精品久久久久久久99水蜜桃| 久久精品国产精品亚洲综合| 岛国精品一区二区| 在线成人av影院| 国产精品色噜噜| 视频在线观看一区| 成人亚洲一区二区一| 欧美性色欧美a在线播放| 日本一二三四高清不卡| 亚洲电影视频在线| 国产激情视频一区二区三区欧美 | 欧美精品1区2区3区| 国产三级一区二区| 亚洲国产精品影院| 国产一区视频网站| 欧美人与禽zozo性伦| 国产视频视频一区| 亚洲成人激情综合网| 国产精选一区二区三区 | 成人高清av在线| 欧美日韩免费一区二区三区 | 岛国av在线一区| 欧美片网站yy| 国产精品高清亚洲| 久久精品国产精品亚洲综合| 欧美在线观看禁18| 中日韩av电影| 精品无码三级在线观看视频 | 亚洲精品在线电影| 欧美国产国产综合| 国产综合一区二区| 6080亚洲精品一区二区| 中文字幕一区三区| 国产精品88888| 日韩一区二区在线看| 亚洲综合在线电影| 波多野结衣中文一区| 精品国产一区二区三区四区四| 亚洲男人天堂av| 91免费看`日韩一区二区| 久久久久久久久久久99999| 日韩精品电影一区亚洲| 欧美在线|欧美| 国产亲近乱来精品视频| 久久99精品国产91久久来源| 欧美美女一区二区在线观看| 一区二区三区在线观看国产| 色综合色狠狠天天综合色| 国产欧美一区视频| 国产成人免费av在线| 亚洲精品一区二区三区精华液| 亚洲制服丝袜av| 欧美另类z0zxhd电影| 亚洲sss视频在线视频| 欧美丝袜丝交足nylons图片| 一区二区三区中文字幕在线观看| 99久久精品情趣| 亚洲美女一区二区三区| 91免费看`日韩一区二区| 国产精品天天看| 欧美午夜电影网| 亚洲国产欧美在线人成| 欧美绝品在线观看成人午夜影视| 亚洲影视资源网| 欧美精品日韩精品| 免费视频一区二区| 精品欧美久久久| 不卡的av中国片| 亚洲猫色日本管| 欧美日韩在线电影| 免费在线观看精品| 久久精品视频一区| 99国内精品久久| 亚洲精品免费在线观看|