MIPS: convert CONFIG_SYS_MIPS_TIMER_FREQ to Kconfig
[platform/kernel/u-boot.git] / include / api_public.h
index 690975e..5a4465e 100644 (file)
@@ -1,3 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0+ OR BSD-2-Clause */
+/*
+ * (C) Copyright 2007-2008 Semihalf
+ *
+ * Written by: Rafal Jaworowski <raj@semihalf.com>
+ */
+
 #ifndef _API_PUBLIC_H_
 #define _API_PUBLIC_H_
 
@@ -6,6 +13,7 @@
 #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 *, ...);
 
@@ -38,6 +46,9 @@ enum {
        API_ENV_ENUM,
        API_ENV_GET,
        API_ENV_SET,
+       API_DISPLAY_GET_INFO,
+       API_DISPLAY_DRAW_BITMAP,
+       API_DISPLAY_CLEAR,
        API_MAXCALL
 };
 
@@ -59,12 +70,25 @@ struct sys_info {
        int                     mr_no;  /* number of memory regions */
 };
 
-#undef CFG_64BIT_LBA
-#ifdef CFG_64BIT_LBA
-typedef        u_int64_t lbasize_t;
-#else
+/*
+ * FIXME: Previously this code was:
+ *
+ *   #undef CONFIG_SYS_64BIT_LBA
+ *   #ifdef CONFIG_SYS_64BIT_LBA
+ *   typedef u_int64_t lbasize_t;
+ *   #else
+ *   typedef unsigned long lbasize_t;
+ *   #endif
+ *
+ * But we cannot just undefine CONFIG_SYS_64BIT_LBA, because then in
+ * api/api_storage.c the type signature of lbaint_t will be different if
+ * CONFIG_SYS_64BIT_LBA is enabled for the board, which can result in various
+ * bugs.
+ * So simply define lbasize_t as an unsigned long, since this was what was done
+ * anyway for at least 13 years, but don't undefine CONFIG_SYS_64BIT_LBA.
+ */
 typedef unsigned long lbasize_t;
-#endif
+
 typedef unsigned long lbastart_t;
 
 #define DEV_TYP_NONE   0x0000
@@ -75,6 +99,7 @@ typedef unsigned long lbastart_t;
 #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 */
@@ -99,4 +124,17 @@ struct device_info {
        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_ */