?????ú?????????1?е?devlist???鶨?????£?

static const struct memdev {
 const char *name;
 mode_t mode;
 const struct file_operations *fops;
 struct backing_dev_info *dev_info;
} devlist[] = {
  [1] = { "mem"?? 0?? &mem_fops?? &directly_mappable_cdev_bdi }??
#ifdef CONFIG_DEVKMEM
  [2] = { "kmem"?? 0?? &kmem_fops?? &directly_mappable_cdev_bdi }??
#endif
  [3] = { "null"?? 0666?? &null_fops?? NULL }??
#ifdef CONFIG_DEVPORT
  [4] = { "port"?? 0?? &port_fops?? NULL }??
#endif
  [5] = { "zero"?? 0666?? &zero_fops?? &zero_bdi }??
  [7] = { "full"?? 0666?? &full_fops?? NULL }??
  [8] = { "random"?? 0666?? &random_fops?? NULL }??
  [9] = { "urandom"?? 0666?? &urandom_fops?? NULL }??
 [11] = { "kmsg"?? 0?? &kmsg_fops?? NULL }??
#ifdef CONFIG_CRASH_DUMP
 [12] = { "oldmem"?? 0?? &oldmem_fops?? NULL }??
#endif
};

???????????????1???????memory_open???????????????????????????豸??????????豸??????????????file_operations?????2??????????豸??????????????θ???????漰?????????????豸??????????????????????豸????????????????????????豸???????庯?????????????????????????豸?????????????????? ??????????豸??????????????

?2???豸????????????????????

??????????????http://blog.csdn.net/gqb666/article/details/8805179