22a9835c35
Just about every architecture defines some macros to do operations on pfns. They're all virtually identical. This patch consolidates all of them. One minor glitch is that at least i386 uses them in a very skeletal header file. To keep away from #include dependency hell, I stuck the new definitions in a new, isolated header. Of all of the implementations, sh64 is the only one that varied by a bit. It used some masks to ensure that any sign-extension got ripped away before the arithmetic is done. This has been posted to that sh64 maintainers and the development list. Compiles on x86, x86_64, ia64 and ppc64. Signed-off-by: Dave Hansen <haveblue@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
30 lines
961 B
C
30 lines
961 B
C
/*
|
|
* This is set up by the setup-routine at boot-time
|
|
*/
|
|
#define PARAM ((unsigned char *)empty_zero_page)
|
|
|
|
#define MOUNT_ROOT_RDONLY (*(unsigned long *) (PARAM+0x000))
|
|
#define RAMDISK_FLAGS (*(unsigned long *) (PARAM+0x004))
|
|
#define ORIG_ROOT_DEV (*(unsigned long *) (PARAM+0x008))
|
|
#define LOADER_TYPE (*(unsigned long *) (PARAM+0x00c))
|
|
#define INITRD_START (*(unsigned long *) (PARAM+0x010))
|
|
#define INITRD_SIZE (*(unsigned long *) (PARAM+0x014))
|
|
|
|
#define M32R_CPUCLK (*(unsigned long *) (PARAM+0x018))
|
|
#define M32R_BUSCLK (*(unsigned long *) (PARAM+0x01c))
|
|
#define M32R_TIMER_DIVIDE (*(unsigned long *) (PARAM+0x020))
|
|
|
|
#define COMMAND_LINE ((char *) (PARAM+0x100))
|
|
|
|
#define SCREEN_INFO (*(struct screen_info *) (PARAM+0x200))
|
|
|
|
#define COMMAND_LINE_SIZE (512)
|
|
|
|
#define RAMDISK_IMAGE_START_MASK (0x07FF)
|
|
#define RAMDISK_PROMPT_FLAG (0x8000)
|
|
#define RAMDISK_LOAD_FLAG (0x4000)
|
|
|
|
extern unsigned long memory_start;
|
|
extern unsigned long memory_end;
|
|
|