Exemple #1
0
int yaffs_verify_mtd(struct mtd_info *mtd, int yaffs_version, int inband_tags,
		     int tags_9bytes)
{
	if (yaffs_version == 2) {
		if ((WRITE_SIZE(mtd) < YAFFS_MIN_YAFFS2_CHUNK_SIZE ||
		     mtd->oobsize < YAFFS_MIN_YAFFS2_SPARE_SIZE) &&
		    !inband_tags) {
			yaffs_trace(YAFFS_TRACE_ALWAYS,
				"MTD device does not have the right page sizes"
			);
			return -1;
		}
	} else {
		if (WRITE_SIZE(mtd) < YAFFS_BYTES_PER_CHUNK ||
		    mtd->oobsize != YAFFS_BYTES_PER_SPARE) {
			yaffs_trace(YAFFS_TRACE_ALWAYS,
				"MTD device does not support have the right page sizes"
			);
			return -1;
		}

		if (tags_9bytes && mtd->oobavail < 9) {
			yaffs_trace(YAFFS_TRACE_ALWAYS,
				    "MTD device does not support 9-byte tags");
			return -1;
		}
	}

	return 0;
}
struct mtd_info * yaffs_get_mtd_device(dev_t sdev)
{
	struct mtd_info *mtd;

	mtd = yaffs_get_mtd_device(sdev);

	/* Check it's an mtd device..... */
	if (MAJOR(sdev) != MTD_BLOCK_MAJOR)
		return NULL;	/* This isn't an mtd device */

	/* Check it's NAND */
	if (mtd->type != MTD_NANDFLASH) {
		yaffs_trace(YAFFS_TRACE_ALWAYS,
			"yaffs: MTD device is not NAND it's type %d",
			mtd->type);
		return NULL;
	}

	yaffs_trace(YAFFS_TRACE_OS, " %s %d", WRITE_SIZE_STR, WRITE_SIZE(mtd));
	yaffs_trace(YAFFS_TRACE_OS, " oobsize %d", mtd->oobsize);
	yaffs_trace(YAFFS_TRACE_OS, " erasesize %d", mtd->erasesize);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
	yaffs_trace(YAFFS_TRACE_OS, " size %u", mtd->size);
#else
	yaffs_trace(YAFFS_TRACE_OS, " size %lld", mtd->size);
#endif

	return mtd;
}
int main(int argc, char * argv[]) {
  WRITE_SIZE(userrec);
  WRITE_SIZE(slrec);
  WRITE_SIZE(valrec);
  WRITE_SIZE(arcrec);
  WRITE_SIZE(configrec);
  WRITE_SIZE(configoverrec);
  WRITE_SIZE(statusrec);
  WRITE_SIZE(colorrec);
  WRITE_SIZE(subboardrec);
  WRITE_SIZE(directoryrec);
  WRITE_SIZE(smalrec);
  WRITE_SIZE(messagerec);
  WRITE_SIZE(postrec);
  WRITE_SIZE(mailrec);
  WRITE_SIZE(tmpmailrec);
  WRITE_SIZE(shortmsgrec);
  WRITE_SIZE(voting_response);
  WRITE_SIZE(uploadsrec);
  WRITE_SIZE(tagrec);
  WRITE_SIZE(zlogrec);
  WRITE_SIZE(chainfilerec);
  WRITE_SIZE(chainregrec);
  WRITE_SIZE(newexternalrec);
  WRITE_SIZE(editorrec);
  WRITE_SIZE(usersubrec);
  WRITE_SIZE(userconfrec);
  WRITE_SIZE(batchrec);
  WRITE_SIZE(ext_desc_type);
  WRITE_SIZE(gfiledirrec);
  WRITE_SIZE(gfilerec);
  WRITE_SIZE(languagerec);
  WRITE_SIZE(result_info);
  WRITE_SIZE(modem_info);
  WRITE_SIZE(filestatusrec);
  WRITE_SIZE(asv_rec);
  WRITE_SIZE(adv_asv_rec);
  WRITE_SIZE(cbv_rec);
  WRITE_SIZE(phonerec);
  WRITE_SIZE(eventsrec);
  WRITE_SIZE(ext_desc_rec);
  WRITE_SIZE(instancerec);
  return 0;
}