mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
[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>
This commit is contained in:
+11
-57
@@ -28,8 +28,6 @@ SYMLINK_HEADERS := $(foreach header,$(SYMLINK_HEADERS),include/asm-um/$(header))
|
|||||||
ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \
|
ARCH_SYMLINKS = include/asm-um/arch $(ARCH_DIR)/include/sysdep $(ARCH_DIR)/os \
|
||||||
$(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
|
$(SYMLINK_HEADERS) $(ARCH_DIR)/include/uml-config.h
|
||||||
|
|
||||||
GEN_HEADERS += $(ARCH_DIR)/include/task.h $(ARCH_DIR)/include/kern_constants.h
|
|
||||||
|
|
||||||
um-modes-$(CONFIG_MODE_TT) += tt
|
um-modes-$(CONFIG_MODE_TT) += tt
|
||||||
um-modes-$(CONFIG_MODE_SKAS) += skas
|
um-modes-$(CONFIG_MODE_SKAS) += skas
|
||||||
|
|
||||||
@@ -45,9 +43,7 @@ endif
|
|||||||
|
|
||||||
ARCH_INCLUDE := -I$(ARCH_DIR)/include
|
ARCH_INCLUDE := -I$(ARCH_DIR)/include
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
ARCH_INCLUDE += -I$(ARCH_DIR)/include2
|
|
||||||
ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include
|
ARCH_INCLUDE += -I$(srctree)/$(ARCH_DIR)/include
|
||||||
MRPROPER_DIRS += $(ARCH_DIR)/include2
|
|
||||||
endif
|
endif
|
||||||
SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH)
|
SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH)
|
||||||
|
|
||||||
@@ -87,10 +83,6 @@ CONFIG_KERNEL_HALF_GIGS ?= 0
|
|||||||
|
|
||||||
SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
|
SIZE = (($(CONFIG_NEST_LEVEL) + $(CONFIG_KERNEL_HALF_GIGS)) * 0x20000000)
|
||||||
|
|
||||||
ifeq ($(CONFIG_MODE_SKAS), y)
|
|
||||||
$(SYS_HEADERS) : $(ARCH_DIR)/include/skas_ptregs.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: linux
|
.PHONY: linux
|
||||||
|
|
||||||
all: linux
|
all: linux
|
||||||
@@ -111,7 +103,8 @@ else
|
|||||||
$(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch)
|
$(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
archprepare: $(ARCH_SYMLINKS) $(SYS_HEADERS) $(GEN_HEADERS)
|
archprepare: $(ARCH_SYMLINKS) $(ARCH_DIR)/include/user_constants.h
|
||||||
|
prepare: $(ARCH_DIR)/include/kern_constants.h
|
||||||
|
|
||||||
LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
|
LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
|
||||||
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib
|
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib
|
||||||
@@ -146,15 +139,13 @@ endef
|
|||||||
#When cleaning we don't include .config, so we don't include
|
#When cleaning we don't include .config, so we don't include
|
||||||
#TT or skas makefiles and don't clean skas_ptregs.h.
|
#TT or skas makefiles and don't clean skas_ptregs.h.
|
||||||
CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \
|
CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \
|
||||||
$(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \
|
$(ARCH_DIR)/include/user_constants.h \
|
||||||
$(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/Kconfig.arch
|
$(ARCH_DIR)/include/kern_constants.h $(ARCH_DIR)/Kconfig.arch
|
||||||
|
|
||||||
MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
|
MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
|
||||||
$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os
|
$(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os
|
||||||
|
|
||||||
archclean:
|
archclean:
|
||||||
$(Q)$(MAKE) $(clean)=$(ARCH_DIR)/util
|
|
||||||
$(Q)$(MAKE) $(clean)=$(ARCH_DIR)/os-$(OS)/util
|
|
||||||
@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
|
@find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
|
||||||
-o -name '*.gcov' \) -type f -print | xargs rm -f
|
-o -name '*.gcov' \) -type f -print | xargs rm -f
|
||||||
|
|
||||||
@@ -180,9 +171,7 @@ $(ARCH_DIR)/include/sysdep:
|
|||||||
@echo ' SYMLINK $@'
|
@echo ' SYMLINK $@'
|
||||||
ifneq ($(KBUILD_SRC),)
|
ifneq ($(KBUILD_SRC),)
|
||||||
$(Q)mkdir -p $(ARCH_DIR)/include
|
$(Q)mkdir -p $(ARCH_DIR)/include
|
||||||
$(Q)mkdir -p $(ARCH_DIR)/include2
|
$(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep
|
||||||
$(Q)ln -fsn sysdep-$(SUBARCH) $(ARCH_DIR)/include/sysdep
|
|
||||||
$(Q)ln -fsn $(srctree)/$(ARCH_DIR)/include/sysdep-$(SUBARCH) $(ARCH_DIR)/include2/sysdep
|
|
||||||
else
|
else
|
||||||
$(Q)cd $(ARCH_DIR)/include && ln -sf sysdep-$(SUBARCH) sysdep
|
$(Q)cd $(ARCH_DIR)/include && ln -sf sysdep-$(SUBARCH) sysdep
|
||||||
endif
|
endif
|
||||||
@@ -202,8 +191,6 @@ endef
|
|||||||
|
|
||||||
define filechk_gen-asm-offsets
|
define filechk_gen-asm-offsets
|
||||||
(set -e; \
|
(set -e; \
|
||||||
echo "#ifndef __ASM_OFFSETS_H__"; \
|
|
||||||
echo "#define __ASM_OFFSETS_H__"; \
|
|
||||||
echo "/*"; \
|
echo "/*"; \
|
||||||
echo " * DO NOT MODIFY."; \
|
echo " * DO NOT MODIFY."; \
|
||||||
echo " *"; \
|
echo " *"; \
|
||||||
@@ -212,8 +199,7 @@ define filechk_gen-asm-offsets
|
|||||||
echo " */"; \
|
echo " */"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
|
sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
|
||||||
echo ""; \
|
echo ""; )
|
||||||
echo "#endif" )
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
|
$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
|
||||||
@@ -222,50 +208,18 @@ $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
|
|||||||
$(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c
|
$(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c
|
||||||
$(CC) $(USER_CFLAGS) -S -o $@ $<
|
$(CC) $(USER_CFLAGS) -S -o $@ $<
|
||||||
|
|
||||||
$(ARCH_DIR)/user-offsets.h: $(ARCH_DIR)/user-offsets.s
|
$(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s
|
||||||
$(call filechk,gen-asm-offsets)
|
$(call filechk,gen-asm-offsets)
|
||||||
|
|
||||||
CLEAN_FILES += $(ARCH_DIR)/user-offsets.s $(ARCH_DIR)/user-offsets.h
|
CLEAN_FILES += $(ARCH_DIR)/user-offsets.s
|
||||||
|
|
||||||
$(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \
|
$(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \
|
||||||
$(ARCH_SYMLINKS) \
|
archprepare
|
||||||
$(SYS_DIR)/sc.h \
|
|
||||||
include/asm include/linux/version.h \
|
|
||||||
include/config/MARKER \
|
|
||||||
$(ARCH_DIR)/include/user_constants.h
|
|
||||||
$(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $<
|
$(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $<
|
||||||
|
|
||||||
$(ARCH_DIR)/kernel-offsets.h: $(ARCH_DIR)/kernel-offsets.s
|
$(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/kernel-offsets.s
|
||||||
$(call filechk,gen-asm-offsets)
|
$(call filechk,gen-asm-offsets)
|
||||||
|
|
||||||
CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s $(ARCH_DIR)/kernel-offsets.h
|
CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s
|
||||||
|
|
||||||
$(ARCH_DIR)/include/task.h: $(ARCH_DIR)/util/mk_task
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/os-$(OS)/util/mk_user_constants
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/util/mk_constants
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(ARCH_DIR)/include/skas_ptregs.h: $(ARCH_DIR)/kernel/skas/util/mk_ptregs
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(ARCH_DIR)/os-$(OS)/util/mk_user_constants: $(ARCH_DIR)/os-$(OS)/util FORCE ;
|
|
||||||
|
|
||||||
$(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants: $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/util \
|
|
||||||
FORCE ;
|
|
||||||
|
|
||||||
$(ARCH_DIR)/kernel/skas/util/mk_ptregs: $(ARCH_DIR)/kernel/skas/util FORCE ;
|
|
||||||
|
|
||||||
$(ARCH_DIR)/util: scripts_basic $(SYS_DIR)/sc.h $(ARCH_DIR)/kernel-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$@
|
|
||||||
|
|
||||||
$(ARCH_DIR)/kernel/skas/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$@
|
|
||||||
|
|
||||||
$(ARCH_DIR)/os-$(OS)/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$@
|
|
||||||
|
|
||||||
export SUBARCH USER_CFLAGS OS
|
export SUBARCH USER_CFLAGS OS
|
||||||
|
|||||||
@@ -32,25 +32,3 @@ CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH)
|
|||||||
ifneq ($(CONFIG_GPROF),y)
|
ifneq ($(CONFIG_GPROF),y)
|
||||||
ARCH_CFLAGS += -DUM_FASTCALL
|
ARCH_CFLAGS += -DUM_FASTCALL
|
||||||
endif
|
endif
|
||||||
|
|
||||||
SYS_UTIL_DIR := $(ARCH_DIR)/sys-i386/util
|
|
||||||
SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
|
|
||||||
|
|
||||||
prepare: $(SYS_HEADERS)
|
|
||||||
|
|
||||||
$(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_DIR)/kernel-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
||||||
|
|
||||||
$(SYS_UTIL_DIR): scripts_basic include/asm FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR)
|
|
||||||
|
|
||||||
CLEAN_FILES += $(SYS_HEADERS)
|
|
||||||
|
|||||||
@@ -10,5 +10,3 @@ CFLAGS-$(CONFIG_GCOV) += $(GCOV_OPT)
|
|||||||
CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT)
|
CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT)
|
||||||
LINK-$(CONFIG_GCOV) += $(GCOV_OPT)
|
LINK-$(CONFIG_GCOV) += $(GCOV_OPT)
|
||||||
LINK-$(CONFIG_GPROF) += $(GPROF_OPT)
|
LINK-$(CONFIG_GPROF) += $(GPROF_OPT)
|
||||||
|
|
||||||
GEN_HEADERS += $(ARCH_DIR)/include/skas_ptregs.h
|
|
||||||
|
|||||||
@@ -12,24 +12,3 @@ CHECKFLAGS += -m64
|
|||||||
|
|
||||||
ELF_ARCH := i386:x86-64
|
ELF_ARCH := i386:x86-64
|
||||||
ELF_FORMAT := elf64-x86-64
|
ELF_FORMAT := elf64-x86-64
|
||||||
|
|
||||||
SYS_UTIL_DIR := $(ARCH_DIR)/sys-x86_64/util
|
|
||||||
SYS_DIR := $(ARCH_DIR)/include/sysdep-x86_64
|
|
||||||
|
|
||||||
SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
|
|
||||||
|
|
||||||
prepare: $(SYS_HEADERS)
|
|
||||||
|
|
||||||
$(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
|
|
||||||
$(call filechk,gen_header)
|
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(GEN_HEADERS) $(ARCH_DIR)/kernel-offsets.h FORCE
|
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
||||||
|
|
||||||
CLEAN_FILES += $(SYS_HEADERS)
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* for use by sys-$SUBARCH/kernel-offsets.c */
|
/* for use by sys-$SUBARCH/kernel-offsets.c */
|
||||||
|
|
||||||
OFFSET(TASK_REGS, task_struct, thread.regs);
|
OFFSET(HOST_TASK_REGS, task_struct, thread.regs);
|
||||||
OFFSET(TASK_PID, task_struct, pid);
|
OFFSET(HOST_TASK_PID, task_struct, pid);
|
||||||
DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE);
|
DEFINE(UM_KERN_PAGE_SIZE, PAGE_SIZE);
|
||||||
DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC);
|
DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC);
|
||||||
DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
|
DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef __SKAS_PT_REGS_
|
||||||
|
#define __SKAS_PT_REGS_
|
||||||
|
|
||||||
|
#include <user_constants.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#ifndef __SYSDEP_I386_SC_H
|
||||||
|
#define __SYSDEP_I386_SC_H
|
||||||
|
|
||||||
|
#include <user_constants.h>
|
||||||
|
|
||||||
|
#define SC_OFFSET(sc, field) \
|
||||||
|
*((unsigned long *) &(((char *) (sc))[HOST_##field]))
|
||||||
|
#define SC_FP_OFFSET(sc, field) \
|
||||||
|
*((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field]))
|
||||||
|
#define SC_FP_OFFSET_PTR(sc, field, type) \
|
||||||
|
((type *) &(((char *) (SC_FPSTATE(sc)))[HOST_##field]))
|
||||||
|
|
||||||
|
#define SC_IP(sc) SC_OFFSET(sc, SC_IP)
|
||||||
|
#define SC_SP(sc) SC_OFFSET(sc, SC_SP)
|
||||||
|
#define SC_FS(sc) SC_OFFSET(sc, SC_FS)
|
||||||
|
#define SC_GS(sc) SC_OFFSET(sc, SC_GS)
|
||||||
|
#define SC_DS(sc) SC_OFFSET(sc, SC_DS)
|
||||||
|
#define SC_ES(sc) SC_OFFSET(sc, SC_ES)
|
||||||
|
#define SC_SS(sc) SC_OFFSET(sc, SC_SS)
|
||||||
|
#define SC_CS(sc) SC_OFFSET(sc, SC_CS)
|
||||||
|
#define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS)
|
||||||
|
#define SC_EAX(sc) SC_OFFSET(sc, SC_EAX)
|
||||||
|
#define SC_EBX(sc) SC_OFFSET(sc, SC_EBX)
|
||||||
|
#define SC_ECX(sc) SC_OFFSET(sc, SC_ECX)
|
||||||
|
#define SC_EDX(sc) SC_OFFSET(sc, SC_EDX)
|
||||||
|
#define SC_EDI(sc) SC_OFFSET(sc, SC_EDI)
|
||||||
|
#define SC_ESI(sc) SC_OFFSET(sc, SC_ESI)
|
||||||
|
#define SC_EBP(sc) SC_OFFSET(sc, SC_EBP)
|
||||||
|
#define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO)
|
||||||
|
#define SC_ERR(sc) SC_OFFSET(sc, SC_ERR)
|
||||||
|
#define SC_CR2(sc) SC_OFFSET(sc, SC_CR2)
|
||||||
|
#define SC_FPSTATE(sc) SC_OFFSET(sc, SC_FPSTATE)
|
||||||
|
#define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK)
|
||||||
|
#define SC_FP_CW(sc) SC_FP_OFFSET(sc, SC_FP_CW)
|
||||||
|
#define SC_FP_SW(sc) SC_FP_OFFSET(sc, SC_FP_SW)
|
||||||
|
#define SC_FP_TAG(sc) SC_FP_OFFSET(sc, SC_FP_TAG)
|
||||||
|
#define SC_FP_IPOFF(sc) SC_FP_OFFSET(sc, SC_FP_IPOFF)
|
||||||
|
#define SC_FP_CSSEL(sc) SC_FP_OFFSET(sc, SC_FP_CSSEL)
|
||||||
|
#define SC_FP_DATAOFF(sc) SC_FP_OFFSET(sc, SC_FP_DATAOFF)
|
||||||
|
#define SC_FP_DATASEL(sc) SC_FP_OFFSET(sc, SC_FP_DATASEL)
|
||||||
|
#define SC_FP_ST(sc) SC_FP_OFFSET_PTR(sc, SC_FP_ST, struct _fpstate)
|
||||||
|
#define SC_FXSR_ENV(sc) SC_FP_OFFSET_PTR(sc, SC_FXSR_ENV, void)
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#ifndef __UM_THREAD_H
|
||||||
|
#define __UM_THREAD_H
|
||||||
|
|
||||||
|
#include <kern_constants.h>
|
||||||
|
|
||||||
|
#define TASK_DEBUGREGS(task) ((unsigned long *) &(((char *) (task))[HOST_TASK_DEBUGREGS]))
|
||||||
|
#ifdef CONFIG_MODE_TT
|
||||||
|
#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#ifndef __SYSDEP_X86_64_SC_H
|
||||||
|
#define __SYSDEP_X86_64_SC_H
|
||||||
|
|
||||||
|
/* Copyright (C) 2003 - 2004 PathScale, Inc
|
||||||
|
* Released under the GPL
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <user_constants.h>
|
||||||
|
|
||||||
|
#define SC_OFFSET(sc, field) \
|
||||||
|
*((unsigned long *) &(((char *) (sc))[HOST_##field]))
|
||||||
|
|
||||||
|
#define SC_RBX(sc) SC_OFFSET(sc, SC_RBX)
|
||||||
|
#define SC_RCX(sc) SC_OFFSET(sc, SC_RCX)
|
||||||
|
#define SC_RDX(sc) SC_OFFSET(sc, SC_RDX)
|
||||||
|
#define SC_RSI(sc) SC_OFFSET(sc, SC_RSI)
|
||||||
|
#define SC_RDI(sc) SC_OFFSET(sc, SC_RDI)
|
||||||
|
#define SC_RBP(sc) SC_OFFSET(sc, SC_RBP)
|
||||||
|
#define SC_RAX(sc) SC_OFFSET(sc, SC_RAX)
|
||||||
|
#define SC_R8(sc) SC_OFFSET(sc, SC_R8)
|
||||||
|
#define SC_R9(sc) SC_OFFSET(sc, SC_R9)
|
||||||
|
#define SC_R10(sc) SC_OFFSET(sc, SC_R10)
|
||||||
|
#define SC_R11(sc) SC_OFFSET(sc, SC_R11)
|
||||||
|
#define SC_R12(sc) SC_OFFSET(sc, SC_R12)
|
||||||
|
#define SC_R13(sc) SC_OFFSET(sc, SC_R13)
|
||||||
|
#define SC_R14(sc) SC_OFFSET(sc, SC_R14)
|
||||||
|
#define SC_R15(sc) SC_OFFSET(sc, SC_R15)
|
||||||
|
#define SC_IP(sc) SC_OFFSET(sc, SC_IP)
|
||||||
|
#define SC_SP(sc) SC_OFFSET(sc, SC_SP)
|
||||||
|
#define SC_CR2(sc) SC_OFFSET(sc, SC_CR2)
|
||||||
|
#define SC_ERR(sc) SC_OFFSET(sc, SC_ERR)
|
||||||
|
#define SC_TRAPNO(sc) SC_OFFSET(sc, SC_TRAPNO)
|
||||||
|
#define SC_CS(sc) SC_OFFSET(sc, SC_CS)
|
||||||
|
#define SC_FS(sc) SC_OFFSET(sc, SC_FS)
|
||||||
|
#define SC_GS(sc) SC_OFFSET(sc, SC_GS)
|
||||||
|
#define SC_EFLAGS(sc) SC_OFFSET(sc, SC_EFLAGS)
|
||||||
|
#define SC_SIGMASK(sc) SC_OFFSET(sc, SC_SIGMASK)
|
||||||
|
#if 0
|
||||||
|
#define SC_ORIG_RAX(sc) SC_OFFSET(sc, SC_ORIG_RAX)
|
||||||
|
#define SC_DS(sc) SC_OFFSET(sc, SC_DS)
|
||||||
|
#define SC_ES(sc) SC_OFFSET(sc, SC_ES)
|
||||||
|
#define SC_SS(sc) SC_OFFSET(sc, SC_SS)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#ifndef __UM_THREAD_H
|
||||||
|
#define __UM_THREAD_H
|
||||||
|
|
||||||
|
#include <kern_constants.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_MODE_TT
|
||||||
|
#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[HOST_TASK_EXTERN_PID]))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#ifndef __TASK_H
|
||||||
|
#define __TASK_H
|
||||||
|
|
||||||
|
#include <kern_constants.h>
|
||||||
|
|
||||||
|
#define TASK_REGS(task) ((union uml_pt_regs *) &(((char *) (task))[HOST_TASK_REGS]))
|
||||||
|
#define TASK_PID(task) *((int *) &(((char *) (task))[HOST_TASK_PID]))
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -6,8 +6,6 @@
|
|||||||
obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \
|
obj-y := clone.o exec_kern.o mem.o mem_user.o mmu.o process.o process_kern.o \
|
||||||
syscall.o tlb.o trap_user.o uaccess.o
|
syscall.o tlb.o trap_user.o uaccess.o
|
||||||
|
|
||||||
subdir- := util
|
|
||||||
|
|
||||||
USER_OBJS := process.o clone.o
|
USER_OBJS := process.o clone.o
|
||||||
|
|
||||||
include arch/um/scripts/Makefile.rules
|
include arch/um/scripts/Makefile.rules
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
hostprogs-y := mk_ptregs
|
|
||||||
always := $(hostprogs-y)
|
|
||||||
|
|
||||||
mk_ptregs-objs := mk_ptregs-$(SUBARCH).o
|
|
||||||
HOSTCFLAGS_mk_ptregs-$(SUBARCH).o := -I$(objtree)/arch/um
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <user-offsets.h>
|
|
||||||
|
|
||||||
#define SHOW(name) printf("#define %s %d\n", #name, name)
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
printf("/* Automatically generated by "
|
|
||||||
"arch/um/kernel/skas/util/mk_ptregs */\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#ifndef __SKAS_PT_REGS_\n");
|
|
||||||
printf("#define __SKAS_PT_REGS_\n");
|
|
||||||
printf("\n");
|
|
||||||
SHOW(HOST_FRAME_SIZE);
|
|
||||||
SHOW(HOST_FP_SIZE);
|
|
||||||
SHOW(HOST_XFP_SIZE);
|
|
||||||
|
|
||||||
SHOW(HOST_IP);
|
|
||||||
SHOW(HOST_SP);
|
|
||||||
SHOW(HOST_EFLAGS);
|
|
||||||
SHOW(HOST_EAX);
|
|
||||||
SHOW(HOST_EBX);
|
|
||||||
SHOW(HOST_ECX);
|
|
||||||
SHOW(HOST_EDX);
|
|
||||||
SHOW(HOST_ESI);
|
|
||||||
SHOW(HOST_EDI);
|
|
||||||
SHOW(HOST_EBP);
|
|
||||||
SHOW(HOST_CS);
|
|
||||||
SHOW(HOST_SS);
|
|
||||||
SHOW(HOST_DS);
|
|
||||||
SHOW(HOST_FS);
|
|
||||||
SHOW(HOST_ES);
|
|
||||||
SHOW(HOST_GS);
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
printf("#endif\n");
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2003 PathScale, Inc.
|
|
||||||
*
|
|
||||||
* Licensed under the GPL
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <user-offsets.h>
|
|
||||||
|
|
||||||
#define SHOW(name) \
|
|
||||||
printf("#define %s (%d / sizeof(unsigned long))\n", #name, name)
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
printf("/* Automatically generated by "
|
|
||||||
"arch/um/kernel/skas/util/mk_ptregs */\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#ifndef __SKAS_PT_REGS_\n");
|
|
||||||
printf("#define __SKAS_PT_REGS_\n");
|
|
||||||
SHOW(HOST_FRAME_SIZE);
|
|
||||||
SHOW(HOST_RBX);
|
|
||||||
SHOW(HOST_RCX);
|
|
||||||
SHOW(HOST_RDI);
|
|
||||||
SHOW(HOST_RSI);
|
|
||||||
SHOW(HOST_RDX);
|
|
||||||
SHOW(HOST_RBP);
|
|
||||||
SHOW(HOST_RAX);
|
|
||||||
SHOW(HOST_R8);
|
|
||||||
SHOW(HOST_R9);
|
|
||||||
SHOW(HOST_R10);
|
|
||||||
SHOW(HOST_R11);
|
|
||||||
SHOW(HOST_R12);
|
|
||||||
SHOW(HOST_R13);
|
|
||||||
SHOW(HOST_R14);
|
|
||||||
SHOW(HOST_R15);
|
|
||||||
SHOW(HOST_ORIG_RAX);
|
|
||||||
SHOW(HOST_CS);
|
|
||||||
SHOW(HOST_SS);
|
|
||||||
SHOW(HOST_EFLAGS);
|
|
||||||
#if 0
|
|
||||||
SHOW(HOST_FS);
|
|
||||||
SHOW(HOST_GS);
|
|
||||||
SHOW(HOST_DS);
|
|
||||||
SHOW(HOST_ES);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SHOW(HOST_IP);
|
|
||||||
SHOW(HOST_SP);
|
|
||||||
printf("#define HOST_FP_SIZE 0\n");
|
|
||||||
printf("#define HOST_XFP_SIZE 0\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#endif\n");
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "elf_user.h"
|
#include "elf_user.h"
|
||||||
#include "mem_user.h"
|
#include "mem_user.h"
|
||||||
#include <kernel-offsets.h>
|
#include <kern_constants.h>
|
||||||
|
|
||||||
/* Use the one from the kernel - the host may miss it, if having old headers. */
|
/* Use the one from the kernel - the host may miss it, if having old headers. */
|
||||||
#if UM_ELF_CLASS == UM_ELFCLASS32
|
#if UM_ELF_CLASS == UM_ELFCLASS32
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
hostprogs-y := mk_user_constants
|
|
||||||
always := $(hostprogs-y)
|
|
||||||
|
|
||||||
HOSTCFLAGS_mk_user_constants.o := -I$(objtree)/arch/um
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
#include <user-offsets.h>
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
printf("/*\n");
|
|
||||||
printf(" * Generated by mk_user_constants\n");
|
|
||||||
printf(" */\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#ifndef __UM_USER_CONSTANTS_H\n");
|
|
||||||
printf("#define __UM_USER_CONSTANTS_H\n");
|
|
||||||
printf("\n");
|
|
||||||
/* I'd like to use FRAME_SIZE from ptrace.h here, but that's wrong on
|
|
||||||
* x86_64 (216 vs 168 bytes). user_regs_struct is the correct size on
|
|
||||||
* both x86_64 and i386.
|
|
||||||
*/
|
|
||||||
printf("#define UM_FRAME_SIZE %d\n", __UM_FRAME_SIZE);
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
printf("#endif\n");
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
@@ -18,6 +18,4 @@ module.c-dir = kernel
|
|||||||
|
|
||||||
$(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS))
|
$(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS))
|
||||||
|
|
||||||
subdir- := util
|
|
||||||
|
|
||||||
include arch/um/scripts/Makefile.unmap
|
include arch/um/scripts/Makefile.unmap
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
|
|
||||||
void foo(void)
|
void foo(void)
|
||||||
{
|
{
|
||||||
OFFSET(TASK_DEBUGREGS, task_struct, thread.arch.debugregs);
|
OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs);
|
||||||
#ifdef CONFIG_MODE_TT
|
#ifdef CONFIG_MODE_TT
|
||||||
OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid);
|
OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid);
|
||||||
#endif
|
#endif
|
||||||
#include <common-offsets.h>
|
#include <common-offsets.h>
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user