UBIFS 中的重要的结构体 用leeming 的话来说,一个大的工程中,最最核心的往往是数据结构体的定义
所以看代码不急着看 c 文件,而是主要看 document 和 h 文件,来理解设计者的思路,这样才能走对路
struct ubi_device UBI 中对于一个UBI 设备的抽象是以 struct ubi_device 来定义,其中包括了该 UBI 设备的各种信息
struct ubi_device { struct cdev cdev; struct device dev; int ubi_num;//UBI 设备的标号,在 ubiattach 用户程序时以-d 选项来输入 char ubi_name[sizeof(UBI_NAME_STR)+5];//ubi 设备的名称 int vol_count;//在该 UBI 设备中有多少个volume struct ubi_volume *volumes[UBI_MAX_VOLUMES+UBI_INT_VOL_COUNT]; spinlock_t volumes_lock; int ref_count; int image_seq; int rsvd_pebs;//保留的LEB 数目 int avail_pebs;//可用的LEB 数目 int beb_rsvd_pebs;//为坏块处理而保留的LEB 数目 int beb_rsvd_level;//为坏块处理而保留的LEB 的正常数目 int autoresize_vol_id; int vtbl_slots; int vtbl_size;//volume 表的大小(bytes) struct ubi_vtbl_record *vtbl;//内存中volume 表的拷贝 struct mutex device_mutex; int max_ec;//最大的e