122851890Sopenharmony_ci/****************************************************************************
222851890Sopenharmony_ci ****************************************************************************
322851890Sopenharmony_ci ***
422851890Sopenharmony_ci ***   This header was automatically generated from a Linux kernel header
522851890Sopenharmony_ci ***   of the same name, to make information necessary for userspace to
622851890Sopenharmony_ci ***   call into the kernel available to libc.  It contains only constants,
722851890Sopenharmony_ci ***   structures, and macros generated from the original header, and thus,
822851890Sopenharmony_ci ***   contains no copyrightable information.
922851890Sopenharmony_ci ***
1022851890Sopenharmony_ci ***   To edit the content of this header, modify the corresponding
1122851890Sopenharmony_ci ***   source file (e.g. under external/kernel-headers/original/) then
1222851890Sopenharmony_ci ***   run bionic/libc/kernel/tools/update_all.py
1322851890Sopenharmony_ci ***
1422851890Sopenharmony_ci ***   Any manual change here will be lost the next time this script will
1522851890Sopenharmony_ci ***   be run. You've been warned!
1622851890Sopenharmony_ci ***
1722851890Sopenharmony_ci ****************************************************************************
1822851890Sopenharmony_ci ****************************************************************************/
1922851890Sopenharmony_ci#ifndef _UAPI__ASMARM_SETUP_H
2022851890Sopenharmony_ci#define _UAPI__ASMARM_SETUP_H
2122851890Sopenharmony_ci#include <linux/types.h>
2222851890Sopenharmony_ci#define COMMAND_LINE_SIZE 2048
2322851890Sopenharmony_ci#define ATAG_NONE 0x00000000
2422851890Sopenharmony_cistruct tag_header {
2522851890Sopenharmony_ci  __u32 size;
2622851890Sopenharmony_ci  __u32 tag;
2722851890Sopenharmony_ci};
2822851890Sopenharmony_ci#define ATAG_CORE 0x54410001
2922851890Sopenharmony_cistruct tag_core {
3022851890Sopenharmony_ci  __u32 flags;
3122851890Sopenharmony_ci  __u32 pagesize;
3222851890Sopenharmony_ci  __u32 rootdev;
3322851890Sopenharmony_ci};
3422851890Sopenharmony_ci#define ATAG_MEM 0x54410002
3522851890Sopenharmony_cistruct tag_mem32 {
3622851890Sopenharmony_ci  __u32 size;
3722851890Sopenharmony_ci  __u32 start;
3822851890Sopenharmony_ci};
3922851890Sopenharmony_ci#define ATAG_VIDEOTEXT 0x54410003
4022851890Sopenharmony_cistruct tag_videotext {
4122851890Sopenharmony_ci  __u8 x;
4222851890Sopenharmony_ci  __u8 y;
4322851890Sopenharmony_ci  __u16 video_page;
4422851890Sopenharmony_ci  __u8 video_mode;
4522851890Sopenharmony_ci  __u8 video_cols;
4622851890Sopenharmony_ci  __u16 video_ega_bx;
4722851890Sopenharmony_ci  __u8 video_lines;
4822851890Sopenharmony_ci  __u8 video_isvga;
4922851890Sopenharmony_ci  __u16 video_points;
5022851890Sopenharmony_ci};
5122851890Sopenharmony_ci#define ATAG_RAMDISK 0x54410004
5222851890Sopenharmony_cistruct tag_ramdisk {
5322851890Sopenharmony_ci  __u32 flags;
5422851890Sopenharmony_ci  __u32 size;
5522851890Sopenharmony_ci  __u32 start;
5622851890Sopenharmony_ci};
5722851890Sopenharmony_ci#define ATAG_INITRD 0x54410005
5822851890Sopenharmony_ci#define ATAG_INITRD2 0x54420005
5922851890Sopenharmony_cistruct tag_initrd {
6022851890Sopenharmony_ci  __u32 start;
6122851890Sopenharmony_ci  __u32 size;
6222851890Sopenharmony_ci};
6322851890Sopenharmony_ci#define ATAG_SERIAL 0x54410006
6422851890Sopenharmony_cistruct tag_serialnr {
6522851890Sopenharmony_ci  __u32 low;
6622851890Sopenharmony_ci  __u32 high;
6722851890Sopenharmony_ci};
6822851890Sopenharmony_ci#define ATAG_REVISION 0x54410007
6922851890Sopenharmony_cistruct tag_revision {
7022851890Sopenharmony_ci  __u32 rev;
7122851890Sopenharmony_ci};
7222851890Sopenharmony_ci#define ATAG_VIDEOLFB 0x54410008
7322851890Sopenharmony_cistruct tag_videolfb {
7422851890Sopenharmony_ci  __u16 lfb_width;
7522851890Sopenharmony_ci  __u16 lfb_height;
7622851890Sopenharmony_ci  __u16 lfb_depth;
7722851890Sopenharmony_ci  __u16 lfb_linelength;
7822851890Sopenharmony_ci  __u32 lfb_base;
7922851890Sopenharmony_ci  __u32 lfb_size;
8022851890Sopenharmony_ci  __u8 red_size;
8122851890Sopenharmony_ci  __u8 red_pos;
8222851890Sopenharmony_ci  __u8 green_size;
8322851890Sopenharmony_ci  __u8 green_pos;
8422851890Sopenharmony_ci  __u8 blue_size;
8522851890Sopenharmony_ci  __u8 blue_pos;
8622851890Sopenharmony_ci  __u8 rsvd_size;
8722851890Sopenharmony_ci  __u8 rsvd_pos;
8822851890Sopenharmony_ci};
8922851890Sopenharmony_ci#define ATAG_CMDLINE 0x54410009
9022851890Sopenharmony_cistruct tag_cmdline {
9122851890Sopenharmony_ci  char cmdline[1];
9222851890Sopenharmony_ci};
9322851890Sopenharmony_ci#define ATAG_ACORN 0x41000101
9422851890Sopenharmony_cistruct tag_acorn {
9522851890Sopenharmony_ci  __u32 memc_control_reg;
9622851890Sopenharmony_ci  __u32 vram_pages;
9722851890Sopenharmony_ci  __u8 sounddefault;
9822851890Sopenharmony_ci  __u8 adfsdrives;
9922851890Sopenharmony_ci};
10022851890Sopenharmony_ci#define ATAG_MEMCLK 0x41000402
10122851890Sopenharmony_cistruct tag_memclk {
10222851890Sopenharmony_ci  __u32 fmemclk;
10322851890Sopenharmony_ci};
10422851890Sopenharmony_cistruct tag {
10522851890Sopenharmony_ci  struct tag_header hdr;
10622851890Sopenharmony_ci  union {
10722851890Sopenharmony_ci    struct tag_core core;
10822851890Sopenharmony_ci    struct tag_mem32 mem;
10922851890Sopenharmony_ci    struct tag_videotext videotext;
11022851890Sopenharmony_ci    struct tag_ramdisk ramdisk;
11122851890Sopenharmony_ci    struct tag_initrd initrd;
11222851890Sopenharmony_ci    struct tag_serialnr serialnr;
11322851890Sopenharmony_ci    struct tag_revision revision;
11422851890Sopenharmony_ci    struct tag_videolfb videolfb;
11522851890Sopenharmony_ci    struct tag_cmdline cmdline;
11622851890Sopenharmony_ci    struct tag_acorn acorn;
11722851890Sopenharmony_ci    struct tag_memclk memclk;
11822851890Sopenharmony_ci  } u;
11922851890Sopenharmony_ci};
12022851890Sopenharmony_cistruct tagtable {
12122851890Sopenharmony_ci  __u32 tag;
12222851890Sopenharmony_ci  int(* parse) (const struct tag *);
12322851890Sopenharmony_ci};
12422851890Sopenharmony_ci#define tag_member_present(tag,member) ((unsigned long) (& ((struct tag *) 0L)->member + 1) <= (tag)->hdr.size * 4)
12522851890Sopenharmony_ci#define tag_next(t) ((struct tag *) ((__u32 *) (t) + (t)->hdr.size))
12622851890Sopenharmony_ci#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2)
12722851890Sopenharmony_ci#define for_each_tag(t,base) for(t = base; t->hdr.size; t = tag_next(t))
12822851890Sopenharmony_ci#endif
129