-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PATCH] x86-64: Assembly safe page.h and pgtable.h
This patch makes pgtable.h and page.h safe to include in assembly files like head.S. Allowing us to use symbolic constants instead of hard coded numbers when refering to the page tables. This patch copies asm-sparc64/const.h to asm-x86_64 to get a definition of _AC() a very convinient macro that allows us to force the type when we are compiling the code in C and to drop all of the type information when we are using the constant in assembly. Previously this was done with multiple definition of the same constant. const.h was modified slightly so that it works when given CONFIG options as arguments. This patch adds #ifndef __ASSEMBLY__ ... #endif and _AC(1,UL) where appropriate so the assembler won't choke on the header files. Otherwise nothing should have changed. AK: added const.h to exported headers to fix headers_check Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com> Signed-off-by: Andi Kleen <ak@suse.de>
- Loading branch information
Vivek Goyal
authored and
Andi Kleen
committed
May 2, 2007
1 parent
e658450
commit 9d291e7
Showing
4 changed files
with
52 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,3 +18,4 @@ header-y += vsyscall32.h | |
unifdef-y += mce.h | ||
unifdef-y += mtrr.h | ||
unifdef-y += vsyscall.h | ||
unifdef-y += const.h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/* const.h: Macros for dealing with constants. */ | ||
|
||
#ifndef _X86_64_CONST_H | ||
#define _X86_64_CONST_H | ||
|
||
/* Some constant macros are used in both assembler and | ||
* C code. Therefore we cannot annotate them always with | ||
* 'UL' and other type specificers unilaterally. We | ||
* use the following macros to deal with this. | ||
*/ | ||
|
||
#ifdef __ASSEMBLY__ | ||
#define _AC(X,Y) X | ||
#else | ||
#define __AC(X,Y) (X##Y) | ||
#define _AC(X,Y) __AC(X,Y) | ||
#endif | ||
|
||
|
||
#endif /* !(_X86_64_CONST_H) */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters