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

📄 asm-offsets.c

📁 linux-2.6.15.6
💻 C
字号:
/* * Generate definitions needed by assembly language modules. * This code generates raw asm output which is post-processed to extract * and format the required data. */#include <linux/sched.h> #include <linux/stddef.h>#include <linux/errno.h> #include <linux/hardirq.h>#include <linux/suspend.h>#include <asm/pda.h>#include <asm/processor.h>#include <asm/segment.h>#include <asm/thread_info.h>#include <asm/ia32.h>#define DEFINE(sym, val) \        asm volatile("\n->" #sym " %0 " #val : : "i" (val))#define BLANK() asm volatile("\n->" : : )int main(void){#define ENTRY(entry) DEFINE(tsk_ ## entry, offsetof(struct task_struct, entry))	ENTRY(state);	ENTRY(flags); 	ENTRY(thread); 	ENTRY(pid);	BLANK();#undef ENTRY#define ENTRY(entry) DEFINE(threadinfo_ ## entry, offsetof(struct thread_info, entry))	ENTRY(flags);	ENTRY(addr_limit);	ENTRY(preempt_count);	BLANK();#undef ENTRY#define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry))	ENTRY(kernelstack); 	ENTRY(oldrsp); 	ENTRY(pcurrent); 	ENTRY(irqcount);	ENTRY(cpunumber);	ENTRY(irqstackptr);	BLANK();#undef ENTRY#ifdef CONFIG_IA32_EMULATION#define ENTRY(entry) DEFINE(IA32_SIGCONTEXT_ ## entry, offsetof(struct sigcontext_ia32, entry))	ENTRY(eax);	ENTRY(ebx);	ENTRY(ecx);	ENTRY(edx);	ENTRY(esi);	ENTRY(edi);	ENTRY(ebp);	ENTRY(esp);	ENTRY(eip);	BLANK();#undef ENTRY	DEFINE(IA32_RT_SIGFRAME_sigcontext,	       offsetof (struct rt_sigframe32, uc.uc_mcontext));	BLANK();#endif	DEFINE(pbe_address, offsetof(struct pbe, address));	DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address));	DEFINE(pbe_next, offsetof(struct pbe, next));	return 0;}

⌨️ 快捷键说明

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