?? syscall.h
字號:
#ifndef _SYSCALL_H#define _SYSCALL_H#define MON_SYSCALL_BASE 0x20#define MON_SYSCALL_sys_mon (MON_SYSCALL_BASE + 0x0)#define MON_SYSCALL_sys_putchar (MON_SYSCALL_BASE + 0x1)#define MON_SYSCALL_sys_getchar (MON_SYSCALL_BASE + 0x2)#define MON_SYSCALL_sys_setfiq (MON_SYSCALL_BASE + 0x3)#define MON_SYSCALL_sys_setirq (MON_SYSCALL_BASE + 0x4)#define MON_SYSCALL_sys_get_cp15 (MON_SYSCALL_BASE + 0x5)#ifdef __GNUCC__#define __sys2(x) #x#define __sys1(x) __sys2(x)#ifndef __syscall#define __syscall(name) "swi\t" __sys1(MON_SYSCALL_##name) "\n\t"#endif#define __syscall_return(type, res) \do { \ if ((unsigned long)(res) >= (unsigned long)(-125)) { \ /* errno = -(res); */ \ res = -1; \ } \ return (type) (res); \} while (0)#define _syscall0(type,name) \type name(void) { \ long __res; \ __asm__ __volatile__ ( \ __syscall(name) \ "mov %0,r0" \ :"=r" (__res) : : "r0","lr"); \ __syscall_return(type,__res); \}#define _syscall1(type,name,type1,arg1) \type name(type1 arg1) { \ long __res; \ __asm__ __volatile__ ( \ "mov\tr0,%1\n\t" \ __syscall(name) \ "mov %0,r0" \ : "=r" (__res) \ : "r" ((long)(arg1)) \ : "r0","lr"); \ __syscall_return(type,__res); \}static inline _syscall0(int,sys_mon)static inline _syscall1(int,sys_setfiq,int,flag)static inline _syscall1(int,sys_setirq,int,flag)static inline _syscall1(int,sys_putchar,int,ch)static inline _syscall0(int,sys_getchar)/*extern void __syscall(MON_SYSCALL_putchar) sys_putchar(char);extern char __syscall(MON_SYSCALL_getchar) sys_getchar();extern void __syscall(MON_SYSCALL_set_fiq) sys_setfiq(int);extern void __syscall(MON_SYSCALL_set_irq) sys_setirq(int);extern void __syscall(MON_SYSCALL_get_cp15) sys_get_cp15(int);*/#else/*extern void __swi(MON_SYSCALL_sys_mon) sys_mon(void);extern void __swi(MON_SYSCALL_sys_putchar) sys_putchar(char);extern char __swi(MON_SYSCALL_sys_getchar) sys_getchar(void);extern void __swi(MON_SYSCALL_sys_setfiq) sys_setfiq(int);extern void __swi(MON_SYSCALL_sys_setirq) sys_setirq(int);extern void __swi(MON_SYSCALL_sys_get_cp15) sys_get_cp15(int);*/#endif#define cli() sys_setirq(0)#define sti() sys_setirq(1)#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -