⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io-acorn.s

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 S
字号:
/* *  linux/arch/arm/lib/io-acorn.S * *  Copyright (C) 1995, 1996 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 <linux/config.h> /* for CONFIG_CPU_nn */#include <linux/linkage.h>#include <asm/assembler.h>#include <asm/hardware.h>		.text		.align		.equ	diff_pcio_base, PCIO_BASE - IO_BASE		.macro	outw2	rd		mov	r8, \rd, lsl #16		orr	r8, r8, r8, lsr #16		str	r8, [r3, r0, lsl #2]		mov	r8, \rd, lsr #16		orr	r8, r8, r8, lsl #16		str	r8, [r3, r0, lsl #2]		.endm		.macro	inw2	rd, mask, temp		ldr	\rd, [r0]		and	\rd, \rd, \mask		ldr	\temp, [r0]		orr	\rd, \rd, \temp, lsl #16		.endm		.macro	addr	rd		tst	\rd, #0x80000000		mov	\rd, \rd, lsl #2		add	\rd, \rd, #IO_BASE		addeq	\rd, \rd, #diff_pcio_base		.endm.iosl_warning:		.ascii	"<4>insl/outsl not implemented, called from %08lX\0"		.align/* * These make no sense on Acorn machines. * Print a warning message. */ENTRY(insl)ENTRY(outsl)		adr	r0, .iosl_warning		mov	r1, lr		b	SYMBOL_NAME(printk)/* Purpose: read a block of data from a hardware register to memory. * Proto  : void insw(int from_port, void *to, int len_in_words); * Notes  : increment to, 'to' must be 16-bit aligned */ENTRY(insw)		teq	r2, #0		RETINSTR(moveq, pc, lr)		addr	r0		b	__arch_readswENTRY(insb)		teq	r2, #0		RETINSTR(moveq, pc, lr)		addr	r0		b	__arch_readsb@ Purpose: write a block of data from memory to a hardware register.@ Proto  : outsw(int to_reg, void *from, int len_in_words);@ Notes  : increments fromENTRY(outsw)		teq	r2, #0		RETINSTR(moveq, pc, lr)		addr	r0		b	__arch_writeswENTRY(outsb)		teq	r2, #0		RETINSTR(moveq, pc, lr)		addr	r0		b	__arch_writesb@ Purpose: write a memc register@ Proto  : void memc_write(int register, int value);@ Returns: nothing#if defined(CONFIG_CPU_26)ENTRY(memc_write)		cmp	r0, #7		RETINSTR(movgt,pc,lr)		mov	r0, r0, lsl #17		mov	r1, r1, lsl #15		mov	r1, r1, lsr #17		orr	r0, r0, r1, lsl #2		add	r0, r0, #0x03600000		strb	r0, [r0]		RETINSTR(mov,pc,lr)#endif

⌨️ 快捷键说明

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