| Viewing file:  setup.h (3.88 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/**  linux/include/asm/setup.h
 *
 *  Copyright (C) 1997-1999 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 *  Structure passed to kernel to tell it about the
 *  hardware it's running on.  See Documentation/arm/Setup
 *  for more info.
 */
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 
 #include <linux/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;
 };
 
 /* 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;
 };
 
 /* it is allowed to have multiple ATAG_MEM nodes */
 #define ATAG_MEM    0x54410002
 
 struct tag_mem32 {
 __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;
 };
 
 /* 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 */
 };
 
 /* describes where the compressed ramdisk image lives (virtual address) */
 /*
 * this one accidentally used virtual addresses - as such,
 * it's deprecated.
 */
 #define ATAG_INITRD    0x54410005
 
 /* describes where the compressed ramdisk image lives (physical address) */
 #define ATAG_INITRD2    0x54420005
 
 struct tag_initrd {
 __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;
 };
 
 /* board revision */
 #define ATAG_REVISION    0x54410007
 
 struct tag_revision {
 __u32 rev;
 };
 
 /* initial values for vesafb-type framebuffers. see struct screen_info
 * in include/linux/tty.h
 */
 #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;
 };
 
 /* command line: \0 terminated string */
 #define ATAG_CMDLINE    0x54410009
 
 struct tag_cmdline {
 char    cmdline[1];    /* this is the minimum size */
 };
 
 /* acorn RiscPC specific information */
 #define ATAG_ACORN    0x41000101
 
 struct tag_acorn {
 __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;
 };
 
 struct tag {
 struct tag_header hdr;
 union {
 struct tag_core        core;
 struct tag_mem32    mem;
 struct tag_videotext    videotext;
 struct tag_ramdisk    ramdisk;
 struct tag_initrd    initrd;
 struct tag_serialnr    serialnr;
 struct tag_revision    revision;
 struct tag_videolfb    videolfb;
 struct tag_cmdline    cmdline;
 
 /*
 * Acorn specific
 */
 struct tag_acorn    acorn;
 
 /*
 * DC21285 specific
 */
 struct tag_memclk    memclk;
 } u;
 };
 
 struct tagtable {
 __u32 tag;
 int (*parse)(const struct tag *);
 };
 
 #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_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))
 
 
 #endif /* _UAPI__ASMARM_SETUP_H */
 
 |