#define spareSize 64
#define pagesPerBlock 64
-const char * mkyaffsimage_c_version = "$Id: mkyaffs2image.c,v 1.5 2010-01-11 21:43:18 charles Exp $";
typedef struct
static objItem obj_list[MAX_OBJECTS];
-static int n_obj = 0;
static int obj_id = YAFFS_NOBJECT_BUCKETS + 1;
static int n_obj, nDirectories, nPages;
* NOTE: The tag is not usable after this other than calculating the CRC
* with.
*/
-static void little_to_big_endian(yaffs_tags_t *tagsPtr)
+static void little_to_big_endian(struct yaffs_ext_tags *tagsPtr)
{
#if 0 // FIXME NCB
- yaffs_tags_union_t * tags = (yaffs_tags_union_t* )tagsPtr; // Work in bytes.
- yaffs_tags_union_t temp;
+ union yaffs_tags_union * tags = (union yaffs_tags_union* )tagsPtr; // Work in bytes.
+ union yaffs_tags_union temp;
memset(&temp, 0, sizeof(temp));
// Ick, I hate magic numbers.
#endif
}
-static void shuffle_oob(char *spareData, yaffs_PackedTags2 *pt)
+static void shuffle_oob(char *spareData, struct yaffs_packed_tags2 *pt)
{
assert(sizeof(*pt) <= spareSize);
// NAND LAYOUT: For non-trivial OOB orderings, here would be a good place to shuffle.
memcpy(spareData, pt, sizeof(*pt));
}
-static int write_chunk(__u8 *data, __u32 obj_id, __u32 chunk_id, __u32 n_bytes)
+static int write_chunk(u8 *data, u32 id, u32 chunk_id, u32 n_bytes)
{
- yaffs_ext_tags t;
- yaffs_PackedTags2 pt;
+ struct yaffs_ext_tags t;
+ struct yaffs_packed_tags2 pt;
char spareData[spareSize];
if (write(outFile,data,chunkSize) != chunkSize)
// t.serial_number = 0;
t.serial_number = 1; // **CHECK**
t.n_bytes = n_bytes;
- t.obj_id = obj_id;
+ t.obj_id = id;
t.seq_number = YAFFS_LOWEST_SEQUENCE_NUMBER;
nPages++;
memset(&pt, 0, sizeof(pt));
- yaffs_PackTags2(&pt,&t,1);
+ yaffs_pack_tags2(&pt,&t,1);
memset(spareData, 0xff, sizeof(spareData));
shuffle_oob(spareData, &pt);
(((x) & 0xFF00) >> 8))
// This one is easier, since the types are more standard. No funky shifts here.
-static void object_header_little_to_big_endian(yaffs_obj_header* oh)
+static void object_header_little_to_big_endian(struct yaffs_obj_hdr* oh)
{
int i;
oh->type = SWAP32(oh->type); // GCC makes enums 32 bits.
oh->parent_obj_id = SWAP32(oh->parent_obj_id); // int
- oh->sum_no_longer_used = SWAP16(oh->sum_no_longer_used); // __u16 - Not used, but done for completeness.
+ oh->sum_no_longer_used = SWAP16(oh->sum_no_longer_used); // u16 - Not used, but done for completeness.
// name = skip. Char array. Not swapped.
oh->yst_mode = SWAP32(oh->yst_mode);
#ifdef CONFIG_YAFFS_WINCE // WinCE doesn't implement this, but we need to just in case.
#endif
}
-static int write_object_header(int obj_id, yaffs_obj_type t, struct stat *s, int parent, const char *name, int equivalentObj, const char * alias)
+static int write_object_header(int id, enum yaffs_obj_type t, struct stat *s, int parent, const char *name, int equivalentObj, const char * alias)
{
- __u8 bytes[chunkSize];
+ u8 bytes[chunkSize];
- yaffs_obj_header *oh = (yaffs_obj_header *)bytes;
+ struct yaffs_obj_hdr *oh = (struct yaffs_obj_hdr *)bytes;
memset(bytes,0xff,sizeof(bytes));
object_header_little_to_big_endian(oh);
}
- return write_chunk(bytes,obj_id,0,0xffff);
+ return write_chunk(bytes,id,0,0xffff);
}
-static void pad_image()
+static void pad_image(void)
{
- __u8 data[chunkSize + spareSize];
+ u8 data[chunkSize + spareSize];
int padPages = (nPages % pagesPerBlock);
if (padPages)
if(write_object_header(newObj, YAFFS_OBJECT_TYPE_FILE, &stats, parent, entry->d_name, -1, NULL) == 0)
{
int h;
- __u8 bytes[chunkSize];
+ u8 bytes[chunkSize];
int n_bytes;
int chunk = 0;