函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\genhd.c Create Date:2022-07-27 18:53:23
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:register_disk

函数原型:static void register_disk(struct device *parent, struct gendisk *disk, const struct attribute_group **groups)

返回类型:void

参数:

类型参数名称
struct device *parent
struct gendisk *disk
const struct attribute_group **groups
599  ddev等于disk_to_dev(disk)
605  parent等于parent
607  dev_set_name(ddev, "%s", name of major driver )
610  dev_set_uevent_suppress(ddev, 1)
612  如果groups
613  WARN_ON( optional groups )
614  optional groups 等于groups
616  如果device_add(ddev)则返回
618  如果非sysfs_deprecated
619  err等于sysfs_create_link(block_depr, & kobj, kobject_name( & kobj))
621  如果err
622  device_del(ddev)
623  返回
632  pm_runtime_set_memalloc_noio(ddev, true)
634  holder_dir等于kobject_create_and_add() - Create a struct kobject dynamically and* register it with sysfs.*@name: the name for the kobject*@parent: the parent kobject of this kobject, if any.* This function creates a kobject structure dynamically and registers it
635  slave_dir等于kobject_create_and_add() - Create a struct kobject dynamically and* register it with sysfs.*@name: the name for the kobject*@parent: the parent kobject of this kobject, if any.* This function creates a kobject structure dynamically and registers it
637  如果flags按位与GENHD_FL_HIDDEN
638  dev_set_uevent_suppress(ddev, 0)
639  返回
643  如果非disk_part_scan_enabled(disk)则转到:exit
647  如果非get_capacity(disk)则转到:exit
650  bdev等于dget_disk - do bdget() by gendisk and partition number*@disk: gendisk of interest*@partno: partition number* Find partition @partno from @disk, do bdget() on it.* CONTEXT:* Don't care.* RETURNS:* Resulting block_device on success, NULL on failure.
651  如果非bdev则转到:exit
654  bd_invalidated等于1
655  err等于blkdev_get(bdev, le is open for reading , NULL)
656  如果err小于0则转到:exit
658  blkdev_put(bdev, le is open for reading )
660  exit :
662  dev_set_uevent_suppress(ddev, 0)
663  通过发送一个uevent通知用户空间
666  disk_part_iter_init - initialize partition iterator*@piter: iterator to initialize*@disk: disk to iterate over*@flags: DISK_PITER_* flags* Initialize @piter so that it iterates over partitions of @disk.* CONTEXT:* Don't care.
667 part等于disk_part_iter_next - proceed iterator to the next partition and return it*@piter: iterator of interest* Proceed @piter to the next partition and return it.* CONTEXT:* Don't care.循环
668  通过发送一个uevent通知用户空间
669  disk_part_iter_exit - finish up partition iteration*@piter: iter of interest* Called when iteration is over. Cleans up @piter.* CONTEXT:* Don't care.
671  如果dev
672  err等于sysfs_create_link( & kobj, & kobj, "bdi")
675  WARN_ON(err)
调用者
名称描述
__device_add_disk__device_add_disk - add disk information to kernel list*@parent: parent device for the disk*@disk: per-device partitioning information*@groups: Additional per-device sysfs groups*@register_queue: register the queue if set to true* This function registers