/* * This header was generated from the Linux kernel headers by update_headers.py, * to provide necessary information from kernel to userspace, such as constants, * structures, and macros, and thus, contains no copyrightable information. */ #ifndef __ASMARM_SETUP_H #define __ASMARM_SETUP_H #include #define COMMAND_LINE_SIZE 1024 #define ATAG_NONE 0x00000000 struct tag_header { __u32 size; __u32 tag; }; #define ATAG_CORE 0x54410001 struct tag_core { __u32 flags; __u32 pagesize; __u32 rootdev; }; #define ATAG_MEM 0x54410002 struct tag_mem32 { __u32 size; __u32 start; }; #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; }; #define ATAG_RAMDISK 0x54410004 struct tag_ramdisk { __u32 flags; __u32 size; __u32 start; }; #define ATAG_INITRD 0x54410005 #define ATAG_INITRD2 0x54420005 struct tag_initrd { __u32 start; __u32 size; }; #define ATAG_SERIAL 0x54410006 struct tag_serialnr { __u32 low; __u32 high; }; #define ATAG_REVISION 0x54410007 struct tag_revision { __u32 rev; }; #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; }; #define ATAG_CMDLINE 0x54410009 struct tag_cmdline { char cmdline[1]; }; #define ATAG_ACORN 0x41000101 struct tag_acorn { __u32 memc_control_reg; __u32 vram_pages; __u8 sounddefault; __u8 adfsdrives; }; #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; struct tag_acorn acorn; 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