Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / include / ubi_uboot.h
diff --git a/qemu/roms/u-boot/include/ubi_uboot.h b/qemu/roms/u-boot/include/ubi_uboot.h
new file mode 100644 (file)
index 0000000..7f72022
--- /dev/null
@@ -0,0 +1,223 @@
+/*
+ * Header file for UBI support for U-Boot
+ *
+ * Adaptation from kernel to U-Boot
+ *
+ *  Copyright (C) 2005-2007 Samsung Electronics
+ *  Kyungmin Park <kyungmin.park@samsung.com>
+ *
+ * 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.
+ */
+
+#ifndef __UBOOT_UBI_H
+#define __UBOOT_UBI_H
+
+#include <common.h>
+#include <compiler.h>
+#include <malloc.h>
+#include <div64.h>
+#include <linux/crc32.h>
+#include <linux/types.h>
+#include <linux/list.h>
+#include <linux/rbtree.h>
+#include <linux/string.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/ubi.h>
+
+#ifdef CONFIG_CMD_ONENAND
+#include <onenand_uboot.h>
+#endif
+
+#include <asm/errno.h>
+
+#define DPRINTK(format, args...)                                       \
+do {                                                                   \
+       printf("%s[%d]: " format "\n", __func__, __LINE__, ##args);     \
+} while (0)
+
+/* configurable */
+#define CONFIG_MTD_UBI_WL_THRESHOLD    4096
+#define CONFIG_MTD_UBI_BEB_RESERVE     1
+#define UBI_IO_DEBUG                   0
+
+/* debug options (Linux: drivers/mtd/ubi/Kconfig.debug) */
+#undef CONFIG_MTD_UBI_DEBUG
+#undef CONFIG_MTD_UBI_DEBUG_PARANOID
+#undef CONFIG_MTD_UBI_DEBUG_MSG
+#undef CONFIG_MTD_UBI_DEBUG_MSG_EBA
+#undef CONFIG_MTD_UBI_DEBUG_MSG_WL
+#undef CONFIG_MTD_UBI_DEBUG_MSG_IO
+#undef CONFIG_MTD_UBI_DEBUG_MSG_BLD
+#define CONFIG_MTD_UBI_DEBUG_DISABLE_BGT
+
+/* build.c */
+#define get_device(...)
+#define put_device(...)
+#define ubi_sysfs_init(...)            0
+#define ubi_sysfs_close(...)           do { } while (0)
+static inline int is_power_of_2(unsigned long n)
+{
+       return (n != 0 && ((n & (n - 1)) == 0));
+}
+
+/* FIXME */
+#define MKDEV(...)                     0
+#define MAJOR(dev)                     0
+#define MINOR(dev)                     0
+
+#define alloc_chrdev_region(...)       0
+#define unregister_chrdev_region(...)
+
+#define class_create(...)              __builtin_return_address(0)
+#define class_create_file(...)         0
+#define class_remove_file(...)
+#define class_destroy(...)
+#define misc_register(...)             0
+#define misc_deregister(...)
+
+/* vmt.c */
+#define device_register(...)           0
+#define volume_sysfs_init(...)         0
+#define volume_sysfs_close(...)                do { } while (0)
+
+/* kapi.c */
+
+/* eba.c */
+
+/* io.c */
+#define init_waitqueue_head(...)       do { } while (0)
+#define wait_event_interruptible(...)  0
+#define wake_up_interruptible(...)     do { } while (0)
+#define print_hex_dump(...)            do { } while (0)
+#define dump_stack(...)                        do { } while (0)
+
+/* wl.c */
+#define task_pid_nr(x)                 0
+#define set_freezable(...)             do { } while (0)
+#define try_to_freeze(...)             0
+#define set_current_state(...)         do { } while (0)
+#define kthread_should_stop(...)       0
+#define schedule()                     do { } while (0)
+
+/* upd.c */
+static inline unsigned long copy_from_user(void *dest, const void *src,
+                                          unsigned long count)
+{
+       memcpy((void *)dest, (void *)src, count);
+       return 0;
+}
+
+/* common */
+typedef int    spinlock_t;
+typedef int    wait_queue_head_t;
+#define spin_lock_init(...)
+#define spin_lock(...)
+#define spin_unlock(...)
+
+#define mutex_init(...)
+#define mutex_lock(...)
+#define mutex_unlock(...)
+
+#define init_rwsem(...)                        do { } while (0)
+#define down_read(...)                 do { } while (0)
+#define down_write(...)                        do { } while (0)
+#define down_write_trylock(...)                1
+#define up_read(...)                   do { } while (0)
+#define up_write(...)                  do { } while (0)
+
+struct kmem_cache { int i; };
+#define kmem_cache_create(...)         1
+#define kmem_cache_alloc(obj, gfp)     malloc(sizeof(struct ubi_wl_entry))
+#define kmem_cache_free(obj, size)     free(size)
+#define kmem_cache_destroy(...)
+
+#define cond_resched()                 do { } while (0)
+#define yield()                                do { } while (0)
+
+#define KERN_WARNING
+#define KERN_ERR
+#define KERN_NOTICE
+#define KERN_DEBUG
+
+#define GFP_KERNEL                     0
+#define GFP_NOFS                       1
+
+#define __user
+#define __init
+#define __exit
+
+#define kthread_create(...)    __builtin_return_address(0)
+#define kthread_stop(...)      do { } while (0)
+#define wake_up_process(...)   do { } while (0)
+
+#define BUS_ID_SIZE            20
+
+struct rw_semaphore { int i; };
+struct device {
+       struct device           *parent;
+       struct class            *class;
+       char    bus_id[BUS_ID_SIZE];    /* position on parent bus */
+       dev_t                   devt;   /* dev_t, creates the sysfs "dev" */
+       void    (*release)(struct device *dev);
+};
+struct mutex { int i; };
+struct kernel_param { int i; };
+
+struct cdev {
+       int owner;
+       dev_t dev;
+};
+#define cdev_init(...)         do { } while (0)
+#define cdev_add(...)          0
+#define cdev_del(...)          do { } while (0)
+
+#define MAX_ERRNO              4095
+#define IS_ERR_VALUE(x)                ((x) >= (unsigned long)-MAX_ERRNO)
+
+static inline void *ERR_PTR(long error)
+{
+       return (void *) error;
+}
+
+static inline long PTR_ERR(const void *ptr)
+{
+       return (long) ptr;
+}
+
+static inline long IS_ERR(const void *ptr)
+{
+       return IS_ERR_VALUE((unsigned long)ptr);
+}
+
+/* module */
+#define THIS_MODULE            0
+#define try_module_get(...)    1
+#define module_put(...)                do { } while (0)
+#define module_init(...)
+#define module_exit(...)
+#define EXPORT_SYMBOL(...)
+#define EXPORT_SYMBOL_GPL(...)
+#define module_param_call(...)
+#define MODULE_PARM_DESC(...)
+#define MODULE_VERSION(...)
+#define MODULE_DESCRIPTION(...)
+#define MODULE_AUTHOR(...)
+#define MODULE_LICENSE(...)
+
+#ifndef __UBIFS_H__
+#include "../drivers/mtd/ubi/ubi.h"
+#endif
+
+/* functions */
+extern int ubi_mtd_param_parse(const char *val, struct kernel_param *kp);
+extern int ubi_init(void);
+extern void ubi_exit(void);
+extern int ubi_part(char *part_name, const char *vid_header_offset);
+extern int ubi_volume_write(char *volume, void *buf, size_t size);
+extern int ubi_volume_read(char *volume, char *buf, size_t size);
+
+extern struct ubi_device *ubi_devices[];
+
+#endif