static int __init init_mtdchar(void)
{
//為了兼容以前的方案,要注冊(cè)mtdchar的主設(shè)備號(hào)、設(shè)備名以及fops
if (register_chrdev(MTD_CHAR_MAJOR, "mtd", &mtd_fops))
{
printk(KERN_NOTICE "Can't allocate major number %d for Memory Technology Devices.\n",
MTD_CHAR_MAJOR);
return -EAGAIN;
}
// mtd_table[]是個(gè)全局?jǐn)?shù)組,每個(gè)元素都是一個(gè)邏輯分區(qū),記錄著分區(qū)的起始位置和大小,我們將每個(gè)邏輯分區(qū)創(chuàng)建為一個(gè)單獨(dú)的mtd子設(shè)備文件
for (i=0; i< MAX_MTD_DEVICES; i++)
if (mtd_table)
new->add(mtd_table);