Lines Matching refs:zsp
2722 struct sdeb_zone_state *zsp; in zbc_zone() local
2733 zsp = &devip->zstate[zno]; in zbc_zone()
2734 if (lba >= zsp->z_start + zsp->z_size) in zbc_zone()
2735 zsp++; in zbc_zone()
2736 WARN_ON_ONCE(lba >= zsp->z_start + zsp->z_size); in zbc_zone()
2737 return zsp; in zbc_zone()
2740 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp) in zbc_zone_is_conv() argument
2742 return zsp->z_type == ZBC_ZTYPE_CNV; in zbc_zone_is_conv()
2745 static inline bool zbc_zone_is_gap(struct sdeb_zone_state *zsp) in zbc_zone_is_gap() argument
2747 return zsp->z_type == ZBC_ZTYPE_GAP; in zbc_zone_is_gap()
2750 static inline bool zbc_zone_is_seq(struct sdeb_zone_state *zsp) in zbc_zone_is_seq() argument
2752 return !zbc_zone_is_conv(zsp) && !zbc_zone_is_gap(zsp); in zbc_zone_is_seq()
2756 struct sdeb_zone_state *zsp) in zbc_close_zone() argument
2760 if (!zbc_zone_is_seq(zsp)) in zbc_close_zone()
2763 zc = zsp->z_cond; in zbc_close_zone()
2772 if (zsp->z_wp == zsp->z_start) { in zbc_close_zone()
2773 zsp->z_cond = ZC1_EMPTY; in zbc_close_zone()
2775 zsp->z_cond = ZC4_CLOSED; in zbc_close_zone()
2782 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_close_imp_open_zone() local
2785 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_close_imp_open_zone()
2786 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) { in zbc_close_imp_open_zone()
2787 zbc_close_zone(devip, zsp); in zbc_close_imp_open_zone()
2794 struct sdeb_zone_state *zsp, bool explicit) in zbc_open_zone() argument
2798 if (!zbc_zone_is_seq(zsp)) in zbc_open_zone()
2801 zc = zsp->z_cond; in zbc_open_zone()
2807 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN) in zbc_open_zone()
2808 zbc_close_zone(devip, zsp); in zbc_open_zone()
2813 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_zone()
2816 zsp->z_cond = ZC3_EXPLICIT_OPEN; in zbc_open_zone()
2819 zsp->z_cond = ZC2_IMPLICIT_OPEN; in zbc_open_zone()
2825 struct sdeb_zone_state *zsp) in zbc_set_zone_full() argument
2827 switch (zsp->z_cond) { in zbc_set_zone_full()
2836 zsp->z_start, zsp->z_cond); in zbc_set_zone_full()
2839 zsp->z_cond = ZC5_FULL; in zbc_set_zone_full()
2845 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in zbc_inc_wp() local
2846 unsigned long long n, end, zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
2848 if (!zbc_zone_is_seq(zsp)) in zbc_inc_wp()
2851 if (zsp->z_type == ZBC_ZTYPE_SWR) { in zbc_inc_wp()
2852 zsp->z_wp += num; in zbc_inc_wp()
2853 if (zsp->z_wp >= zend) in zbc_inc_wp()
2854 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2859 if (lba != zsp->z_wp) in zbc_inc_wp()
2860 zsp->z_non_seq_resource = true; in zbc_inc_wp()
2865 zsp->z_wp = zend; in zbc_inc_wp()
2866 } else if (end > zsp->z_wp) { in zbc_inc_wp()
2868 zsp->z_wp = end; in zbc_inc_wp()
2872 if (zsp->z_wp >= zend) in zbc_inc_wp()
2873 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
2878 zsp++; in zbc_inc_wp()
2879 zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
2889 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in check_zbc_access_params() local
2896 if (zsp->z_type != zsp_end->z_type) { in check_zbc_access_params()
2906 if (zbc_zone_is_gap(zsp)) { in check_zbc_access_params()
2913 if (zbc_zone_is_conv(zsp)) { in check_zbc_access_params()
2923 if (zsp->z_type == ZBC_ZTYPE_SWR) { in check_zbc_access_params()
2925 if (zsp_end != zsp) { in check_zbc_access_params()
2932 if (zsp->z_cond == ZC5_FULL) { in check_zbc_access_params()
2938 if (lba != zsp->z_wp) { in check_zbc_access_params()
2947 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) { in check_zbc_access_params()
2955 zbc_open_zone(devip, zsp, false); in check_zbc_access_params()
4474 struct sdeb_zone_state *zsp = NULL; in resp_report_zones() local
4506 lba = zsp->z_start + zsp->z_size) { in resp_report_zones()
4507 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba)) in resp_report_zones()
4509 zsp = zbc_zone(devip, lba); in resp_report_zones()
4516 if (zsp->z_cond != ZC1_EMPTY) in resp_report_zones()
4521 if (zsp->z_cond != ZC2_IMPLICIT_OPEN) in resp_report_zones()
4526 if (zsp->z_cond != ZC3_EXPLICIT_OPEN) in resp_report_zones()
4531 if (zsp->z_cond != ZC4_CLOSED) in resp_report_zones()
4536 if (zsp->z_cond != ZC5_FULL) in resp_report_zones()
4549 if (!zsp->z_non_seq_resource) in resp_report_zones()
4554 if (zbc_zone_is_gap(zsp)) in resp_report_zones()
4559 if (zbc_zone_is_seq(zsp)) in resp_report_zones()
4571 desc[0] = zsp->z_type; in resp_report_zones()
4572 desc[1] = zsp->z_cond << 4; in resp_report_zones()
4573 if (zsp->z_non_seq_resource) in resp_report_zones()
4575 put_unaligned_be64((u64)zsp->z_size, desc + 8); in resp_report_zones()
4576 put_unaligned_be64((u64)zsp->z_start, desc + 16); in resp_report_zones()
4577 put_unaligned_be64((u64)zsp->z_wp, desc + 24); in resp_report_zones()
4608 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_open_all() local
4611 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_open_all()
4612 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_all()
4623 struct sdeb_zone_state *zsp; in resp_open_zone() local
4656 zsp = zbc_zone(devip, z_id); in resp_open_zone()
4657 if (z_id != zsp->z_start) { in resp_open_zone()
4662 if (zbc_zone_is_conv(zsp)) { in resp_open_zone()
4668 zc = zsp->z_cond; in resp_open_zone()
4679 zbc_open_zone(devip, zsp, true); in resp_open_zone()
4699 struct sdeb_zone_state *zsp; in resp_close_zone() local
4723 zsp = zbc_zone(devip, z_id); in resp_close_zone()
4724 if (z_id != zsp->z_start) { in resp_close_zone()
4729 if (zbc_zone_is_conv(zsp)) { in resp_close_zone()
4735 zbc_close_zone(devip, zsp); in resp_close_zone()
4742 struct sdeb_zone_state *zsp, bool empty) in zbc_finish_zone() argument
4744 enum sdebug_z_cond zc = zsp->z_cond; in zbc_finish_zone()
4749 zbc_close_zone(devip, zsp); in zbc_finish_zone()
4750 if (zsp->z_cond == ZC4_CLOSED) in zbc_finish_zone()
4752 zsp->z_wp = zsp->z_start + zsp->z_size; in zbc_finish_zone()
4753 zsp->z_cond = ZC5_FULL; in zbc_finish_zone()
4768 struct sdeb_zone_state *zsp; in resp_finish_zone() local
4795 zsp = zbc_zone(devip, z_id); in resp_finish_zone()
4796 if (z_id != zsp->z_start) { in resp_finish_zone()
4801 if (zbc_zone_is_conv(zsp)) { in resp_finish_zone()
4807 zbc_finish_zone(devip, zsp, true); in resp_finish_zone()
4814 struct sdeb_zone_state *zsp) in zbc_rwp_zone() argument
4819 if (!zbc_zone_is_seq(zsp)) in zbc_rwp_zone()
4822 zc = zsp->z_cond; in zbc_rwp_zone()
4824 zbc_close_zone(devip, zsp); in zbc_rwp_zone()
4826 if (zsp->z_cond == ZC4_CLOSED) in zbc_rwp_zone()
4829 if (zsp->z_wp > zsp->z_start) in zbc_rwp_zone()
4830 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0, in zbc_rwp_zone()
4831 (zsp->z_wp - zsp->z_start) * sdebug_sector_size); in zbc_rwp_zone()
4833 zsp->z_non_seq_resource = false; in zbc_rwp_zone()
4834 zsp->z_wp = zsp->z_start; in zbc_rwp_zone()
4835 zsp->z_cond = ZC1_EMPTY; in zbc_rwp_zone()
4848 struct sdeb_zone_state *zsp; in resp_rwp_zone() local
4874 zsp = zbc_zone(devip, z_id); in resp_rwp_zone()
4875 if (z_id != zsp->z_start) { in resp_rwp_zone()
4880 if (zbc_zone_is_conv(zsp)) { in resp_rwp_zone()
4886 zbc_rwp_zone(devip, zsp); in resp_rwp_zone()
4959 struct sdeb_zone_state *zsp; in sdebug_device_create_zones() local
5035 zsp = &devip->zstate[i]; in sdebug_device_create_zones()
5037 zsp->z_start = zstart; in sdebug_device_create_zones()
5040 zsp->z_type = ZBC_ZTYPE_CNV; in sdebug_device_create_zones()
5041 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
5042 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
5043 zsp->z_size = in sdebug_device_create_zones()
5047 zsp->z_type = ZBC_ZTYPE_SWR; in sdebug_device_create_zones()
5049 zsp->z_type = ZBC_ZTYPE_SWP; in sdebug_device_create_zones()
5050 zsp->z_cond = ZC1_EMPTY; in sdebug_device_create_zones()
5051 zsp->z_wp = zsp->z_start; in sdebug_device_create_zones()
5052 zsp->z_size = in sdebug_device_create_zones()
5055 zsp->z_type = ZBC_ZTYPE_GAP; in sdebug_device_create_zones()
5056 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
5057 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
5058 zsp->z_size = min_t(u64, devip->zsize - devip->zcap, in sdebug_device_create_zones()
5062 WARN_ON_ONCE((int)zsp->z_size <= 0); in sdebug_device_create_zones()
5063 zstart += zsp->z_size; in sdebug_device_create_zones()