Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] uml makefiles sanitized

UML makefiles sanitized:
- number of generated headers reduced to 2 (from user-offsets.c and
kernel-offsets.c resp.). The rest is made constant and simply
includes those two.
- mk_... helpers are gone now that we don't need to generate these
headers
- arch/um/include2 removed since everything under arch/um/include/sysdep
is constant now and symlink can point straight to source tree.
- dependencies seriously simplified.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Al Viro and committed by
Linus Torvalds
ecba97d4 54bb5675

+240 -573
+11 -57
arch/um/Makefile
··· 28 28 ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \ 29 29 $(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h 30 30 31 - GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h 32 - 33 31 um-modes-$(CONFIG_MODE_TT) += tt 34 32 um-modes-$(CONFIG_MODE_SKAS) += skas 35 33 ··· 43 45 44 46 ARCH_INCLUDE := -I$(ARCH_DIR)/include 45 47 ifneq ($(KBUILD_SRC),) 46 - ARCH_INCLUDE += -I$(ARCH_DIR)/include2 47 48 ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include 48 - MRPROPER_DIRS += $(ARCH_DIR)/include2 49 49 endif 50 50 SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) 51 51 ··· 83 87 84 88 SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000) 85 89 86 - ifeq ($(CONFIG_MODE_SKAS), y) 87 - $(SYS_HEADERS) : $(ARCH_DIR)/include/skas_ptregs.h 88 - endif 89 - 90 90 .PHONY: linux 91 91 92 92 all: linux ··· 103 111 $(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) 104 112 endif 105 113 106 - archprepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS) 114 + archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/user_constants.h 115 + prepare: $(ARCH_DIR)/include/kern_constants.h 107 116 108 117 LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static 109 118 LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib ··· 139 146 #When cleaning we don't include .config, so we don't include 140 147 #TT or skas makefiles and don't clean skas_ptregs.h. 141 148 CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \ 142 - $(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \ 143 - $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/Kconfig.arch 149 + $(ARCH_DIR)/include/user_constants.h \ 150 + $(ARCH_DIR)/include/kern_constants.h $(ARCH_DIR)/Kconfig.arch 144 151 145 152 MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \ 146 153 $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os 147 154 148 155 archclean: 149 - $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/util 150 - $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/os-$(OS)/util 151 156 @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ 152 157 -o -name '*.gcov' \) -type f -print | xargs rm -f 153 158 ··· 171 180 @echo ' SYMLINK $@' 172 181 ifneq ($(KBUILD_SRC),) 173 182 $(Q)mkdir -p $(ARCH_DIR)/include 174 - $(Q)mkdir -p $(ARCH_DIR)/include2 175 - $(Q)ln -fsn sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep 176 - $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include2/sysdep 183 + $(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep 177 184 else 178 185 $(Q)cd $(ARCH_DIR)/include && ln -sf sysdep-$(SUBARCH) sysdep 179 186 endif ··· 191 202 192 203 define filechk_gen-asm-offsets 193 204 (set -e; \ 194 - echo "#ifndef __ASM_OFFSETS_H__"; \ 195 - echo "#define __ASM_OFFSETS_H__"; \ 196 205 echo "/*"; \ 197 206 echo " * DO NOT MODIFY."; \ 198 207 echo " *"; \ ··· 199 212 echo " */"; \ 200 213 echo ""; \ 201 214 sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \ 202 - echo ""; \ 203 - echo "#endif" ) 215 + echo ""; ) 204 216 endef 205 217 206 218 $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h ··· 208 222 $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c 209 223 $(CC) $(USER_CFLAGS) -S -o $@ $< 210 224 211 - $(ARCH_DIR)/user-offsets.h: $(ARCH_DIR)/user-offsets.s 225 + $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s 212 226 $(call filechk,gen-asm-offsets) 213 227 214 - CLEAN_FILES += $(ARCH_DIR)/user-offsets.s $(ARCH_DIR)/user-offsets.h 228 + CLEAN_FILES += $(ARCH_DIR)/user-offsets.s 215 229 216 230 $(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \ 217 - $(ARCH_SYMLINKS) \ 218 - $(SYS_DIR)/sc.h \ 219 - include/asm include/linux/version.h \ 220 - include/config/MARKER \ 221 - $(ARCH_DIR)/include/user_constants.h 231 + archprepare 222 232 $(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $< 223 233 224 - $(ARCH_DIR)/kernel-offsets.h: $(ARCH_DIR)/kernel-offsets.s 234 + $(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/kernel-offsets.s 225 235 $(call filechk,gen-asm-offsets) 226 236 227 - CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s $(ARCH_DIR)/kernel-offsets.h 228 - 229 - $(ARCH_DIR)/include/task.h: $(ARCH_DIR)/util/mk_task 230 - $(call filechk,gen_header) 231 - 232 - $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/os-$(OS)/util/mk_user_constants 233 - $(call filechk,gen_header) 234 - 235 - $(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/util/mk_constants 236 - $(call filechk,gen_header) 237 - 238 - $(ARCH_DIR)/include/skas_ptregs.h: $(ARCH_DIR)/kernel/skas/util/mk_ptregs 239 - $(call filechk,gen_header) 240 - 241 - $(ARCH_DIR)/os-$(OS)/util/mk_user_constants: $(ARCH_DIR)/os-$(OS)/util FORCE ; 242 - 243 - $(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants: $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/util \ 244 - FORCE ; 245 - 246 - $(ARCH_DIR)/kernel/skas/util/mk_ptregs: $(ARCH_DIR)/kernel/skas/util FORCE ; 247 - 248 - $(ARCH_DIR)/util: scripts_basic $(SYS_DIR)/sc.h $(ARCH_DIR)/kernel-offsets.h FORCE 249 - $(Q)$(MAKE) $(build)=$@ 250 - 251 - $(ARCH_DIR)/kernel/skas/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE 252 - $(Q)$(MAKE) $(build)=$@ 253 - 254 - $(ARCH_DIR)/os-$(OS)/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE 255 - $(Q)$(MAKE) $(build)=$@ 237 + CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s 256 238 257 239 export SUBARCH USER_CFLAGS OS
-22
arch/um/Makefile-i386
··· 32 32 ifneq ($(CONFIG_GPROF),y) 33 33 ARCH_CFLAGS += -DUM_FASTCALL 34 34 endif 35 - 36 - SYS_UTIL_DIR := $(ARCH_DIR)/sys-i386/util 37 - SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h 38 - 39 - prepare: $(SYS_HEADERS) 40 - 41 - $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc 42 - $(call filechk,gen_header) 43 - 44 - $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 45 - $(call filechk,gen_header) 46 - 47 - $(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE 48 - $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ 49 - 50 - $(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_DIR)/kernel-offsets.h FORCE 51 - $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ 52 - 53 - $(SYS_UTIL_DIR): scripts_basic include/asm FORCE 54 - $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) 55 - 56 - CLEAN_FILES += $(SYS_HEADERS)
-2
arch/um/Makefile-skas
··· 10 10 CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT) 11 11 LINK-$(CONFIG_GCOV) += $(GCOV_OPT) 12 12 LINK-$(CONFIG_GPROF) += $(GPROF_OPT) 13 - 14 - GEN_HEADERS += $(ARCH_DIR)/include/skas_ptregs.h
-21
arch/um/Makefile-x86_64
··· 12 12 13 13 ELF_ARCH := i386:x86-64 14 14 ELF_FORMAT := elf64-x86-64 15 - 16 - SYS_UTIL_DIR := $(ARCH_DIR)/sys-x86_64/util 17 - SYS_DIR := $(ARCH_DIR)/include/sysdep-x86_64 18 - 19 - SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h 20 - 21 - prepare: $(SYS_HEADERS) 22 - 23 - $(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc 24 - $(call filechk,gen_header) 25 - 26 - $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread 27 - $(call filechk,gen_header) 28 - 29 - $(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE 30 - $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ 31 - 32 - $(SYS_UTIL_DIR)/mk_thread: scripts_basic $(GEN_HEADERS) $(ARCH_DIR)/kernel-offsets.h FORCE 33 - $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@ 34 - 35 - CLEAN_FILES += $(SYS_HEADERS)
+2 -2
arch/um/include/common-offsets.h
··· 1 1 /* for use by sys-$SUBARCH/kernel-offsets.c */ 2 2 3 - OFFSET(TASK_REGS, task_struct, thread.regs); 4 - OFFSET(TASK_PID, task_struct, pid); 3 + OFFSET(HOST_TASK_REGS, task_struct, thread.regs); 4 + OFFSET(HOST_TASK_PID, task_struct, pid); 5 5 DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE); 6 6 DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC); 7 7 DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
+6
arch/um/include/skas_ptregs.h
··· 1 + #ifndef __SKAS_PT_REGS_ 2 + #define __SKAS_PT_REGS_ 3 + 4 + #include <user_constants.h> 5 + 6 + #endif
+44
arch/um/include/sysdep-i386/sc.h
··· 1 + #ifndef __SYSDEP_I386_SC_H 2 + #define __SYSDEP_I386_SC_H 3 + 4 + #include <user_constants.h> 5 + 6 + #define SC_OFFSET(sc, field) \ 7 + *((unsigned long *) &(((char *) (sc))[HOST_##field])) 8 + #define SC_FP_OFFSET(sc, field) \ 9 + *((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field])) 10 + #define SC_FP_OFFSET_PTR(sc, field, type) \ 11 + ((type *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field])) 12 + 13 + #define SC_IP(sc) SC_OFFSET(sc, SC_IP) 14 + #define SC_SP(sc) SC_OFFSET(sc, SC_SP) 15 + #define SC_FS(sc) SC_OFFSET(sc, SC_FS) 16 + #define SC_GS(sc) SC_OFFSET(sc, SC_GS) 17 + #define SC_DS(sc) SC_OFFSET(sc, SC_DS) 18 + #define SC_ES(sc) SC_OFFSET(sc, SC_ES) 19 + #define SC_SS(sc) SC_OFFSET(sc, SC_SS) 20 + #define SC_CS(sc) SC_OFFSET(sc, SC_CS) 21 + #define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS) 22 + #define SC_EAX(sc) SC_OFFSET(sc, SC_EAX) 23 + #define SC_EBX(sc) SC_OFFSET(sc, SC_EBX) 24 + #define SC_ECX(sc) SC_OFFSET(sc, SC_ECX) 25 + #define SC_EDX(sc) SC_OFFSET(sc, SC_EDX) 26 + #define SC_EDI(sc) SC_OFFSET(sc, SC_EDI) 27 + #define SC_ESI(sc) SC_OFFSET(sc, SC_ESI) 28 + #define SC_EBP(sc) SC_OFFSET(sc, SC_EBP) 29 + #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO) 30 + #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR) 31 + #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2) 32 + #define SC_FPSTATE(sc) SC_OFFSET(sc, SC_FPSTATE) 33 + #define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK) 34 + #define SC_FP_CW(sc) SC_FP_OFFSET(sc, SC_FP_CW) 35 + #define SC_FP_SW(sc) SC_FP_OFFSET(sc, SC_FP_SW) 36 + #define SC_FP_TAG(sc) SC_FP_OFFSET(sc, SC_FP_TAG) 37 + #define SC_FP_IPOFF(sc) SC_FP_OFFSET(sc, SC_FP_IPOFF) 38 + #define SC_FP_CSSEL(sc) SC_FP_OFFSET(sc, SC_FP_CSSEL) 39 + #define SC_FP_DATAOFF(sc) SC_FP_OFFSET(sc, SC_FP_DATAOFF) 40 + #define SC_FP_DATASEL(sc) SC_FP_OFFSET(sc, SC_FP_DATASEL) 41 + #define SC_FP_ST(sc) SC_FP_OFFSET_PTR(sc, SC_FP_ST, struct _fpstate) 42 + #define SC_FXSR_ENV(sc) SC_FP_OFFSET_PTR(sc, SC_FXSR_ENV, void) 43 + 44 + #endif
+11
arch/um/include/sysdep-i386/thread.h
··· 1 + #ifndef __UM_THREAD_H 2 + #define __UM_THREAD_H 3 + 4 + #include <kern_constants.h> 5 + 6 + #define TASK_DEBUGREGS(task) ((unsigned long *) &(((char *) (task))[HOST_TASK_DEBUGREGS])) 7 + #ifdef CONFIG_MODE_TT 8 + #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) 9 + #endif 10 + 11 + #endif
+45
arch/um/include/sysdep-x86_64/sc.h
··· 1 + #ifndef __SYSDEP_X86_64_SC_H 2 + #define __SYSDEP_X86_64_SC_H 3 + 4 + /* Copyright (C) 2003 - 2004 PathScale, Inc 5 + * Released under the GPL 6 + */ 7 + 8 + #include <user_constants.h> 9 + 10 + #define SC_OFFSET(sc, field) \ 11 + *((unsigned long *) &(((char *) (sc))[HOST_##field])) 12 + 13 + #define SC_RBX(sc) SC_OFFSET(sc, SC_RBX) 14 + #define SC_RCX(sc) SC_OFFSET(sc, SC_RCX) 15 + #define SC_RDX(sc) SC_OFFSET(sc, SC_RDX) 16 + #define SC_RSI(sc) SC_OFFSET(sc, SC_RSI) 17 + #define SC_RDI(sc) SC_OFFSET(sc, SC_RDI) 18 + #define SC_RBP(sc) SC_OFFSET(sc, SC_RBP) 19 + #define SC_RAX(sc) SC_OFFSET(sc, SC_RAX) 20 + #define SC_R8(sc) SC_OFFSET(sc, SC_R8) 21 + #define SC_R9(sc) SC_OFFSET(sc, SC_R9) 22 + #define SC_R10(sc) SC_OFFSET(sc, SC_R10) 23 + #define SC_R11(sc) SC_OFFSET(sc, SC_R11) 24 + #define SC_R12(sc) SC_OFFSET(sc, SC_R12) 25 + #define SC_R13(sc) SC_OFFSET(sc, SC_R13) 26 + #define SC_R14(sc) SC_OFFSET(sc, SC_R14) 27 + #define SC_R15(sc) SC_OFFSET(sc, SC_R15) 28 + #define SC_IP(sc) SC_OFFSET(sc, SC_IP) 29 + #define SC_SP(sc) SC_OFFSET(sc, SC_SP) 30 + #define SC_CR2(sc) SC_OFFSET(sc, SC_CR2) 31 + #define SC_ERR(sc) SC_OFFSET(sc, SC_ERR) 32 + #define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO) 33 + #define SC_CS(sc) SC_OFFSET(sc, SC_CS) 34 + #define SC_FS(sc) SC_OFFSET(sc, SC_FS) 35 + #define SC_GS(sc) SC_OFFSET(sc, SC_GS) 36 + #define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS) 37 + #define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK) 38 + #if 0 39 + #define SC_ORIG_RAX(sc) SC_OFFSET(sc, SC_ORIG_RAX) 40 + #define SC_DS(sc) SC_OFFSET(sc, SC_DS) 41 + #define SC_ES(sc) SC_OFFSET(sc, SC_ES) 42 + #define SC_SS(sc) SC_OFFSET(sc, SC_SS) 43 + #endif 44 + 45 + #endif
+10
arch/um/include/sysdep-x86_64/thread.h
··· 1 + #ifndef __UM_THREAD_H 2 + #define __UM_THREAD_H 3 + 4 + #include <kern_constants.h> 5 + 6 + #ifdef CONFIG_MODE_TT 7 + #define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID])) 8 + #endif 9 + 10 + #endif
+9
arch/um/include/task.h
··· 1 + #ifndef __TASK_H 2 + #define __TASK_H 3 + 4 + #include <kern_constants.h> 5 + 6 + #define TASK_REGS(task) ((union uml_pt_regs *) &(((char *) (task))[HOST_TASK_REGS])) 7 + #define TASK_PID(task) *((int *) &(((char *) (task))[HOST_TASK_PID])) 8 + 9 + #endif
-2
arch/um/kernel/skas/Makefile
··· 6 6 obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \ 7 7 syscall.o tlb.o trap_user.o uaccess.o 8 8 9 - subdir- := util 10 - 11 9 USER_OBJS := process.o clone.o 12 10 13 11 include arch/um/scripts/Makefile.rules
-5
arch/um/kernel/skas/util/Makefile
··· 1 - hostprogs-y := mk_ptregs 2 - always := $(hostprogs-y) 3 - 4 - mk_ptregs-objs := mk_ptregs-$(SUBARCH).o 5 - HOSTCFLAGS_mk_ptregs-$(SUBARCH).o := -I$(objtree)/arch/um
-49
arch/um/kernel/skas/util/mk_ptregs-i386.c
··· 1 - #include <stdio.h> 2 - #include <user-offsets.h> 3 - 4 - #define SHOW(name) printf("#define %s %d\n", #name, name) 5 - 6 - int main(int argc, char **argv) 7 - { 8 - printf("/* Automatically generated by " 9 - "arch/um/kernel/skas/util/mk_ptregs */\n"); 10 - printf("\n"); 11 - printf("#ifndef __SKAS_PT_REGS_\n"); 12 - printf("#define __SKAS_PT_REGS_\n"); 13 - printf("\n"); 14 - SHOW(HOST_FRAME_SIZE); 15 - SHOW(HOST_FP_SIZE); 16 - SHOW(HOST_XFP_SIZE); 17 - 18 - SHOW(HOST_IP); 19 - SHOW(HOST_SP); 20 - SHOW(HOST_EFLAGS); 21 - SHOW(HOST_EAX); 22 - SHOW(HOST_EBX); 23 - SHOW(HOST_ECX); 24 - SHOW(HOST_EDX); 25 - SHOW(HOST_ESI); 26 - SHOW(HOST_EDI); 27 - SHOW(HOST_EBP); 28 - SHOW(HOST_CS); 29 - SHOW(HOST_SS); 30 - SHOW(HOST_DS); 31 - SHOW(HOST_FS); 32 - SHOW(HOST_ES); 33 - SHOW(HOST_GS); 34 - 35 - printf("\n"); 36 - printf("#endif\n"); 37 - return(0); 38 - } 39 - 40 - /* 41 - * Overrides for Emacs so that we follow Linus's tabbing style. 42 - * Emacs will notice this stuff at the end of the file and automatically 43 - * adjust the settings for this buffer only. This must remain at the end 44 - * of the file. 45 - * --------------------------------------------------------------------------- 46 - * Local variables: 47 - * c-file-style: "linux" 48 - * End: 49 - */
-66
arch/um/kernel/skas/util/mk_ptregs-x86_64.c
··· 1 - /* 2 - * Copyright 2003 PathScale, Inc. 3 - * 4 - * Licensed under the GPL 5 - */ 6 - 7 - #include <stdio.h> 8 - #include <user-offsets.h> 9 - 10 - #define SHOW(name) \ 11 - printf("#define %s (%d / sizeof(unsigned long))\n", #name, name) 12 - 13 - int main(int argc, char **argv) 14 - { 15 - printf("/* Automatically generated by " 16 - "arch/um/kernel/skas/util/mk_ptregs */\n"); 17 - printf("\n"); 18 - printf("#ifndef __SKAS_PT_REGS_\n"); 19 - printf("#define __SKAS_PT_REGS_\n"); 20 - SHOW(HOST_FRAME_SIZE); 21 - SHOW(HOST_RBX); 22 - SHOW(HOST_RCX); 23 - SHOW(HOST_RDI); 24 - SHOW(HOST_RSI); 25 - SHOW(HOST_RDX); 26 - SHOW(HOST_RBP); 27 - SHOW(HOST_RAX); 28 - SHOW(HOST_R8); 29 - SHOW(HOST_R9); 30 - SHOW(HOST_R10); 31 - SHOW(HOST_R11); 32 - SHOW(HOST_R12); 33 - SHOW(HOST_R13); 34 - SHOW(HOST_R14); 35 - SHOW(HOST_R15); 36 - SHOW(HOST_ORIG_RAX); 37 - SHOW(HOST_CS); 38 - SHOW(HOST_SS); 39 - SHOW(HOST_EFLAGS); 40 - #if 0 41 - SHOW(HOST_FS); 42 - SHOW(HOST_GS); 43 - SHOW(HOST_DS); 44 - SHOW(HOST_ES); 45 - #endif 46 - 47 - SHOW(HOST_IP); 48 - SHOW(HOST_SP); 49 - printf("#define HOST_FP_SIZE 0\n"); 50 - printf("#define HOST_XFP_SIZE 0\n"); 51 - printf("\n"); 52 - printf("\n"); 53 - printf("#endif\n"); 54 - return(0); 55 - } 56 - 57 - /* 58 - * Overrides for Emacs so that we follow Linus's tabbing style. 59 - * Emacs will notice this stuff at the end of the file and automatically 60 - * adjust the settings for this buffer only. This must remain at the end 61 - * of the file. 62 - * --------------------------------------------------------------------------- 63 - * Local variables: 64 - * c-file-style: "linux" 65 - * End: 66 - */
+1 -1
arch/um/os-Linux/elf_aux.c
··· 12 12 #include "init.h" 13 13 #include "elf_user.h" 14 14 #include "mem_user.h" 15 - #include <kernel-offsets.h> 15 + #include <kern_constants.h> 16 16 17 17 /* Use the one from the kernel - the host may miss it, if having old headers. */ 18 18 #if UM_ELF_CLASS == UM_ELFCLASS32
-4
arch/um/os-Linux/util/Makefile
··· 1 - hostprogs-y := mk_user_constants 2 - always := $(hostprogs-y) 3 - 4 - HOSTCFLAGS_mk_user_constants.o := -I$(objtree)/arch/um
-23
arch/um/os-Linux/util/mk_user_constants.c
··· 1 - #include <stdio.h> 2 - #include <user-offsets.h> 3 - 4 - int main(int argc, char **argv) 5 - { 6 - printf("/*\n"); 7 - printf(" * Generated by mk_user_constants\n"); 8 - printf(" */\n"); 9 - printf("\n"); 10 - printf("#ifndef __UM_USER_CONSTANTS_H\n"); 11 - printf("#define __UM_USER_CONSTANTS_H\n"); 12 - printf("\n"); 13 - /* I'd like to use FRAME_SIZE from ptrace.h here, but that's wrong on 14 - * x86_64 (216 vs 168 bytes). user_regs_struct is the correct size on 15 - * both x86_64 and i386. 16 - */ 17 - printf("#define UM_FRAME_SIZE %d\n", __UM_FRAME_SIZE); 18 - 19 - printf("\n"); 20 - printf("#endif\n"); 21 - 22 - return(0); 23 - }
-2
arch/um/sys-i386/Makefile
··· 18 18 19 19 $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS)) 20 20 21 - subdir- := util 22 - 23 21 include arch/um/scripts/Makefile.unmap
+2 -2
arch/um/sys-i386/kernel-offsets.c
··· 18 18 19 19 void foo(void) 20 20 { 21 - OFFSET(TASK_DEBUGREGS, task_struct, thread.arch.debugregs); 21 + OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); 22 22 #ifdef CONFIG_MODE_TT 23 - OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 23 + OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 24 24 #endif 25 25 #include <common-offsets.h> 26 26 }
+37 -36
arch/um/sys-i386/user-offsets.c
··· 7 7 #define DEFINE(sym, val) \ 8 8 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 9 9 10 + #define DEFINE_LONGS(sym, val) \ 11 + asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) 12 + 10 13 #define OFFSET(sym, str, mem) \ 11 14 DEFINE(sym, offsetof(struct str, mem)); 12 15 13 16 void foo(void) 14 17 { 15 - OFFSET(SC_IP, sigcontext, eip); 16 - OFFSET(SC_SP, sigcontext, esp); 17 - OFFSET(SC_FS, sigcontext, fs); 18 - OFFSET(SC_GS, sigcontext, gs); 19 - OFFSET(SC_DS, sigcontext, ds); 20 - OFFSET(SC_ES, sigcontext, es); 21 - OFFSET(SC_SS, sigcontext, ss); 22 - OFFSET(SC_CS, sigcontext, cs); 23 - OFFSET(SC_EFLAGS, sigcontext, eflags); 24 - OFFSET(SC_EAX, sigcontext, eax); 25 - OFFSET(SC_EBX, sigcontext, ebx); 26 - OFFSET(SC_ECX, sigcontext, ecx); 27 - OFFSET(SC_EDX, sigcontext, edx); 28 - OFFSET(SC_EDI, sigcontext, edi); 29 - OFFSET(SC_ESI, sigcontext, esi); 30 - OFFSET(SC_EBP, sigcontext, ebp); 31 - OFFSET(SC_TRAPNO, sigcontext, trapno); 32 - OFFSET(SC_ERR, sigcontext, err); 33 - OFFSET(SC_CR2, sigcontext, cr2); 34 - OFFSET(SC_FPSTATE, sigcontext, fpstate); 35 - OFFSET(SC_SIGMASK, sigcontext, oldmask); 36 - OFFSET(SC_FP_CW, _fpstate, cw); 37 - OFFSET(SC_FP_SW, _fpstate, sw); 38 - OFFSET(SC_FP_TAG, _fpstate, tag); 39 - OFFSET(SC_FP_IPOFF, _fpstate, ipoff); 40 - OFFSET(SC_FP_CSSEL, _fpstate, cssel); 41 - OFFSET(SC_FP_DATAOFF, _fpstate, dataoff); 42 - OFFSET(SC_FP_DATASEL, _fpstate, datasel); 43 - OFFSET(SC_FP_ST, _fpstate, _st); 44 - OFFSET(SC_FXSR_ENV, _fpstate, _fxsr_env); 18 + OFFSET(HOST_SC_IP, sigcontext, eip); 19 + OFFSET(HOST_SC_SP, sigcontext, esp); 20 + OFFSET(HOST_SC_FS, sigcontext, fs); 21 + OFFSET(HOST_SC_GS, sigcontext, gs); 22 + OFFSET(HOST_SC_DS, sigcontext, ds); 23 + OFFSET(HOST_SC_ES, sigcontext, es); 24 + OFFSET(HOST_SC_SS, sigcontext, ss); 25 + OFFSET(HOST_SC_CS, sigcontext, cs); 26 + OFFSET(HOST_SC_EFLAGS, sigcontext, eflags); 27 + OFFSET(HOST_SC_EAX, sigcontext, eax); 28 + OFFSET(HOST_SC_EBX, sigcontext, ebx); 29 + OFFSET(HOST_SC_ECX, sigcontext, ecx); 30 + OFFSET(HOST_SC_EDX, sigcontext, edx); 31 + OFFSET(HOST_SC_EDI, sigcontext, edi); 32 + OFFSET(HOST_SC_ESI, sigcontext, esi); 33 + OFFSET(HOST_SC_EBP, sigcontext, ebp); 34 + OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); 35 + OFFSET(HOST_SC_ERR, sigcontext, err); 36 + OFFSET(HOST_SC_CR2, sigcontext, cr2); 37 + OFFSET(HOST_SC_FPSTATE, sigcontext, fpstate); 38 + OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask); 39 + OFFSET(HOST_SC_FP_CW, _fpstate, cw); 40 + OFFSET(HOST_SC_FP_SW, _fpstate, sw); 41 + OFFSET(HOST_SC_FP_TAG, _fpstate, tag); 42 + OFFSET(HOST_SC_FP_IPOFF, _fpstate, ipoff); 43 + OFFSET(HOST_SC_FP_CSSEL, _fpstate, cssel); 44 + OFFSET(HOST_SC_FP_DATAOFF, _fpstate, dataoff); 45 + OFFSET(HOST_SC_FP_DATASEL, _fpstate, datasel); 46 + OFFSET(HOST_SC_FP_ST, _fpstate, _st); 47 + OFFSET(HOST_SC_FXSR_ENV, _fpstate, _fxsr_env); 45 48 46 - DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); 47 - DEFINE(HOST_FP_SIZE, 48 - sizeof(struct user_i387_struct) / sizeof(unsigned long)); 49 - DEFINE(HOST_XFP_SIZE, 50 - sizeof(struct user_fxsr_struct) / sizeof(unsigned long)); 49 + DEFINE_LONGS(HOST_FRAME_SIZE, FRAME_SIZE); 50 + DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_i387_struct)); 51 + DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fxsr_struct)); 51 52 52 53 DEFINE(HOST_IP, EIP); 53 54 DEFINE(HOST_SP, UESP); ··· 66 65 DEFINE(HOST_FS, FS); 67 66 DEFINE(HOST_ES, ES); 68 67 DEFINE(HOST_GS, GS); 69 - DEFINE(__UM_FRAME_SIZE, sizeof(struct user_regs_struct)); 68 + DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); 70 69 }
-5
arch/um/sys-i386/util/Makefile
··· 1 - hostprogs-y := mk_sc mk_thread 2 - always := $(hostprogs-y) 3 - 4 - HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um 5 - HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um
-51
arch/um/sys-i386/util/mk_sc.c
··· 1 - #include <stdio.h> 2 - #include <user-offsets.h> 3 - 4 - #define SC_OFFSET(name, field) \ 5 - printf("#define " #name "(sc) *((unsigned long *) &(((char *) (sc))[%d]))\n",\ 6 - name) 7 - 8 - #define SC_FP_OFFSET(name, field) \ 9 - printf("#define " #name \ 10 - "(sc) *((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ 11 - name) 12 - 13 - #define SC_FP_OFFSET_PTR(name, field, type) \ 14 - printf("#define " #name \ 15 - "(sc) ((" type " *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ 16 - name) 17 - 18 - int main(int argc, char **argv) 19 - { 20 - SC_OFFSET(SC_IP, eip); 21 - SC_OFFSET(SC_SP, esp); 22 - SC_OFFSET(SC_FS, fs); 23 - SC_OFFSET(SC_GS, gs); 24 - SC_OFFSET(SC_DS, ds); 25 - SC_OFFSET(SC_ES, es); 26 - SC_OFFSET(SC_SS, ss); 27 - SC_OFFSET(SC_CS, cs); 28 - SC_OFFSET(SC_EFLAGS, eflags); 29 - SC_OFFSET(SC_EAX, eax); 30 - SC_OFFSET(SC_EBX, ebx); 31 - SC_OFFSET(SC_ECX, ecx); 32 - SC_OFFSET(SC_EDX, edx); 33 - SC_OFFSET(SC_EDI, edi); 34 - SC_OFFSET(SC_ESI, esi); 35 - SC_OFFSET(SC_EBP, ebp); 36 - SC_OFFSET(SC_TRAPNO, trapno); 37 - SC_OFFSET(SC_ERR, err); 38 - SC_OFFSET(SC_CR2, cr2); 39 - SC_OFFSET(SC_FPSTATE, fpstate); 40 - SC_OFFSET(SC_SIGMASK, oldmask); 41 - SC_FP_OFFSET(SC_FP_CW, cw); 42 - SC_FP_OFFSET(SC_FP_SW, sw); 43 - SC_FP_OFFSET(SC_FP_TAG, tag); 44 - SC_FP_OFFSET(SC_FP_IPOFF, ipoff); 45 - SC_FP_OFFSET(SC_FP_CSSEL, cssel); 46 - SC_FP_OFFSET(SC_FP_DATAOFF, dataoff); 47 - SC_FP_OFFSET(SC_FP_DATASEL, datasel); 48 - SC_FP_OFFSET_PTR(SC_FP_ST, _st, "struct _fpstate"); 49 - SC_FP_OFFSET_PTR(SC_FXSR_ENV, _fxsr_env, "void"); 50 - return(0); 51 - }
-22
arch/um/sys-i386/util/mk_thread.c
··· 1 - #include <stdio.h> 2 - #include <kernel-offsets.h> 3 - 4 - int main(int argc, char **argv) 5 - { 6 - printf("/*\n"); 7 - printf(" * Generated by mk_thread\n"); 8 - printf(" */\n"); 9 - printf("\n"); 10 - printf("#ifndef __UM_THREAD_H\n"); 11 - printf("#define __UM_THREAD_H\n"); 12 - printf("\n"); 13 - printf("#define TASK_DEBUGREGS(task) ((unsigned long *) " 14 - "&(((char *) (task))[%d]))\n", TASK_DEBUGREGS); 15 - #ifdef TASK_EXTERN_PID 16 - printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n", 17 - TASK_EXTERN_PID); 18 - #endif 19 - printf("\n"); 20 - printf("#endif\n"); 21 - return(0); 22 - }
-2
arch/um/sys-x86_64/Makefile
··· 29 29 30 30 $(obj)/stub_segv.o: _c_flags = $(call unprofile,$(CFLAGS)) 31 31 32 - subdir- := util 33 - 34 32 include arch/um/scripts/Makefile.unmap
+1 -1
arch/um/sys-x86_64/kernel-offsets.c
··· 19 19 void foo(void) 20 20 { 21 21 #ifdef CONFIG_MODE_TT 22 - OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 22 + OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); 23 23 #endif 24 24 #include <common-offsets.h> 25 25 }
+61 -56
arch/um/sys-x86_64/user-offsets.c
··· 16 16 #define DEFINE(sym, val) \ 17 17 asm volatile("\n->" #sym " %0 " #val : : "i" (val)) 18 18 19 + #define DEFINE_LONGS(sym, val) \ 20 + asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) 21 + 19 22 #define OFFSET(sym, str, mem) \ 20 23 DEFINE(sym, offsetof(struct str, mem)); 21 24 22 25 void foo(void) 23 26 { 24 - OFFSET(SC_RBX, sigcontext, rbx); 25 - OFFSET(SC_RCX, sigcontext, rcx); 26 - OFFSET(SC_RDX, sigcontext, rdx); 27 - OFFSET(SC_RSI, sigcontext, rsi); 28 - OFFSET(SC_RDI, sigcontext, rdi); 29 - OFFSET(SC_RBP, sigcontext, rbp); 30 - OFFSET(SC_RAX, sigcontext, rax); 31 - OFFSET(SC_R8, sigcontext, r8); 32 - OFFSET(SC_R9, sigcontext, r9); 33 - OFFSET(SC_R10, sigcontext, r10); 34 - OFFSET(SC_R11, sigcontext, r11); 35 - OFFSET(SC_R12, sigcontext, r12); 36 - OFFSET(SC_R13, sigcontext, r13); 37 - OFFSET(SC_R14, sigcontext, r14); 38 - OFFSET(SC_R15, sigcontext, r15); 39 - OFFSET(SC_IP, sigcontext, rip); 40 - OFFSET(SC_SP, sigcontext, rsp); 41 - OFFSET(SC_CR2, sigcontext, cr2); 42 - OFFSET(SC_ERR, sigcontext, err); 43 - OFFSET(SC_TRAPNO, sigcontext, trapno); 44 - OFFSET(SC_CS, sigcontext, cs); 45 - OFFSET(SC_FS, sigcontext, fs); 46 - OFFSET(SC_GS, sigcontext, gs); 47 - OFFSET(SC_EFLAGS, sigcontext, eflags); 48 - OFFSET(SC_SIGMASK, sigcontext, oldmask); 27 + OFFSET(HOST_SC_RBX, sigcontext, rbx); 28 + OFFSET(HOST_SC_RCX, sigcontext, rcx); 29 + OFFSET(HOST_SC_RDX, sigcontext, rdx); 30 + OFFSET(HOST_SC_RSI, sigcontext, rsi); 31 + OFFSET(HOST_SC_RDI, sigcontext, rdi); 32 + OFFSET(HOST_SC_RBP, sigcontext, rbp); 33 + OFFSET(HOST_SC_RAX, sigcontext, rax); 34 + OFFSET(HOST_SC_R8, sigcontext, r8); 35 + OFFSET(HOST_SC_R9, sigcontext, r9); 36 + OFFSET(HOST_SC_R10, sigcontext, r10); 37 + OFFSET(HOST_SC_R11, sigcontext, r11); 38 + OFFSET(HOST_SC_R12, sigcontext, r12); 39 + OFFSET(HOST_SC_R13, sigcontext, r13); 40 + OFFSET(HOST_SC_R14, sigcontext, r14); 41 + OFFSET(HOST_SC_R15, sigcontext, r15); 42 + OFFSET(HOST_SC_IP, sigcontext, rip); 43 + OFFSET(HOST_SC_SP, sigcontext, rsp); 44 + OFFSET(HOST_SC_CR2, sigcontext, cr2); 45 + OFFSET(HOST_SC_ERR, sigcontext, err); 46 + OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); 47 + OFFSET(HOST_SC_CS, sigcontext, cs); 48 + OFFSET(HOST_SC_FS, sigcontext, fs); 49 + OFFSET(HOST_SC_GS, sigcontext, gs); 50 + OFFSET(HOST_SC_EFLAGS, sigcontext, eflags); 51 + OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask); 49 52 #if 0 50 - OFFSET(SC_ORIG_RAX, sigcontext, orig_rax); 51 - OFFSET(SC_DS, sigcontext, ds); 52 - OFFSET(SC_ES, sigcontext, es); 53 - OFFSET(SC_SS, sigcontext, ss); 53 + OFFSET(HOST_SC_ORIG_RAX, sigcontext, orig_rax); 54 + OFFSET(HOST_SC_DS, sigcontext, ds); 55 + OFFSET(HOST_SC_ES, sigcontext, es); 56 + OFFSET(HOST_SC_SS, sigcontext, ss); 54 57 #endif 55 58 56 - DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); 57 - DEFINE(HOST_RBX, RBX); 58 - DEFINE(HOST_RCX, RCX); 59 - DEFINE(HOST_RDI, RDI); 60 - DEFINE(HOST_RSI, RSI); 61 - DEFINE(HOST_RDX, RDX); 62 - DEFINE(HOST_RBP, RBP); 63 - DEFINE(HOST_RAX, RAX); 64 - DEFINE(HOST_R8, R8); 65 - DEFINE(HOST_R9, R9); 66 - DEFINE(HOST_R10, R10); 67 - DEFINE(HOST_R11, R11); 68 - DEFINE(HOST_R12, R12); 69 - DEFINE(HOST_R13, R13); 70 - DEFINE(HOST_R14, R14); 71 - DEFINE(HOST_R15, R15); 72 - DEFINE(HOST_ORIG_RAX, ORIG_RAX); 73 - DEFINE(HOST_CS, CS); 74 - DEFINE(HOST_SS, SS); 75 - DEFINE(HOST_EFLAGS, EFLAGS); 59 + DEFINE_LONGS(HOST_FRAME_SIZE, FRAME_SIZE); 60 + DEFINE(HOST_FP_SIZE, 0); 61 + DEFINE(HOST_XFP_SIZE, 0); 62 + DEFINE_LONGS(HOST_RBX, RBX); 63 + DEFINE_LONGS(HOST_RCX, RCX); 64 + DEFINE_LONGS(HOST_RDI, RDI); 65 + DEFINE_LONGS(HOST_RSI, RSI); 66 + DEFINE_LONGS(HOST_RDX, RDX); 67 + DEFINE_LONGS(HOST_RBP, RBP); 68 + DEFINE_LONGS(HOST_RAX, RAX); 69 + DEFINE_LONGS(HOST_R8, R8); 70 + DEFINE_LONGS(HOST_R9, R9); 71 + DEFINE_LONGS(HOST_R10, R10); 72 + DEFINE_LONGS(HOST_R11, R11); 73 + DEFINE_LONGS(HOST_R12, R12); 74 + DEFINE_LONGS(HOST_R13, R13); 75 + DEFINE_LONGS(HOST_R14, R14); 76 + DEFINE_LONGS(HOST_R15, R15); 77 + DEFINE_LONGS(HOST_ORIG_RAX, ORIG_RAX); 78 + DEFINE_LONGS(HOST_CS, CS); 79 + DEFINE_LONGS(HOST_SS, SS); 80 + DEFINE_LONGS(HOST_EFLAGS, EFLAGS); 76 81 #if 0 77 - DEFINE(HOST_FS, FS); 78 - DEFINE(HOST_GS, GS); 79 - DEFINE(HOST_DS, DS); 80 - DEFINE(HOST_ES, ES); 82 + DEFINE_LONGS(HOST_FS, FS); 83 + DEFINE_LONGS(HOST_GS, GS); 84 + DEFINE_LONGS(HOST_DS, DS); 85 + DEFINE_LONGS(HOST_ES, ES); 81 86 #endif 82 87 83 - DEFINE(HOST_IP, RIP); 84 - DEFINE(HOST_SP, RSP); 85 - DEFINE(__UM_FRAME_SIZE, sizeof(struct user_regs_struct)); 88 + DEFINE_LONGS(HOST_IP, RIP); 89 + DEFINE_LONGS(HOST_SP, RSP); 90 + DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); 86 91 }
-8
arch/um/sys-x86_64/util/Makefile
··· 1 - # Copyright 2003 - 2004 Pathscale, Inc 2 - # Released under the GPL 3 - 4 - hostprogs-y := mk_sc mk_thread 5 - always := $(hostprogs-y) 6 - 7 - HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um 8 - HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um
-47
arch/um/sys-x86_64/util/mk_sc.c
··· 1 - /* Copyright (C) 2003 - 2004 PathScale, Inc 2 - * Released under the GPL 3 - */ 4 - 5 - #include <stdio.h> 6 - #include <user-offsets.h> 7 - 8 - #define SC_OFFSET(name) \ 9 - printf("#define " #name \ 10 - "(sc) *((unsigned long *) &(((char *) (sc))[%d]))\n",\ 11 - name) 12 - 13 - int main(int argc, char **argv) 14 - { 15 - SC_OFFSET(SC_RBX); 16 - SC_OFFSET(SC_RCX); 17 - SC_OFFSET(SC_RDX); 18 - SC_OFFSET(SC_RSI); 19 - SC_OFFSET(SC_RDI); 20 - SC_OFFSET(SC_RBP); 21 - SC_OFFSET(SC_RAX); 22 - SC_OFFSET(SC_R8); 23 - SC_OFFSET(SC_R9); 24 - SC_OFFSET(SC_R10); 25 - SC_OFFSET(SC_R11); 26 - SC_OFFSET(SC_R12); 27 - SC_OFFSET(SC_R13); 28 - SC_OFFSET(SC_R14); 29 - SC_OFFSET(SC_R15); 30 - SC_OFFSET(SC_IP); 31 - SC_OFFSET(SC_SP); 32 - SC_OFFSET(SC_CR2); 33 - SC_OFFSET(SC_ERR); 34 - SC_OFFSET(SC_TRAPNO); 35 - SC_OFFSET(SC_CS); 36 - SC_OFFSET(SC_FS); 37 - SC_OFFSET(SC_GS); 38 - SC_OFFSET(SC_EFLAGS); 39 - SC_OFFSET(SC_SIGMASK); 40 - #if 0 41 - SC_OFFSET(SC_ORIG_RAX); 42 - SC_OFFSET(SC_DS); 43 - SC_OFFSET(SC_ES); 44 - SC_OFFSET(SC_SS); 45 - #endif 46 - return(0); 47 - }
-20
arch/um/sys-x86_64/util/mk_thread.c
··· 1 - #include <stdio.h> 2 - #include <kernel-offsets.h> 3 - 4 - int main(int argc, char **argv) 5 - { 6 - printf("/*\n"); 7 - printf(" * Generated by mk_thread\n"); 8 - printf(" */\n"); 9 - printf("\n"); 10 - printf("#ifndef __UM_THREAD_H\n"); 11 - printf("#define __UM_THREAD_H\n"); 12 - printf("\n"); 13 - #ifdef TASK_EXTERN_PID 14 - printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n", 15 - TASK_EXTERN_PID); 16 - #endif 17 - printf("\n"); 18 - printf("#endif\n"); 19 - return(0); 20 - }
-5
arch/um/util/Makefile
··· 1 - hostprogs-y := mk_task mk_constants 2 - always := $(hostprogs-y) 3 - 4 - HOSTCFLAGS_mk_task.o := -I$(objtree)/arch/um 5 - HOSTCFLAGS_mk_constants.o := -I$(objtree)/arch/um
-32
arch/um/util/mk_constants.c
··· 1 - #include <stdio.h> 2 - #include <kernel-offsets.h> 3 - 4 - #define SHOW_INT(sym) printf("#define %s %d\n", #sym, sym) 5 - #define SHOW_STR(sym) printf("#define %s %s\n", #sym, sym) 6 - 7 - int main(int argc, char **argv) 8 - { 9 - printf("/*\n"); 10 - printf(" * Generated by mk_constants\n"); 11 - printf(" */\n"); 12 - printf("\n"); 13 - printf("#ifndef __UM_CONSTANTS_H\n"); 14 - printf("#define __UM_CONSTANTS_H\n"); 15 - printf("\n"); 16 - 17 - SHOW_INT(UM_KERN_PAGE_SIZE); 18 - 19 - SHOW_STR(UM_KERN_EMERG); 20 - SHOW_STR(UM_KERN_ALERT); 21 - SHOW_STR(UM_KERN_CRIT); 22 - SHOW_STR(UM_KERN_ERR); 23 - SHOW_STR(UM_KERN_WARNING); 24 - SHOW_STR(UM_KERN_NOTICE); 25 - SHOW_STR(UM_KERN_INFO); 26 - SHOW_STR(UM_KERN_DEBUG); 27 - 28 - SHOW_INT(UM_NSEC_PER_SEC); 29 - printf("\n"); 30 - printf("#endif\n"); 31 - return(0); 32 - }
-30
arch/um/util/mk_task.c
··· 1 - #include <stdio.h> 2 - #include <kernel-offsets.h> 3 - 4 - void print_ptr(char *name, char *type, int offset) 5 - { 6 - printf("#define %s(task) ((%s *) &(((char *) (task))[%d]))\n", name, type, 7 - offset); 8 - } 9 - 10 - void print(char *name, char *type, int offset) 11 - { 12 - printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type, 13 - offset); 14 - } 15 - 16 - int main(int argc, char **argv) 17 - { 18 - printf("/*\n"); 19 - printf(" * Generated by mk_task\n"); 20 - printf(" */\n"); 21 - printf("\n"); 22 - printf("#ifndef __TASK_H\n"); 23 - printf("#define __TASK_H\n"); 24 - printf("\n"); 25 - print_ptr("TASK_REGS", "union uml_pt_regs", TASK_REGS); 26 - print("TASK_PID", "int", TASK_PID); 27 - printf("\n"); 28 - printf("#endif\n"); 29 - return(0); 30 - }