The u-boot patches were not acceptable to the u-booters. Hopefully yhey will be happy now.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
yaffs_summary.c yaffs_summary.h \
yaffsfs.c yaffs_flashif.h yaffs_flashif2.h\
yaffsfs.h yaffs_osglue.h ydirectenv.h \
- yaffs_flashif.c yaffscfg.h yaffs_list.h \
+ yaffscfg.h yaffs_list.h \
yaffs_qsort.c yportenv.h yaffs_attribs.c \
yaffs_nandif.c yaffs_nandif.h yaffs_nandemul2k.h \
yaffs_hweight.h yaffs_hweight.c \
void dumpDirFollow(const char *dname)
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
char str[100];
void dump_directory_tree_worker(const char *dname,int recursive)
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
char str[1000];
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
int f;
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
yaffs_start_up();
static SimData *DevToSim(struct yaffs_dev *dev)
{
- ynandif_Geometry *geom = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geom =
+ (struct ynandif_Geometry *)(dev->driver_context);
SimData * sim = (SimData*)(geom->privateData);
return sim;
}
u32 start_block, u32 end_block)
{
SimData *sim;
- ynandif_Geometry *g;
+ struct ynandif_Geometry *g;
sim = yramsim_alloc_sim_data(devId, nBlocks);
- g = malloc(sizeof(ynandif_Geometry));
+ g = malloc(sizeof(*g));
if(!sim || !g){
if(g)
if(end_block == 0 || end_block >= sim->nBlocks)
end_block = sim->nBlocks - 1;
- memset(g,0,sizeof(ynandif_Geometry));
+ memset(g,0,sizeof(*g));
g->start_block = start_block;
g->end_block = end_block;
g->dataSize = DATA_SIZE;
YAFFSDIRECTSYMLINKS = \
yaffsfs.c yaffsfs.h yaffscfg.h yaffs_osglue.h ydirectenv.h \
- yaffs_flashif.c yaffs_flashif.h yaffs_flashif2.h yaffs_list.h \
+ yaffs_flashif.h yaffs_flashif2.h yaffs_list.h \
yaffs_nandif.c yaffs_nandif.h yaffs_qsort.c yaffs_nandemul2k.h \
yportenv.h yaffs_attribs.c \
yaffs_hweight.c yaffs_hweight.h \
YAFFSDIRECTSYMLINKS = \
yaffsfs.c yaffs_flashif.h yaffs_flashif2.h\
yaffsfs.h yaffs_osglue.h ydirectenv.h \
- yaffs_flashif.c yaffscfg.h yaffs_qsort.c \
+ yaffscfg.h yaffs_qsort.c \
yaffs_nandemul2k.h yaffs_list.h \
yaffs_attribs.c \
yaffs_nandif.c yaffs_nandif.h yportenv.h \
static void dump_directory_tree_worker(const char *dname,int recursive)
{
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat s;
char str[1000];
int error_line = 0;
#include <config.h>
#include <command.h>
-#ifdef YAFFS2_DEBUG
-#define PRINTF(fmt,args...) printf (fmt ,##args)
+#ifdef YAFFS2_DEBUG
+#define PRINTF(fmt, args...) printf(fmt, ##args)
#else
-#define PRINTF(fmt,args...) do { } while(0)
+#define PRINTF(fmt, args...) do { } while (0)
#endif
extern void cmd_yaffs_dev_ls(void);
extern void cmd_yaffs_tracemask(unsigned set, unsigned mask);
-extern void cmd_yaffs_devconfig(char *mp, int flash_dev, int start_block, int end_block);
+extern void cmd_yaffs_devconfig(char *mp, int flash_dev,
+ int start_block, int end_block);
extern void cmd_yaffs_mount(char *mp);
extern void cmd_yaffs_umount(char *mp);
extern void cmd_yaffs_read_file(char *fn);
-extern void cmd_yaffs_write_file(char *fn,char bval,int sizeOfFile);
+extern void cmd_yaffs_write_file(char *fn, char bval, int sizeOfFile);
extern void cmd_yaffs_ls(const char *mountpt, int longlist);
extern void cmd_yaffs_mwrite_file(char *fn, char *addr, int size);
extern void cmd_yaffs_mread_file(char *fn, char *addr);
extern int yaffs_dump_dev(const char *path);
-
/* ytrace - show/set yaffs trace mask */
-int do_ytrace (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ytrace(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- if(argc > 1)
+ if (argc > 1)
cmd_yaffs_tracemask(1, simple_strtol(argv[1], NULL, 16));
else
cmd_yaffs_tracemask(0, 0);
- return(0);
+ return 0;
}
/* ydevls - lists yaffs mount points. */
-int do_ydevls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ydevls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- cmd_yaffs_dev_ls();
+ cmd_yaffs_dev_ls();
- return(0);
+ return 0;
}
/* ydevconfig mount_pt mtd_dev_num start_block end_block */
-int do_ydevconfig (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ydevconfig(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *mtpoint;
- int mtd_dev;
- int start_block;
- int end_block;
+ char *mtpoint;
+ int mtd_dev;
+ int start_block;
+ int end_block;
- if(argc != 5) {
- printf("Bad arguments: ydevconfig mount_pt mtd_dev start_block end_block\n");
- return -1;
- }
+ if (argc != 5) {
+ printf
+ ("Bad arguments: ydevconfig mount_pt mtd_dev start_block end_block\n");
+ return -1;
+ }
- mtpoint = argv[1];
- mtd_dev = simple_strtol(argv[2], NULL, 16);
- start_block = simple_strtol(argv[3], NULL, 16);
- end_block = simple_strtol(argv[4], NULL, 16);
+ mtpoint = argv[1];
+ mtd_dev = simple_strtol(argv[2], NULL, 16);
+ start_block = simple_strtol(argv[3], NULL, 16);
+ end_block = simple_strtol(argv[4], NULL, 16);
- cmd_yaffs_devconfig(mtpoint, mtd_dev, start_block, end_block);
+ cmd_yaffs_devconfig(mtpoint, mtd_dev, start_block, end_block);
- return(0);
+ return 0;
}
-int do_ymount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ymount(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *mtpoint;
+ char *mtpoint;
- if(argc != 2) {
- printf("Bad arguments: ymount mount_pt\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: ymount mount_pt\n");
+ return -1;
+ }
- mtpoint = argv[1];
- printf("Mounting yaffs2 mount point %s\n",mtpoint);
+ mtpoint = argv[1];
+ printf("Mounting yaffs2 mount point %s\n", mtpoint);
- cmd_yaffs_mount(mtpoint);
+ cmd_yaffs_mount(mtpoint);
- return(0);
+ return 0;
}
-int do_yumount (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yumount(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *mtpoint;
+ char *mtpoint;
- if(argc != 2) {
- printf("Bad arguments: yumount mount_pt\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: yumount mount_pt\n");
+ return -1;
+ }
- mtpoint = argv[1];
- printf("Unmounting yaffs2 mount point %s\n",mtpoint);
- cmd_yaffs_umount(mtpoint);
+ mtpoint = argv[1];
+ printf("Unmounting yaffs2 mount point %s\n", mtpoint);
+ cmd_yaffs_umount(mtpoint);
- return(0);
+ return 0;
}
-int do_yls (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yls(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *dirname;
+ char *dirname;
- if(argc < 2 || argc > 3 ||
- (argc == 3 && strcmp(argv[1],"-l"))) {
- printf("Bad arguments: yls [-l] dir\n");
- return -1;
- }
+ if (argc < 2 || argc > 3 || (argc == 3 && strcmp(argv[1], "-l"))) {
+ printf("Bad arguments: yls [-l] dir\n");
+ return -1;
+ }
- dirname = argv[argc-1];
+ dirname = argv[argc - 1];
- cmd_yaffs_ls(dirname, (argc>2)?1:0);
+ cmd_yaffs_ls(dirname, (argc > 2) ? 1 : 0);
- return(0);
+ return 0;
}
-int do_yrd (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yrd(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *filename;
+ char *filename;
- if(argc != 2) {
- printf("Bad arguments: yrd file_name\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: yrd file_name\n");
+ return -1;
+ }
- filename = argv[1];
+ filename = argv[1];
- printf ("Reading file %s ", filename);
+ printf("Reading file %s ", filename);
- cmd_yaffs_read_file(filename);
+ cmd_yaffs_read_file(filename);
- printf ("done\n");
- return(0);
+ printf("done\n");
+ return 0;
}
-int do_ywr (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ywr(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *filename;
- ulong value;
- ulong numValues;
+ char *filename;
+ ulong value;
+ ulong numValues;
- if(argc != 4) {
- printf("Bad arguments: ywr file_name value n_values\n");
- return -1;
- }
+ if (argc != 4) {
+ printf("Bad arguments: ywr file_name value n_values\n");
+ return -1;
+ }
- filename = argv[1];
- value = simple_strtoul(argv[2], NULL, 16);
- numValues = simple_strtoul(argv[3], NULL, 16);
+ filename = argv[1];
+ value = simple_strtoul(argv[2], NULL, 16);
+ numValues = simple_strtoul(argv[3], NULL, 16);
- printf ("Writing value (%lx) %lx times to %s... ", value, numValues, filename);
+ printf("Writing value (%lx) %lx times to %s... ", value, numValues,
+ filename);
- cmd_yaffs_write_file(filename,value,numValues);
+ cmd_yaffs_write_file(filename, value, numValues);
- printf ("done\n");
- return(0);
+ printf("done\n");
+ return 0;
}
-int do_yrdm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yrdm(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *filename;
- ulong addr;
+ char *filename;
+ ulong addr;
- if(argc != 3) {
- printf("Bad arguments: yrdm file_name addr\n");
- return -1;
- }
+ if (argc != 3) {
+ printf("Bad arguments: yrdm file_name addr\n");
+ return -1;
+ }
- filename = argv[1];
- addr = simple_strtoul(argv[2], NULL, 16);
+ filename = argv[1];
+ addr = simple_strtoul(argv[2], NULL, 16);
- cmd_yaffs_mread_file(filename, (char *)addr);
+ cmd_yaffs_mread_file(filename, (char *)addr);
- return(0);
+ return 0;
}
-int do_ywrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ywrm(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *filename;
- ulong addr;
- ulong size;
+ char *filename;
+ ulong addr;
+ ulong size;
- if(argc != 4) {
- printf("Bad arguments: ywrm file_name addr size\n");
- return -1;
- }
+ if (argc != 4) {
+ printf("Bad arguments: ywrm file_name addr size\n");
+ return -1;
+ }
- filename = argv[1];
- addr = simple_strtoul(argv[2], NULL, 16);
- size = simple_strtoul(argv[3], NULL, 16);
+ filename = argv[1];
+ addr = simple_strtoul(argv[2], NULL, 16);
+ size = simple_strtoul(argv[3], NULL, 16);
- cmd_yaffs_mwrite_file(filename, (char *)addr, size);
+ cmd_yaffs_mwrite_file(filename, (char *)addr, size);
- return(0);
+ return 0;
}
-int do_ymkdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ymkdir(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *dirname;
+ char *dirname;
- if(argc != 2) {
- printf("Bad arguments: ymkdir dir_name\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: ymkdir dir_name\n");
+ return -1;
+ }
- dirname = argv[1];
- cmd_yaffs_mkdir(dirname);
+ dirname = argv[1];
+ cmd_yaffs_mkdir(dirname);
- return(0);
+ return 0;
}
-int do_yrmdir (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yrmdir(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *dirname;
+ char *dirname;
- if(argc != 2) {
- printf("Bad arguments: yrmdir dir_name\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: yrmdir dir_name\n");
+ return -1;
+ }
- dirname = argv[1];
- cmd_yaffs_rmdir(dirname);
+ dirname = argv[1];
+ cmd_yaffs_rmdir(dirname);
- return(0);
+ return 0;
}
-int do_yrm (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_yrm(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *name;
+ char *name;
- if(argc != 2) {
- printf("Bad arguments: yrm name\n");
- return -1;
- }
+ if (argc != 2) {
+ printf("Bad arguments: yrm name\n");
+ return -1;
+ }
- name = argv[1];
+ name = argv[1];
- cmd_yaffs_rm(name);
+ cmd_yaffs_rm(name);
- return(0);
+ return 0;
}
-int do_ymv (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+int do_ymv(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
{
- char *oldPath;
- char *newPath;
+ char *oldPath;
+ char *newPath;
- if(argc != 3) {
- printf("Bad arguments: ymv old_path new_path\n");
- return -1;
- }
+ if (argc != 3) {
+ printf("Bad arguments: ymv old_path new_path\n");
+ return -1;
+ }
- oldPath = argv[1];
- newPath = argv[2];
+ oldPath = argv[1];
+ newPath = argv[2];
- cmd_yaffs_mv(newPath, oldPath);
+ cmd_yaffs_mv(newPath, oldPath);
- return(0);
+ return 0;
}
-U_BOOT_CMD(
- ytrace, 2, 0, do_ytrace,
- "show/set yaffs trace mask",
- "ytrace [new_mask] show/set yaffs trace mask"
-);
-
-U_BOOT_CMD(
- ydevls, 1, 0, do_ydevls,
- "list yaffs mount points",
- "list yaffs mount points"
-);
-
-U_BOOT_CMD(
- ydevconfig, 5, 0, do_ydevconfig,
- "configure yaffs mount point",
- "ydevconfig mtpoint mtd_id start_block end_block configures a yaffs2 mount point"
-);
-
-U_BOOT_CMD(
- ymount, 2, 0, do_ymount,
- "mount yaffs",
- "ymount mtpoint mounts a yaffs2 mount point"
-);
-
-
-U_BOOT_CMD(
- yumount, 2, 0, do_yumount,
- "unmount yaffs",
- "yunmount mtpoint unmounts a yaffs2 mount point"
-);
-
-U_BOOT_CMD(
- yls, 3, 0, do_yls,
- "yaffs ls",
- "yls [-l] dirname"
-);
-
-U_BOOT_CMD(
- yrd, 2, 0, do_yrd,
- "read file from yaffs",
- "yrd path read file from yaffs"
-);
-
-U_BOOT_CMD(
- ywr, 4, 0, do_ywr,
- "write file to yaffs",
- "ywr filename value num_vlues write values to yaffs file"
-);
-
-U_BOOT_CMD(
- yrdm, 3, 0, do_yrdm,
- "read file to memory from yaffs",
- "yrdm filename offset reads yaffs file into memory"
-);
-
-U_BOOT_CMD(
- ywrm, 4, 0, do_ywrm,
- "write file from memory to yaffs",
- "ywrm filename offset size writes memory to yaffs file"
-);
-
-U_BOOT_CMD(
- ymkdir, 2, 0, do_ymkdir,
- "YAFFS mkdir",
- "ymkdir dir create a yaffs directory"
-);
-
-U_BOOT_CMD(
- yrmdir, 2, 0, do_yrmdir,
- "YAFFS rmdir",
- "yrmdir dirname removes a yaffs directory"
-);
-
-U_BOOT_CMD(
- yrm, 2, 0, do_yrm,
- "YAFFS rm",
- "yrm path removes a yaffs file"
-);
-
-U_BOOT_CMD(
- ymv, 4, 0, do_ymv,
- "YAFFS mv",
- "ymv old_path new_path moves/rename files within a yaffs mount point"
-);
+U_BOOT_CMD(ytrace, 2, 0, do_ytrace,
+ "show/set yaffs trace mask",
+ "ytrace [new_mask] show/set yaffs trace mask");
+
+U_BOOT_CMD(ydevls, 1, 0, do_ydevls,
+ "list yaffs mount points", "list yaffs mount points");
+
+U_BOOT_CMD(ydevconfig, 5, 0, do_ydevconfig,
+ "configure yaffs mount point",
+ "ydevconfig mtpoint mtd_id start_block end_block configures a yaffs2 mount point");
+
+U_BOOT_CMD(ymount, 2, 0, do_ymount,
+ "mount yaffs", "ymount mtpoint mounts a yaffs2 mount point");
+
+U_BOOT_CMD(yumount, 2, 0, do_yumount,
+ "unmount yaffs", "yunmount mtpoint unmounts a yaffs2 mount point");
+
+U_BOOT_CMD(yls, 3, 0, do_yls, "yaffs ls", "yls [-l] dirname");
+
+U_BOOT_CMD(yrd, 2, 0, do_yrd,
+ "read file from yaffs", "yrd path read file from yaffs");
+
+U_BOOT_CMD(ywr, 4, 0, do_ywr,
+ "write file to yaffs",
+ "ywr filename value num_vlues write values to yaffs file");
+
+U_BOOT_CMD(yrdm, 3, 0, do_yrdm,
+ "read file to memory from yaffs",
+ "yrdm filename offset reads yaffs file into memory");
+
+U_BOOT_CMD(ywrm, 4, 0, do_ywrm,
+ "write file from memory to yaffs",
+ "ywrm filename offset size writes memory to yaffs file");
+
+U_BOOT_CMD(ymkdir, 2, 0, do_ymkdir,
+ "YAFFS mkdir", "ymkdir dir create a yaffs directory");
+
+U_BOOT_CMD(yrmdir, 2, 0, do_yrmdir,
+ "YAFFS rmdir", "yrmdir dirname removes a yaffs directory");
+
+U_BOOT_CMD(yrm, 2, 0, do_yrm, "YAFFS rm", "yrm path removes a yaffs file");
+U_BOOT_CMD(ymv, 4, 0, do_ymv,
+ "YAFFS mv",
+ "ymv old_path new_path moves/rename files within a yaffs mount point");
#
# $Id: Makefile,v 1.15 2007/07/18 19:40:38 charles Exp $
-#EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC
include $(TOPDIR)/config.mk
LIB = $(obj)libyaffs2.A_OR_O
OBJS := $(addprefix $(obj),$(COBJS-y))
YCFLAGS = -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM
-YCFLAGS += -DCONFIG_YAFFS_YAFFS2 -DNO_Y_INLINE -DLINUX_VERSION_CODE=0x20622
+YCFLAGS += -DCONFIG_YAFFS_YAFFS2 -DNO_Y_INLINE
YCFLAGS += -DCONFIG_YAFFS_PROVIDE_DEFS -DCONFIG_YAFFSFS_PROVIDE_VALUES
CFLAGS += $(YCFLAGS)
+++ /dev/null
-#! /bin/sh
-if [ "$1" = "copy" ] ; then
- cp ../../../*.[ch] .
-elif [ "$1" = "clean" ] ; then
- for i in `ls ../../../*.[ch]` ; do
- f=`echo $i | sed -e "sx../xxg"`
- rm $f
- done
-else
- echo "please specify copy or clean"
- exit 1
-fi
-
#include "linux/time.h"
#include "linux/mtd/nand.h"
-#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18))
-static struct nand_oobinfo yaffs_oobinfo = {
- .useecc = 1,
- .eccbytes = 6,
- .eccpos = {8, 9, 10, 13, 14, 15}
-};
-
-static struct nand_oobinfo yaffs_noeccinfo = {
- .useecc = 0,
-};
-#endif
-
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
+
static inline void translate_spare2oob(const struct yaffs_spare *spare, u8 *oob)
{
oob[0] = spare->tb0;
nspare->eccres1 = nspare->eccres2 = 0; /* FIXME */
}
-#endif
+
int nandmtd_WriteChunkToNAND(struct yaffs_dev *dev, int chunkInNAND,
const u8 *data, const struct yaffs_spare *spare)
{
struct mtd_info *mtd = (struct mtd_info *)(dev->driver_context);
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
struct mtd_oob_ops ops;
-#endif
size_t dummy;
int retval = 0;
-
loff_t addr = ((loff_t) chunkInNAND) * dev->data_bytes_per_chunk;
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
u8 spareAsBytes[8]; /* OOB */
if (data && !spare)
ops.oobbuf = spareAsBytes;
retval = mtd->write_oob(mtd, addr, &ops);
}
-#else
- u8 *spareAsBytes = (u8 *) spare;
-
- if (data && spare) {
- if (dev->param.use_nand_ecc)
- retval =
- mtd->write_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, spareAsBytes,
- &yaffs_oobinfo);
- else
- retval =
- mtd->write_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, spareAsBytes,
- &yaffs_noeccinfo);
- } else {
- if (data)
- retval =
- mtd->write(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data);
- if (spare)
- retval =
- mtd->write_oob(mtd, addr, YAFFS_BYTES_PER_SPARE,
- &dummy, spareAsBytes);
- }
-#endif
if (retval == 0)
return YAFFS_OK;
struct yaffs_spare *spare)
{
struct mtd_info *mtd = (struct mtd_info *)(dev->driver_context);
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
struct mtd_oob_ops ops;
-#endif
size_t dummy;
int retval = 0;
loff_t addr = ((loff_t) chunkInNAND) * dev->data_bytes_per_chunk;
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
u8 spareAsBytes[8]; /* OOB */
if (data && !spare)
if (dev->param.use_nand_ecc)
translate_oob2spare(spare, spareAsBytes);
}
-#else
- u8 *spareAsBytes = (u8 *) spare;
-
- if (data && spare) {
- if (dev->param.use_nand_ecc) {
- /* Careful, this call adds 2 ints */
- /* to the end of the spare data. Calling function */
- /* should allocate enough memory for spare, */
- /* i.e. [YAFFS_BYTES_PER_SPARE+2*sizeof(int)]. */
- retval =
- mtd->read_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, spareAsBytes,
- &yaffs_oobinfo);
- } else {
- retval =
- mtd->read_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, spareAsBytes,
- &yaffs_noeccinfo);
- }
- } else {
- if (data)
- retval =
- mtd->read(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data);
- if (spare)
- retval =
- mtd->read_oob(mtd, addr, YAFFS_BYTES_PER_SPARE,
- &dummy, spareAsBytes);
- }
-#endif
if (retval == 0)
return YAFFS_OK;
const struct yaffs_ext_tags *tags)
{
struct mtd_info *mtd = yaffs_dev_to_mtd(dev);
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
struct mtd_oob_ops ops;
-#else
- size_t dummy;
-#endif
+
int retval = 0;
loff_t addr;
yaffs_pack_tags2(&pt, tags, !dev->param.no_tags_ecc);
}
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
ops.mode = MTD_OOB_AUTO;
ops.ooblen = (dev->param.inband_tags) ? 0 : packed_tags_size;
ops.len = dev->param.total_bytes_per_chunk;
ops.oobbuf = (dev->param.inband_tags) ? NULL : packed_tags_ptr;
retval = mtd->write_oob(mtd, addr, &ops);
-#else
- if (!dev->param.inband_tags) {
- retval =
- mtd->write_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, (u8 *) packed_tags_ptr, NULL);
- } else {
- retval =
- mtd->write(mtd, addr, dev->param.total_bytes_per_chunk,
- &dummy, data);
- }
-#endif
-
if (retval == 0)
return YAFFS_OK;
else
u8 *data, struct yaffs_ext_tags *tags)
{
struct mtd_info *mtd = yaffs_dev_to_mtd(dev);
-
u8 local_spare[128];
-
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
struct mtd_oob_ops ops;
-#endif
size_t dummy;
int retval = 0;
int local_data = 0;
-
- loff_t addr = ((loff_t) nand_chunk) * dev->param.total_bytes_per_chunk;
-
struct yaffs_packed_tags2 pt;
-
+ loff_t addr = ((loff_t) nand_chunk) * dev->param.total_bytes_per_chunk;
int packed_tags_size =
dev->param.no_tags_ecc ? sizeof(pt.t) : sizeof(pt);
void *packed_tags_ptr =
}
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 17))
if (dev->param.inband_tags || (data && !tags))
retval = mtd->read(mtd, addr, dev->param.total_bytes_per_chunk,
&dummy, data);
ops.oobbuf = local_spare;
retval = mtd->read_oob(mtd, addr, &ops);
}
-#else
- if (!dev->param.inband_tags && data && tags) {
-
- retval = mtd->read_ecc(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data, dev->spare_buffer, NULL);
- } else {
- if (data)
- retval =
- mtd->read(mtd, addr, dev->data_bytes_per_chunk,
- &dummy, data);
- if (!dev->param.inband_tags && tags)
- retval =
- mtd->read_oob(mtd, addr, mtd->oobsize, &dummy,
- dev->spare_buffer);
- }
-#endif
if (dev->param.inband_tags) {
if (tags) {
#endif
unsigned yaffs_trace_mask = 0x0; /* Disable logging */
-static int yaffs_errno = 0;
+static int yaffs_errno;
void yaffs_bug_fn(const char *fn, int n)
static const char *yaffs_file_type_str(struct yaffs_stat *stat)
{
- switch(stat->st_mode & S_IFMT) {
- case S_IFREG: return "regular file";
- case S_IFDIR: return "directory";
- case S_IFLNK: return "symlink";
- default: return "unknown";
+ switch (stat->st_mode & S_IFMT) {
+ case S_IFREG: return "regular file";
+ case S_IFDIR: return "directory";
+ case S_IFLNK: return "symlink";
+ default: return "unknown";
}
}
{
int error = yaffsfs_GetLastError();
- if(error < 0)
+ if (error < 0)
error = -error;
switch (error) {
- case EBUSY: return "Busy";
- case ENODEV: return "No such device";
- case EINVAL: return "Invalid parameter";
- case ENFILE: return "Too many open files";
- case EBADF: return "Bad handle";
- case EACCES: return "Wrong permissions";
- case EXDEV: return "Not on same device";
- case ENOENT: return "No such entry";
- case ENOSPC: return "Device full";
- case EROFS: return "Read only file system";
- case ERANGE: return "Range error";
- case ENOTEMPTY: return "Not empty";
- case ENAMETOOLONG: return "Name too long";
- case ENOMEM: return "Out of memory";
- case EFAULT: return "Fault";
- case EEXIST: return "Name exists";
- case ENOTDIR: return "Not a directory";
- case EISDIR: return "Not permitted on a directory";
- case ELOOP: return "Symlink loop";
- case 0: return "No error";
- default: return "Unknown error";
+ case EBUSY: return "Busy";
+ case ENODEV: return "No such device";
+ case EINVAL: return "Invalid parameter";
+ case ENFILE: return "Too many open files";
+ case EBADF: return "Bad handle";
+ case EACCES: return "Wrong permissions";
+ case EXDEV: return "Not on same device";
+ case ENOENT: return "No such entry";
+ case ENOSPC: return "Device full";
+ case EROFS: return "Read only file system";
+ case ERANGE: return "Range error";
+ case ENOTEMPTY: return "Not empty";
+ case ENAMETOOLONG: return "Name too long";
+ case ENOMEM: return "Out of memory";
+ case EFAULT: return "Fault";
+ case EEXIST: return "Name exists";
+ case ENOTDIR: return "Not a directory";
+ case EISDIR: return "Not permitted on a directory";
+ case ELOOP: return "Symlink loop";
+ case 0: return "No error";
+ default: return "Unknown error";
}
}
void cmd_yaffs_tracemask(unsigned set, unsigned mask)
{
- if(set)
+ if (set)
yaffs_trace_mask = mask;
- printf("yaffs trace mask: %08x\n",yaffs_trace_mask);
+ printf("yaffs trace mask: %08x\n", yaffs_trace_mask);
}
static int yaffs_regions_overlap(int a, int b, int x, int y)
{
- return
- (a <= x && x <= b) ||
+ return (a <= x && x <= b) ||
(a <= y && y <= b) ||
(x <= a && a <= y) ||
(x <= b && b <= y);
mtd = &nand_info[flash_dev];
- if(!dev || !mp) {
+ if (!dev || !mp) {
/* Alloc error */
printf("Failed to allocate memory\n");
goto err;
}
- if(flash_dev >= CONFIG_SYS_MAX_NAND_DEVICE) {
+ if (flash_dev >= CONFIG_SYS_MAX_NAND_DEVICE) {
printf("Flash device invalid\n");
goto err;
}
yaffs_dev_rewind();
while (1) {
chk = yaffs_next_dev();
- if(!chk)
+ if (!chk)
break;
- if(strcmp(chk->param.name, mp) == 0) {
+ if (strcmp(chk->param.name, mp) == 0) {
printf("Mount point name already used\n");
goto err;
}
- if(chk->driver_context == mtd &&
+ if (chk->driver_context == mtd &&
yaffs_regions_overlap(
chk->param.start_block, chk->param.end_block,
start_block, end_block)) {
dev->param.use_nand_ecc = 1;
dev->param.n_reserved_blocks = 5;
if (chip->ecc.layout->oobavail < sizeof(struct yaffs_packed_tags2))
- dev->param.inband_tags =1;
+ dev->param.inband_tags = 1;
dev->param.n_caches = 10;
dev->param.write_chunk_tags_fn = nandmtd2_write_chunk_tags;
dev->param.read_chunk_tags_fn = nandmtd2_read_chunk_tags;
yaffs_dev_rewind();
- while(1) {
+ while (1) {
dev = yaffs_next_dev();
- if(!dev)
+ if (!dev)
return;
flash_dev =
((unsigned) dev->driver_context - (unsigned) nand_info)/
dev->param.inband_tags ? "using inband tags, " : "");
free_space = yaffs_freespace(dev->param.name);
- if(free_space < 0)
+ if (free_space < 0)
printf("not mounted\n");
else
printf("free 0x%x\n", free_space);
}
}
-void make_a_file(char *yaffsName,char bval,int sizeOfFile)
+void make_a_file(char *yaffsName, char bval, int sizeOfFile)
{
int outh;
int i;
return;
}
- memset(buffer,bval,100);
+ memset(buffer, bval, 100);
- do{
+ do {
i = sizeOfFile;
- if(i > 100) i = 100;
+ if (i > 100)
+ i = 100;
sizeOfFile -= i;
- yaffs_write(outh,buffer,i);
+ yaffs_write(outh, buffer, i);
} while (sizeOfFile > 0);
int i = 0;
unsigned char b;
- h = yaffs_open(fn, O_RDWR,0);
- if(h<0)
- {
+ h = yaffs_open(fn, O_RDWR, 0);
+ if (h < 0) {
printf("File not found\n");
return;
}
- while(yaffs_read(h,&b,1)> 0)
- {
- printf("%02x ",b);
+ while (yaffs_read(h, &b, 1) > 0) {
+ printf("%02x ", b);
i++;
- if(i > 32)
- {
- printf("\n");
- i = 0;;
- }
+ if (i > 32) {
+ printf("\n");
+ i = 0;;
+ }
}
printf("\n");
yaffs_close(h);
void cmd_yaffs_mount(char *mp)
{
int retval = yaffs_mount(mp);
- if( retval < 0)
+ if (retval < 0)
printf("Error mounting %s, return value: %d, %s\n", mp,
yaffsfs_GetError(), yaffs_error_str());
}
void cmd_yaffs_umount(char *mp)
{
- if( yaffs_unmount(mp) == -1)
+ if (yaffs_unmount(mp) == -1)
printf("Error umounting %s, return value: %d, %s\n", mp,
yaffsfs_GetError(), yaffs_error_str());
}
-void cmd_yaffs_write_file(char *yaffsName,char bval,int sizeOfFile)
+void cmd_yaffs_write_file(char *yaffsName, char bval, int sizeOfFile)
{
- make_a_file(yaffsName,bval,sizeOfFile);
+ make_a_file(yaffsName, bval, sizeOfFile);
}
int h;
struct yaffs_stat s;
- yaffs_stat(fn,&s);
+ yaffs_stat(fn, &s);
- printf ("Copy %s to 0x%p... ", fn, addr);
- h = yaffs_open(fn, O_RDWR,0);
- if(h<0)
- {
+ printf("Copy %s to 0x%p... ", fn, addr);
+ h = yaffs_open(fn, O_RDWR, 0);
+ if (h < 0) {
printf("File not found\n");
return;
}
- yaffs_read(h,addr,(int)s.st_size);
+ yaffs_read(h, addr, (int)s.st_size);
printf("\t[DONE]\n");
yaffs_close(h);
outh = yaffs_open(fn, O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE);
if (outh < 0)
- {
printf("Error opening file: %d, %s\n", outh, yaffs_error_str());
- }
- yaffs_write(outh,addr,size);
+ yaffs_write(outh, addr, size);
yaffs_close(outh);
}
{
int i;
yaffs_DIR *d;
- yaffs_dirent *de;
+ struct yaffs_dirent *de;
struct yaffs_stat stat;
char tempstr[255];
d = yaffs_opendir(mountpt);
- if(!d) {
+ if (!d) {
printf("opendir failed, %s\n", yaffs_error_str());
return;
}
- for(i = 0; (de = yaffs_readdir(d)) != NULL; i++) {
+ for (i = 0; (de = yaffs_readdir(d)) != NULL; i++) {
if (longlist) {
sprintf(tempstr, "%s/%s", mountpt, de->d_name);
yaffs_lstat(tempstr, &stat);
stat.st_ino,
yaffs_file_type_str(&stat));
} else {
- printf("%s\n",de->d_name);
+ printf("%s\n", de->d_name);
}
}
{
int retval = yaffs_mkdir(dir, 0);
- if ( retval < 0)
+ if (retval < 0)
printf("yaffs_mkdir returning error: %d, %s\n",
retval, yaffs_error_str());
}
{
int retval = yaffs_rmdir(dir);
- if ( retval < 0)
+ if (retval < 0)
printf("yaffs_rmdir returning error: %d, %s\n",
retval, yaffs_error_str());
}
{
int retval = yaffs_unlink(path);
- if ( retval < 0)
+ if (retval < 0)
printf("yaffs_unlink returning error: %d, %s\n",
retval, yaffs_error_str());
}
{
int retval = yaffs_rename(newPath, oldPath);
- if ( retval < 0)
+ if (retval < 0)
printf("yaffs_unlink returning error: %d, %s\n",
retval, yaffs_error_str());
}
struct yaffs_packed_tags2 pt;
void *spare;
unsigned spareSize = 0;
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
yaffs_trace(YAFFS_TRACE_MTD,
"nandmtd2_WriteChunkWithTagsToNAND chunk %d data %p tags %p",
unsigned spareSize;
int retval = 0;
int eccStatus; /* 0 = ok, 1 = fixed, -1 = unfixed */
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
yaffs_trace(YAFFS_TRACE_MTD,
"nandmtd2_ReadChunkWithTagsFromNAND chunk %d data %p tags %p",
int ynandif_MarkNANDBlockBad(struct yaffs_dev *dev, int blockId)
{
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
return geometry->markBlockBad(dev, blockId);
}
int ynandif_EraseBlockInNAND(struct yaffs_dev *dev, int blockId)
{
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
return geometry->eraseBlock(dev, blockId);
static int ynandif_IsBlockOk(struct yaffs_dev *dev, int blockId)
{
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
return geometry->checkBlockOk(dev, blockId);
}
int ynandif_InitialiseNAND(struct yaffs_dev *dev)
{
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
geometry->initialise(dev);
int ynandif_Deinitialise_flash_fn(struct yaffs_dev *dev)
{
- ynandif_Geometry *geometry = (ynandif_Geometry *)(dev->driver_context);
+ struct ynandif_Geometry *geometry = (struct ynandif_Geometry *)(dev->driver_context);
geometry->deinitialise(dev);
struct yaffs_dev *
yaffs_add_dev_from_geometry(const YCHAR *name,
- const ynandif_Geometry *geometry)
+ const struct ynandif_Geometry *geometry)
{
YCHAR *clonedName = malloc(sizeof(YCHAR) *
(strnlen(name, YAFFS_MAX_NAME_LENGTH)+1));
struct yaffs_dev *
yaffs_add_dev_from_geometry(const YCHAR *name,
- const ynandif_Geometry *geometry);
+ const struct ynandif_Geometry *geometry);
#endif
*/
yaffs_get_obj_name(l, buffer,
YAFFS_MAX_NAME_LENGTH + 1);
- if (strncmp(name, buffer, YAFFS_MAX_NAME_LENGTH) == 0)
+ if (!strncmp(name, buffer, YAFFS_MAX_NAME_LENGTH))
return l;
}
}
memcpy(&size, xb, sizeof(int));
while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
- if (!strncmp((YCHAR *) (xb + pos + sizeof(int)), name, size)) {
+ if (!strncmp((YCHAR *) (xb + pos + sizeof(int)),
+ name, size)) {
if (exist_size)
*exist_size = size;
return pos;