块设备

bio_advance

函数签名:

void bio_advance(struct bio *bio, unsigned int nbytes);

struct folio_iter

定义:

struct folio_iter 
{
  struct folio *folio;
  size_t offset;
  size_t length;
};

bio_for_each_folio_all

函数签名:

bio_for_each_folio_all (fi, bio);

bio_next_split

函数签名:

struct bio *bio_next_split(struct bio *bio, int sectors, gfp_t gfp, struct bio_set *bs);

blk_queue_flag_set

函数签名:

void blk_queue_flag_set(unsigned int flag, struct request_queue *q);

blk_queue_flag_clear

函数签名:

void blk_queue_flag_clear(unsigned int flag, struct request_queue *q);

blk_queue_flag_test_and_set

函数签名:

bool blk_queue_flag_test_and_set(unsigned int flag, struct request_queue *q);

blk_op_str

函数签名:

const char *blk_op_str(enum req_op op);

blk_sync_queue

函数签名:

void blk_sync_queue(struct request_queue *q);

blk_set_pm_only

函数签名:

void blk_set_pm_only(struct request_queue *q);

blk_put_queue

函数签名:

void blk_put_queue(struct request_queue *q);

blk_get_queue

函数签名:

bool blk_get_queue(struct request_queue *q);

submit_bio_noacct

函数签名:

void submit_bio_noacct(struct bio *bio);

submit_bio

函数签名:

void submit_bio(struct bio *bio);

bio_poll

函数签名:

int bio_poll(struct bio *bio, struct io_comp_batch *iob, unsigned int flags);

bio_start_io_acct_time

函数签名:

void bio_start_io_acct_time(struct bio *bio, unsigned long start_time);

bio_start_io_acct

函数签名:

unsigned long bio_start_io_acct(struct bio *bio);

blk_lld_busy

函数签名:

int blk_lld_busy(struct request_queue *q);

blk_start_plug

函数签名:

void blk_start_plug(struct blk_plug *plug);

blk_finish_plug

函数签名:

void blk_finish_plug(struct blk_plug *plug);

blk_queue_enter

函数签名:

int blk_queue_enter(struct request_queue *q, blk_mq_req_flags_t flags);

blk_rq_map_user_iov

函数签名:

int blk_rq_map_user_iov(struct request_queue *q, struct request *rq, struct rq_map_data *map_data, const struct iov_iter *iter, gfp_t gfp_mask);

blk_rq_unmap_user

函数签名:

int blk_rq_unmap_user(struct bio *bio);

blk_rq_map_kern

函数签名:

int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, unsigned int len, gfp_t gfp_mask);

blk_release_queue

函数签名:

void blk_release_queue(struct kobject *kobj);

blk_register_queue

函数签名:

int blk_register_queue(struct gendisk *disk);

blk_unregister_queue

函数签名:

void blk_unregister_queue(struct gendisk *disk);

blk_set_stacking_limits

函数签名:

void blk_set_stacking_limits(struct queue_limits *lim);

blk_queue_bounce_limit

函数签名:

void blk_queue_bounce_limit(struct request_queue *q, enum blk_bounce bounce);

blk_queue_max_hw_sectors

函数签名:

void blk_queue_max_hw_sectors(struct request_queue *q, unsigned int max_hw_sectors);

blk_queue_chunk_sectors

函数签名:

void blk_queue_chunk_sectors(struct request_queue *q, unsigned int chunk_sectors);

blk_queue_max_discard_sectors

函数签名:

void blk_queue_max_discard_sectors(struct request_queue *q, unsigned int max_discard_sectors);

blk_queue_max_secure_erase_sectors

函数签名:

void blk_queue_max_secure_erase_sectors(struct request_queue *q, unsigned int max_sectors);

blk_queue_max_write_zeroes_sectors

函数签名:

void blk_queue_max_write_zeroes_sectors(struct request_queue *q, unsigned int max_write_zeroes_sectors);

blk_queue_max_zone_append_sectors

函数签名:

void blk_queue_max_zone_append_sectors(struct request_queue *q, unsigned int max_zone_append_sectors);

blk_queue_max_segments

函数签名:

void blk_queue_max_segments(struct request_queue *q, unsigned short max_segments);

blk_queue_max_discard_segments

函数签名:

void blk_queue_max_discard_segments(struct request_queue *q, unsigned short max_segments);

blk_queue_max_segment_size

函数签名:

void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size);

blk_queue_logical_block_size

函数签名:

void blk_queue_logical_block_size(struct request_queue *q, unsigned int size);

blk_queue_physical_block_size

函数签名:

void blk_queue_physical_block_size(struct request_queue *q, unsigned int size);

blk_queue_zone_write_granularity

函数签名:

void blk_queue_zone_write_granularity(struct request_queue *q, unsigned int size);

blk_queue_alignment_offset

函数签名:

void blk_queue_alignment_offset(struct request_queue *q, unsigned int offset);

blk_limits_io_min

函数签名:

void blk_limits_io_min(struct queue_limits *limits, unsigned int min);

blk_queue_io_min

函数签名:

void blk_queue_io_min(struct request_queue *q, unsigned int min);

blk_limits_io_opt

函数签名:

void blk_limits_io_opt(struct queue_limits *limits, unsigned int opt);

blk_queue_io_opt

函数签名:

void blk_queue_io_opt(struct request_queue *q, unsigned int opt);

blk_stack_limits

函数签名:

int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, sector_t start);

disk_stack_limits

函数签名:

void disk_stack_limits(struct gendisk *disk, struct block_device *bdev, sector_t offset);

blk_queue_update_dma_pad

函数签名:

void blk_queue_update_dma_pad(struct request_queue *q, unsigned int mask);

blk_queue_segment_boundary

函数签名:

void blk_queue_segment_boundary(struct request_queue *q, unsigned long mask);

blk_queue_virt_boundary

函数签名:

void blk_queue_virt_boundary(struct request_queue *q, unsigned long mask);

blk_queue_dma_alignment

函数签名:

void blk_queue_dma_alignment(struct request_queue *q, int mask);

blk_queue_update_dma_alignment

函数签名:

void blk_queue_update_dma_alignment(struct request_queue *q, int mask);

blk_set_queue_depth

函数签名:

void blk_set_queue_depth(struct request_queue *q, unsigned int depth);

blk_queue_write_cache

函数签名:

void blk_queue_write_cache(struct request_queue *q, bool wc, bool fua);

blk_queue_required_elevator_features

函数签名:

void blk_queue_required_elevator_features(struct request_queue *q, unsigned int features);

blk_queue_can_use_dma_merging

函数签名:

bool blk_queue_can_use_dma_map_merging(struct request_queue *q, struct device *dev);

disk_set_zoned

函数签名:

void disk_set_zoned(struct gendisk *disk, enum blk_zoned_model model);

blkdev_issue_flush

函数签名:

int blkdev_issue_flush(struct block_device *bdev);

blkdev_issue_discard

函数签名:

int blkdev_issue_discard(struct block_device *bdev, sector_t sector, sector_t nr_sects, gfp_t gfp_mask);

__blkdev_issue_zeroout

函数签名:

int __blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, sector_t nr_sects, gfp_t gfp_mask, struct bio **biop, unsigned flags);

blkdev_issue_zeroout

函数签名:

int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector, sector_t nr_sects, gfp_t gfp_mask, unsigned flags);

blk_rq_count_integrity_sg

函数签名:

int blk_rq_count_integrity_sg(struct request_queue *q, struct bio *bio);

blk_rq_map_integrity_sg

函数签名:

int blk_rq_map_integrity_sg(struct request_queue *q, struct bio *bio, struct scatterlist *sglist);

blk_integrity_compare

函数签名:

int blk_integrity_compare(struct gendisk *gd1, struct gendisk *gd2);

blk_integrity_register

函数签名:

void blk_integrity_register(struct gendisk *disk, struct blk_integrity *template);

blk_integrity_unregister

函数签名:

void blk_integrity_unregister(struct gendisk *disk);

blk_trace_ioctl

函数签名:

int blk_trace_ioctl(struct block_device *bdev, unsigned cmd, char __user *arg);

blk_trace_shutdown

函数签名:

void blk_trace_shutdown(struct request_queue *q);

blk_add_trace_rq

函数签名:

void blk_add_trace_rq(struct request *rq, blk_status_t error, unsigned int nr_bytes, u32 what, u64 cgid);

blk_add_trace_bio

函数签名:

void blk_add_trace_bio(struct request_queue *q, struct bio *bio, u32 what, int error);

blk_add_trace_bio_remap

函数签名:

void blk_add_trace_bio_remap(void *ignore, struct bio *bio, dev_t dev, sector_t from);

blk_add_trace_rq_remap

函数签名:

void blk_add_trace_rq_remap(void *ignore, struct request *rq, dev_t dev, sector_t from);

disk_release

函数签名:

void disk_release(struct device *dev);

__register_blkdev

函数签名:

int __register_blkdev(unsigned int major, const char *name, void (*probe)(dev_t devt));

device_add_disk

函数签名:

int device_add_disk(struct device *parent, struct gendisk *disk, const struct attribute_group **groups);

blk_mark_disk_dead

函数签名:

void blk_mark_disk_dead(struct gendisk *disk);

del_gendisk

函数签名:

void del_gendisk(struct gendisk *disk);

invalidate_disk

函数签名:

void invalidate_disk(struct gendisk *disk);

put_disk

函数签名:

void put_disk(struct gendisk *disk);

set_disk_ro

函数签名:

void set_disk_ro(struct gendisk *disk, bool read_only);

freeze_bdev

函数签名:

int freeze_bdev(struct block_device *bdev);

thaw_bdev

函数签名:

int thaw_bdev(struct block_device *bdev);

bd_prepare_to_claim

函数签名:

int bd_prepare_to_claim(struct block_device *bdev, void *holder);

bd_abort_claiming

函数签名:

void bd_abort_claiming(struct block_device *bdev, void *holder);

blkdev_get_by_dev

函数签名:

struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder);

blkdev_get_by_path

函数签名:

struct block_device *blkdev_get_by_path(const char *path, fmode_t mode, void *holder);

lookup_bdev

函数签名:

int lookup_bdev(const char *pathname, dev_t *dev);