lkml.org 
[lkml]   [2006]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[2.6 patch] cleanup asm/setup.h userspace visibility (v3)
    On Sun, Dec 03, 2006 at 11:56:40AM +0100, Geert Uytterhoeven wrote:
    > On Sat, 2 Dec 2006, Russell King wrote:
    > > On Sat, Dec 02, 2006 at 06:55:39PM +0100, Adrian Bunk wrote:
    > > > This patch makes the contents of the userspace asm/setup.h header
    > > > consistent on all architectures:
    > > > - export setup.h to userspace on all architectures
    > > > - export only COMMAND_LINE_SIZE to userspace
    > >
    > > On ARM, all the ATAGs are exported to userspace because they are an API
    > > for boot loaders to use. Everything down to the comment "Memory map
    > > description" should be exported.
    >
    > Same for m68k: at least MACH_*, CPU*, MMU*, and FPU* are needed to compile
    > m68kboot.

    Updated patch below.

    > Gr{oetje,eeting}s,
    >
    > Geert

    cu
    Adrian


    <-- snip -->


    This patch makes the contents of the userspace asm/setup.h header
    consistent on all architectures:
    - export setup.h to userspace on all architectures
    - export only COMMAND_LINE_SIZE to userspace,
    exceptions where architecture specific things are additionally exported:
    - arm
    - m68k
    - frv: move COMMAND_LINE_SIZE from param.h
    - i386: remove duplicate COMMAND_LINE_SIZE from param.h
    - arm:
    - export ATAGs to userspace
    - change u8/u16/u32 to __u8/__u16/__u32

    Signed-off-by: Adrian Bunk <bunk@stusta.de>
    Acked-by: Russell King <rmk+lkml@arm.linux.org.uk>

    ---

    include/asm-arm/setup.h | 104 +++++++++++++++++----------------
    include/asm-arm26/setup.h | 4 +
    include/asm-avr32/setup.h | 5 +
    include/asm-frv/param.h | 1
    include/asm-frv/setup.h | 6 +
    include/asm-generic/Kbuild.asm | 1
    include/asm-i386/Kbuild | 1
    include/asm-i386/param.h | 1
    include/asm-i386/setup.h | 6 +
    include/asm-ia64/Kbuild | 1
    include/asm-m32r/setup.h | 9 ++
    include/asm-m68k/setup.h | 6 +
    include/asm-m68knommu/setup.h | 5 +
    include/asm-mips/setup.h | 2
    include/asm-powerpc/setup.h | 3
    include/asm-s390/setup.h | 3
    include/asm-sh/setup.h | 6 +
    include/asm-sh64/setup.h | 6 +
    include/asm-x86_64/Kbuild | 1
    19 files changed, 102 insertions(+), 69 deletions(-)

    --- linux-2.6.19-rc6-mm2/include/asm-generic/Kbuild.asm.old 2006-12-02 13:22:46.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-generic/Kbuild.asm 2006-12-02 13:31:35.000000000 +0100
    @@ -14,6 +14,7 @@
    unifdef-y += ptrace.h
    unifdef-y += resource.h
    unifdef-y += sembuf.h
    +unifdef-y += setup.h
    unifdef-y += shmbuf.h
    unifdef-y += sigcontext.h
    unifdef-y += siginfo.h
    --- linux-2.6.19-rc6-mm2/include/asm-i386/Kbuild.old 2006-12-02 13:23:11.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-i386/Kbuild 2006-12-02 13:31:35.000000000 +0100
    @@ -7,5 +7,4 @@
    header-y += ucontext.h

    unifdef-y += mtrr.h
    -unifdef-y += setup.h
    unifdef-y += vm86.h
    --- linux-2.6.19-rc6-mm2/include/asm-ia64/Kbuild.old 2006-12-02 13:23:23.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-ia64/Kbuild 2006-12-02 13:31:35.000000000 +0100
    @@ -10,7 +10,6 @@
    header-y += perfmon_default_smpl.h
    header-y += ptrace_offsets.h
    header-y += rse.h
    -header-y += setup.h
    header-y += ucontext.h

    unifdef-y += perfmon.h
    --- linux-2.6.19-rc6-mm2/include/asm-x86_64/Kbuild.old 2006-12-02 13:23:35.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-x86_64/Kbuild 2006-12-02 13:31:35.000000000 +0100
    @@ -11,7 +11,6 @@
    header-y += msr.h
    header-y += prctl.h
    header-y += ptrace-abi.h
    -header-y += setup.h
    header-y += sigcontext32.h
    header-y += ucontext.h
    header-y += vsyscall32.h
    --- linux-2.6.19-rc6-mm2/include/asm-arm/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-arm/setup.h 2006-12-02 19:21:54.000000000 +0100
    @@ -14,55 +14,57 @@
    #ifndef __ASMARM_SETUP_H
    #define __ASMARM_SETUP_H

    +#include <asm/types.h>
    +
    #define COMMAND_LINE_SIZE 1024

    /* The list ends with an ATAG_NONE node. */
    #define ATAG_NONE 0x00000000

    struct tag_header {
    - u32 size;
    - u32 tag;
    + __u32 size;
    + __u32 tag;
    };

    /* The list must start with an ATAG_CORE node */
    #define ATAG_CORE 0x54410001

    struct tag_core {
    - u32 flags; /* bit 0 = read-only */
    - u32 pagesize;
    - u32 rootdev;
    + __u32 flags; /* bit 0 = read-only */
    + __u32 pagesize;
    + __u32 rootdev;
    };

    /* it is allowed to have multiple ATAG_MEM nodes */
    #define ATAG_MEM 0x54410002

    struct tag_mem32 {
    - u32 size;
    - u32 start; /* physical start address */
    + __u32 size;
    + __u32 start; /* physical start address */
    };

    /* VGA text type displays */
    #define ATAG_VIDEOTEXT 0x54410003

    struct tag_videotext {
    - u8 x;
    - u8 y;
    - u16 video_page;
    - u8 video_mode;
    - u8 video_cols;
    - u16 video_ega_bx;
    - u8 video_lines;
    - u8 video_isvga;
    - u16 video_points;
    + __u8 x;
    + __u8 y;
    + __u16 video_page;
    + __u8 video_mode;
    + __u8 video_cols;
    + __u16 video_ega_bx;
    + __u8 video_lines;
    + __u8 video_isvga;
    + __u16 video_points;
    };

    /* describes how the ramdisk will be used in kernel */
    #define ATAG_RAMDISK 0x54410004

    struct tag_ramdisk {
    - u32 flags; /* bit 0 = load, bit 1 = prompt */
    - u32 size; /* decompressed ramdisk size in _kilo_ bytes */
    - u32 start; /* starting block of floppy-based RAM disk image */
    + __u32 flags; /* bit 0 = load, bit 1 = prompt */
    + __u32 size; /* decompressed ramdisk size in _kilo_ bytes */
    + __u32 start; /* starting block of floppy-based RAM disk image */
    };

    /* describes where the compressed ramdisk image lives (virtual address) */
    @@ -76,23 +78,23 @@
    #define ATAG_INITRD2 0x54420005

    struct tag_initrd {
    - u32 start; /* physical start address */
    - u32 size; /* size of compressed ramdisk image in bytes */
    + __u32 start; /* physical start address */
    + __u32 size; /* size of compressed ramdisk image in bytes */
    };

    /* board serial number. "64 bits should be enough for everybody" */
    #define ATAG_SERIAL 0x54410006

    struct tag_serialnr {
    - u32 low;
    - u32 high;
    + __u32 low;
    + __u32 high;
    };

    /* board revision */
    #define ATAG_REVISION 0x54410007

    struct tag_revision {
    - u32 rev;
    + __u32 rev;
    };

    /* initial values for vesafb-type framebuffers. see struct screen_info
    @@ -101,20 +103,20 @@
    #define ATAG_VIDEOLFB 0x54410008

    struct tag_videolfb {
    - u16 lfb_width;
    - u16 lfb_height;
    - u16 lfb_depth;
    - u16 lfb_linelength;
    - u32 lfb_base;
    - u32 lfb_size;
    - u8 red_size;
    - u8 red_pos;
    - u8 green_size;
    - u8 green_pos;
    - u8 blue_size;
    - u8 blue_pos;
    - u8 rsvd_size;
    - u8 rsvd_pos;
    + __u16 lfb_width;
    + __u16 lfb_height;
    + __u16 lfb_depth;
    + __u16 lfb_linelength;
    + __u32 lfb_base;
    + __u32 lfb_size;
    + __u8 red_size;
    + __u8 red_pos;
    + __u8 green_size;
    + __u8 green_pos;
    + __u8 blue_size;
    + __u8 blue_pos;
    + __u8 rsvd_size;
    + __u8 rsvd_pos;
    };

    /* command line: \0 terminated string */
    @@ -128,17 +130,17 @@
    #define ATAG_ACORN 0x41000101

    struct tag_acorn {
    - u32 memc_control_reg;
    - u32 vram_pages;
    - u8 sounddefault;
    - u8 adfsdrives;
    + __u32 memc_control_reg;
    + __u32 vram_pages;
    + __u8 sounddefault;
    + __u8 adfsdrives;
    };

    /* footbridge memory clock, see arch/arm/mach-footbridge/arch.c */
    #define ATAG_MEMCLK 0x41000402

    struct tag_memclk {
    - u32 fmemclk;
    + __u32 fmemclk;
    };

    struct tag {
    @@ -167,24 +169,26 @@
    };

    struct tagtable {
    - u32 tag;
    + __u32 tag;
    int (*parse)(const struct tag *);
    };

    -#define __tag __attribute_used__ __attribute__((__section__(".taglist.init")))
    -#define __tagtable(tag, fn) \
    -static struct tagtable __tagtable_##fn __tag = { tag, fn }
    -
    #define tag_member_present(tag,member) \
    ((unsigned long)(&((struct tag *)0L)->member + 1) \
    <= (tag)->hdr.size * 4)

    -#define tag_next(t) ((struct tag *)((u32 *)(t) + (t)->hdr.size))
    +#define tag_next(t) ((struct tag *)((__u32 *)(t) + (t)->hdr.size))
    #define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2)

    #define for_each_tag(t,base) \
    for (t = base; t->hdr.size; t = tag_next(t))

    +#ifdef __KERNEL__
    +
    +#define __tag __attribute_used__ __attribute__((__section__(".taglist.init")))
    +#define __tagtable(tag, fn) \
    +static struct tagtable __tagtable_##fn __tag = { tag, fn }
    +
    /*
    * Memory map description
    */
    @@ -217,4 +221,6 @@
    static struct early_params __early_##fn __attribute_used__ \
    __attribute__((__section__(".early_param.init"))) = { name, fn }

    +#endif /* __KERNEL__ */
    +
    #endif
    --- linux-2.6.19-rc6-mm2/include/asm-arm26/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-arm26/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -16,6 +16,8 @@

    #define COMMAND_LINE_SIZE 1024

    +#ifdef __KERNEL__
    +
    /* The list ends with an ATAG_NONE node. */
    #define ATAG_NONE 0x00000000

    @@ -202,4 +204,6 @@

    extern struct meminfo meminfo;

    +#endif /* __KERNEL__ */
    +
    #endif
    --- linux-2.6.19-rc6-mm2/include/asm-frv/param.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-frv/param.h 2006-12-02 13:31:35.000000000 +0100
    @@ -18,6 +18,5 @@
    #endif

    #define MAXHOSTNAMELEN 64 /* max length of hostname */
    -#define COMMAND_LINE_SIZE 512

    #endif /* _ASM_PARAM_H */
    --- linux-2.6.19-rc6-mm2/include/asm-frv/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-frv/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -12,6 +12,10 @@
    #ifndef _ASM_SETUP_H
    #define _ASM_SETUP_H

    +#define COMMAND_LINE_SIZE 512
    +
    +#ifdef __KERNEL__
    +
    #include <linux/init.h>

    #ifndef __ASSEMBLY__
    @@ -22,4 +26,6 @@

    #endif /* !__ASSEMBLY__ */

    +#endif /* __KERNEL__ */
    +
    #endif /* _ASM_SETUP_H */
    --- linux-2.6.19-rc6-mm2/include/asm-i386/param.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-i386/param.h 2006-12-02 13:31:35.000000000 +0100
    @@ -18,6 +18,5 @@
    #endif

    #define MAXHOSTNAMELEN 64 /* max length of hostname */
    -#define COMMAND_LINE_SIZE 256

    #endif
    --- linux-2.6.19-rc6-mm2/include/asm-i386/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-i386/setup.h 2006-12-02 13:43:43.000000000 +0100
    @@ -6,6 +6,8 @@
    #ifndef _i386_SETUP_H
    #define _i386_SETUP_H

    +#define COMMAND_LINE_SIZE 256
    +
    #ifdef __KERNEL__
    #include <linux/pfn.h>

    @@ -14,10 +16,8 @@
    */
    #define MAXMEM_PFN PFN_DOWN(MAXMEM)
    #define MAX_NONPAE_PFN (1 << 20)
    -#endif

    #define PARAM_SIZE 4096
    -#define COMMAND_LINE_SIZE 256

    #define OLD_CL_MAGIC_ADDR 0x90020
    #define OLD_CL_MAGIC 0xA33F
    @@ -79,4 +79,6 @@

    #endif /* __ASSEMBLY__ */

    +#endif /* __KERNEL__ */
    +
    #endif /* _i386_SETUP_H */
    --- linux-2.6.19-rc6-mm2/include/asm-m32r/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-m32r/setup.h 2006-12-02 13:38:45.000000000 +0100
    @@ -1,6 +1,11 @@
    /*
    * This is set up by the setup-routine at boot-time
    */
    +
    +#define COMMAND_LINE_SIZE 512
    +
    +#ifdef __KERNEL__
    +
    #define PARAM ((unsigned char *)empty_zero_page)

    #define MOUNT_ROOT_RDONLY (*(unsigned long *) (PARAM+0x000))
    @@ -18,8 +23,6 @@

    #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)
    @@ -27,3 +30,5 @@
    extern unsigned long memory_start;
    extern unsigned long memory_end;

    +#endif /* __KERNEL__ */
    +
    --- linux-2.6.19-rc6-mm2/include/asm-m68k/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-m68k/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -41,8 +45,12 @@
    #define MACH_Q40 10
    #define MACH_SUN3X 11

    +#define COMMAND_LINE_SIZE 256
    +
    #ifdef __KERNEL__
    +
    +#define CL_SIZE COMMAND_LINE_SIZE

    #ifndef __ASSEMBLY__
    extern unsigned long m68k_machtype;
    #endif /* !__ASSEMBLY__ */
    @@ -355,8 +353,6 @@
    */

    #define NUM_MEMINFO 4
    -#define CL_SIZE 256
    -#define COMMAND_LINE_SIZE CL_SIZE

    #ifndef __ASSEMBLY__
    struct mem_info {
    --- linux-2.6.19-rc6-mm2/include/asm-m68knommu/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-m68knommu/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -1,5 +1,10 @@
    +#ifdef __KERNEL__
    +
    #include <asm-m68k/setup.h>

    /* We have a bigger command line buffer. */
    #undef COMMAND_LINE_SIZE
    +
    +#endif /* __KERNEL__ */
    +
    #define COMMAND_LINE_SIZE 512
    --- linux-2.6.19-rc6-mm2/include/asm-mips/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-mips/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -1,8 +1,6 @@
    -#ifdef __KERNEL__
    #ifndef _MIPS_SETUP_H
    #define _MIPS_SETUP_H

    #define COMMAND_LINE_SIZE 256

    #endif /* __SETUP_H */
    -#endif /* __KERNEL__ */
    --- linux-2.6.19-rc6-mm2/include/asm-powerpc/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-powerpc/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -1,9 +1,6 @@
    #ifndef _ASM_POWERPC_SETUP_H
    #define _ASM_POWERPC_SETUP_H

    -#ifdef __KERNEL__
    -
    #define COMMAND_LINE_SIZE 512

    -#endif /* __KERNEL__ */
    #endif /* _ASM_POWERPC_SETUP_H */
    --- linux-2.6.19-rc6-mm2/include/asm-s390/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-s390/setup.h 2006-12-02 13:35:07.000000000 +0100
    @@ -8,12 +8,13 @@
    #ifndef _ASM_S390_SETUP_H
    #define _ASM_S390_SETUP_H

    +#define COMMAND_LINE_SIZE 896
    +
    #ifdef __KERNEL__

    #include <asm/types.h>

    #define PARMAREA 0x10400
    -#define COMMAND_LINE_SIZE 896
    #define MEMORY_CHUNKS 16 /* max 0x7fff */
    #define IPL_PARMBLOCK_ORIGIN 0x2000

    --- linux-2.6.19-rc6-mm2/include/asm-sh/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-sh/setup.h 2006-12-02 13:35:50.000000000 +0100
    @@ -1,10 +1,12 @@
    -#ifdef __KERNEL__
    #ifndef _SH_SETUP_H
    #define _SH_SETUP_H

    #define COMMAND_LINE_SIZE 256

    +#ifdef __KERNEL__
    +
    int setup_early_printk(char *);

    -#endif /* _SH_SETUP_H */
    #endif /* __KERNEL__ */
    +
    +#endif /* _SH_SETUP_H */
    --- linux-2.6.19-rc6-mm2/include/asm-sh64/setup.h.old 2006-12-02 13:30:16.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-sh64/setup.h 2006-12-02 13:31:35.000000000 +0100
    @@ -1,6 +1,10 @@
    #ifndef __ASM_SH64_SETUP_H
    #define __ASM_SH64_SETUP_H

    +#define COMMAND_LINE_SIZE 256
    +
    +#ifdef __KERNEL__
    +
    #define PARAM ((unsigned char *)empty_zero_page)
    #define MOUNT_ROOT_RDONLY (*(unsigned long *) (PARAM+0x000))
    #define RAMDISK_FLAGS (*(unsigned long *) (PARAM+0x004))
    @@ -12,5 +16,7 @@
    #define COMMAND_LINE ((char *) (PARAM+256))
    #define COMMAND_LINE_SIZE 256

    +#endif /* __KERNEL__ */
    +
    #endif /* __ASM_SH64_SETUP_H */

    --- linux-2.6.19-rc6-mm2/include/asm-avr32/setup.h.old 2006-12-02 13:33:07.000000000 +0100
    +++ linux-2.6.19-rc6-mm2/include/asm-avr32/setup.h 2006-12-02 13:33:33.000000000 +0100
    @@ -13,6 +13,8 @@

    #define COMMAND_LINE_SIZE 256

    +#ifdef __KERNEL__
    +
    /* Magic number indicating that a tag table is present */
    #define ATAG_MAGIC 0xa2a25441

    @@ -138,4 +140,6 @@

    #endif /* !__ASSEMBLY__ */

    +#endif /* __KERNEL__ */
    +
    #endif /* __ASM_AVR32_SETUP_H__ */

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-12-04 16:29    [W:0.066 / U:147.784 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site