Lines Matching defs:yaffs_dev
627 struct yaffs_dev { struct
628 struct yaffs_param param;
629 struct yaffs_driver drv;
630 struct yaffs_tags_handler tagger;
634 void *os_context;
635 void *driver_context;
637 struct list_head dev_list;
640 int data_bytes_per_chunk;
643 u16 chunk_grp_bits; /* Number of bits that need to be resolved if
646 u16 chunk_grp_size; /* == 2^^chunk_grp_bits */
649 u32 tnode_width;
650 u32 tnode_mask;
651 u32 tnode_size;
654 u32 chunk_shift; /* Shift value */
655 u32 chunk_div; /* Divisor after shifting: 1 for 2^n sizes */
656 u32 chunk_mask; /* Mask to use for power-of-2 case */
658 int is_mounted;
659 int read_only;
660 int is_checkpointed;
663 int internal_start_block;
664 int internal_end_block;
665 int block_offset;
666 int chunk_offset;
669 int checkpt_page_seq; /* running sequence number of checkpt pages */
670 int checkpt_byte_count;
671 int checkpt_byte_offs;
672 u8 *checkpt_buffer;
673 int checkpt_open_write;
674 int blocks_in_checkpt;
675 int checkpt_cur_chunk;
676 int checkpt_cur_block;
677 int checkpt_next_block;
678 int *checkpt_block_list;
679 int checkpt_max_blocks;
680 u32 checkpt_sum;
681 u32 checkpt_xor;
683 int checkpoint_blocks_required; /* Number of blocks needed to store
687 struct yaffs_block_info *block_info;
688 u8 *chunk_bits; /* bitmap of chunks in use */
689 unsigned block_info_alt:1; /* allocated using alternative alloc */
690 unsigned chunk_bits_alt:1; /* allocated using alternative alloc */
691 int chunk_bit_stride; /* Number of bytes of chunk_bits per block.
695 int n_erased_blocks;
696 int alloc_block; /* Current block being allocated off */
697 u32 alloc_page;
698 int alloc_block_finder; /* Used to search for next allocation block */
701 void *allocator;
702 int n_obj;
703 int n_tnodes;
705 int n_hardlinks;
707 struct yaffs_obj_bucket obj_bucket[YAFFS_NOBJECT_BUCKETS];
708 u32 bucket_finder;
710 int n_free_chunks;
713 u32 *gc_cleanup_list; /* objects to delete at the end of a GC. */
714 u32 n_clean_ups;
716 unsigned has_pending_prioritised_gc; /* We think this device might
718 unsigned gc_disable;
719 unsigned gc_block_finder;
720 unsigned gc_dirtiest;
721 unsigned gc_pages_in_use;
722 unsigned gc_not_done;
723 unsigned gc_block;
724 unsigned gc_chunk;
725 unsigned gc_skip;
726 struct yaffs_summary_tags *gc_sum_tags;
729 struct yaffs_obj *root_dir;
730 struct yaffs_obj *lost_n_found;
732 int buffered_block; /* Which block is buffered here? */
733 int doing_buffered_block_rewrite;
735 struct yaffs_cache *cache;
736 int cache_last_use;
739 struct yaffs_obj *unlinked_dir; /* Directory where unlinked and deleted
741 struct yaffs_obj *del_dir; /* Directory where deleted objects are
743 struct yaffs_obj *unlinked_deletion; /* Current file being
745 int n_deleted_files; /* Count of files awaiting deletion; */
746 int n_unlinked_files; /* Count of unlinked files. */
747 int n_bg_deletions; /* Count of background deletions. */
750 struct yaffs_buffer temp_buffer[YAFFS_N_TEMP_BUFFERS];
751 int max_temp;
752 int temp_in_use;
753 int unmanaged_buffer_allocs;
754 int unmanaged_buffer_deallocs;
757 unsigned seq_number; /* Sequence number of currently
759 unsigned oldest_dirty_seq;
760 unsigned oldest_dirty_block;
763 int refresh_skip; /* A skip down counter.
767 struct list_head dirty_dirs; /* List of dirty directories */
770 int chunks_per_summary;
771 struct yaffs_summary_tags *sum_tags;
774 u32 n_page_writes;
775 u32 n_page_reads;
776 u32 n_erasures;
777 u32 n_bad_markings;
778 u32 n_erase_failures;
779 u32 n_gc_copies;
780 u32 all_gcs;
781 u32 passive_gc_count;
782 u32 oldest_dirty_gc_count;
783 u32 n_gc_blocks;
784 u32 bg_gcs;
785 u32 n_retried_writes;
786 u32 n_retired_blocks;
787 u32 n_ecc_fixed;
788 u32 n_ecc_unfixed;
789 u32 n_tags_ecc_fixed;
790 u32 n_tags_ecc_unfixed;
791 u32 n_deletions;
792 u32 n_unmarked_deletions;
793 u32 refresh_count;
794 u32 cache_hits;
795 u32 tags_used;
796 u32 summary_used;