[Yaffs] Re: PATCH!!! PATCH!!! (Was Sorry state of YAFFS2)

Sergey Kubushyn ksi at koi8.net
Sat Oct 15 03:20:33 BST 2005


On Fri, 14 Oct 2005, Sergey Kubushyn wrote:

> On Fri, 14 Oct 2005, Charles Manning wrote:

[dd]

> I do, really _DO_ hope to see it applied and that "Fix your MTD" mantra
> thrown
> away forever. You better start fixing bugs in your wonderFS. I'd
> suggest to
> start from explaining why 36 Mbyte tar takes 51 Mbytes on YAFFS2 FS.
> And
> here is a hint - without that included patch it took 56 Mbytes. If it's
> too
> complex for you, try to look for any illegal cast usage on irregular
> data
> structures. I'm sending you a small program that illustrates the point
> of
> data alignment, you can compile and run it to see yourself how it makes
> a
> surprise even on ix86...

Here is a small demo... Almost helloworld, heh?

=== Cut ===
#include <stdio.h>
#include <stdlib.h>

typedef struct {
      int	a;
      int	b;
      char	c;
      int	d;
} test;

typedef union {
      test	t;
      char	as_char[16];
} u_test;


int main(int argc, char **argv)
{
    int i;
    /* Another test - remove "static" and see what happens. Why? */
    static u_test dummy;

    printf("Size of union = %d\n", sizeof(u_test));
    printf("Size of structure = %d\n", sizeof(dummy.t));
    printf("Total size of structure members = %d. Surprise?\n",
        sizeof(dummy.t.a) + sizeof(dummy.t.b) +
        sizeof(dummy.t.c) + sizeof(dummy.t.d));

    dummy.t.a = 0x12343412;
    dummy.t.b = 0x45676745;
    dummy.t.c = 0x11;
    dummy.t.d = 0x71176556;

    for (i = 0; i < 16; i++) {
      printf("Char #%d = 0x%02x\n", i, dummy.as_char[i]);
    }

    return 0;
}
=== Cut ===


---
******************************************************************
*  KSI at home    KOI8 Net  < >  The impossible we do immediately.  *
*  Las Vegas   NV, USA   < >  Miracles require 24-hour notice.   *
******************************************************************




More information about the yaffs mailing list