1 // SPDX-License-Identifier: GPL-2.0 << 2 /* 1 /* 3 * Generate definitions needed by assembly lan 2 * Generate definitions needed by assembly language modules. 4 * This code generates raw asm output which is !! 3 * This code generates raw asm output which is post-processed 5 * and format the required data. !! 4 * to extract and format the required data. 6 */ 5 */ 7 6 8 #include <linux/types.h> !! 7 #include <linux/signal.h> 9 #include <linux/stddef.h> !! 8 #include <asm/ucontext.h> 10 #include <linux/sched.h> !! 9 #include "sigframe.h" 11 #include <linux/ptrace.h> << 12 #include <linux/kbuild.h> << 13 #include <asm/machvec.h> << 14 10 15 static void __used foo(void) !! 11 #define DEFINE(sym, val) \ 16 { !! 12 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 17 DEFINE(TI_FLAGS, offsetof(struct threa << 18 DEFINE(TI_FP, offsetof(struct thread_i << 19 DEFINE(TI_STATUS, offsetof(struct thre << 20 BLANK(); << 21 13 22 DEFINE(SIZEOF_PT_REGS, sizeof(struct p !! 14 #define BLANK() asm volatile("\n->" : : ) >> 15 >> 16 void foo(void) >> 17 { >> 18 DEFINE(SIGCONTEXT_eax, offsetof (struct sigcontext, eax)); >> 19 DEFINE(SIGCONTEXT_ebx, offsetof (struct sigcontext, ebx)); >> 20 DEFINE(SIGCONTEXT_ecx, offsetof (struct sigcontext, ecx)); >> 21 DEFINE(SIGCONTEXT_edx, offsetof (struct sigcontext, edx)); >> 22 DEFINE(SIGCONTEXT_esi, offsetof (struct sigcontext, esi)); >> 23 DEFINE(SIGCONTEXT_edi, offsetof (struct sigcontext, edi)); >> 24 DEFINE(SIGCONTEXT_ebp, offsetof (struct sigcontext, ebp)); >> 25 DEFINE(SIGCONTEXT_esp, offsetof (struct sigcontext, esp)); >> 26 DEFINE(SIGCONTEXT_eip, offsetof (struct sigcontext, eip)); 23 BLANK(); 27 BLANK(); 24 28 25 DEFINE(HAE_CACHE, offsetof(struct alph !! 29 DEFINE(RT_SIGFRAME_sigcontext, 26 DEFINE(HAE_REG, offsetof(struct alpha_ !! 30 offsetof (struct rt_sigframe, uc.uc_mcontext)); 27 } 31 } 28 32
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.