struct mutex mutex; /* protects the structure */ struct ftl_zone *zones; /* FTL tables for each zone */
/* Media information */ int block_size; /* block size in bytes */ int zone_size; /* zone size in blocks */ int zone_count; /* number of zones */ int max_lba; /* maximum lba in a zone */ int smallpagenand; /* 256 bytes/page nand */ bool readonly; /* is FS readonly */ bool unstable; int cis_block; /* CIS block location */ int cis_boffset; /* CIS offset in the block */ int cis_page_offset; /* CIS offset in the page */ void *cis_buffer; /* tmp buffer for cis reads */
/* Cache */ int cache_block; /* block number of cached block */ int cache_zone; /* zone of cached block */ unsignedchar *cache_data; /* cached block data */ longunsignedint cache_data_invalid_bitmap; bool cache_clean; struct work_struct flush_work; struct timer_list timer;
/* Geometry stuff */ int heads; int sectors; int cylinders;
#define dbg(format, ...) \ if (debug) \
printk(KERN_DEBUG "sm_ftl"": " format "\n", ## __VA_ARGS__)
#define dbg_verbose(format, ...) \ if (debug > 1) \
printk(KERN_DEBUG "sm_ftl"": " format "\n", ## __VA_ARGS__)
staticint sm_erase_block(struct sm_ftl *ftl, int zone_num, uint16_t block, int put_free); staticvoid sm_mark_block_bad(struct sm_ftl *ftl, int zone_num, int block);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.