Also clean a few other things in yportenv_xxxx.h
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
13 files changed:
*/
if(sizeof(struct yaffs_spare) != 16)
*/
if(sizeof(struct yaffs_spare) != 16)
if(data && spare)
{
if(spare->page_status != 0xff)
if(data && spare)
{
if(spare->page_status != 0xff)
/* Write a pre-marker */
memset(&tmpSpare,0xff,sizeof(tmpSpare));
tmpSpare.page_status = YNOR_PREMARKER;
/* Write a pre-marker */
memset(&tmpSpare,0xff,sizeof(tmpSpare));
tmpSpare.page_status = YNOR_PREMARKER;
ynorif1_FlashWrite32(spareAddr,(u32 *)&tmpSpare,16/ 4);
}
else {
ynorif1_FlashWrite32(spareAddr,(u32 *)&tmpSpare,16/ 4);
}
else {
#include "yaffs_hweight.h"
#include "assert.h"
#include "yaffs_hweight.h"
#include "assert.h"
-#define YBUG() assert(0)
-//#define YBUG() do { *((int *)0) =1;} while(0)
+#define BUG() assert(0)
+//#define BUG() do { *((int *)0) =1;} while(0)
#define Y_DUMP_STACK() do { } while (0)
#endif
#define Y_DUMP_STACK() do { } while (0)
#endif
-#ifndef YBUG
-#define YBUG() do {\
+#ifndef BUG
+#define BUG() do {\
yaffs_trace(YAFFS_TRACE_BUG,\
"==>> yaffs bug: " __FILE__ " %d",\
__LINE__);\
yaffs_trace(YAFFS_TRACE_BUG,\
"==>> yaffs bug: " __FILE__ " %d",\
__LINE__);\
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("NULL tnode cache\n")));
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("NULL tnode cache\n")));
}
if(allocator->object_cache){
}
if(allocator->object_cache){
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("NULL object cache\n")));
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("NULL object cache\n")));
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("Deinitialising NULL allocator\n")));
} else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("Deinitialising NULL allocator\n")));
}
dev->allocator = NULL;
}
}
dev->allocator = NULL;
}
T(YAFFS_TRACE_ALLOCATE,(TSTR("Initialising yaffs allocator\n")));
if(dev->allocator)
T(YAFFS_TRACE_ALLOCATE,(TSTR("Initialising yaffs allocator\n")));
if(dev->allocator)
else if(mount_id >= 10){
T(YAFFS_TRACE_ALWAYS,(TSTR("Bad mount_id %u\n"),mount_id));
} else {
else if(mount_id >= 10){
T(YAFFS_TRACE_ALWAYS,(TSTR("Bad mount_id %u\n"),mount_id));
} else {
if(!dev->allocator){
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs allocator creation failed\n")));
if(!dev->allocator){
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs allocator creation failed\n")));
else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs cache creation failed\n")));
else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs cache creation failed\n")));
else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs cache creation failed\n")));
else {
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs cache creation failed\n")));
{
yaffs_Allocator *allocator = dev->allocator;
if(!allocator || !allocator->tnode_cache){
{
yaffs_Allocator *allocator = dev->allocator;
if(!allocator || !allocator->tnode_cache){
return NULL;
}
return kmem_cache_alloc(allocator->tnode_cache, GFP_NOFS);
return NULL;
}
return kmem_cache_alloc(allocator->tnode_cache, GFP_NOFS);
{
yaffs_Allocator *allocator = dev->allocator;
if(!allocator){
{
yaffs_Allocator *allocator = dev->allocator;
if(!allocator){
return NULL;
}
if(!allocator->object_cache){
return NULL;
}
if(!allocator->object_cache){
return NULL;
}
return kmem_cache_alloc(allocator->object_cache, GFP_NOFS);
return NULL;
}
return kmem_cache_alloc(allocator->object_cache, GFP_NOFS);
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
}
for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
}
for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
n = mtd->oobinfo.oobfree[j][1];
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
n = mtd->oobinfo.oobfree[j][1];
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No OOB space for tags" TENDSTR)));
}
}
dev->spareBuffer[k] = ptab[i];
}
}
dev->spareBuffer[k] = ptab[i];
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
}
for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
}
for (i = 0; i < sizeof(yaffs_PackedTags2); i++) {
n = mtd->oobinfo.oobfree[j][1];
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
n = mtd->oobinfo.oobfree[j][1];
if (n == 0) {
T(YAFFS_TRACE_ERROR, (TSTR("No space in OOB for tags" TENDSTR)));
}
}
ptab[i] = dev->spareBuffer[k];
}
}
ptab[i] = dev->spareBuffer[k];
T(YAFFS_TRACE_ALWAYS,
(TSTR
("Write chunk with null tags or data!" TENDSTR)));
T(YAFFS_TRACE_ALWAYS,
(TSTR
("Write chunk with null tags or data!" TENDSTR)));
struct yaffs_tnode_list *tmp;
if (!allocator) {
struct yaffs_tnode_list *tmp;
if (!allocator) {
allocator->n_free_tnodes = 0;
allocator->n_tnodes_created = 0;
} else {
allocator->n_free_tnodes = 0;
allocator->n_tnodes_created = 0;
} else {
struct yaffs_tnode_list *tnl;
if (!allocator) {
struct yaffs_tnode_list *tnl;
if (!allocator) {
struct yaffs_tnode *tn = NULL;
if (!allocator) {
struct yaffs_tnode *tn = NULL;
if (!allocator) {
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator) {
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator) {
allocator->free_objs = NULL;
allocator->n_free_objects = 0;
} else {
allocator->free_objs = NULL;
allocator->n_free_objects = 0;
} else {
struct yaffs_obj_list *tmp;
if (!allocator) {
struct yaffs_obj_list *tmp;
if (!allocator) {
struct yaffs_obj_list *list;
if (!allocator) {
struct yaffs_obj_list *list;
if (!allocator) {
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator) {
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator) {
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator)
struct yaffs_allocator *allocator = dev->allocator;
if (!allocator)
else {
/* Link into the free list. */
obj->siblings.next = (struct list_head *)(allocator->free_objs);
else {
/* Link into the free list. */
obj->siblings.next = (struct list_head *)(allocator->free_objs);
kfree(dev->allocator);
dev->allocator = NULL;
} else {
kfree(dev->allocator);
dev->allocator = NULL;
} else {
yaffs_init_raw_objs(dev);
}
} else {
yaffs_init_raw_objs(dev);
}
} else {
yaffs_trace(YAFFS_TRACE_ERROR,
"BlockBits block %d is not valid",
blk);
yaffs_trace(YAFFS_TRACE_ERROR,
"BlockBits block %d is not valid",
blk);
}
return dev->chunk_bits +
(dev->chunk_bit_stride * (blk - dev->internal_start_block));
}
return dev->chunk_bits +
(dev->chunk_bit_stride * (blk - dev->internal_start_block));
yaffs_trace(YAFFS_TRACE_ERROR,
"Chunk Id (%d:%d) invalid",
blk, chunk);
yaffs_trace(YAFFS_TRACE_ERROR,
"Chunk Id (%d:%d) invalid",
blk, chunk);
yaffs_trace(YAFFS_TRACE_ERROR,
"**>> yaffs: get_block_info block %d is not valid",
blk);
yaffs_trace(YAFFS_TRACE_ERROR,
"**>> yaffs: get_block_info block %d is not valid",
blk);
}
return &dev->block_info[blk - dev->internal_start_block];
}
}
return &dev->block_info[blk - dev->internal_start_block];
}
yaffs_trace(YAFFS_TRACE_ERROR,
"yaffs tragedy:attempt to put data chunk into a non-file"
);
yaffs_trace(YAFFS_TRACE_ERROR,
"yaffs tragedy:attempt to put data chunk into a non-file"
);
}
yaffs_chunk_del(dev, nand_chunk, 1, __LINE__);
}
yaffs_chunk_del(dev, nand_chunk, 1, __LINE__);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: Trying to add an object to a null pointer directory"
);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: Trying to add an object to a null pointer directory"
);
return;
}
if (directory->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: Trying to add an object to a non-directory"
);
return;
}
if (directory->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: Trying to add an object to a non-directory"
);
}
if (obj->siblings.prev == NULL) {
/* Not initialised */
}
if (obj->siblings.prev == NULL) {
/* Not initialised */
}
yaffs_verify_dir(directory);
}
yaffs_verify_dir(directory);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_change_obj_name: new_dir is not a directory"
);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_change_obj_name: new_dir is not a directory"
);
}
/* TODO: Do we need this different handling for YAFFS2 and YAFFS1?? */
}
/* TODO: Do we need this different handling for YAFFS2 and YAFFS1?? */
struct yaffs_dev *dev;
if (!obj) {
struct yaffs_dev *dev;
if (!obj) {
return;
}
dev = obj->my_dev;
yaffs_trace(YAFFS_TRACE_OS, "FreeObject %p inode %p",
obj, obj->my_inode);
if (obj->parent)
return;
}
dev = obj->my_dev;
yaffs_trace(YAFFS_TRACE_OS, "FreeObject %p inode %p",
obj, obj->my_inode);
if (obj->parent)
if (!list_empty(&obj->siblings))
if (!list_empty(&obj->siblings))
if (obj->my_inode) {
/* We're still hooked up to a cached inode.
if (obj->my_inode) {
/* We're still hooked up to a cached inode.
yaffs_trace(YAFFS_TRACE_ERROR,
"Writing %d bytes to chunk!!!!!!!!!",
n_bytes);
yaffs_trace(YAFFS_TRACE_ERROR,
"Writing %d bytes to chunk!!!!!!!!!",
n_bytes);
if (n_writeback < 0 ||
n_writeback > dev->data_bytes_per_chunk)
if (n_writeback < 0 ||
n_writeback > dev->data_bytes_per_chunk)
} else {
n_copy = dev->data_bytes_per_chunk - start;
} else {
n_copy = dev->data_bytes_per_chunk - start;
struct yaffs_dev *dev;
if (!old_dir || old_dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
struct yaffs_dev *dev;
if (!old_dir || old_dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
return YAFFS_FAIL;
}
if (!new_dir || new_dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
return YAFFS_FAIL;
}
if (!new_dir || new_dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
struct list_head *n;
if (dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY)
struct list_head *n;
if (dir->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY)
list_for_each_safe(lh, n, &dir->variant.dir_variant.children) {
obj = list_entry(lh, struct yaffs_obj, siblings);
list_for_each_safe(lh, n, &dir->variant.dir_variant.children) {
obj = list_entry(lh, struct yaffs_obj, siblings);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_find_by_name: null pointer directory"
);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_find_by_name: null pointer directory"
);
return NULL;
}
if (directory->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_find_by_name: non-directory"
);
return NULL;
}
if (directory->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
"tragedy: yaffs_find_by_name: non-directory"
);
}
sum = yaffs_calc_name_sum(name);
}
sum = yaffs_calc_name_sum(name);
l = list_entry(i, struct yaffs_obj, siblings);
if (l->parent != directory)
l = list_entry(i, struct yaffs_obj, siblings);
if (l->parent != directory)
yaffs_check_obj_details_loaded(l);
yaffs_check_obj_details_loaded(l);
if (!yaffs_validate_tags(tags)) {
yaffs_trace(YAFFS_TRACE_ERROR,
"Writing uninitialised tags");
if (!yaffs_validate_tags(tags)) {
yaffs_trace(YAFFS_TRACE_ERROR,
"Writing uninitialised tags");
}
yaffs_trace(YAFFS_TRACE_WRITE,
"Writing chunk %d tags %d %d",
nand_chunk, tags->obj_id, tags->chunk_id);
} else {
yaffs_trace(YAFFS_TRACE_ERROR, "Writing with no tags");
}
yaffs_trace(YAFFS_TRACE_WRITE,
"Writing chunk %d tags %d %d",
nand_chunk, tags->obj_id, tags->chunk_id);
} else {
yaffs_trace(YAFFS_TRACE_ERROR, "Writing with no tags");
if (!obj) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "No object to verify");
if (!obj) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "No object to verify");
if (!obj->parent) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "Object does not have parent");
if (!obj->parent) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "Object does not have parent");
return;
}
if (obj->parent->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "Parent is not directory");
return;
}
if (obj->parent->variant_type != YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffs_trace(YAFFS_TRACE_ALWAYS, "Parent is not directory");
}
/* Iterate through the objects in each hash entry */
}
/* Iterate through the objects in each hash entry */
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Object in directory %d times",
count);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Object in directory %d times",
count);
struct yaffs_obj *list_obj;
if (!directory) {
struct yaffs_obj *list_obj;
if (!directory) {
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Directory has wrong type: %d",
directory->variant_type);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Directory has wrong type: %d",
directory->variant_type);
}
/* Iterate through the objects in each hash entry */
}
/* Iterate through the objects in each hash entry */
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Object in directory list has wrong parent %p",
list_obj->parent);
yaffs_trace(YAFFS_TRACE_ALWAYS,
"Object in directory list has wrong parent %p",
list_obj->parent);
}
yaffs_verify_obj_in_dir(list_obj);
}
}
yaffs_verify_obj_in_dir(list_obj);
}
#include <linux/sort.h>
#include <linux/bitops.h>
#include <linux/sort.h>
#include <linux/bitops.h>
+/* These type wrappings are used to support Unicode names in WinCE. */
#define YCHAR char
#define YUCHAR unsigned char
#define _Y(x) x
#define YCHAR char
#define YUCHAR unsigned char
#define _Y(x) x
({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
-#ifndef Y_DUMP_STACK
-#define Y_DUMP_STACK() dump_stack()
-#endif
-
#define yaffs_trace(msk, fmt, ...) do { \
if (yaffs_trace_mask & (msk)) \
printk(KERN_DEBUG "yaffs: " fmt "\n", ##__VA_ARGS__); \
} while (0)
#define yaffs_trace(msk, fmt, ...) do { \
if (yaffs_trace_mask & (msk)) \
printk(KERN_DEBUG "yaffs: " fmt "\n", ##__VA_ARGS__); \
} while (0)
-#ifndef YBUG
-#define YBUG() do {\
- yaffs_trace(YAFFS_TRACE_BUG,\
- "bug " __FILE__ " %d",\
- __LINE__);\
- Y_DUMP_STACK();\
-} while (0)
-#endif
#include <linux/sort.h>
#include <linux/bitops.h>
#include <linux/sort.h>
#include <linux/bitops.h>
+/* These type wrappings are used to support Unicode names in WinCE. */
#define YCHAR char
#define YUCHAR unsigned char
#define _Y(x) x
#define YCHAR char
#define YUCHAR unsigned char
#define _Y(x) x
({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
({ int x = __builtin_choose_expr(assertion, 0, (void)0); (void) x; })
-#ifndef Y_DUMP_STACK
-#define Y_DUMP_STACK() dump_stack()
-#endif
-
#define yaffs_trace(msk, fmt, ...) do { \
if (yaffs_trace_mask & (msk)) \
printk(KERN_DEBUG "yaffs: " fmt "\n", ##__VA_ARGS__); \
} while (0)
#define yaffs_trace(msk, fmt, ...) do { \
if (yaffs_trace_mask & (msk)) \
printk(KERN_DEBUG "yaffs: " fmt "\n", ##__VA_ARGS__); \
} while (0)
-#ifndef YBUG
-#define YBUG() do {\
- yaffs_trace(YAFFS_TRACE_BUG,\
- "bug " __FILE__ " %d",\
- __LINE__);\
- Y_DUMP_STACK();\
-} while (0)
-#endif