From: Charles Manning <manningc2@actrix.gen.nz>
To: Ryan Mallon <ryan@bluewatersys.com>
Cc: Charles Manning <cdhmanning@gmail.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 7/8] Add yaffs2 file system: verification code and other headers
Date: Mon, 6 Dec 2010 11:50:36 +1300 [thread overview]
Message-ID: <201012061150.36791.manningc2@actrix.gen.nz> (raw)
In-Reply-To: <4CFC0808.9060502@bluewatersys.com>
On Monday 06 December 2010 10:45:44 Ryan Mallon wrote:
> On 12/06/2010 10:20 AM, Charles Manning wrote:
> > On Friday 03 December 2010 09:00:18 Ryan Mallon wrote:
> >> On 12/01/2010 10:57 AM, Charles Manning wrote:
> >>> Signed-off-by: Charles Manning <cdhmanning@gmail.com>
> >>> ---
> >>
> >> <snip>
> >>
> >>> diff --git a/fs/yaffs2/yportenv.h b/fs/yaffs2/yportenv.h
> >>> new file mode 100644
> >>> index 0000000..8fd0da5
> >>> --- /dev/null
> >>> +++ b/fs/yaffs2/yportenv.h
> >>> @@ -0,0 +1,91 @@
> >>> +/*
> >>> + * YAFFS: Yet another Flash File System . A NAND-flash specific file
> >>> system. + *
> >>> + * Copyright (C) 2002-2010 Aleph One Ltd.
> >>> + * for Toby Churchill Ltd and Brightstar Engineering
> >>> + *
> >>> + * Created by Charles Manning <charles@aleph1.co.uk>
> >>> + *
> >>> + * This program is free software; you can redistribute it and/or
> >>> modify + * it under the terms of the GNU Lesser General Public License
> >>> version 2.1 as + * published by the Free Software Foundation.
> >>> + *
> >>> + * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
> >>> + */
> >>> +
> >>> +#ifndef __YPORTENV_LINUX_H__
> >>> +#define __YPORTENV_LINUX_H__
> >>> +
> >>> +#include <linux/version.h>
> >>> +#include <linux/kernel.h>
> >>> +#include <linux/mm.h>
> >>> +#include <linux/sched.h>
> >>> +#include <linux/string.h>
> >>> +#include <linux/slab.h>
> >>> +#include <linux/vmalloc.h>
> >>> +#include <linux/xattr.h>
> >>> +#include <linux/list.h>
> >>> +#include <linux/types.h>
> >>> +#include <linux/fs.h>
> >>> +#include <linux/stat.h>
> >>> +#include <linux/sort.h>
> >>> +#include <linux/bitops.h>
> >>> +
> >>> +#define YCHAR char
> >>> +#define YUCHAR unsigned char
> >>> +#define _Y(x) x
> >>> +#define yaffs_strcat(a, b) strcat(a, b)
> >>> +#define yaffs_strcpy(a, b) strcpy(a, b)
> >>> +#define yaffs_strncpy(a, b, c) strncpy(a, b, c)
> >>> +#define yaffs_strncmp(a, b, c) strncmp(a, b, c)
> >>> +#define yaffs_strnlen(s,m) strnlen(s,m)
> >>> +#define yaffs_sprintf sprintf
> >>> +#define yaffs_toupper(a) toupper(a)
> >>> +#define yaffs_sort(base, n, sz, cmp_fn) sort(base, n, sz, cmp_fn,
> >>> NULL) +
> >>> +#define Y_INLINE __inline__
> >>> +
> >>> +#define YAFFS_LOSTNFOUND_NAME "lost+found"
> >>> +#define YAFFS_LOSTNFOUND_PREFIX "obj"
> >>> +
> >>> +#define YMALLOC(x) kmalloc(x, GFP_NOFS)
> >>> +#define YFREE(x) kfree(x)
> >>> +#define YMALLOC_ALT(x) vmalloc(x)
> >>> +#define YFREE_ALT(x) vfree(x)
> >>> +#define YMALLOC_DMA(x) YMALLOC(x)
> >>> +
> >>> +#define YYIELD() schedule()
> >>> +#define Y_DUMP_STACK() dump_stack()
> >>> +
> >>> +#define YAFFS_ROOT_MODE 0755
> >>> +#define YAFFS_LOSTNFOUND_MODE 0700
> >>> +
> >>> +#define Y_CURRENT_TIME CURRENT_TIME.tv_sec
> >>> +#define Y_TIME_CONVERT(x) (x).tv_sec
> >>> +
> >>> +#define yaffs_sum_cmp(x, y) ((x) == (y))
> >>> +#define yaffs_strcmp(a, b) strcmp(a, b)
> >>
> >> You should try and remove the wrappers for as many of these as possible.
> >> I know the wrappers are there for portability to other operating
> >> systems, but for mainlining in Linux it makes the code more complex.
> >
> > Thus far I have tried to keep all the code directly compilable for WinCE
> > and Linux.
> >
> > I did some investigation over the weekend and I am pretty sure that if I
> > preserve just a few of these macros, YCHAR in particular, I can eliminate
> > almost everything else and just run the code through a sed script to
> > generate the WiNCE version.
>
> Could YCHAR and YUCHAR be replaced by s8 and u8?
Not without dropping the WinCE usage. WinCE uses a 16-bit wchar.
There are already places where yaffs uses single byte types (eg. buffers) so
just changing all chars to wchars will not work.
Using s8 as distinct from char and translating s8 into wchar is too subtle,
IMHO.
I think I can get it down to YCHAR and _Y() as a wrapper around strings to be
translated, or very close.
-- Charles
>
> ~Ryan
next prev parent reply other threads:[~2010-12-05 22:50 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-30 21:57 [PATCH 0/8] Add yaffs2 file system: Third patchset Charles Manning
2010-11-30 21:57 ` [PATCH 1/8] Add yaffs2 file system: allocator, attribs, bitmap code Charles Manning
2010-12-02 18:14 ` Marcin Slusarz
2010-12-02 19:20 ` Charles Manning
2010-12-02 19:49 ` Ryan Mallon
2010-12-02 20:48 ` kevin granade
2010-11-30 21:57 ` [PATCH 2/8] Add yaffs2 file system: checkpoint and ecc code Charles Manning
2010-12-05 21:55 ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 3/8] Add yaffs2 file system: guts code Charles Manning
2010-11-30 22:23 ` Arnd Bergmann
2010-12-06 1:50 ` Charles Manning
2010-12-06 12:55 ` Arnd Bergmann
2010-12-06 22:13 ` Charles Manning
2010-12-06 22:16 ` Jesper Juhl
2010-12-06 23:03 ` Arnd Bergmann
2010-12-07 0:47 ` Steven Rostedt
2010-12-07 4:12 ` Charles Manning
2010-12-07 14:49 ` Steven Rostedt
2010-12-07 20:43 ` Charles Manning
2010-12-07 22:49 ` Steven Rostedt
2010-11-30 21:57 ` [PATCH 4/8] Add yaffs2 file system: tags handling code Charles Manning
2010-12-05 22:12 ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 5/8] Add yaffs2 file system: mtd and flash " Charles Manning
2010-12-05 22:42 ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 6/8] Add yaffs2 file system: xattrib code Charles Manning
2010-12-05 22:20 ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 7/8] Add yaffs2 file system: verification code and other headers Charles Manning
2010-12-02 20:00 ` Ryan Mallon
2010-12-05 21:20 ` Charles Manning
2010-12-05 21:45 ` Ryan Mallon
2010-12-05 22:50 ` Charles Manning [this message]
2010-12-07 15:06 ` Pekka Enberg
2010-11-30 21:57 ` [PATCH 8/8] Add yaffs2 file system: VFS glue code, hook into kernel tree building Charles Manning
2010-12-01 5:30 ` Nick Piggin
2010-12-02 20:35 ` Ryan Mallon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201012061150.36791.manningc2@actrix.gen.nz \
--to=manningc2@actrix.gen.nz \
--cc=cdhmanning@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ryan@bluewatersys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).