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

📄 privinst.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
字号:
/* * Copyright (C) 1996 Paul Mackerras. * *      This program is free software; you can redistribute it and/or *      modify it under the terms of the GNU General Public License *      as published by the Free Software Foundation; either version *      2 of the License, or (at your option) any later version. */#define GETREG(reg)		\    static inline unsigned long get_ ## reg (void)	\	{ unsigned long ret; asm volatile ("mf" #reg " %0" : "=r" (ret) :); return ret; }#define SETREG(reg)		\    static inline void set_ ## reg (unsigned long val)	\	{ asm volatile ("mt" #reg " %0" : : "r" (val)); }GETREG(msr)SETREG(msrd)GETREG(cr)#define GSETSPR(n, name)	\    static inline long get_ ## name (void) \	{ long ret; asm volatile ("mfspr %0," #n : "=r" (ret) : ); return ret; } \    static inline void set_ ## name (long val) \	{ asm volatile ("mtspr " #n ",%0" : : "r" (val)); }GSETSPR(0, mq)GSETSPR(1, xer)GSETSPR(4, rtcu)GSETSPR(5, rtcl)GSETSPR(8, lr)GSETSPR(9, ctr)GSETSPR(18, dsisr)GSETSPR(19, dar)GSETSPR(22, dec)GSETSPR(25, sdr1)GSETSPR(26, srr0)GSETSPR(27, srr1)GSETSPR(272, sprg0)GSETSPR(273, sprg1)GSETSPR(274, sprg2)GSETSPR(275, sprg3)GSETSPR(282, ear)GSETSPR(287, pvr)GSETSPR(528, bat0u)GSETSPR(529, bat0l)GSETSPR(530, bat1u)GSETSPR(531, bat1l)GSETSPR(532, bat2u)GSETSPR(533, bat2l)GSETSPR(534, bat3u)GSETSPR(535, bat3l)GSETSPR(1008, hid0)GSETSPR(1009, hid1)GSETSPR(1010, iabr)GSETSPR(1013, dabr)GSETSPR(1023, pir)static inline int get_sr(int n){	int ret;#if 0	// DRENG does not assemble 	asm (" mfsrin %0,%1" : "=r" (ret) : "r" (n << 28));#endif	return ret;}static inline void set_sr(int n, int val){#if 0	// DRENG does not assemble 	asm ("mtsrin %0,%1" : : "r" (val), "r" (n << 28));#endif}static inline void store_inst(void *p){	asm volatile ("dcbst 0,%0; sync; icbi 0,%0; isync" : : "r" (p));}static inline void cflush(void *p){	asm volatile ("dcbf 0,%0; icbi 0,%0" : : "r" (p));}static inline void cinval(void *p){	asm volatile ("dcbi 0,%0; icbi 0,%0" : : "r" (p));}

⌨️ 快捷键说明

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