Lines Matching defs:yaffs_dev
615 struct yaffs_dev { struct
616 struct yaffs_param param;
620 void *os_context;
621 void *driver_context;
623 struct list_head dev_list;
626 int data_bytes_per_chunk;
629 u16 chunk_grp_bits; /* Number of bits that need to be resolved if
632 u16 chunk_grp_size; /* == 2^^chunk_grp_bits */
635 u32 tnode_width;
636 u32 tnode_mask;
637 u32 tnode_size;
640 u32 chunk_shift; /* Shift value */
641 u32 chunk_div; /* Divisor after shifting: 1 for 2^n sizes */
642 u32 chunk_mask; /* Mask to use for power-of-2 case */
644 int is_mounted;
645 int read_only;
646 int is_checkpointed;
649 int internal_start_block;
650 int internal_end_block;
651 int block_offset;
652 int chunk_offset;
655 int checkpt_page_seq; /* running sequence number of checkpt pages */
656 int checkpt_byte_count;
657 int checkpt_byte_offs;
658 u8 *checkpt_buffer;
659 int checkpt_open_write;
660 int blocks_in_checkpt;
661 int checkpt_cur_chunk;
662 int checkpt_cur_block;
663 int checkpt_next_block;
664 int *checkpt_block_list;
665 int checkpt_max_blocks;
666 u32 checkpt_sum;
667 u32 checkpt_xor;
669 int checkpoint_blocks_required; /* Number of blocks needed to store
673 struct yaffs_block_info *block_info;
674 u8 *chunk_bits; /* bitmap of chunks in use */
675 unsigned block_info_alt:1; /* allocated using alternative alloc */
676 unsigned chunk_bits_alt:1; /* allocated using alternative alloc */
677 int chunk_bit_stride; /* Number of bytes of chunk_bits per block.
681 int n_erased_blocks;
682 int alloc_block; /* Current block being allocated off */
683 u32 alloc_page;
684 int alloc_block_finder; /* Used to search for next allocation block */
687 void *allocator;
688 int n_obj;
689 int n_tnodes;
691 int n_hardlinks;
693 struct yaffs_obj_bucket obj_bucket[YAFFS_NOBJECT_BUCKETS];
694 u32 bucket_finder;
696 int n_free_chunks;
699 u32 *gc_cleanup_list; /* objects to delete at the end of a GC. */
700 u32 n_clean_ups;
702 unsigned has_pending_prioritised_gc; /* We think this device might
704 unsigned gc_disable;
705 unsigned gc_block_finder;
706 unsigned gc_dirtiest;
707 unsigned gc_pages_in_use;
708 unsigned gc_not_done;
709 unsigned gc_block;
710 unsigned gc_chunk;
711 unsigned gc_skip;
712 struct yaffs_summary_tags *gc_sum_tags;
715 struct yaffs_obj *root_dir;
716 struct yaffs_obj *lost_n_found;
718 int buffered_block; /* Which block is buffered here? */
719 int doing_buffered_block_rewrite;
721 struct yaffs_cache *cache;
722 int cache_last_use;
725 struct yaffs_obj *unlinked_dir; /* Directory where unlinked and deleted
727 struct yaffs_obj *del_dir; /* Directory where deleted objects are
729 struct yaffs_obj *unlinked_deletion; /* Current file being
731 int n_deleted_files; /* Count of files awaiting deletion; */
732 int n_unlinked_files; /* Count of unlinked files. */
733 int n_bg_deletions; /* Count of background deletions. */
736 struct yaffs_buffer temp_buffer[YAFFS_N_TEMP_BUFFERS];
737 int max_temp;
738 int temp_in_use;
739 int unmanaged_buffer_allocs;
740 int unmanaged_buffer_deallocs;
743 unsigned seq_number; /* Sequence number of currently
745 unsigned oldest_dirty_seq;
746 unsigned oldest_dirty_block;
749 int refresh_skip; /* A skip down counter.
753 struct list_head dirty_dirs; /* List of dirty directories */
756 int chunks_per_summary;
757 struct yaffs_summary_tags *sum_tags;
760 u32 n_page_writes;
761 u32 n_page_reads;
762 u32 n_erasures;
763 u32 n_erase_failures;
764 u32 n_gc_copies;
765 u32 all_gcs;
766 u32 passive_gc_count;
767 u32 oldest_dirty_gc_count;
768 u32 n_gc_blocks;
769 u32 bg_gcs;
770 u32 n_retried_writes;
771 u32 n_retired_blocks;
772 u32 n_ecc_fixed;
773 u32 n_ecc_unfixed;
774 u32 n_tags_ecc_fixed;
775 u32 n_tags_ecc_unfixed;
776 u32 n_deletions;
777 u32 n_unmarked_deletions;
778 u32 refresh_count;
779 u32 cache_hits;
780 u32 tags_used;
781 u32 summary_used;