Lines Matching refs:zsp
2734 struct sdeb_zone_state *zsp; in zbc_zone() local
2745 zsp = &devip->zstate[zno]; in zbc_zone()
2746 if (lba >= zsp->z_start + zsp->z_size) in zbc_zone()
2747 zsp++; in zbc_zone()
2748 WARN_ON_ONCE(lba >= zsp->z_start + zsp->z_size); in zbc_zone()
2749 return zsp; in zbc_zone()
2752 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp) in zbc_zone_is_conv() argument
2754 return zsp->z_type == ZBC_ZTYPE_CNV; in zbc_zone_is_conv()
2757 static inline bool zbc_zone_is_gap(struct sdeb_zone_state *zsp) in zbc_zone_is_gap() argument
2759 return zsp->z_type == ZBC_ZTYPE_GAP; in zbc_zone_is_gap()
2762 static inline bool zbc_zone_is_seq(struct sdeb_zone_state *zsp) in zbc_zone_is_seq() argument
2764 return !zbc_zone_is_conv(zsp) && !zbc_zone_is_gap(zsp); in zbc_zone_is_seq()
2768 struct sdeb_zone_state *zsp) in zbc_close_zone() argument
2772 if (!zbc_zone_is_seq(zsp)) in zbc_close_zone()
2775 zc = zsp->z_cond; in zbc_close_zone()
2784 if (zsp->z_wp == zsp->z_start) { in zbc_close_zone()
2785 zsp->z_cond = ZC1_EMPTY; in zbc_close_zone()
2787 zsp->z_cond = ZC4_CLOSED; in zbc_close_zone()
2794 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_close_imp_open_zone() local
2797 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_close_imp_open_zone()
2798 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) { in zbc_close_imp_open_zone()
2799 zbc_close_zone(devip, zsp); in zbc_close_imp_open_zone()
2806 struct sdeb_zone_state *zsp, bool explicit) in zbc_open_zone() argument
2810 if (!zbc_zone_is_seq(zsp)) in zbc_open_zone()
2813 zc = zsp->z_cond; in zbc_open_zone()
2819 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN) in zbc_open_zone()
2820 zbc_close_zone(devip, zsp); in zbc_open_zone()
2825 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_zone()
2828 zsp->z_cond = ZC3_EXPLICIT_OPEN; in zbc_open_zone()
2831 zsp->z_cond = ZC2_IMPLICIT_OPEN; in zbc_open_zone()
2837 struct sdeb_zone_state *zsp) in zbc_set_zone_full() argument
2839 switch (zsp->z_cond) { in zbc_set_zone_full()
2848 zsp->z_start, zsp->z_cond); in zbc_set_zone_full()
2851 zsp->z_cond = ZC5_FULL; in zbc_set_zone_full()
2857 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in zbc_inc_wp() local
2858 unsigned long long n, end, zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
2860 if (!zbc_zone_is_seq(zsp)) in zbc_inc_wp()
2863 if (zsp->z_type == ZBC_ZTYPE_SWR) { in zbc_inc_wp()
2864 zsp->z_wp += num; in zbc_inc_wp()
2865 if (zsp->z_wp >= zend) in zbc_inc_wp()
2866 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2871 if (lba != zsp->z_wp) in zbc_inc_wp()
2872 zsp->z_non_seq_resource = true; in zbc_inc_wp()
2877 zsp->z_wp = zend; in zbc_inc_wp()
2878 } else if (end > zsp->z_wp) { in zbc_inc_wp()
2880 zsp->z_wp = end; in zbc_inc_wp()
2884 if (zsp->z_wp >= zend) in zbc_inc_wp()
2885 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2890 zsp++; in zbc_inc_wp()
2891 zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
2901 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in check_zbc_access_params() local
2908 if (zsp->z_type != zsp_end->z_type) { in check_zbc_access_params()
2918 if (zbc_zone_is_gap(zsp)) { in check_zbc_access_params()
2925 if (zbc_zone_is_conv(zsp)) { in check_zbc_access_params()
2935 if (zsp->z_type == ZBC_ZTYPE_SWR) { in check_zbc_access_params()
2937 if (zsp_end != zsp) { in check_zbc_access_params()
2944 if (zsp->z_cond == ZC5_FULL) { in check_zbc_access_params()
2950 if (lba != zsp->z_wp) { in check_zbc_access_params()
2959 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) { in check_zbc_access_params()
2967 zbc_open_zone(devip, zsp, false); in check_zbc_access_params()
4486 struct sdeb_zone_state *zsp = NULL; in resp_report_zones() local
4518 lba = zsp->z_start + zsp->z_size) { in resp_report_zones()
4519 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba)) in resp_report_zones()
4521 zsp = zbc_zone(devip, lba); in resp_report_zones()
4528 if (zsp->z_cond != ZC1_EMPTY) in resp_report_zones()
4533 if (zsp->z_cond != ZC2_IMPLICIT_OPEN) in resp_report_zones()
4538 if (zsp->z_cond != ZC3_EXPLICIT_OPEN) in resp_report_zones()
4543 if (zsp->z_cond != ZC4_CLOSED) in resp_report_zones()
4548 if (zsp->z_cond != ZC5_FULL) in resp_report_zones()
4561 if (!zsp->z_non_seq_resource) in resp_report_zones()
4566 if (zbc_zone_is_gap(zsp)) in resp_report_zones()
4571 if (zbc_zone_is_seq(zsp)) in resp_report_zones()
4583 desc[0] = zsp->z_type; in resp_report_zones()
4584 desc[1] = zsp->z_cond << 4; in resp_report_zones()
4585 if (zsp->z_non_seq_resource) in resp_report_zones()
4587 put_unaligned_be64((u64)zsp->z_size, desc + 8); in resp_report_zones()
4588 put_unaligned_be64((u64)zsp->z_start, desc + 16); in resp_report_zones()
4589 put_unaligned_be64((u64)zsp->z_wp, desc + 24); in resp_report_zones()
4620 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_open_all() local
4623 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_open_all()
4624 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_all()
4635 struct sdeb_zone_state *zsp; in resp_open_zone() local
4668 zsp = zbc_zone(devip, z_id); in resp_open_zone()
4669 if (z_id != zsp->z_start) { in resp_open_zone()
4674 if (zbc_zone_is_conv(zsp)) { in resp_open_zone()
4680 zc = zsp->z_cond; in resp_open_zone()
4691 zbc_open_zone(devip, zsp, true); in resp_open_zone()
4711 struct sdeb_zone_state *zsp; in resp_close_zone() local
4735 zsp = zbc_zone(devip, z_id); in resp_close_zone()
4736 if (z_id != zsp->z_start) { in resp_close_zone()
4741 if (zbc_zone_is_conv(zsp)) { in resp_close_zone()
4747 zbc_close_zone(devip, zsp); in resp_close_zone()
4754 struct sdeb_zone_state *zsp, bool empty) in zbc_finish_zone() argument
4756 enum sdebug_z_cond zc = zsp->z_cond; in zbc_finish_zone()
4761 zbc_close_zone(devip, zsp); in zbc_finish_zone()
4762 if (zsp->z_cond == ZC4_CLOSED) in zbc_finish_zone()
4764 zsp->z_wp = zsp->z_start + zsp->z_size; in zbc_finish_zone()
4765 zsp->z_cond = ZC5_FULL; in zbc_finish_zone()
4780 struct sdeb_zone_state *zsp; in resp_finish_zone() local
4807 zsp = zbc_zone(devip, z_id); in resp_finish_zone()
4808 if (z_id != zsp->z_start) { in resp_finish_zone()
4813 if (zbc_zone_is_conv(zsp)) { in resp_finish_zone()
4819 zbc_finish_zone(devip, zsp, true); in resp_finish_zone()
4826 struct sdeb_zone_state *zsp) in zbc_rwp_zone() argument
4831 if (!zbc_zone_is_seq(zsp)) in zbc_rwp_zone()
4834 zc = zsp->z_cond; in zbc_rwp_zone()
4836 zbc_close_zone(devip, zsp); in zbc_rwp_zone()
4838 if (zsp->z_cond == ZC4_CLOSED) in zbc_rwp_zone()
4841 if (zsp->z_wp > zsp->z_start) in zbc_rwp_zone()
4842 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0, in zbc_rwp_zone()
4843 (zsp->z_wp - zsp->z_start) * sdebug_sector_size); in zbc_rwp_zone()
4845 zsp->z_non_seq_resource = false; in zbc_rwp_zone()
4846 zsp->z_wp = zsp->z_start; in zbc_rwp_zone()
4847 zsp->z_cond = ZC1_EMPTY; in zbc_rwp_zone()
4860 struct sdeb_zone_state *zsp; in resp_rwp_zone() local
4886 zsp = zbc_zone(devip, z_id); in resp_rwp_zone()
4887 if (z_id != zsp->z_start) { in resp_rwp_zone()
4892 if (zbc_zone_is_conv(zsp)) { in resp_rwp_zone()
4898 zbc_rwp_zone(devip, zsp); in resp_rwp_zone()
5019 struct sdeb_zone_state *zsp; in sdebug_device_create_zones() local
5095 zsp = &devip->zstate[i]; in sdebug_device_create_zones()
5097 zsp->z_start = zstart; in sdebug_device_create_zones()
5100 zsp->z_type = ZBC_ZTYPE_CNV; in sdebug_device_create_zones()
5101 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
5102 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
5103 zsp->z_size = in sdebug_device_create_zones()
5107 zsp->z_type = ZBC_ZTYPE_SWR; in sdebug_device_create_zones()
5109 zsp->z_type = ZBC_ZTYPE_SWP; in sdebug_device_create_zones()
5110 zsp->z_cond = ZC1_EMPTY; in sdebug_device_create_zones()
5111 zsp->z_wp = zsp->z_start; in sdebug_device_create_zones()
5112 zsp->z_size = in sdebug_device_create_zones()
5115 zsp->z_type = ZBC_ZTYPE_GAP; in sdebug_device_create_zones()
5116 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
5117 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
5118 zsp->z_size = min_t(u64, devip->zsize - devip->zcap, in sdebug_device_create_zones()
5122 WARN_ON_ONCE((int)zsp->z_size <= 0); in sdebug_device_create_zones()
5123 zstart += zsp->z_size; in sdebug_device_create_zones()