asm.h
来自「linux 内核源代码」· C头文件 代码 · 共 103 行
H
103 行
/* * Copyright (C) 2004-2006 Atmel Corporation * * 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. */#ifndef __ASM_AVR32_ASM_H__#define __ASM_AVR32_ASM_H__#include <asm/sysreg.h>#include <asm/asm-offsets.h>#include <asm/thread_info.h>#define mask_interrupts ssrf SR_GM_BIT#define mask_exceptions ssrf SR_EM_BIT#define unmask_interrupts csrf SR_GM_BIT#define unmask_exceptions csrf SR_EM_BIT#ifdef CONFIG_FRAME_POINTER .macro save_fp st.w --sp, r7 .endm .macro restore_fp ld.w r7, sp++ .endm .macro zero_fp mov r7, 0 .endm#else .macro save_fp .endm .macro restore_fp .endm .macro zero_fp .endm#endif .macro get_thread_info reg mov \reg, sp andl \reg, ~(THREAD_SIZE - 1) & 0xffff .endm /* Save and restore registers */ .macro save_min sr, tmp=lr pushm lr mfsr \tmp, \sr zero_fp st.w --sp, \tmp .endm .macro restore_min sr, tmp=lr ld.w \tmp, sp++ mtsr \sr, \tmp popm lr .endm .macro save_half sr, tmp=lr save_fp pushm r8-r9,r10,r11,r12,lr zero_fp mfsr \tmp, \sr st.w --sp, \tmp .endm .macro restore_half sr, tmp=lr ld.w \tmp, sp++ mtsr \sr, \tmp popm r8-r9,r10,r11,r12,lr restore_fp .endm .macro save_full_user sr, tmp=lr stmts --sp, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr st.w --sp, lr zero_fp mfsr \tmp, \sr st.w --sp, \tmp .endm .macro restore_full_user sr, tmp=lr ld.w \tmp, sp++ mtsr \sr, \tmp ld.w lr, sp++ ldmts sp++, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr .endm /* uaccess macros */ .macro branch_if_kernel scratch, label get_thread_info \scratch ld.w \scratch, \scratch[TI_flags] bld \scratch, TIF_USERSPACE brcc \label .endm .macro ret_if_privileged scratch, addr, size, ret sub \scratch, \size, 1 add \scratch, \addr retcs \ret retmi \ret .endm#endif /* __ASM_AVR32_ASM_H__ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?