Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / include / api_public.h
diff --git a/qemu/roms/u-boot/include/api_public.h b/qemu/roms/u-boot/include/api_public.h
new file mode 100644 (file)
index 0000000..f5c89f3
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * (C) Copyright 2007-2008 Semihalf
+ *
+ * Written by: Rafal Jaworowski <raj@semihalf.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+        BSD-2-Clause
+ */
+
+#ifndef _API_PUBLIC_H_
+#define _API_PUBLIC_H_
+
+#define API_EINVAL             1       /* invalid argument(s)  */
+#define API_ENODEV             2       /* no device            */
+#define API_ENOMEM             3       /* no memory            */
+#define API_EBUSY              4       /* busy, occupied etc.  */
+#define API_EIO                        5       /* I/O error            */
+#define API_ESYSC              6       /* syscall error        */
+
+typedef        int (*scp_t)(int, int *, ...);
+
+#define API_SIG_VERSION        1
+#define API_SIG_MAGIC  "UBootAPI"
+#define API_SIG_MAGLEN 8
+
+struct api_signature {
+       char            magic[API_SIG_MAGLEN];  /* magic string */
+       uint16_t        version;                /* API version */
+       uint32_t        checksum;               /* checksum of this sig struct */
+       scp_t           syscall;                /* entry point to the API */
+};
+
+enum {
+       API_RSVD = 0,
+       API_GETC,
+       API_PUTC,
+       API_TSTC,
+       API_PUTS,
+       API_RESET,
+       API_GET_SYS_INFO,
+       API_UDELAY,
+       API_GET_TIMER,
+       API_DEV_ENUM,
+       API_DEV_OPEN,
+       API_DEV_CLOSE,
+       API_DEV_READ,
+       API_DEV_WRITE,
+       API_ENV_ENUM,
+       API_ENV_GET,
+       API_ENV_SET,
+       API_DISPLAY_GET_INFO,
+       API_DISPLAY_DRAW_BITMAP,
+       API_DISPLAY_CLEAR,
+       API_MAXCALL
+};
+
+#define MR_ATTR_FLASH  0x0001
+#define MR_ATTR_DRAM   0x0002
+#define MR_ATTR_SRAM   0x0003
+
+struct mem_region {
+       unsigned long   start;
+       unsigned long   size;
+       int             flags;
+};
+
+struct sys_info {
+       unsigned long           clk_bus;
+       unsigned long           clk_cpu;
+       unsigned long           bar;
+       struct mem_region       *mr;
+       int                     mr_no;  /* number of memory regions */
+};
+
+#undef CONFIG_SYS_64BIT_LBA
+#ifdef CONFIG_SYS_64BIT_LBA
+typedef        u_int64_t lbasize_t;
+#else
+typedef unsigned long lbasize_t;
+#endif
+typedef unsigned long lbastart_t;
+
+#define DEV_TYP_NONE   0x0000
+#define DEV_TYP_NET    0x0001
+
+#define DEV_TYP_STOR   0x0002
+#define DT_STOR_IDE    0x0010
+#define DT_STOR_SCSI   0x0020
+#define DT_STOR_USB    0x0040
+#define DT_STOR_MMC    0x0080
+#define DT_STOR_SATA   0x0100
+
+#define DEV_STA_CLOSED 0x0000          /* invalid, closed */
+#define DEV_STA_OPEN   0x0001          /* open i.e. active */
+
+struct device_info {
+       int     type;
+       void    *cookie;
+
+       union {
+               struct {
+                       lbasize_t       block_count;    /* no of blocks */
+                       unsigned long   block_size;     /* size of one block */
+               } storage;
+
+               struct {
+                       unsigned char   hwaddr[6];
+               } net;
+       } info;
+#define di_stor info.storage
+#define di_net info.net
+
+       int     state;
+};
+
+#define DISPLAY_TYPE_LCD       0x0001
+#define DISPLAY_TYPE_VIDEO     0x0002
+
+struct display_info {
+       int type;
+       /* screen size in pixels */
+       int pixel_width;
+       int pixel_height;
+       /* screen size in rows and columns of text */
+       int screen_rows;
+       int screen_cols;
+};
+
+#endif /* _API_PUBLIC_H_ */