diff options
| author | [email protected] <[email protected]> | 2012-01-13 18:45:44 +0000 |
|---|---|---|
| committer | [email protected] <[email protected]> | 2012-01-13 18:45:44 +0000 |
| commit | 3b118059644fbde996083eb53c2e475cc049fd2e (patch) | |
| tree | 7f68390fbe0a24b9c10d8980b7e11fe669baf6ef /components/dfs/filesystems/jffs2/kernel/linux | |
| parent | 97771b3334f0cbfb28e438ea764421233d6a0b00 (diff) | |
add jffs2 code (porting from ecos v3.0)
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1919 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'components/dfs/filesystems/jffs2/kernel/linux')
28 files changed, 541 insertions, 0 deletions
diff --git a/components/dfs/filesystems/jffs2/kernel/linux/TODO b/components/dfs/filesystems/jffs2/kernel/linux/TODO new file mode 100644 index 0000000000..df8a6d1a51 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/TODO @@ -0,0 +1,11 @@ + +This contains a very limited set of Linux-compatibility headers, initially +just for getting JFFS2 to build. + +Some things are simply stubs which don't _work_, to allow the JFFS2 code +to compile. Note that you may need to implement these _properly_ in order +to use these for making other Linux code work, or indeed for making the +JFFS2 NAND support work. + +The non-working parts include, but are not limited to: + workqueue.h, wait.h, timer.h, spinlock.h, sched.h, compiler.h diff --git a/components/dfs/filesystems/jffs2/kernel/linux/compiler.h b/components/dfs/filesystems/jffs2/kernel/linux/compiler.h new file mode 100644 index 0000000000..fb253651a3 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/compiler.h @@ -0,0 +1,7 @@ +#ifndef __LINUX_COMPILER_H__ +#define __LINUX_COMPILER_H__ + +#define likely(x) (x) +#define unlikely(x) (x) + +#endif /* __LINUX_COMPILER_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/completion.h b/components/dfs/filesystems/jffs2/kernel/linux/completion.h new file mode 100644 index 0000000000..d2493b2710 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/completion.h @@ -0,0 +1,13 @@ +#ifndef __LINUX_COMPLETION_H__ +#define __LINUX_COMPLETION_H__ + +#if defined (__GNUC__) +struct completion { } ; +#elif defined (MSVC) +struct completion {int no; } ; +#else +#error "please use a right C compiler" +#endif + +#endif /* __LINUX_COMPLETION_H__ */ + diff --git a/components/dfs/filesystems/jffs2/kernel/linux/config.h b/components/dfs/filesystems/jffs2/kernel/linux/config.h new file mode 100644 index 0000000000..9c404b7c73 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/config.h @@ -0,0 +1,5 @@ +#ifndef __LINUX_CONFIG_H__ +#define __LINUX_CONFIG_H__ +#define CONFIG_JFFS2_FS_DEBUG 0
+#define GFP_KERNEL 0 +#endif /* __LINUX_CONFIG_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/crc32.h b/components/dfs/filesystems/jffs2/kernel/linux/crc32.h new file mode 100644 index 0000000000..8d19a1eb62 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/crc32.h @@ -0,0 +1,8 @@ +#ifndef CRC32_H +#define CRC32_H + +#include <cyg/crc/crc.h> + +#define crc32(val, s, len) cyg_crc32_accumulate(val, (unsigned char *)s, len) + +#endif diff --git a/components/dfs/filesystems/jffs2/kernel/linux/errno.h b/components/dfs/filesystems/jffs2/kernel/linux/errno.h new file mode 100644 index 0000000000..84d78c5bc9 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/errno.h @@ -0,0 +1,2 @@ +//#include <errno.h> +#include "codes.h" //fixme
diff --git a/components/dfs/filesystems/jffs2/kernel/linux/fs.h b/components/dfs/filesystems/jffs2/kernel/linux/fs.h new file mode 100644 index 0000000000..c2f173ac81 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/fs.h @@ -0,0 +1,13 @@ +#ifndef __LINUX_FS_H__ +#define __LINUX_FS_H__ + +#include <linux/stat.h> +/* + * File types + */ +#define DT_UNKNOWN 0 +#define DT_DIR 4 +#define DT_REG 8 + + +#endif /* __LINUX_FS_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/init.h b/components/dfs/filesystems/jffs2/kernel/linux/init.h new file mode 100644 index 0000000000..e4c702f996 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/init.h @@ -0,0 +1,3 @@ +#ifndef __LINUX_INIT_H__ +#define __LINUX_INIT_H__ +#endif diff --git a/components/dfs/filesystems/jffs2/kernel/linux/kernel.h b/components/dfs/filesystems/jffs2/kernel/linux/kernel.h new file mode 100644 index 0000000000..b695930109 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/kernel.h @@ -0,0 +1,37 @@ +#ifndef __LINUX_KERNEL_H__ +#define __LINUX_KERNEL_H__ +//#include <cyg/infra/diag.h> +//#include <stdio.h> //mod by prife @ 2011/11/20
+ +#define jiffies 100 + +#define ERR_PTR(err) ((void*)(err)) +#define PTR_ERR(err) ((unsigned long)(err)) +#define IS_ERR(err) ((unsigned long)err > (unsigned long)-1000L) + +#define CURRENT_TIME cyg_timestamp() + +#define KERN_EMERG "<0>" // system is unusable +#define KERN_ALERT "<1>" // action must be taken immediately +#define KERN_CRIT "<2>" // critical conditions +#define KERN_ERR "<3>" // error conditions +#define KERN_WARNING "<4>" // warning conditions +#define KERN_NOTICE "<5>" // normal but significant condition +#define KERN_INFO "<6>" // informational +#define KERN_DEBUG "<7>" // debug-level messages +#define printk rt_kprintf//diag_printf //mod by prife + +#ifndef min //mod by prife +#define min(x,y) (x<y?x:y) +#endif +#ifndef max +#define max(x,y) (x<y?y:x) +#endif +#define min_t(t, x,y) ((t)x<(t)y?(t)x:(t)y) + + +#endif /* __LINUX_KERNEL_H__ */ + + + + diff --git a/components/dfs/filesystems/jffs2/kernel/linux/list.h b/components/dfs/filesystems/jffs2/kernel/linux/list.h new file mode 100644 index 0000000000..03c7b39cca --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/list.h @@ -0,0 +1,147 @@ +/* + * JFFS2 -- Journalling Flash File System, Version 2. + * + * + * Created by Jonathan Larmour <[email protected]> + * + *=========================================================================== + * ####ECOSGPLCOPYRIGHTBEGIN#### + * ------------------------------------------- + * This file is part of eCos, the Embedded Configurable Operating System. + * Copyright (C) 2002, 2003 Free Software Foundation, Inc. + * + * eCos is free software; you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 or (at your option) any later + * version. + * + * eCos is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + * + * You should have received a copy of the GNU General Public License + * along with eCos; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * As a special exception, if other files instantiate templates or use + * macros or inline functions from this file, or you compile this file + * and link it with other works to produce a work based on this file, + * this file does not by itself cause the resulting work to be covered by + * the GNU General Public License. However the source code for this file + * must still be made available in accordance with section (3) of the GNU + * General Public License v2. + * + * This exception does not invalidate any other reasons why a work based + * on this file might be covered by the GNU General Public License. + * ------------------------------------------- + * ####ECOSGPLCOPYRIGHTEND#### + *=========================================================================== + * + */ + +#ifndef CYGONCE_FS_JFFS2_LIST_H +#define CYGONCE_FS_JFFS2_LIST_H + + +/* -----------------------------------------------------------------------*/ + +/* Doubly linked list implementation to replace the GPL'd one used in + the Linux kernel. */ + +#include <stddef.h> +#include <cyg/infra/cyg_type.h> + +/* TYPES */ + +struct list_head { + struct list_head *next; + struct list_head *prev; +}; + +/* MACROS */ + +#define LIST_HEAD_INIT(name) { &(name), &(name) } + +#define LIST_HEAD(name) \ + struct list_head name = LIST_HEAD_INIT(name) + +#define INIT_LIST_HEAD( _list_ ) \ +CYG_MACRO_START \ +(_list_)->next = (_list_)->prev = (_list_); \ +CYG_MACRO_END + +/* FUNCTIONS */ + +/* Insert an entry _after_ the specified entry */ +static __inline__ void +list_add( struct list_head *newent, struct list_head *afterthisent ) +{ + struct list_head *next = afterthisent->next; + newent->next = next; + newent->prev = afterthisent; + afterthisent->next = newent; + next->prev = newent; +} /* list_add() */ + +/* Insert an entry _before_ the specified entry */ +static __inline__ void +list_add_tail( struct list_head *newent, struct list_head *beforethisent ) +{ + struct list_head *prev = beforethisent->prev; + newent->prev = prev; + newent->next = beforethisent; + beforethisent->prev = newent; + prev->next = newent; +} /* list_add_tail() */ + +/* Delete the specified entry */ +static __inline__ void +list_del( struct list_head *ent ) +{ + ent->prev->next = ent->next; + ent->next->prev = ent->prev; +} /* list_del() */ + +/* Is this list empty? */ +static __inline__ int +list_empty( struct list_head *list ) +{ + return ( list->next == list ); +} /* list_empty() */ + +/* list_entry - Assuming you have a struct of type _type_ that contains a + list which has the name _member_ in that struct type, then given the + address of that list in the struct, _list_, this returns the address + of the container structure */ + +#define list_entry( _list_, _type_, _member_ ) \ + ((_type_ *)((char *)(_list_)-(char *)(offsetof(_type_,_member_)))) + +/* list_for_each - using _ent_, iterate through list _list_ */ + +#define list_for_each( _ent_, _list_ ) \ + for ( (_ent_) = (_list_)->next; \ + (_ent_) != (_list_); \ + (_ent_) = (_ent_)->next ) + +/* + * list_for_each_entry - this function can be use to iterate over all + * items in a list* _list_ with it's head at _head_ and link _item_ + */ +#if defined (__GNUC__) +#define list_for_each_entry(_list_, _head_, _item_) \ +for ((_list_) = list_entry((_head_)->next, typeof(*_list_), _item_); \ + &((_list_)->_item_) != (_head_); \ + (_list_) = list_entry((_list_)->_item_.next, typeof(*_list_), _item_)) + +#elif defined (MSVC) +#define list_for_each_entry(_list_, _head_, _item_) \ +for ((_list_) = list_entry((_head_)->next, struct jffs2_compressor, _item_); \ + &((_list_)->_item_) != (_head_); \ + (_list_) = list_entry((_list_)->_item_.next, struct jffs2_compressor, _item_)) +#else +#endif +/* -----------------------------------------------------------------------*/ +#endif /* #ifndef CYGONCE_FS_JFFS2_LIST_H */ +/* EOF list.h */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/mtd/compatmac.h b/components/dfs/filesystems/jffs2/kernel/linux/mtd/compatmac.h new file mode 100644 index 0000000000..cee3749250 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/mtd/compatmac.h @@ -0,0 +1,5 @@ +#ifndef __LINUX_MTD_COMPATMAC_H__ +#define __LINUX_MTD_COMPATMAC_H__ + + +#endif /* __LINUX_MTD_COMPATMAC_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/mtd/mtd.h b/components/dfs/filesystems/jffs2/kernel/linux/mtd/mtd.h new file mode 100644 index 0000000000..817d31cf6f --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/mtd/mtd.h @@ -0,0 +1,5 @@ +#ifndef __LINUX_MTD_MTD_H__ +#define __LINUX_MTD_MTD_H__ + + +#endif /* __LINUX_MTD_MTD_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/pagemap.h b/components/dfs/filesystems/jffs2/kernel/linux/pagemap.h new file mode 100644 index 0000000000..fccf9c4061 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/pagemap.h @@ -0,0 +1,19 @@ +#ifndef __LINUX_PAGEMAP_H__ +#define __LINUX_PAGEMAP_H__ + +#include <asm/bug.h> +#include <asm/page.h> + +#define PAGE_CACHE_SHIFT PAGE_SHIFT +#define PAGE_CACHE_SIZE PAGE_SIZE + +#define PageLocked(pg) 1 +#define Page_Uptodate(pg) 0 +#define UnlockPage(pg) +#define PAGE_BUG(pg) BUG() +#define ClearPageUptodate(pg) +#define SetPageError(pg) +#define ClearPageError(pg) +#define SetPageUptodate(pg) + +#endif /* __LINUX_PAGEMAP_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/rbtree.h b/components/dfs/filesystems/jffs2/kernel/linux/rbtree.h new file mode 100644 index 0000000000..ef7a77dea7 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/rbtree.h @@ -0,0 +1,62 @@ +#ifndef _LINUX_RBTREE_H +#define _LINUX_RBTREE_H
+ +#if defined (__GNUC__) +#elif defined (MSVC) +#define __inline__ __inline +#define inline __inline +#else +#endif + +struct rb_node { + struct rb_node *rb_left; /* left element */ + struct rb_node *rb_right; /* right element */ + struct rb_node *rb_parent; /* parent element */ + int rb_color; /* node color */ +}; + +struct rb_root { + struct rb_node *rb_node; /* root of the tree */ +};
+
+#ifndef NULL +#define NULL ((void *)0)
+#endif
+ +#if defined (__GNUC__) +#define RB_ROOT ((struct rb_root){NULL}) +#elif defined (MSVC) +#define RB_ROOT {NULL}//{struct rb_root _x = {NULL};} +#else +#endif + +#define rb_entry(p, container, field) \ + ((container *) ((char *)p - ((char *)&(((container *)0)->field)))) + +#define RB_BLACK 0 +#define RB_RED 1 + + +extern void rb_insert_color(struct rb_node *, struct rb_root *); +extern void rb_erase(struct rb_node *, struct rb_root *); + +/* Find logical next and previous nodes in a tree */ +extern struct rb_node *rb_next(struct rb_node *); +extern struct rb_node *rb_prev(struct rb_node *); +extern struct rb_node *rb_first(struct rb_root *); + +/* Fast replacement of a single node without remove/rebalance/add/rebalance */ +extern void rb_replace_node(struct rb_node *victim, struct rb_node *new, + struct rb_root *root); + +static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, + struct rb_node ** rb_link) +{ + node->rb_parent = parent; + node->rb_color = RB_RED; + node->rb_left = node->rb_right = NULL; + + *rb_link = node; +} + +#endif /* _LINUX_RBTREE_H */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/rwsem.h b/components/dfs/filesystems/jffs2/kernel/linux/rwsem.h new file mode 100644 index 0000000000..d648a150ca --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/rwsem.h @@ -0,0 +1,20 @@ +#ifndef __LINUX_RWSEM_H__ +#define __LINUX_RWSEM_H__ + +// eCos does not have the concept of a read/write semaphore. So just +// map them onto normal semaphores and hope we don't deadlock +// somewhere. + +#include <asm/semaphore.h> + +struct rw_semaphore; + +#define down_read(sem) cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem) +#define down_read_trylock(sem) cyg_drv_mutex_trylock((cyg_drv_mutex_t *)sem) +#define down_write(sem) cyg_drv_mutex_lock((cyg_drv_mutex_t *)sem) +#define down_write_trylock(sem) cyg_drv_mutex_trylock((cyg_drv_mutex_t *)sem) +#define up_read(sem) cyg_drv_mutex_unlock((cyg_drv_mutex_t *)sem) +#define up_write(sem) cyg_drv_mutex_unlock((cyg_drv_mutex_t *)sem) +#define downgrade_write(sem) + +#endif // __LINUX_RWSEM_H__ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/sched.h b/components/dfs/filesystems/jffs2/kernel/linux/sched.h new file mode 100644 index 0000000000..14a7359754 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/sched.h @@ -0,0 +1,7 @@ +#ifndef __LINUX_SCHED_H__ +#define __LINUX_SCHED_H__ + +#define cond_resched() do { } while(0) +#define signal_pending(x) (0) + +#endif /* __LINUX_SCHED_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/slab.h b/components/dfs/filesystems/jffs2/kernel/linux/slab.h new file mode 100644 index 0000000000..5b711b829d --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/slab.h @@ -0,0 +1,14 @@ +#ifndef __LINUX_SLAB_H__ +#define __LINUX_SLAB_H__ + +#include <stdlib.h> //prife + +#include <asm/page.h> /* Don't ask. Linux headers are a mess. */ + +#define kmalloc(x, y) malloc(x) +#define kfree(x) free(x) +#define vmalloc(x) malloc(x) +#define vfree(x) free(x) + +#endif /* __LINUX_SLAB_H__ */ + diff --git a/components/dfs/filesystems/jffs2/kernel/linux/spinlock.h b/components/dfs/filesystems/jffs2/kernel/linux/spinlock.h new file mode 100644 index 0000000000..db3f4d4502 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/spinlock.h @@ -0,0 +1,43 @@ +#ifndef __LINUX_SPINLOCK_H__ +#define __LINUX_SPINLOCK_H__ + +#if defined (__GNUC__) +typedef struct { } spinlock_t; + +#define SPIN_LOCK_UNLOCKED (spinlock_t) { } +#define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED +#elif defined (MSVC) +typedef struct {int no; } spinlock_t; + +#define SPIN_LOCK_UNLOCKED (spinlock_t) ( 0) +#define DEFINE_SPINLOCK(x) spinlock_t x +#else +#error "please use a right C compiler" +#endif + +#define spin_lock_init(lock) \ +CYG_MACRO_START; \ +CYG_UNUSED_PARAM(spinlock_t *, lock); \ +CYG_MACRO_END + +#define spin_lock(lock) \ +CYG_MACRO_START; \ +CYG_UNUSED_PARAM(spinlock_t *, lock); \ +CYG_MACRO_END + +#define spin_unlock(lock) \ +CYG_MACRO_START; \ +CYG_UNUSED_PARAM(spinlock_t *, lock); \ +CYG_MACRO_END + +#define spin_lock_bh(lock) \ +CYG_MACRO_START; \ +CYG_UNUSED_PARAM(spinlock_t *, lock); \ +CYG_MACRO_END + +#define spin_unlock_bh(lock) \ +CYG_MACRO_START; \ +CYG_UNUSED_PARAM(spinlock_t *, lock); \ +CYG_MACRO_END + +#endif /* __LINUX_SPINLOCK_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/stat.h b/components/dfs/filesystems/jffs2/kernel/linux/stat.h new file mode 100644 index 0000000000..5ed08194a0 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/stat.h @@ -0,0 +1,12 @@ +#ifndef __LINUX_STAT_H__ +#define __LINUX_STAT_H__ + + +#include "os_sys_stat.h" //mod by prife + +#define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH) +#define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH) +#define S_IXUGO (S_IXUSR|S_IXGRP|S_IXOTH) +#define S_IRWXUGO (S_IRWXU|S_IRWXG|S_IRWXO) + +#endif /* __LINUX_STAT_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/string.h b/components/dfs/filesystems/jffs2/kernel/linux/string.h new file mode 100644 index 0000000000..fc14ba607f --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/string.h @@ -0,0 +1,6 @@ +#ifndef __LINUX_STRING_H__ +#define __LINUX_STRING_H__ + +#include <string.h> + +#endif /* __LINUX_STRING_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/timer.h b/components/dfs/filesystems/jffs2/kernel/linux/timer.h new file mode 100644 index 0000000000..d6f91a68bc --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/timer.h @@ -0,0 +1,15 @@ +#ifndef __LINUX_TIMER_H__ +#define __LINUX_TIMER_H__ + +/* Not yet */ + +#if defined (__GNUC__) +struct timer_list { } ; +#elif defined (MSVC) +struct timer_list {int no; } ; +#else +#error "please use a right C compiler" +#endif + +#endif /* __LINUX_TIMER_H__ */ + diff --git a/components/dfs/filesystems/jffs2/kernel/linux/types.h b/components/dfs/filesystems/jffs2/kernel/linux/types.h new file mode 100644 index 0000000000..56665b774e --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/types.h @@ -0,0 +1,19 @@ +#ifndef __LINUX_TYPES_H__ +#define __LINUX_TYPES_H__ + +#include "cyg/infra/cyg_type.h" + +#define uint8_t cyg_uint8 +#define uint16_t cyg_uint16 +#define uint32_t cyg_uint32 + +#define int8_t cyg_int8 +#define int16_t cyg_int16 +#define int32_t cyg_int32 + +#define loff_t off_t + + +#define kvec iovec +#endif /* __LINUX_TYPES_H__ */ + diff --git a/components/dfs/filesystems/jffs2/kernel/linux/version.h b/components/dfs/filesystems/jffs2/kernel/linux/version.h new file mode 100644 index 0000000000..cca2d731f1 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/version.h @@ -0,0 +1,5 @@ +#ifndef __LINUX_VERSION_H__ +#define __LINUX_VERSION_H__ + + +#endif /* __LINUX_VERSION_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/vmalloc.h b/components/dfs/filesystems/jffs2/kernel/linux/vmalloc.h new file mode 100644 index 0000000000..6f18ab2255 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/vmalloc.h @@ -0,0 +1,3 @@ +#ifndef __LINUX_VMALLOC_H__ +#define __LINUX_VMALLOC_H__ +#endif diff --git a/components/dfs/filesystems/jffs2/kernel/linux/wait.h b/components/dfs/filesystems/jffs2/kernel/linux/wait.h new file mode 100644 index 0000000000..db3fd7a608 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/wait.h @@ -0,0 +1,21 @@ +#ifndef __LINUX_WAIT_H__ +#define __LINUX_WAIT_H__ + + +#if defined (__GNUC__) +typedef struct { } wait_queue_head_t; +#elif defined (MSVC) +typedef struct {int no; } wait_queue_head_t; +#else +#error "please use a right C compiler" +#endif + +#define init_waitqueue_head(wait) do{} while (0) +#define add_wait_queue(wait,new_wait) do{} while (0) +#define remove_wait_queue(wait,old_wait) do{} while (0) +#define DECLARE_WAITQUEUE(wait,current) do{} while (0) + +static inline void wake_up(wait_queue_head_t *erase_wait) +{ /* Only used for waking up threads blocks on erases. Not used in eCos */ } + +#endif /* __LINUX_WAIT_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/workqueue.h b/components/dfs/filesystems/jffs2/kernel/linux/workqueue.h new file mode 100644 index 0000000000..8b334d5593 --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/workqueue.h @@ -0,0 +1,18 @@ +#ifndef __LINUX_WORKQUEUE_H__ +#define __LINUX_WORKQUEUE_H__ + +/* We don't do this yet */ +#if defined (__GNUC__) +struct work_struct { } ; +#elif defined (MSVC) +struct work_struct {int no; } ; +#else +#error "please use a right C compiler" +#endif + + +#define INIT_WORK(x,y,z) /* */ +#define schedule_work(x) do { } while(0) +#define flush_scheduled_work() do { } while(0) + +#endif /* __LINUX_WORKQUEUE_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/zlib.h b/components/dfs/filesystems/jffs2/kernel/linux/zlib.h new file mode 100644 index 0000000000..b731bc208e --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/zlib.h @@ -0,0 +1,15 @@ +#ifndef __LINUX_ZLIB_H__ +#define __LINUX_ZLIB_H__ + +#include <cyg/compress/zlib.h>
+ +#define zlib_deflateInit(x,y) deflateInit(x,y) +#define zlib_deflate(x,y) deflate(x,y) +#define zlib_deflateEnd(x) deflateEnd(x) +#define zlib_inflateInit(x) inflateInit(x) +#define zlib_inflateInit2(x,y) inflateInit2(x,y) +#define zlib_inflate(x,y) inflate(x,y) +#define zlib_inflateEnd(x) inflateEnd(x)
+ + +#endif /* __LINUX_ZLIB_H__ */ diff --git a/components/dfs/filesystems/jffs2/kernel/linux/zutil.h b/components/dfs/filesystems/jffs2/kernel/linux/zutil.h new file mode 100644 index 0000000000..c3774baf9e --- /dev/null +++ b/components/dfs/filesystems/jffs2/kernel/linux/zutil.h @@ -0,0 +1,6 @@ +#ifndef __LINUX_ZUTIL_H__ +#define __LINUX_ZUTIL_H__ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + +#endif /* __LINUX_ZUTIL_H__ */ |
