1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef __UBOOT_UBI_H
15#define __UBOOT_UBI_H
16
17#include <common.h>
18#include <compiler.h>
19#include <malloc.h>
20#include <div64.h>
21#include <linux/crc32.h>
22#include <linux/types.h>
23#include <linux/list.h>
24#include <linux/rbtree.h>
25#include <linux/string.h>
26#include <linux/mtd/mtd.h>
27#include <linux/mtd/ubi.h>
28
29#ifdef CONFIG_CMD_ONENAND
30#include <onenand_uboot.h>
31#endif
32
33#include <asm/errno.h>
34
35#define DPRINTK(format, args...) \
36do { \
37 printf("%s[%d]: " format "\n", __func__, __LINE__, ##args); \
38} while (0)
39
40
41#define CONFIG_MTD_UBI_WL_THRESHOLD 4096
42#define CONFIG_MTD_UBI_BEB_RESERVE 1
43#define UBI_IO_DEBUG 0
44
45
46#undef CONFIG_MTD_UBI_DEBUG
47#undef CONFIG_MTD_UBI_DEBUG_PARANOID
48#undef CONFIG_MTD_UBI_DEBUG_MSG
49#undef CONFIG_MTD_UBI_DEBUG_MSG_EBA
50#undef CONFIG_MTD_UBI_DEBUG_MSG_WL
51#undef CONFIG_MTD_UBI_DEBUG_MSG_IO
52#undef CONFIG_MTD_UBI_DEBUG_MSG_BLD
53#define CONFIG_MTD_UBI_DEBUG_DISABLE_BGT
54
55
56#define get_device(...)
57#define put_device(...)
58#define ubi_sysfs_init(...) 0
59#define ubi_sysfs_close(...) do { } while (0)
60static inline int is_power_of_2(unsigned long n)
61{
62 return (n != 0 && ((n & (n - 1)) == 0));
63}
64
65
66#define MKDEV(...) 0
67#define MAJOR(dev) 0
68#define MINOR(dev) 0
69
70#define alloc_chrdev_region(...) 0
71#define unregister_chrdev_region(...)
72
73#define class_create(...) __builtin_return_address(0)
74#define class_create_file(...) 0
75#define class_remove_file(...)
76#define class_destroy(...)
77#define misc_register(...) 0
78#define misc_deregister(...)
79
80
81#define device_register(...) 0
82#define volume_sysfs_init(...) 0
83#define volume_sysfs_close(...) do { } while (0)
84
85
86
87
88
89
90#define init_waitqueue_head(...) do { } while (0)
91#define wait_event_interruptible(...) 0
92#define wake_up_interruptible(...) do { } while (0)
93#define print_hex_dump(...) do { } while (0)
94#define dump_stack(...) do { } while (0)
95
96
97#define task_pid_nr(x) 0
98#define set_freezable(...) do { } while (0)
99#define try_to_freeze(...) 0
100#define set_current_state(...) do { } while (0)
101#define kthread_should_stop(...) 0
102#define schedule() do { } while (0)
103
104
105static inline unsigned long copy_from_user(void *dest, const void *src,
106 unsigned long count)
107{
108 memcpy((void *)dest, (void *)src, count);
109 return 0;
110}
111
112
113typedef int spinlock_t;
114typedef int wait_queue_head_t;
115#define spin_lock_init(...)
116#define spin_lock(...)
117#define spin_unlock(...)
118
119#define mutex_init(...)
120#define mutex_lock(...)
121#define mutex_unlock(...)
122
123#define init_rwsem(...) do { } while (0)
124#define down_read(...) do { } while (0)
125#define down_write(...) do { } while (0)
126#define down_write_trylock(...) 0
127#define up_read(...) do { } while (0)
128#define up_write(...) do { } while (0)
129
130struct kmem_cache { int i; };
131#define kmem_cache_create(...) 1
132#define kmem_cache_alloc(obj, gfp) malloc(sizeof(struct ubi_wl_entry))
133#define kmem_cache_free(obj, size) free(size)
134#define kmem_cache_destroy(...)
135
136#define cond_resched() do { } while (0)
137#define yield() do { } while (0)
138
139#define KERN_WARNING
140#define KERN_ERR
141#define KERN_NOTICE
142#define KERN_DEBUG
143
144#define GFP_KERNEL 0
145#define GFP_NOFS 1
146
147#define __user
148#define __init
149#define __exit
150
151#define kthread_create(...) __builtin_return_address(0)
152#define kthread_stop(...) do { } while (0)
153#define wake_up_process(...) do { } while (0)
154
155#define BUS_ID_SIZE 20
156
157struct rw_semaphore { int i; };
158struct device {
159 struct device *parent;
160 struct class *class;
161 char bus_id[BUS_ID_SIZE];
162 dev_t devt;
163 void (*release)(struct device *dev);
164};
165struct mutex { int i; };
166struct kernel_param { int i; };
167
168struct cdev {
169 int owner;
170 dev_t dev;
171};
172#define cdev_init(...) do { } while (0)
173#define cdev_add(...) 0
174#define cdev_del(...) do { } while (0)
175
176#define MAX_ERRNO 4095
177#define IS_ERR_VALUE(x) ((x) >= (unsigned long)-MAX_ERRNO)
178
179static inline void *ERR_PTR(long error)
180{
181 return (void *) error;
182}
183
184static inline long PTR_ERR(const void *ptr)
185{
186 return (long) ptr;
187}
188
189static inline long IS_ERR(const void *ptr)
190{
191 return IS_ERR_VALUE((unsigned long)ptr);
192}
193
194
195#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
196
197
198#define THIS_MODULE 0
199#define try_module_get(...) 1
200#define module_put(...) do { } while (0)
201#define module_init(...)
202#define module_exit(...)
203#define EXPORT_SYMBOL(...)
204#define EXPORT_SYMBOL_GPL(...)
205#define module_param_call(...)
206#define MODULE_PARM_DESC(...)
207#define MODULE_VERSION(...)
208#define MODULE_DESCRIPTION(...)
209#define MODULE_AUTHOR(...)
210#define MODULE_LICENSE(...)
211
212#ifndef __UBIFS_H__
213#include "../drivers/mtd/ubi/ubi.h"
214#endif
215
216
217extern int ubi_mtd_param_parse(const char *val, struct kernel_param *kp);
218extern int ubi_init(void);
219extern void ubi_exit(void);
220
221extern struct ubi_device *ubi_devices[];
222
223#endif
224