提交 c45166be 编写于 作者: P Paolo 'Blaisorblade' Giarrusso 提交者: Linus Torvalds

[PATCH] uml: support AES i586 crypto driver

We want to make possible, for the user, to enable the i586 AES implementation.
This requires a restructure.

- Add a CONFIG_UML_X86 to notify that we are building a UML for i386.

- Rename CONFIG_64_BIT to CONFIG_64BIT as is used for all other archs

- Tell crypto/Kconfig that UML_X86 is as good as X86

- Tell it that it must exclude not X86_64 but 64BIT, which will give the
  same results.

- Tell kbuild to descend down into arch/i386/crypto/ to build what's needed.
Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 b05d85a8
...@@ -244,6 +244,7 @@ config KERNEL_HALF_GIGS ...@@ -244,6 +244,7 @@ config KERNEL_HALF_GIGS
config HIGHMEM config HIGHMEM
bool "Highmem support" bool "Highmem support"
depends on !64BIT
config KERNEL_STACK_ORDER config KERNEL_STACK_ORDER
int "Kernel stack size order" int "Kernel stack size order"
......
config 64_BIT config UML_X86
bool
default y
config 64BIT
bool bool
default n default n
......
config 64_BIT config UML_X86
bool
default y
config 64BIT
bool bool
default y default y
......
SUBARCH_CORE := arch/um/sys-i386/ SUBARCH_CORE := arch/um/sys-i386/ arch/i386/crypto/
TOP_ADDR := $(CONFIG_TOP_ADDR) TOP_ADDR := $(CONFIG_TOP_ADDR)
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.12-rc1-bk1 # Linux kernel version: 2.6.12-rc3-skas3-v9-pre2
# Sun Mar 20 16:53:00 2005 # Sun Apr 24 19:46:10 2005
# #
CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HARDIRQS=y
CONFIG_UML=y CONFIG_UML=y
...@@ -15,7 +15,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y ...@@ -15,7 +15,8 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
# #
CONFIG_MODE_TT=y CONFIG_MODE_TT=y
CONFIG_MODE_SKAS=y CONFIG_MODE_SKAS=y
# CONFIG_64_BIT is not set CONFIG_UML_X86=y
# CONFIG_64BIT is not set
CONFIG_TOP_ADDR=0xc0000000 CONFIG_TOP_ADDR=0xc0000000
# CONFIG_3_LEVEL_PGTABLES is not set # CONFIG_3_LEVEL_PGTABLES is not set
CONFIG_ARCH_HAS_SC_SIGNALS=y CONFIG_ARCH_HAS_SC_SIGNALS=y
...@@ -41,6 +42,7 @@ CONFIG_UML_REAL_TIME_CLOCK=y ...@@ -41,6 +42,7 @@ CONFIG_UML_REAL_TIME_CLOCK=y
CONFIG_EXPERIMENTAL=y CONFIG_EXPERIMENTAL=y
CONFIG_CLEAN_COMPILE=y CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
# #
# General setup # General setup
...@@ -158,7 +160,6 @@ CONFIG_UML_NET_SLIRP=y ...@@ -158,7 +160,6 @@ CONFIG_UML_NET_SLIRP=y
# #
CONFIG_PACKET=y CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y CONFIG_PACKET_MMAP=y
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y CONFIG_UNIX=y
# CONFIG_NET_KEY is not set # CONFIG_NET_KEY is not set
CONFIG_INET=y CONFIG_INET=y
...@@ -412,6 +413,5 @@ CONFIG_DEBUG_INFO=y ...@@ -412,6 +413,5 @@ CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_FS is not set
CONFIG_FRAME_POINTER=y CONFIG_FRAME_POINTER=y
CONFIG_PT_PROXY=y CONFIG_PT_PROXY=y
# CONFIG_GPROF is not set
# CONFIG_GCOV is not set # CONFIG_GCOV is not set
# CONFIG_SYSCALL_DEBUG is not set # CONFIG_SYSCALL_DEBUG is not set
...@@ -146,7 +146,7 @@ config CRYPTO_SERPENT ...@@ -146,7 +146,7 @@ config CRYPTO_SERPENT
config CRYPTO_AES config CRYPTO_AES
tristate "AES cipher algorithms" tristate "AES cipher algorithms"
depends on CRYPTO && !(X86 && !X86_64) depends on CRYPTO && !((X86 || UML_X86) && !64BIT)
help help
AES cipher algorithms (FIPS-197). AES uses the Rijndael AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm. algorithm.
...@@ -166,7 +166,7 @@ config CRYPTO_AES ...@@ -166,7 +166,7 @@ config CRYPTO_AES
config CRYPTO_AES_586 config CRYPTO_AES_586
tristate "AES cipher algorithms (i586)" tristate "AES cipher algorithms (i586)"
depends on CRYPTO && (X86 && !X86_64) depends on CRYPTO && ((X86 || UML_X86) && !64BIT)
help help
AES cipher algorithms (FIPS-197). AES uses the Rijndael AES cipher algorithms (FIPS-197). AES uses the Rijndael
algorithm. algorithm.
......
...@@ -13,7 +13,7 @@ extern long elf_aux_hwcap; ...@@ -13,7 +13,7 @@ extern long elf_aux_hwcap;
#define elf_check_arch(x) (1) #define elf_check_arch(x) (1)
#ifdef CONFIG_64_BIT #ifdef CONFIG_64BIT
#define ELF_CLASS ELFCLASS64 #define ELF_CLASS ELFCLASS64
#else #else
#define ELF_CLASS ELFCLASS32 #define ELF_CLASS ELFCLASS32
......
...@@ -27,7 +27,7 @@ struct page; ...@@ -27,7 +27,7 @@ struct page;
#define clear_user_page(page, vaddr, pg) clear_page(page) #define clear_user_page(page, vaddr, pg) clear_page(page)
#define copy_user_page(to, from, vaddr, pg) copy_page(to, from) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
#if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64_BIT) #if defined(CONFIG_3_LEVEL_PGTABLES) && !defined(CONFIG_64BIT)
typedef struct { unsigned long pte_low, pte_high; } pte_t; typedef struct { unsigned long pte_low, pte_high; } pte_t;
typedef struct { unsigned long long pmd; } pmd_t; typedef struct { unsigned long long pmd; } pmd_t;
......
...@@ -145,7 +145,7 @@ static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot) ...@@ -145,7 +145,7 @@ static inline pmd_t pfn_pmd(pfn_t page_nr, pgprot_t pgprot)
*/ */
#define PTE_FILE_MAX_BITS 32 #define PTE_FILE_MAX_BITS 32
#ifdef CONFIG_64_BIT #ifdef CONFIG_64BIT
#define pte_to_pgoff(p) ((p).pte >> 32) #define pte_to_pgoff(p) ((p).pte >> 32)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册