📄 cpu_insn.h
字号:
/* *---------------------------------------------------------------------- * T-Kernel * * Copyright (C) 2004 by Ken Sakamura. All rights reserved. * T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * * Version: 1.01.00 * Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* * cpu_insn.h (MB87Q1100) * MB87Q1100 Dependant Operation */#ifndef _CPU_INSN_#define _CPU_INSN_#include <sys/sysinfo.h>/* ------------------------------------------------------------------------ *//* * Control register operation *//* * Get CPSR */Inline UINT getCPSR( void ){ UINT cpsr; Asm("mrs %0, cpsr": "=r"(cpsr)); return cpsr;}/* * TLB disable */Inline void PurgeTLB( void ){ Asm("mcr p15, 0, %0, cr8, c7, 0":: "r"(0));}/* ------------------------------------------------------------------------ *//* * EIT-related *//* * Monitor use vector number */#define VECNO_DEFAULT EIT_DEFAULT /* Default handler */#define VECNO_BREAK EIT_UNDEF /* Break point (Invalid instruction) */#define VECNO_MONITOR ( 4 ) /* Monitor service call */#define VECNO_FPGA EIT_IRQ(10) /* FPGA interrupt branch process */#define VECNO_CPLD EIT_IRQ(11) /* CPLD interrupt branch process */#define VECNO_POWERSW EIT_FPGA2(0) /* Power switch */#define VECNO_ABORTSW EIT_FPGA2(2) /* Abort switch *//* * For saving monitor exception handler */typedef struct monhdr { FP default_hdr; /* Default handler */ FP break_hdr; /* Break point (Invalid instruction) */ FP monitor_hdr; /* Monitor service call */ FP fpga_hdr; /* FPGA interrupt branch process */ FP cpld_hdr; /* CPLD interrupt branch process */ FP powersw_hdr; /* Power switch */ FP abortsw_hdr; /* Abort switch */} MONHDR;/* For saving monitor exception handler */IMPORT MONHDR SaveMonHdr;/* * Set interrupt handler */Inline void define_inthdr( INT vecno, FP inthdr ){ SCArea->intvec[vecno] = inthdr;}/* * If it is the task-independent part, TRUE */Inline BOOL isTaskIndependent( void ){ return ( SCInfo.taskindp > 0 )? TRUE: FALSE;}/* * Move to/Restore task independent part */Inline void EnterTaskIndependent( void ){ SCInfo.taskindp++;}Inline void LeaveTaskIndependent( void ){ SCInfo.taskindp--;}/* ------------------------------------------------------------------------ */#endif /* _CPU_INSN_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -