Lines Matching refs:zsp

2682 static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp)
2684 return zsp->z_type == ZBC_ZONE_TYPE_CNV;
2688 struct sdeb_zone_state *zsp)
2692 if (zbc_zone_is_conv(zsp))
2695 zc = zsp->z_cond;
2704 if (zsp->z_wp == zsp->z_start) {
2705 zsp->z_cond = ZC1_EMPTY;
2707 zsp->z_cond = ZC4_CLOSED;
2714 struct sdeb_zone_state *zsp = &devip->zstate[0];
2717 for (i = 0; i < devip->nr_zones; i++, zsp++) {
2718 if (zsp->z_cond == ZC2_IMPLICIT_OPEN) {
2719 zbc_close_zone(devip, zsp);
2726 struct sdeb_zone_state *zsp, bool explicit)
2730 if (zbc_zone_is_conv(zsp))
2733 zc = zsp->z_cond;
2739 if (explicit && zsp->z_cond == ZC2_IMPLICIT_OPEN)
2740 zbc_close_zone(devip, zsp);
2745 if (zsp->z_cond == ZC4_CLOSED)
2748 zsp->z_cond = ZC3_EXPLICIT_OPEN;
2751 zsp->z_cond = ZC2_IMPLICIT_OPEN;
2757 struct sdeb_zone_state *zsp)
2759 switch (zsp->z_cond) {
2768 zsp->z_start, zsp->z_cond);
2771 zsp->z_cond = ZC5_FULL;
2777 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
2778 unsigned long long n, end, zend = zsp->z_start + zsp->z_size;
2780 if (zbc_zone_is_conv(zsp))
2783 if (zsp->z_type == ZBC_ZONE_TYPE_SWR) {
2784 zsp->z_wp += num;
2785 if (zsp->z_wp >= zend)
2786 zbc_set_zone_full(devip, zsp);
2791 if (lba != zsp->z_wp)
2792 zsp->z_non_seq_resource = true;
2797 zsp->z_wp = zend;
2798 } else if (end > zsp->z_wp) {
2800 zsp->z_wp = end;
2804 if (zsp->z_wp >= zend)
2805 zbc_set_zone_full(devip, zsp);
2810 zsp++;
2811 zend = zsp->z_start + zsp->z_size;
2821 struct sdeb_zone_state *zsp = zbc_zone(devip, lba);
2828 if (zsp_end != zsp &&
2829 zbc_zone_is_conv(zsp) &&
2840 if (zbc_zone_is_conv(zsp)) {
2850 if (zsp->z_type == ZBC_ZONE_TYPE_SWR) {
2852 if (zsp_end != zsp) {
2859 if (zsp->z_cond == ZC5_FULL) {
2865 if (lba != zsp->z_wp) {
2874 if (zsp->z_cond == ZC1_EMPTY || zsp->z_cond == ZC4_CLOSED) {
2882 zbc_open_zone(devip, zsp, false);
4325 struct sdeb_zone_state *zsp;
4363 zsp = zbc_zone(devip, lba);
4370 if (zsp->z_cond != ZC1_EMPTY)
4375 if (zsp->z_cond != ZC2_IMPLICIT_OPEN)
4380 if (zsp->z_cond != ZC3_EXPLICIT_OPEN)
4385 if (zsp->z_cond != ZC4_CLOSED)
4390 if (zsp->z_cond != ZC5_FULL)
4403 if (!zsp->z_non_seq_resource)
4408 if (!zbc_zone_is_conv(zsp))
4420 desc[0] = zsp->z_type;
4421 desc[1] = zsp->z_cond << 4;
4422 if (zsp->z_non_seq_resource)
4424 put_unaligned_be64((u64)zsp->z_size, desc + 8);
4425 put_unaligned_be64((u64)zsp->z_start, desc + 16);
4426 put_unaligned_be64((u64)zsp->z_wp, desc + 24);
4452 struct sdeb_zone_state *zsp = &devip->zstate[0];
4455 for (i = 0; i < devip->nr_zones; i++, zsp++) {
4456 if (zsp->z_cond == ZC4_CLOSED)
4467 struct sdeb_zone_state *zsp;
4501 zsp = zbc_zone(devip, z_id);
4502 if (z_id != zsp->z_start) {
4507 if (zbc_zone_is_conv(zsp)) {
4513 zc = zsp->z_cond;
4524 zbc_open_zone(devip, zsp, true);
4544 struct sdeb_zone_state *zsp;
4569 zsp = zbc_zone(devip, z_id);
4570 if (z_id != zsp->z_start) {
4575 if (zbc_zone_is_conv(zsp)) {
4581 zbc_close_zone(devip, zsp);
4588 struct sdeb_zone_state *zsp, bool empty)
4590 enum sdebug_z_cond zc = zsp->z_cond;
4595 zbc_close_zone(devip, zsp);
4596 if (zsp->z_cond == ZC4_CLOSED)
4598 zsp->z_wp = zsp->z_start + zsp->z_size;
4599 zsp->z_cond = ZC5_FULL;
4614 struct sdeb_zone_state *zsp;
4642 zsp = zbc_zone(devip, z_id);
4643 if (z_id != zsp->z_start) {
4648 if (zbc_zone_is_conv(zsp)) {
4654 zbc_finish_zone(devip, zsp, true);
4661 struct sdeb_zone_state *zsp)
4666 if (zbc_zone_is_conv(zsp))
4669 zc = zsp->z_cond;
4671 zbc_close_zone(devip, zsp);
4673 if (zsp->z_cond == ZC4_CLOSED)
4676 if (zsp->z_wp > zsp->z_start)
4677 memset(sip->storep + zsp->z_start * sdebug_sector_size, 0,
4678 (zsp->z_wp - zsp->z_start) * sdebug_sector_size);
4680 zsp->z_non_seq_resource = false;
4681 zsp->z_wp = zsp->z_start;
4682 zsp->z_cond = ZC1_EMPTY;
4695 struct sdeb_zone_state *zsp;
4722 zsp = zbc_zone(devip, z_id);
4723 if (z_id != zsp->z_start) {
4728 if (zbc_zone_is_conv(zsp)) {
4734 zbc_rwp_zone(devip, zsp);
4855 struct sdeb_zone_state *zsp;
4911 zsp = &devip->zstate[i];
4913 zsp->z_start = zstart;
4916 zsp->z_type = ZBC_ZONE_TYPE_CNV;
4917 zsp->z_cond = ZBC_NOT_WRITE_POINTER;
4918 zsp->z_wp = (sector_t)-1;
4921 zsp->z_type = ZBC_ZONE_TYPE_SWR;
4923 zsp->z_type = ZBC_ZONE_TYPE_SWP;
4924 zsp->z_cond = ZC1_EMPTY;
4925 zsp->z_wp = zsp->z_start;
4928 if (zsp->z_start + devip->zsize < capacity)
4929 zsp->z_size = devip->zsize;
4931 zsp->z_size = capacity - zsp->z_start;
4933 zstart += zsp->z_size;