Lines Matching refs:zsp
3735 struct sdeb_zone_state *zsp; in zbc_zone() local
3746 zsp = &devip->zstate[zno]; in zbc_zone()
3747 if (lba >= zsp->z_start + zsp->z_size) in zbc_zone()
3748 zsp++; in zbc_zone()
3749 WARN_ON_ONCE(lba >= zsp->z_start + zsp->z_size); in zbc_zone()
3750 return zsp; in zbc_zone()
3753 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp) in zbc_zone_is_conv() argument
3755 return zsp->z_type == ZBC_ZTYPE_CNV; in zbc_zone_is_conv()
3758 static inline bool zbc_zone_is_gap(struct sdeb_zone_state *zsp) in zbc_zone_is_gap() argument
3760 return zsp->z_type == ZBC_ZTYPE_GAP; in zbc_zone_is_gap()
3763 static inline bool zbc_zone_is_seq(struct sdeb_zone_state *zsp) in zbc_zone_is_seq() argument
3765 return !zbc_zone_is_conv(zsp) && !zbc_zone_is_gap(zsp); in zbc_zone_is_seq()
3769 struct sdeb_zone_state *zsp) in zbc_close_zone() argument
3773 if (!zbc_zone_is_seq(zsp)) in zbc_close_zone()
3776 zc = zsp->z_cond; in zbc_close_zone()
3785 if (zsp->z_wp == zsp->z_start) { in zbc_close_zone()
3786 zsp->z_cond = ZC1_EMPTY; in zbc_close_zone()
3788 zsp->z_cond = ZC4_CLOSED; in zbc_close_zone()
3795 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_close_imp_open_zone() local
3798 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_close_imp_open_zone()
3799 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) { in zbc_close_imp_open_zone()
3800 zbc_close_zone(devip, zsp); in zbc_close_imp_open_zone()
3807 struct sdeb_zone_state *zsp, bool explicit) in zbc_open_zone() argument
3811 if (!zbc_zone_is_seq(zsp)) in zbc_open_zone()
3814 zc = zsp->z_cond; in zbc_open_zone()
3820 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN) in zbc_open_zone()
3821 zbc_close_zone(devip, zsp); in zbc_open_zone()
3826 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_zone()
3829 zsp->z_cond = ZC3_EXPLICIT_OPEN; in zbc_open_zone()
3832 zsp->z_cond = ZC2_IMPLICIT_OPEN; in zbc_open_zone()
3838 struct sdeb_zone_state *zsp) in zbc_set_zone_full() argument
3840 switch (zsp->z_cond) { in zbc_set_zone_full()
3849 zsp->z_start, zsp->z_cond); in zbc_set_zone_full()
3852 zsp->z_cond = ZC5_FULL; in zbc_set_zone_full()
3858 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in zbc_inc_wp() local
3859 unsigned long long n, end, zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
3861 if (!zbc_zone_is_seq(zsp)) in zbc_inc_wp()
3864 if (zsp->z_type == ZBC_ZTYPE_SWR) { in zbc_inc_wp()
3865 zsp->z_wp += num; in zbc_inc_wp()
3866 if (zsp->z_wp >= zend) in zbc_inc_wp()
3867 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
3872 if (lba != zsp->z_wp) in zbc_inc_wp()
3873 zsp->z_non_seq_resource = true; in zbc_inc_wp()
3878 zsp->z_wp = zend; in zbc_inc_wp()
3879 } else if (end > zsp->z_wp) { in zbc_inc_wp()
3881 zsp->z_wp = end; in zbc_inc_wp()
3885 if (zsp->z_wp >= zend) in zbc_inc_wp()
3886 zbc_set_zone_full(devip, zsp); in zbc_inc_wp()
3891 zsp++; in zbc_inc_wp()
3892 zend = zsp->z_start + zsp->z_size; in zbc_inc_wp()
3902 struct sdeb_zone_state *zsp = zbc_zone(devip, lba); in check_zbc_access_params() local
3907 if (zsp->z_type != zsp_end->z_type) { in check_zbc_access_params()
3917 if (zbc_zone_is_gap(zsp)) { in check_zbc_access_params()
3924 if (zbc_zone_is_conv(zsp)) { in check_zbc_access_params()
3934 if (zsp->z_type == ZBC_ZTYPE_SWR) { in check_zbc_access_params()
3936 if (zsp_end != zsp) { in check_zbc_access_params()
3943 if (zsp->z_cond == ZC5_FULL) { in check_zbc_access_params()
3949 if (lba != zsp->z_wp) { in check_zbc_access_params()
3958 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) { in check_zbc_access_params()
3966 zbc_open_zone(devip, zsp, false); in check_zbc_access_params()
5903 struct sdeb_zone_state *zsp = NULL; in resp_report_zones() local
5935 lba = zsp->z_start + zsp->z_size) { in resp_report_zones()
5936 if (WARN_ONCE(zbc_zone(devip, lba) == zsp, "lba = %llu\n", lba)) in resp_report_zones()
5938 zsp = zbc_zone(devip, lba); in resp_report_zones()
5945 if (zsp->z_cond != ZC1_EMPTY) in resp_report_zones()
5950 if (zsp->z_cond != ZC2_IMPLICIT_OPEN) in resp_report_zones()
5955 if (zsp->z_cond != ZC3_EXPLICIT_OPEN) in resp_report_zones()
5960 if (zsp->z_cond != ZC4_CLOSED) in resp_report_zones()
5965 if (zsp->z_cond != ZC5_FULL) in resp_report_zones()
5978 if (!zsp->z_non_seq_resource) in resp_report_zones()
5983 if (zbc_zone_is_gap(zsp)) in resp_report_zones()
5988 if (zbc_zone_is_seq(zsp)) in resp_report_zones()
6000 desc[0] = zsp->z_type; in resp_report_zones()
6001 desc[1] = zsp->z_cond << 4; in resp_report_zones()
6002 if (zsp->z_non_seq_resource) in resp_report_zones()
6004 put_unaligned_be64((u64)zsp->z_size, desc + 8); in resp_report_zones()
6005 put_unaligned_be64((u64)zsp->z_start, desc + 16); in resp_report_zones()
6006 put_unaligned_be64((u64)zsp->z_wp, desc + 24); in resp_report_zones()
6096 struct sdeb_zone_state *zsp = &devip->zstate[0]; in zbc_open_all() local
6099 for (i = 0; i < devip->nr_zones; i++, zsp++) { in zbc_open_all()
6100 if (zsp->z_cond == ZC4_CLOSED) in zbc_open_all()
6111 struct sdeb_zone_state *zsp; in resp_open_zone() local
6143 zsp = zbc_zone(devip, z_id); in resp_open_zone()
6144 if (z_id != zsp->z_start) { in resp_open_zone()
6149 if (zbc_zone_is_conv(zsp)) { in resp_open_zone()
6155 zc = zsp->z_cond; in resp_open_zone()
6166 zbc_open_zone(devip, zsp, true); in resp_open_zone()
6186 struct sdeb_zone_state *zsp; in resp_close_zone() local
6210 zsp = zbc_zone(devip, z_id); in resp_close_zone()
6211 if (z_id != zsp->z_start) { in resp_close_zone()
6216 if (zbc_zone_is_conv(zsp)) { in resp_close_zone()
6222 zbc_close_zone(devip, zsp); in resp_close_zone()
6229 struct sdeb_zone_state *zsp, bool empty) in zbc_finish_zone() argument
6231 enum sdebug_z_cond zc = zsp->z_cond; in zbc_finish_zone()
6236 zbc_close_zone(devip, zsp); in zbc_finish_zone()
6237 if (zsp->z_cond == ZC4_CLOSED) in zbc_finish_zone()
6239 zsp->z_wp = zsp->z_start + zsp->z_size; in zbc_finish_zone()
6240 zsp->z_cond = ZC5_FULL; in zbc_finish_zone()
6255 struct sdeb_zone_state *zsp; in resp_finish_zone() local
6282 zsp = zbc_zone(devip, z_id); in resp_finish_zone()
6283 if (z_id != zsp->z_start) { in resp_finish_zone()
6288 if (zbc_zone_is_conv(zsp)) { in resp_finish_zone()
6294 zbc_finish_zone(devip, zsp, true); in resp_finish_zone()
6301 struct sdeb_zone_state *zsp) in zbc_rwp_zone() argument
6306 if (!zbc_zone_is_seq(zsp)) in zbc_rwp_zone()
6309 zc = zsp->z_cond; in zbc_rwp_zone()
6311 zbc_close_zone(devip, zsp); in zbc_rwp_zone()
6313 if (zsp->z_cond == ZC4_CLOSED) in zbc_rwp_zone()
6316 if (zsp->z_wp > zsp->z_start) in zbc_rwp_zone()
6317 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0, in zbc_rwp_zone()
6318 (zsp->z_wp - zsp->z_start) * sdebug_sector_size); in zbc_rwp_zone()
6320 zsp->z_non_seq_resource = false; in zbc_rwp_zone()
6321 zsp->z_wp = zsp->z_start; in zbc_rwp_zone()
6322 zsp->z_cond = ZC1_EMPTY; in zbc_rwp_zone()
6335 struct sdeb_zone_state *zsp; in resp_rwp_zone() local
6361 zsp = zbc_zone(devip, z_id); in resp_rwp_zone()
6362 if (z_id != zsp->z_start) { in resp_rwp_zone()
6367 if (zbc_zone_is_conv(zsp)) { in resp_rwp_zone()
6373 zbc_rwp_zone(devip, zsp); in resp_rwp_zone()
6437 struct sdeb_zone_state *zsp; in sdebug_device_create_zones() local
6512 zsp = &devip->zstate[i]; in sdebug_device_create_zones()
6514 zsp->z_start = zstart; in sdebug_device_create_zones()
6517 zsp->z_type = ZBC_ZTYPE_CNV; in sdebug_device_create_zones()
6518 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
6519 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
6520 zsp->z_size = in sdebug_device_create_zones()
6524 zsp->z_type = ZBC_ZTYPE_SWR; in sdebug_device_create_zones()
6526 zsp->z_type = ZBC_ZTYPE_SWP; in sdebug_device_create_zones()
6527 zsp->z_cond = ZC1_EMPTY; in sdebug_device_create_zones()
6528 zsp->z_wp = zsp->z_start; in sdebug_device_create_zones()
6529 zsp->z_size = in sdebug_device_create_zones()
6532 zsp->z_type = ZBC_ZTYPE_GAP; in sdebug_device_create_zones()
6533 zsp->z_cond = ZBC_NOT_WRITE_POINTER; in sdebug_device_create_zones()
6534 zsp->z_wp = (sector_t)-1; in sdebug_device_create_zones()
6535 zsp->z_size = min_t(u64, devip->zsize - devip->zcap, in sdebug_device_create_zones()
6539 WARN_ON_ONCE((int)zsp->z_size <= 0); in sdebug_device_create_zones()
6540 zstart += zsp->z_size; in sdebug_device_create_zones()