Function report |
Source Code:block\blk-settings.c |
Create Date:2022-07-28 17:03:46 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:adjust queue_limits for stacked devices
Proto:int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, sector_t start)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct queue_limits * | t | |
| struct queue_limits * | b | |
| sector_t | start |
| 500 | ret = 0 |
| 502 | max_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_sectors, max_sectors) |
| 503 | max_hw_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_hw_sectors, max_hw_sectors) |
| 504 | max_dev_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_dev_sectors, max_dev_sectors) |
| 505 | max_write_same_sectors = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(max_write_same_sectors, max_write_same_sectors) |
| 507 | max_write_zeroes_sectors = min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(max_write_zeroes_sectors, max_write_zeroes_sectors) |
| 509 | bounce_pfn = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(bounce_pfn, bounce_pfn) |
| 511 | seg_boundary_mask = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(seg_boundary_mask, seg_boundary_mask) |
| 513 | virt_boundary_mask = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(virt_boundary_mask, virt_boundary_mask) |
| 516 | max_segments = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_segments, max_segments) |
| 517 | max_discard_segments = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_discard_segments, max_discard_segments) |
| 519 | max_integrity_segments = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_integrity_segments, max_integrity_segments) |
| 522 | max_segment_size = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_segment_size, max_segment_size) |
| 525 | misaligned |= misaligned |
| 527 | alignment = queue_limit_alignment_offset(b, start) |
| 532 | If alignment_offset != alignment Then |
| 534 | top = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(physical_block_size, io_min) + alignment_offset |
| 536 | bottom = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(physical_block_size, io_min) + alignment |
| 540 | misaligned = 1 |
| 541 | ret = -1 |
| 545 | logical_block_size = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(logical_block_size, logical_block_size) |
| 548 | physical_block_size = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(physical_block_size, physical_block_size) |
| 551 | io_min = max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(io_min, io_min) |
| 552 | io_opt = lcm_not_zero(io_opt, io_opt) |
| 555 | If physical_block_size & logical_block_size - 1 Then |
| 562 | If io_min & physical_block_size - 1 Then |
| 569 | If io_opt & physical_block_size - 1 Then |
| 580 | alignment_offset = lcm_not_zero(alignment_offset, alignment) % max - return maximum of two values of the same or compatible types*@x: first value*@y: second value(physical_block_size, io_min) |
| 584 | If alignment_offset & logical_block_size - 1 Then |
| 585 | misaligned = 1 |
| 586 | ret = -1 |
| 590 | If discard_granularity Then |
| 591 | alignment = queue_limit_discard_alignment(b, start) |
| 593 | If discard_granularity != 0 && discard_alignment != alignment Then |
| 595 | top = discard_granularity + discard_alignment |
| 596 | bottom = discard_granularity + alignment |
| 603 | max_discard_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_discard_sectors, max_discard_sectors) |
| 605 | max_hw_discard_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(max_hw_discard_sectors, max_hw_discard_sectors) |
| 613 | If chunk_sectors Then chunk_sectors = min_not_zero - return the minimum that is _not_ zero, unless both are zero*@x: value1*@y: value2(chunk_sectors, chunk_sectors) |
| 617 | Return ret |
| Name | Describe |
|---|---|
| blk_queue_stack_limits | inherit underlying queue limits for stacked drivers |
| bdev_stack_limits | adjust queue limits for stacked drivers |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |