Lines Matching refs:ccw
58 /* The ccw bus type uses this table to find devices that it sends to
74 MODULE_DEVICE_TABLE(ccw, dasd_eckd_ids);
87 struct ccw1 ccw;
94 struct ccw1 ccw[2];
110 struct ccw1 ccw;
140 /* set ECKD specific ccw-device options */
146 "ccw-device options");
162 /* head and record addresses of count_area read in analysis ccw */
252 static int set_timestamp(struct ccw1 *ccw, struct DE_eckd_data *data,
271 if (ccw) {
272 ccw->count = sizeof(struct DE_eckd_data);
273 ccw->flags |= CCW_FLAG_SLI;
280 define_extent(struct ccw1 *ccw, struct DE_eckd_data *data, unsigned int trk,
289 if (ccw) {
290 ccw->cmd_code = DASD_ECKD_CCW_DEFINE_EXTENT;
291 ccw->flags = 0;
292 ccw->count = 16;
293 ccw->cda = (__u32)virt_to_phys(data);
325 rc = set_timestamp(ccw, data, device);
330 rc = set_timestamp(ccw, data, device);
338 rc = set_timestamp(ccw, data, device);
349 rc = set_timestamp(ccw, data, device);
387 static void locate_record_ext(struct ccw1 *ccw, struct LRE_eckd_data *data,
396 if (ccw) {
397 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD_EXT;
398 ccw->flags = 0;
400 ccw->count = 22;
402 ccw->count = 20;
403 ccw->cda = (__u32)virt_to_phys(data);
529 static int prefix_LRE(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
545 ccw->cmd_code = DASD_ECKD_CCW_PFX;
546 ccw->flags = 0;
548 ccw->count = sizeof(*pfxdata) + 2;
549 ccw->cda = (__u32)virt_to_phys(pfxdata);
552 ccw->count = sizeof(*pfxdata);
553 ccw->cda = (__u32)virt_to_phys(pfxdata);
596 static int prefix(struct ccw1 *ccw, struct PFX_eckd_data *pfxdata,
600 return prefix_LRE(ccw, pfxdata, trk, totrk, cmd, basedev, startdev,
605 locate_record(struct ccw1 *ccw, struct LO_eckd_data *data, unsigned int trk,
617 ccw->cmd_code = DASD_ECKD_CCW_LOCATE_RECORD;
618 ccw->flags = 0;
619 ccw->count = 16;
620 ccw->cda = (__u32)virt_to_phys(data);
714 * ccw->cmd_code |= 0x8;
822 struct ccw1 *ccw;
832 ccw = cqr->cpaddr;
833 ccw->cmd_code = DASD_ECKD_CCW_RCD;
834 ccw->flags = 0;
835 ccw->cda = (__u32)virt_to_phys(rcd_buffer);
836 ccw->count = DASD_ECKD_RCD_DATA_SIZE;
858 struct ccw1 *ccw;
862 ccw = cqr->cpaddr;
863 rcd_buffer = phys_to_virt(ccw->cda);
1263 data->cqr.cpaddr = &data->ccw;
1313 data->cqr.cpaddr = &data->ccw;
1522 struct ccw1 *ccw;
1548 ccw = cqr->cpaddr;
1549 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1550 ccw->count = sizeof(struct dasd_psf_prssd_data);
1551 ccw->flags |= CCW_FLAG_CC;
1552 ccw->cda = (__u32)virt_to_phys(prssdp);
1558 ccw++;
1559 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1560 ccw->count = sizeof(struct dasd_rssd_features);
1561 ccw->cda = (__u32)virt_to_phys(features);
1585 struct ccw1 *ccw;
1605 cqr->cpaddr = &dasd_vol_info_req->ccw;
1617 ccw = cqr->cpaddr;
1618 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1619 ccw->count = sizeof(*prssdp);
1620 ccw->flags |= CCW_FLAG_CC;
1621 ccw->cda = (__u32)virt_to_phys(prssdp);
1627 ccw++;
1628 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1629 ccw->count = sizeof(*vsq);
1630 ccw->flags |= CCW_FLAG_SLI;
1631 ccw->cda = (__u32)virt_to_phys(vsq);
1780 struct ccw1 *ccw;
1802 ccw = cqr->cpaddr;
1803 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1804 ccw->count = sizeof(*prssdp);
1805 ccw->flags |= CCW_FLAG_CC;
1806 ccw->cda = (__u32)virt_to_phys(prssdp);
1811 ccw++;
1812 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
1813 ccw->count = sizeof(*lcq);
1814 ccw->flags |= CCW_FLAG_SLI;
1815 ccw->cda = (__u32)virt_to_phys(lcq);
1892 struct ccw1 *ccw;
1910 ccw = cqr->cpaddr;
1911 ccw->cmd_code = DASD_ECKD_CCW_PSF;
1912 ccw->cda = (__u32)virt_to_phys(psf_ssc_data);
1913 ccw->count = 66;
2242 struct ccw1 *ccw;
2252 ccw = cqr->cpaddr;
2254 define_extent(ccw++, cqr->data, 0, 1,
2258 ccw[-1].flags |= CCW_FLAG_CC;
2259 locate_record(ccw++, LO_data++, 0, 0, 4,
2264 ccw[-1].flags |= CCW_FLAG_CC;
2265 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2266 ccw->flags = 0;
2267 ccw->count = 8;
2268 ccw->cda = (__u32)virt_to_phys(count_data);
2269 ccw++;
2274 ccw[-1].flags |= CCW_FLAG_CC;
2275 locate_record(ccw++, LO_data++, 1, 0, 1,
2277 /* Read count ccw. */
2278 ccw[-1].flags |= CCW_FLAG_CC;
2279 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2280 ccw->flags = 0;
2281 ccw->count = 8;
2282 ccw->cda = (__u32)virt_to_phys(count_data);
2315 * the status of the initial analysis ccw before it frees it and kicks
2595 struct ccw1 *ccw;
2631 ccw = cqr->cpaddr;
2634 prefix_LRE(ccw++, data, fdata->start_unit, fdata->stop_unit,
2638 define_extent(ccw++, data, fdata->start_unit, fdata->stop_unit,
2642 ccw[-1].flags |= CCW_FLAG_CC;
2644 locate_record(ccw++, data, fdata->start_unit, 0, count,
2649 ccw[-1].flags |= CCW_FLAG_CC;
2650 ccw->cmd_code = DASD_ECKD_CCW_READ_COUNT;
2651 ccw->flags = CCW_FLAG_SLI;
2652 ccw->count = 8;
2653 ccw->cda = (__u32)virt_to_phys(fmt_buffer);
2654 ccw++;
2680 struct ccw1 *ccw;
2774 ccw = fcp->cpaddr;
2779 prefix(ccw++, (struct PFX_eckd_data *) data,
2788 define_extent(ccw++, (struct DE_eckd_data *) data,
2797 ccw[-1].flags |= CCW_FLAG_CC;
2798 locate_record(ccw++, (struct LO_eckd_data *) data,
2806 prefix(ccw++, (struct PFX_eckd_data *) data,
2812 define_extent(ccw++, (struct DE_eckd_data *) data,
2817 ccw[-1].flags |= CCW_FLAG_CC;
2818 locate_record(ccw++, (struct LO_eckd_data *) data,
2826 prefix(ccw++, (struct PFX_eckd_data *) data,
2831 define_extent(ccw++, (struct DE_eckd_data *) data,
2836 ccw[-1].flags |= CCW_FLAG_CC;
2837 locate_record(ccw++, (struct LO_eckd_data *) data,
2859 ccw[-1].flags |= CCW_FLAG_CC;
2860 ccw->cmd_code = DASD_ECKD_CCW_WRITE_RECORD_ZERO;
2861 ccw->flags = CCW_FLAG_SLI;
2862 ccw->count = 8;
2863 ccw->cda = (__u32)virt_to_phys(ect);
2864 ccw++;
2874 ccw[-1].flags |= CCW_FLAG_CC;
2875 ccw->cmd_code = DASD_ECKD_CCW_WRITE_CKD;
2876 ccw->flags = CCW_FLAG_SLI;
2877 ccw->count = 8;
2878 ccw->cda = (__u32)virt_to_phys(ect);
2904 ccw[-1].flags |= CCW_FLAG_CC;
2906 ccw->cmd_code =
2909 ccw->cmd_code =
2911 ccw->flags = CCW_FLAG_SLI;
2912 ccw->count = 8;
2913 ccw->cda = (__u32)virt_to_phys(ect);
2914 ccw++;
3775 struct ccw1 *ccw;
3853 ccw = cqr->cpaddr;
3854 ccw->cda = (__u32)virt_to_phys(cqr->data);
3855 ccw->cmd_code = DASD_ECKD_CCW_DSO;
3856 ccw->count = size;
3982 struct ccw1 *ccw;
4041 /* Allocate the ccw request. */
4046 ccw = cqr->cpaddr;
4047 /* First ccw is define extent or prefix. */
4049 if (prefix(ccw++, cqr->data, first_trk,
4060 if (define_extent(ccw++, cqr->data, first_trk,
4076 ccw[-1].flags |= CCW_FLAG_CC;
4077 locate_record(ccw++, LO_data++, first_trk, first_offs + 1,
4105 ccw[-1].flags |= CCW_FLAG_CC;
4106 locate_record(ccw++, LO_data++,
4112 ccw[-1].flags |= CCW_FLAG_CC;
4113 locate_record(ccw++, LO_data++,
4118 /* Read/write ccw. */
4119 ccw[-1].flags |= CCW_FLAG_CC;
4120 ccw->cmd_code = rcmd;
4121 ccw->count = count;
4123 ccw->cda = (__u32)virt_to_phys(idaws);
4124 ccw->flags = CCW_FLAG_IDA;
4127 ccw->cda = (__u32)virt_to_phys(dst);
4128 ccw->flags = 0;
4130 ccw++;
4172 struct ccw1 *ccw;
4203 /* 1x prefix + one read/write ccw per track */
4208 /* Allocate the ccw request. */
4213 ccw = cqr->cpaddr;
4221 if (prefix_LRE(ccw++, cqr->data, first_trk,
4234 * The translation of request into ccw programs must meet the
4238 * - the scope of a ccw and it's idal ends with the track boundaries
4258 ccw[-1].flags |= CCW_FLAG_CC;
4259 ccw->cmd_code = cmd;
4260 ccw->count = len_to_track_end;
4261 ccw->cda = (__u32)virt_to_phys(idaws);
4262 ccw->flags = CCW_FLAG_IDA;
4263 ccw++;
4266 /* first idaw for a ccw may start anywhere */
4546 /* Allocate the ccw request. */
4760 struct ccw1 *ccw;
4820 /* Allocate the ccw request. */
4826 ccw = cqr->cpaddr;
4830 prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev,
4833 define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0);
4834 ccw[-1].flags |= CCW_FLAG_CC;
4837 locate_record_ext(ccw++, data, first_trk, 0,
4844 ccw[-1].flags |= CCW_FLAG_CC;
4845 ccw->cmd_code = cmd;
4847 ccw->count = 57326;
4850 ccw->cda = (__u32)virt_to_phys(idaws);
4851 ccw->flags |= CCW_FLAG_IDA;
4852 ccw->flags |= CCW_FLAG_SLI;
4853 ccw++;
4863 ccw[-1].flags |= CCW_FLAG_CC;
4864 ccw->cmd_code = cmd;
4866 ccw->count = 57326;
4869 ccw->cda = (__u32)virt_to_phys(idaws);
4870 ccw->flags |= CCW_FLAG_IDA;
4871 ccw->flags |= CCW_FLAG_SLI;
4872 ccw++;
4899 struct ccw1 *ccw;
4913 ccw = cqr->cpaddr;
4915 ccw++;
4917 ccw++;
4923 ccw++;
4925 if (ccw->flags & CCW_FLAG_IDA)
4926 cda = *((char **)phys_to_virt(ccw->cda));
4928 cda = phys_to_virt(ccw->cda);
4937 ccw++;
4948 * Modify ccw/tcw in cqr so it can be started on a base device.
4956 struct ccw1 *ccw;
4970 ccw = cqr->cpaddr;
4972 if (ccw->cmd_code == DASD_ECKD_CCW_PFX) {
5055 struct ccw1 *ccw;
5068 memset(&dasd_reserve_req->ccw, 0,
5069 sizeof(dasd_reserve_req->ccw));
5070 cqr->cpaddr = &dasd_reserve_req->ccw;
5074 ccw = cqr->cpaddr;
5075 ccw->cmd_code = DASD_ECKD_CCW_RELEASE;
5076 ccw->flags |= CCW_FLAG_SLI;
5077 ccw->count = 32;
5078 ccw->cda = (__u32)virt_to_phys(cqr->data);
5110 struct ccw1 *ccw;
5123 memset(&dasd_reserve_req->ccw, 0,
5124 sizeof(dasd_reserve_req->ccw));
5125 cqr->cpaddr = &dasd_reserve_req->ccw;
5129 ccw = cqr->cpaddr;
5130 ccw->cmd_code = DASD_ECKD_CCW_RESERVE;
5131 ccw->flags |= CCW_FLAG_SLI;
5132 ccw->count = 32;
5133 ccw->cda = (__u32)virt_to_phys(cqr->data);
5164 struct ccw1 *ccw;
5177 memset(&dasd_reserve_req->ccw, 0,
5178 sizeof(dasd_reserve_req->ccw));
5179 cqr->cpaddr = &dasd_reserve_req->ccw;
5183 ccw = cqr->cpaddr;
5184 ccw->cmd_code = DASD_ECKD_CCW_SLCK;
5185 ccw->flags |= CCW_FLAG_SLI;
5186 ccw->count = 32;
5187 ccw->cda = (__u32)virt_to_phys(cqr->data);
5219 struct ccw1 *ccw;
5238 memset(&dasd_reserve_req->ccw, 0,
5239 sizeof(dasd_reserve_req->ccw));
5240 cqr->cpaddr = &dasd_reserve_req->ccw;
5244 ccw = cqr->cpaddr;
5245 ccw->cmd_code = DASD_ECKD_CCW_SNID;
5246 ccw->flags |= CCW_FLAG_SLI;
5247 ccw->count = 12;
5248 ccw->cda = (__u32)virt_to_phys(cqr->data);
5286 struct ccw1 *ccw;
5311 ccw = cqr->cpaddr;
5312 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5313 ccw->count = sizeof(struct dasd_psf_prssd_data);
5314 ccw->flags |= CCW_FLAG_CC;
5315 ccw->cda = (__u32)virt_to_phys(prssdp);
5321 ccw++;
5322 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5323 ccw->count = sizeof(struct dasd_rssd_perf_stats_t);
5324 ccw->cda = (__u32)virt_to_phys(stats);
5398 struct ccw1 *ccw;
5462 ccw = cqr->cpaddr;
5464 /* PSF ccw */
5465 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5466 ccw->count = usrparm.psf_data_len;
5467 ccw->flags |= CCW_FLAG_CC;
5468 ccw->cda = (__u32)virt_to_phys(psf_data);
5470 ccw++;
5472 /* RSSD ccw */
5473 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5474 ccw->count = usrparm.rssd_result_len;
5475 ccw->flags = CCW_FLAG_SLI ;
5476 ccw->cda = (__u32)virt_to_phys(rssd_result);
5910 struct ccw1 *ccw;
5943 ccw = cqr->cpaddr;
5944 ccw->cmd_code = DASD_ECKD_CCW_PSF;
5945 ccw->count = sizeof(struct dasd_psf_prssd_data);
5946 ccw->flags |= CCW_FLAG_CC;
5947 ccw->flags |= CCW_FLAG_SLI;
5948 ccw->cda = (__u32)virt_to_phys(prssdp);
5954 ccw++;
5955 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
5956 ccw->count = sizeof(struct dasd_rssd_messages);
5957 ccw->flags |= CCW_FLAG_SLI;
5958 ccw->cda = (__u32)virt_to_phys(message_buf);
5992 struct ccw1 *ccw;
6034 ccw = cqr->cpaddr;
6035 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6036 ccw->count = sizeof(struct dasd_psf_prssd_data);
6037 ccw->flags |= CCW_FLAG_CC;
6038 ccw->flags |= CCW_FLAG_SLI;
6039 ccw->cda = (__u32)virt_to_phys(prssdp);
6042 ccw++;
6043 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
6044 ccw->count = sizeof(struct dasd_psf_query_host_access);
6045 ccw->flags |= CCW_FLAG_SLI;
6046 ccw->cda = (__u32)virt_to_phys(host_access);
6251 struct ccw1 *ccw;
6276 ccw = cqr->cpaddr;
6277 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6278 ccw->count = sizeof(struct dasd_psf_prssd_data);
6279 ccw->flags |= CCW_FLAG_CC;
6280 ccw->flags |= CCW_FLAG_SLI;
6281 ccw->cda = (__u32)(addr_t)prssdp;
6284 ccw++;
6285 ccw->cmd_code = DASD_ECKD_CCW_RSSD;
6286 ccw->count = sizeof(*pprc_data);
6287 ccw->flags |= CCW_FLAG_SLI;
6288 ccw->cda = (__u32)(addr_t)pprc_data;
6313 struct ccw1 *ccw;
6328 ccw = cqr->cpaddr;
6329 ccw->cmd_code = DASD_ECKD_CCW_NOP;
6330 ccw->flags |= CCW_FLAG_SLI;
6360 struct ccw1 *ccw;
6380 ccw = cqr->cpaddr;
6381 ccw->cmd_code = DASD_ECKD_CCW_PSF;
6382 ccw->cda = (__u32)virt_to_phys(psf_cuir);
6383 ccw->flags = CCW_FLAG_SLI;
6384 ccw->count = sizeof(struct dasd_psf_cuir_response);
6882 * only need one ccw per track