From 2014d01878a8c38111eba3333f0d70ceb91f0bb7 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 18 Aug 2011 20:09:29 +0100 Subject: [PATCH] um: merge host_ldt_{32,64}.h Signed-off-by: Al Viro Signed-off-by: Richard Weinberger --- .../um/shared/sysdep/{host_ldt_32.h => host_ldt.h} | 15 +++++---- arch/x86/um/shared/sysdep/host_ldt_64.h | 38 ---------------------- 2 files changed, 9 insertions(+), 44 deletions(-) rename arch/x86/um/shared/sysdep/{host_ldt_32.h => host_ldt.h} (76%) delete mode 100644 arch/x86/um/shared/sysdep/host_ldt_64.h diff --git a/arch/x86/um/shared/sysdep/host_ldt_32.h b/arch/x86/um/shared/sysdep/host_ldt.h similarity index 76% rename from arch/x86/um/shared/sysdep/host_ldt_32.h rename to arch/x86/um/shared/sysdep/host_ldt.h index 0953cc4df65..246ff7ace5e 100644 --- a/arch/x86/um/shared/sysdep/host_ldt_32.h +++ b/arch/x86/um/shared/sysdep/host_ldt.h @@ -1,11 +1,8 @@ -#ifndef __ASM_HOST_LDT_I386_H -#define __ASM_HOST_LDT_I386_H +#ifndef __ASM_HOST_LDT_H +#define __ASM_HOST_LDT_H #include -/* - * macros stolen from include/asm-i386/desc.h - */ #define LDT_entry_a(info) \ ((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff)) @@ -21,7 +18,7 @@ ((info)->useable << 20) | \ 0x7000) -#define LDT_empty(info) (\ +#define _LDT_empty(info) (\ (info)->base_addr == 0 && \ (info)->limit == 0 && \ (info)->contents == 0 && \ @@ -31,4 +28,10 @@ (info)->seg_not_present == 1 && \ (info)->useable == 0 ) +#ifdef CONFIG_X86_64 +#define LDT_empty(info) (_LDT_empty(info) && ((info)->lm == 0)) +#else +#define LDT_empty(info) (_LDT_empty(info)) +#endif + #endif diff --git a/arch/x86/um/shared/sysdep/host_ldt_64.h b/arch/x86/um/shared/sysdep/host_ldt_64.h deleted file mode 100644 index e8b1be1e154..00000000000 --- a/arch/x86/um/shared/sysdep/host_ldt_64.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __ASM_HOST_LDT_X86_64_H -#define __ASM_HOST_LDT_X86_64_H - -#include - -/* - * macros stolen from include/asm-x86_64/desc.h - */ -#define LDT_entry_a(info) \ - ((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff)) - -/* Don't allow setting of the lm bit. It is useless anyways because - * 64bit system calls require __USER_CS. */ -#define LDT_entry_b(info) \ - (((info)->base_addr & 0xff000000) | \ - (((info)->base_addr & 0x00ff0000) >> 16) | \ - ((info)->limit & 0xf0000) | \ - (((info)->read_exec_only ^ 1) << 9) | \ - ((info)->contents << 10) | \ - (((info)->seg_not_present ^ 1) << 15) | \ - ((info)->seg_32bit << 22) | \ - ((info)->limit_in_pages << 23) | \ - ((info)->useable << 20) | \ - /* ((info)->lm << 21) | */ \ - 0x7000) - -#define LDT_empty(info) (\ - (info)->base_addr == 0 && \ - (info)->limit == 0 && \ - (info)->contents == 0 && \ - (info)->read_exec_only == 1 && \ - (info)->seg_32bit == 0 && \ - (info)->limit_in_pages == 0 && \ - (info)->seg_not_present == 1 && \ - (info)->useable == 0 && \ - (info)->lm == 0) - -#endif -- 2.11.4.GIT